diff --git a/mobile/android/.eslintrc b/mobile/android/.eslintrc new file mode 100644 index 0000000000..ce106c2d11 --- /dev/null +++ b/mobile/android/.eslintrc @@ -0,0 +1,110 @@ +env: + browser: true + +globals: + Components: false + + # TODO: Create custom rule for `Cu.import` + AddonManager: false + AppConstants: false + Downloads: false + File: false + FileUtils: false + HelperApps: true # TODO: Can be more specific here. + JNI: true # TODO: Can be more specific here. + LightweightThemeManager: false + Messaging: false + Notifications: false + OS: false + ParentalControls: false + PrivateBrowsingUtils: false + Prompt: false + Services: false + SharedPreferences: false + strings: false + Strings: false + Task: false + TelemetryStopwatch: false + UITelemetry: false + UserAgentOverrides: 0 + XPCOMUtils: false + ctypes: false + dump: false + exports: false + importScripts: false + module: false + require: false + uuidgen: false + + Iterator: false # TODO: Remove - deprecated! + +rules: + global-strict: 0 # Overridden by "strict" + no-underscore-dangle: 0 # We allow trailing underscores in names. + + # We disable everything to get all files to pass w/o updating them. + # We'll re-enable one by one. + camelcase: 0 + comma-dangle: 0 + comma-spacing: 0 + consistent-return: 0 + curly: 0 + dot-notation: 0 + eqeqeq: 0 + key-spacing: 0 + new-cap: 0 + no-caller: 0 + no-constant-condition: 0 + no-empty: 0 + no-extra-bind: 0 + no-extra-semi: 0 + no-loop-func: 0 + no-multi-spaces: 0 + no-new-object: 0 + no-octal: 0 + no-return-assign: 0 + no-shadow: 0 + no-trailing-spaces: 0 + no-unused-vars: 0 + no-use-before-define: 0 + quotes: 0 # [2, "double"] + semi: 0 + space-infix-ops: 0 + space-unary-ops: 0 # 2: https://github.com/eslint/eslint/issues/2764 + strict: 0 + + #"ecmaFeatures": { + # "forOf": true, + # "jsx": true, + #}, + #"rules": { + # // turn off all kinds of stuff that we actually do want, because + # // right now, we're bootstrapping the linting infrastructure. We'll + # // want to audit these rules, and start turning them on and fixing the + # // problems they find, one at a time. + + # // Eslint built-in rules are documented at + # "camelcase": 0, // TODO: Remove (use default) + # "consistent-return": 0, // TODO: Remove (use default) + # dot-location: 0, // [2, property], + # "eqeqeq": 0, // TBD. Might need to be separate for content & chrome + # "global-strict": 0, // Leave as zero (this will be unsupported in eslint 1.0.0) + # "linebreak-style": [2, "unix"], + # "new-cap": 0, // TODO: Remove (use default) + # "no-catch-shadow": 0, // TODO: Remove (use default) + # "no-console": 0, // Leave as 0. We use console logging in content code. + # "no-empty": 0, // TODO: Remove (use default) + # "no-extra-bind": 0, // Leave as 0 + # "no-extra-boolean-cast": 0, // TODO: Remove (use default) + # "no-multi-spaces": 0, // TBD. + # "no-new": 0, // TODO: Remove (use default) + # "no-redeclare": 0, // TODO: Remove (use default) + # "no-return-assign": 0, // TODO: Remove (use default) + # "no-underscore-dangle": 0, // Leave as 0. Commonly used for private variables. + # "no-unneeded-ternary": 2, + # "no-unused-expressions": 0, // TODO: Remove (use default) + # "no-unused-vars": 0, // TODO: Remove (use default) + # "no-use-before-define": 0, // TODO: Remove (use default) + # "quotes": [2, "double", "avoid-escape"], + # "strict": 0, // [2, "function"], + #} diff --git a/mobile/android/LICENSE b/mobile/android/LICENSE new file mode 100644 index 0000000000..14e2f777f6 --- /dev/null +++ b/mobile/android/LICENSE @@ -0,0 +1,373 @@ +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/mobile/android/Makefile.in b/mobile/android/Makefile.in new file mode 100644 index 0000000000..e86aaf15ab --- /dev/null +++ b/mobile/android/Makefile.in @@ -0,0 +1,11 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +include $(topsrcdir)/config/rules.mk +include $(topsrcdir)/testing/testsuite-targets.mk + +package-mobile-tests: + $(MAKE) stage-mochitest DIST_BIN=$(DEPTH)/$(DIST)/bin/xulrunner + $(NSINSTALL) -D $(DIST)/$(PKG_PATH) + @(cd $(PKG_STAGE) && tar $(TAR_CREATE_FLAGS) - *) | bzip2 -f > $(DIST)/$(PKG_PATH)$(TEST_PACKAGE) diff --git a/mobile/android/app.mozbuild b/mobile/android/app.mozbuild new file mode 100644 index 0000000000..b29d15c077 --- /dev/null +++ b/mobile/android/app.mozbuild @@ -0,0 +1,17 @@ +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +include('/toolkit/toolkit.mozbuild') + +if CONFIG['ENABLE_TESTS']: + DIRS += ['/testing/instrumentation'] + +if CONFIG['MOZ_EXTENSIONS']: + DIRS += ['/extensions'] + +DIRS += [ + '/%s' % CONFIG['MOZ_BRANDING_DIRECTORY'], + '/mobile/android', +] diff --git a/mobile/android/app/assets/example_asset.txt b/mobile/android/app/assets/example_asset.txt new file mode 100644 index 0000000000..34338f983e --- /dev/null +++ b/mobile/android/app/assets/example_asset.txt @@ -0,0 +1 @@ +This is an example asset. diff --git a/mobile/android/app/assets/parental_controls_theme.png b/mobile/android/app/assets/parental_controls_theme.png new file mode 100644 index 0000000000..64d76469eb Binary files /dev/null and b/mobile/android/app/assets/parental_controls_theme.png differ diff --git a/mobile/android/app/assets/publicsuffixlist b/mobile/android/app/assets/publicsuffixlist new file mode 100644 index 0000000000..7f834b1a89 --- /dev/null +++ b/mobile/android/app/assets/publicsuffixlist @@ -0,0 +1,8406 @@ +xn--9krt00a +xn--fjq720a +xn--ngbe9e0a +xn--mgba7c0bbn0a +xn--80ao21a +xn--80aqecdr1a +xn--xkc2al3hye2a +xn--9dbq2a +xn--1qqw23a +xn--8y0a063a +xn--kcrx77d1x4a +xn--mgba3a4f16a +xn--nyqy26a +xn--3oq18vl8pn36a +xn--t60b56a +xn--wgbl6a +xn--nnx388a +xn--42c2d9a +aaa +tiaa +ba +org.ba +mil.ba +com.ba +net.ba +blogspot.ba +edu.ba +gov.ba +alibaba +cba +toshiba +mba +nba +ca +ab.ca +mb.ca +nb.ca +bc.ca +gc.ca +qc.ca +pe.ca +nf.ca +sk.ca +yk.ca +nl.ca +on.ca +co.ca +no-ip.ca +ns.ca +nt.ca +blogspot.ca +nu.ca +amica +telefonica +pramerica +africa +corsica +avianca +sca +stada +tienda +honda +moda +asda +ltda +gea +cfa +bofa +ga +omega +ipiranga +yoga +doha +shiksha +lancia +media +shia +kia +nokia +xperia +asia +ninja +osaka +vodka +edeka +otsuka +la +c.la +org.la +com.la +info.la +per.la +bnr.la +net.la +int.la +edu.la +gov.la +shangrila +cuisinella +redumbrella +ma +ac.ma +org.ma +co.ma +press.ma +net.ma +gov.ma +yokohama +xn--nqv7fs00ema +mma +na +ca.na +cc.na +name.na +org.na +mobi.na +school.na +com.na +in.na +co.na +info.na +pro.na +dr.na +or.na +us.na +ws.na +tv.na +mx.na +vana +sina +barcelona +aetna +pa +gob.pa +ac.pa +med.pa +sld.pa +ing.pa +org.pa +com.pa +nom.pa +abo.pa +net.pa +edu.pa +xn--mgbayh7gpa +arpa +e164.arpa +ip6.arpa +uri.arpa +urn.arpa +in-addr.arpa +iris.arpa +qa +name.qa +org.qa +sch.qa +mil.qa +com.qa +net.qa +blogspot.qa +edu.qa +gov.qa +zara +camera +xn--mgba3a4fra +nra +xn--w4r85el8fhu5dnra +sakura +natura +sa +pub.sa +med.sa +org.sa +sch.sa +com.sa +net.sa +edu.sa +gov.sa +casa +visa +data +athleta +delta +toyota +vista +ua +vinnica.ua +crimea.ua +zaporizhzhia.ua +vinnytsia.ua +odesa.ua +odessa.ua +yalta.ua +poltava.ua +sb.ua +dominic.ua +kirovograd.ua +od.ua +uzhgorod.ua +zaporizhzhe.ua +rivne.ua +te.ua +if.ua +lg.ua +org.ua +kh.ua +chernivtsi.ua +khmelnytskyi.ua +ck.ua +mk.ua +lugansk.ua +donetsk.ua +lutsk.ua +ivano-frankivsk.ua +dnepropetrovsk.ua +dnipropetrovsk.ua +ternopil.ua +sebastopol.ua +sevastopol.ua +pl.ua +km.ua +com.ua +sm.ua +krym.ua +cn.ua +dn.ua +in.ua +kherson.ua +vn.ua +volyn.ua +co.ua +rovno.ua +dp.ua +pp.ua +zp.ua +cr.ua +zhitomir.ua +kr.ua +zhytomyr.ua +ks.ua +net.ua +lt.ua +zt.ua +edu.ua +cv.ua +nikolaev.ua +kiev.ua +mykolaiv.ua +chernihiv.ua +kharkiv.ua +lviv.ua +kyiv.ua +kv.ua +lv.ua +gov.ua +chernigov.ua +kharkov.ua +rv.ua +khmelnitskiy.ua +sumy.ua +cherkasy.ua +cherkassy.ua +chernovtsy.ua +biz.ua +uz.ua +va +java +bbva +teva +viva +okinawa +axa +lacaixa +nagoya +web.za +ac.za +agric.za +org.za +mil.za +school.za +nom.za +tm.za +co.za +blogspot.co.za +ngo.za +grondar.za +nis.za +net.za +alt.za +edu.za +gov.za +law.za +pizza +xn--mgbai9a5eva00b +xn--xhq521b +xn--vuq861b +xn--1ck2e1b +xn--mgbtx2b +xn--cck2b3b +xn--d1acj3b +xn--zfr164b +xn--fiq64b +xn--czr694b +xn--jlq61u9w7b +xn--rovu88b +xn--mgbx4cd0ab +cab +rehab +nab +arab +tab +bb +store.bb +org.bb +com.bb +co.bb +info.bb +net.bb +edu.bb +gov.bb +tv.bb +biz.bb +abb +jcb +scb +xn--80asehdb +imdb +ceb +gb +lb +org.lb +com.lb +net.lb +edu.lb +gov.lb +mlb +xn--mgbb9fbpob +sb +org.sb +com.sb +net.sb +edu.sb +gov.sb +xn--vermgensberater-ctb +starhub +club +samsclub +pub +xn--vermgensberatung-pwb +xn--45q11c +xn--wgbh1c +xn--fzc2c9e2c +xn--mk1bu44c +xn--e1a4c +xn--q9jyb4c +xn--bck1b9a5dre4c +xn--pbt977c +xn--g2xx48c +xn--h2brj9c +xn--45brj9c +xn--s9brj9c +xn--gecrj9c +ac +org.ac +mil.ac +com.ac +net.ac +edu.ac +gov.ac +xn--90a3ac +xn--o1ac.xn--90a3ac +xn--c1avg.xn--90a3ac +xn--o1ach.xn--90a3ac +xn--90azh.xn--90a3ac +xn--d1at.xn--90a3ac +xn--80au.xn--90a3ac +adac +abc +bbc +icbc +xn--mgbqly7c0a67fbc +hsbc +cc +fantasyleague.cc +scrapping.cc +game-server.cc +myphotos.cc +ftpaccess.cc +xn--54b7fta0cc +xn--l1acc +ec +k12.ec +gob.ec +med.ec +org.ec +mil.ec +com.ec +fin.ec +info.ec +pro.ec +net.ec +edu.ec +gov.ec +quebec +nec +comsec +symantec +hdfc +bananarepublic +catholic +organic +clinic +panasonic +citic +lc +org.lc +com.lc +co.lc +net.lc +edu.lc +gov.lc +oy.lc +jlc +mc +tm.mc +asso.mc +xn--qcka1pmc +nc +asso.nc +montblanc +pnc +mtpc +leclerc +sc +org.sc +com.sc +net.sc +edu.sc +gov.sc +csc +tc +htc +stc +wtc +vc +org.vc +mil.vc +com.vc +net.vc +edu.vc +gov.vc +qvc +iwc +pwc +nyc +xn--czru2d +xn--kprw13d +xn--11b4c3d +xn--fpcrj9c3d +xn--55qx5d +xn--kpry57d +xn--eckvdtc9d +ad +nom.ad +dad +read +download +xn--mgbab2bd +cd +gov.cd +xn--clchc0ea0b2g2a9gcd +mcd +med +clubmed +red +kred +exposed +limited +wed +cfd +gd +xn--mgbt3dhd +phd +thd +id +desa.id +web.id +ac.id +sch.id +mil.id +co.id +blogspot.co.id +go.id +or.id +net.id +my.id +biz.id +raid +bid +android +pid +madrid +build +gold +world +md +blogspot.md +band +land +static.land +sites.static.land +dev.static.land +newholland +saarland +bond +fund +food +prod +creditcard +barclaycard +vanguard +xn--b4w605ferd +krd +co.krd +edu.krd +ford +sd +med.sd +org.sd +com.sd +info.sd +net.sd +edu.sd +gov.sd +tv.sd +msd +merckmsd +td +blogspot.td +ltd +cloud +xn--ngbc5azd +xn--flw351e +xn--mgbbh1a71e +xn--gk3at1e +xn--i1b6b1a6a2e +xn--hxt814e +xn--3e0b707e +ae +ac.ae +org.ae +sch.ae +mil.ae +co.ae +net.ae +blogspot.ae +gov.ae +xn--90ae +be +ac.be +blogspot.be +latrobe +tube +youtube +place +space +stackspace.space +extraspace +alsace +ice +office +dance +reliance +finance +esurance +insurance +lifeinsurance +travelersinsurance +science +airforce +de +traeumtgerade.de +dnshome.de +isteingeek.de +com.de +leitungsen.de +istmein.de +goip.de +logoip.de +blogspot.de +lebtimnetz.de +fuettertdasnetz.de +glade +trade +woodside +onyourside +guide +nationwide +linde +xn--node +ee +lib.ee +med.ee +fie.ee +org.ee +pri.ee +riik.ee +com.ee +blogspot.com.ee +aip.ee +edu.ee +gov.ee +ieee +coffee +ggee +free +degree +cafe +safe +life +metlife +ge +org.ge +mil.ge +com.ge +net.ge +pvt.ge +edu.ge +gov.ge +fage +mortgage +page +storage +voyage +dodge +college +exchange +orange +george +guge +ie +blogspot.ie +gov.ie +politie +abbvie +movie +je +org.je +co.je +net.je +blogspot.co.ke +bike +like +nike +firmdale +sale +forsale +able +bible +audible +oracle +circle +kindle +gle +google +mobile +smile +lasalle +aquarelle +mutuelle +apple +schule +style +lifestyle +me +i234.me +brasilia.me +ac.me +dscloud.me +daplie.me +org.me +diskstation.me +co.me +loginto.me +hopto.me +noip.me +webhop.me +dnsfor.me +myds.me +ddns.me +its.me +net.me +edu.me +priv.me +gov.me +synology.me +game +name +forgot.her.name +forgot.his.name +meme +prime +showtime +lancome +rightathome +chrome +wme +ne +cologne +online +wine +one +phone +capitalone +redstone +bridgestone +firestone +zone +melbourne +chloe +moe +pe +gob.pe +org.pe +mil.pe +com.pe +nom.pe +net.pe +blogspot.pe +edu.pe +gripe +skype +re +com.re +nom.re +asso.re +blogspot.re +care +healthcare +compare +software +cbre +here +fire +store +theatre +secure +insure +furniture +accenture +azure +se +a.se +b.se +lanbib.se +komforb.se +c.se +ac.se +d.se +bd.se +brand.se +kommunalforbund.se +e.se +f.se +g.se +org.se +h.se +fh.se +i.se +parti.se +k.se +fhsk.se +l.se +m.se +com.se +tm.se +n.se +naturbruksgymn.se +o.se +p.se +pp.se +r.se +s.se +press.se +t.se +blogspot.se +u.se +fhv.se +w.se +x.se +komvux.se +y.se +z.se +case +lease +chase +reise +cruise +homesense +horse +house +date +estate +realestate +allstate +site +cyon.site +website +vote +arte +deloitte +lotte +institute +blue +clinique +boutique +ve +e12.ve +web.ve +gob.ve +rec.ve +tec.ve +store.ve +org.ve +mil.ve +com.ve +firm.ve +co.ve +info.ve +arts.ve +net.ve +int.ve +edu.ve +gov.ve +save +live +drive +progressive +active +love +xn--tckwe +rwe +luxe +xn--gckr3f0f +xn--mix891f +xn--mix082f +xn--kpu716f +xn--nqv7f +af +org.af +com.af +net.af +edu.af +gov.af +bf +gov.bf +xn--mgb9awbf +cf +blogspot.cf +xn--p1acf +sncf +xn--j1aef +pamperedchef +off +gf +maif +xn--d1alf +golf +nf +web.nf +rec.nf +store.nf +com.nf +firm.nf +info.nf +other.nf +per.nf +arts.nf +net.nf +prof +pf +org.pf +com.pf +edu.pf +surf +tf +wtf +xn--mgbaakc7dvf +wf +xn--55qw42g +xn--6frz82g +xn--3ds443g +xn--j6w193g +xn--ses554g +xn--estv75g +xn--5tzm5g +xn--rhqv96g +xn--mgberp4a5d4a87g +xn--c2br7g +ag +org.ag +com.ag +nom.ag +co.ag +net.ag +dvag +bg +0.bg +1.bg +2.bg +3.bg +4.bg +5.bg +6.bg +7.bg +8.bg +9.bg +a.bg +b.bg +c.bg +d.bg +e.bg +f.bg +g.bg +h.bg +i.bg +j.bg +k.bg +l.bg +m.bg +n.bg +o.bg +p.bg +q.bg +r.bg +s.bg +t.bg +blogspot.bg +u.bg +v.bg +w.bg +x.bg +y.bg +z.bg +cg +bcg +xn--mgbc0a9azcg +eg +name.eg +org.eg +sci.eg +mil.eg +com.eg +blogspot.com.eg +eun.eg +net.eg +edu.eg +gov.eg +aeg +gg +org.gg +co.gg +net.gg +aig +vig +kg +org.kg +mil.kg +com.kg +net.kg +edu.kg +gov.kg +mg +prd.mg +org.mg +mil.mg +com.mg +nom.mg +tm.mg +co.mg +edu.mg +gov.mg +kpmg +ng +name.ng +org.ng +sch.ng +i.ng +mobi.ng +mil.ng +com.ng +blogspot.com.ng +net.ng +edu.ng +gov.ng +wang +ing +bing +plumbing +racing +trading +wedding +fishing +clothing +viking +booking +cooking +sling +cleaning +training +ping +shopping +engineering +catering +dating +marketing +lighting +consulting +genting +voting +hosting +spreadbetting +giving +living +ong +song +versicherung +samsung +vermögensberatung +dog +blog +goog +bloomberg +org +c.cdn77.org +rsc.cdn77.org +mysecuritycamera.org +pimienta.org +za.org +is-very-bad.org +misconfused.org +is-saved.org +is-found.org +is-very-good.org +ae.org +is-very-nice.org +hepforge.org +stuff-4-sale.org +from-me.org +servegame.org +sellsyourhome.org +podzone.org +boldlygoingnowhere.org +ssl.origin.cdn77-secure.org +is-a-candidate.org +hobby-site.org +blogsite.org +is-a-chef.org +readmyblog.org +is-a-geek.org +isa-geek.org +hk.org +tunk.org +is-very-evil.org +cable-modem.org +mlbfan.org +ufcfan.org +collegefan.org +nflfan.org +is-a-celticsfan.org +is-a-bruinsfan.org +is-a-patsfan.org +is-a-soxfan.org +poivron.org +dnsdojo.org +zapto.org +hopto.org +no-ip.org +selfip.org +webhop.org +homeftp.org +serveftp.org +myftp.org +potager.org +sweetpepper.org +is-a-linux-user.org +certmgr.org +dynalias.org +dnsalias.org +dsmynas.org +wmflabs.org +servebbs.org +familyds.org +couchpotatofries.org +js.org +read-books.org +homedns.org +blogdns.org +duckdns.org +doomdns.org +dyndns.org +home.dyndns.org +go.dyndns.org +dvrdns.org +gotdns.org +kicks-ass.org +bmoattachments.org +us.org +is-very-sweet.org +endoftheinternet.org +endofinternet.org +is-a-knight.org +dontexist.org +doesntexist.org +game-host.org +is-lost.org +eu.org +q-a.eu.org +ca.eu.org +mc.eu.org +cd.eu.org +be.eu.org +de.eu.org +ee.eu.org +ie.eu.org +me.eu.org +se.eu.org +bg.eu.org +ng.eu.org +ch.eu.org +fi.eu.org +si.eu.org +dk.eu.org +mk.eu.org +sk.eu.org +uk.eu.org +al.eu.org +il.eu.org +nl.eu.org +pl.eu.org +cn.eu.org +in.eu.org +no.eu.org +ro.eu.org +asso.eu.org +jp.eu.org +fr.eu.org +gr.eu.org +hr.eu.org +kr.eu.org +tr.eu.org +es.eu.org +is.eu.org +paris.eu.org +us.eu.org +at.eu.org +net.eu.org +it.eu.org +lt.eu.org +mt.eu.org +int.eu.org +pt.eu.org +au.eu.org +edu.eu.org +hu.eu.org +lu.eu.org +ru.eu.org +lv.eu.org +cy.eu.org +my.eu.org +cz.eu.org +nz.eu.org +homeunix.org +homelinux.org +tuxfamily.org +hamburg +joburg +sg +org.sg +com.sg +per.sg +net.sg +blogspot.sg +edu.sg +gov.sg +xn--5su34j936bgsg +tg +ug +ac.ug +sc.ug +ne.ug +org.ug +com.ug +co.ug +go.ug +or.ug +blogspot.ug +vg +xn--c1avg +dwg +xn--80aswg +xn--xkc2dl3a5ee0h +xn--o3cw4h +xn--efvy88h +xn--mgbaam7a8h +bh +org.bh +com.bh +net.bh +edu.bh +gov.bh +gmbh +ch +gotdns.ch +blogspot.ch +coach +tech +rich +zuerich +search +cancerresearch +church +bosch +watch +swatch +xn--pgbs0dh +xn--mgbpl2fh +kfh +gh +org.gh +mil.gh +com.gh +edu.gh +gov.gh +caseih +mh +xn--j1amh +ricoh +ph +org.ph +i.ph +mil.ph +com.ph +ngo.ph +net.ph +edu.ph +gov.ph +sh +hashbang.sh +org.sh +mil.sh +com.sh +net.sh +gov.sh +cash +monash +dish +fish +irish +th +ac.th +mi.th +in.th +co.th +go.th +or.th +net.th +faith +health +rexroth +abarth +earth +ovh +nerdpol.ovh +bzh +xn--kput3i +xn--io0a7i +ai +off.ai +org.ai +com.ai +net.ai +xn--p1ai +dubai +hyundai +panerai +chintai +bi +org.bi +com.bi +co.bi +or.bi +edu.bi +abudhabi +obi +mobi +dscloud.mobi +sbi +ci +xn--aroport-bya.ci +ac.ci +ed.ci +md.ci +presse.ci +org.ci +com.ci +co.ci +go.ci +asso.ci +or.ci +net.ci +int.ci +aéroport.ci +edu.ci +gouv.ci +gucci +tci +kddi +audi +xn--fhbei +taipei +fi +aland.fi +iki.fi +blogspot.fi +dy.fi +sanofi +gi +mod.gi +ltd.gi +org.gi +com.gi +edu.gi +gov.gi +hitachi +archi +yodobashi +mitsubishi +shouji +ki +org.ki +com.ki +info.ki +net.ki +edu.ki +gov.ki +biz.ki +xn--cg4bki +wiki +helsinki +ski +suzuki +li +blogspot.li +richardli +ismaili +miami +ni +web.ni +gob.ni +ac.ni +org.ni +mil.ni +com.ni +nom.ni +in.ni +co.ni +info.ni +pp.ni +net.ni +int.ni +edu.ni +biz.ni +cipriani +lamborghini +mini +erni +moi +ferrari +si +blogspot.si +desi +maserati +citi +infiniti +bharti +bugatti +tui +vi +k12.vi +org.vi +com.vi +co.vi +net.vi +kiwi +praxi +taxi +fyi +xn--mgbai9azgqp6j +xn--lgbbat1ad8j +xn--4gq48lf9j +bj +asso.bj +blogspot.bj +barreau.bj +gouv.bj +dj +jnj +sj +tj +web.tj +ac.tj +nic.tj +name.tj +org.tj +mil.tj +com.tj +co.tj +go.tj +net.tj +int.tj +test.tj +edu.tj +gov.tj +biz.tj +xn--tiq49xqyj +xn--3pxu8k +xn--fct429k +lefrak +feedback +black +lundbeck +click +emerck +duck +dk +store.dk +reg.dk +firm.dk +co.dk +blogspot.dk +biz.dk +tdk +seek +temasek +hk +xn--uc0ay4a.hk +xn--gmqw5a.hk +xn--od0aq3b.hk +inc.hk +xn--wcvs22d.hk +xn--lcvr32d.hk +xn--55qx5d.hk +ltd.hk +xn--tn0ag.hk +xn--od0alg.hk +org.hk +xn--gmq050i.hk +xn--io0a7i.hk +xn--mk0axi.hk +xn--mxtq1m.hk +com.hk +xn--ciqpn.hk +net.hk +blogspot.hk +edu.hk +idv.hk +gov.hk +xn--uc0atv.hk +xn--zf0avx.hk +个人.hk +個人.hk +箇人.hk +公司.hk +政府.hk +網絡.hk +网絡.hk +組織.hk +组織.hk +組织.hk +组织.hk +網络.hk +网络.hk +敎育.hk +教育.hk +nhk +bostik +sandvik +lk +web.lk +ac.lk +soc.lk +ltd.lk +org.lk +sch.lk +hotel.lk +com.lk +assn.lk +ngo.lk +grp.lk +net.lk +int.lk +edu.lk +gov.lk +talk +dclk +silk +mk +name.mk +inf.mk +org.mk +com.mk +net.mk +blogspot.mk +edu.mk +gov.mk +bank +hdfcbank +statebank +commbank +everbank +netbank +softbank +ubank +ink +link +cyon.link +mypep.link +pink +book +pk +web.pk +gob.pk +org.pk +gok.pk +fam.pk +com.pk +gon.pk +info.pk +gop.pk +gos.pk +net.pk +edu.pk +gov.pk +biz.pk +work +network +foodnetwork +sk +blogspot.sk +tk +uk +ac.uk +plc.uk +ltd.uk +police.uk +me.uk +org.uk +co.uk +no-ip.co.uk +blogspot.co.uk +nhs.uk +net.uk +gov.uk +service.gov.uk +xn--w4rs40l +al +org.al +mil.al +com.al +net.al +blogspot.al +edu.al +gov.al +global +cal +deal +gal +legal +financial +lplfinancial +social +memorial +prudential +final +international +digital +capital +dental +total +mutual +northwesternmutual +cl +gob.cl +mil.cl +co.cl +blogspot.cl +gov.cl +lidl +citadel +spiegel +chanel +channel +cookingchannel +travelchannel +weatherchannel +tel +intel +airtel +mattel +travel +xn--ogbpf8fl +xn--mgbtf8fl +afl +nfl +gl +org.gl +com.gl +co.gl +net.gl +edu.gl +dhl +pohl +il +k12.il +ac.il +idf.il +org.il +muni.il +co.il +blogspot.co.il +net.il +gov.il +fail +email +gmail +hotmail +mil +statoil +ril +lixil +baseball +basketball +football +call +tmall +dell +shell +honeywell +williamhill +jll +ml +presse.ml +org.ml +com.ml +net.ml +edu.ml +gov.ml +gouv.ml +nl +virtueeldomein.nl +co.nl +blogspot.nl +bv.nl +bnl +onl +aol +futbol +lol +cool +school +tirol +uol +pl +swidnica.pl +legnica.pl +gda.pl +ostroda.pl +nowaruda.pl +media.pl +warmia.pl +gdynia.pl +dlugoleka.pl +ostroleka.pl +malopolska.pl +ustka.pl +turystyka.pl +pila.pl +szkola.pl +stalowa-wola.pl +konskowola.pl +gmina.pl +babia-gora.pl +jelenia-gora.pl +jgora.pl +zgora.pl +nysa.pl +miasta.pl +bielawa.pl +ilawa.pl +olawa.pl +warszawa.pl +limanowa.pl +bialowieza.pl +lomza.pl +boleslawiec.pl +sosnowiec.pl +ostrowiec.pl +mielec.pl +zgorzelec.pl +wroc.pl +pc.pl +med.pl +aid.pl +stargard.pl +gorlice.pl +gliwice.pl +starachowice.pl +prochowice.pl +polkowice.pl +katowice.pl +kobierzyce.pl +swinoujscie.pl +pomorskie.pl +podlasie.pl +podhale.pl +opole.pl +zakopane.pl +realestate.pl +pomorze.pl +mazowsze.pl +elblag.pl +kolobrzeg.pl +tarnobrzeg.pl +org.pl +walbrzych.pl +nieruchomosci.pl +targi.pl +suwalki.pl +turek.pl +wloclawek.pl +rybnik.pl +elk.pl +sanok.pl +bialystok.pl +lebork.pl +malbork.pl +slask.pl +lezajsk.pl +gdansk.pl +slupsk.pl +przeworsk.pl +wlocl.pl +rel.pl +travel.pl +mail.pl +mil.pl +com.pl +radom.pl +nom.pl +bytom.pl +gsm.pl +tourism.pl +tm.pl +atm.pl +zagan.pl +poznan.pl +lubin.pl +szczecin.pl +wolomin.pl +konin.pl +bedzin.pl +swiebodzin.pl +wielun.pl +olsztyn.pl +ketrzyn.pl +cieszyn.pl +co.pl +info.pl +olecko.pl +klodzko.pl +naklo.pl +mielno.pl +kepno.pl +kutno.pl +szczytno.pl +opoczno.pl +gniezno.pl +jaworzno.pl +agro.pl +auto.pl +grajewo.pl +mragowo.pl +beep.pl +sklep.pl +ostrowwlkp.pl +shop.pl +zachpomor.pl +sos.pl +powiat.pl +net.pl +sopot.pl +art.pl +czest.pl +edu.pl +priv.pl +gov.pl +pa.gov.pl +sa.gov.pl +wsa.gov.pl +pinb.gov.pl +winb.gov.pl +ic.gov.pl +witd.gov.pl +psse.gov.pl +wif.gov.pl +umig.gov.pl +ug.gov.pl +wiih.gov.pl +ugim.gov.pl +oirm.gov.pl +um.gov.pl +oum.gov.pl +sdn.gov.pl +sko.gov.pl +po.gov.pl +uppo.gov.pl +so.gov.pl +starostwo.gov.pl +ap.gov.pl +psp.gov.pl +kmpsp.gov.pl +kppsp.gov.pl +kwpsp.gov.pl +mup.gov.pl +pup.gov.pl +kwp.gov.pl +zp.gov.pl +wskr.gov.pl +sr.gov.pl +is.gov.pl +wios.gov.pl +us.gov.pl +uzs.gov.pl +konsulat.gov.pl +rzgw.gov.pl +piw.gov.pl +griw.gov.pl +wiw.gov.pl +mw.gov.pl +upow.gov.pl +uw.gov.pl +wzmiuw.gov.pl +wuoz.gov.pl +wroclaw.pl +wodzislaw.pl +waw.pl +glogow.pl +krakow.pl +lukow.pl +pruszkow.pl +zarow.pl +wegrow.pl +augustow.pl +skoczow.pl +rzeszow.pl +sex.pl +kaszuby.pl +bieszczady.pl +beskidy.pl +tychy.pl +sejny.pl +kazimierz-dolny.pl +lapy.pl +tgory.pl +mazury.pl +pulawy.pl +kartuzy.pl +rawa-maz.pl +karpacz.pl +lowicz.pl +bydgoszcz.pl +czeladz.pl +biz.pl +kalisz.pl +pisz.pl +olkusz.pl +lpl +sarl +frl +srl +sl +org.sl +com.sl +net.sl +edu.sl +gov.sl +tl +gov.tl +istanbul +xn--6qq986b3xl +xn--3bst00m +xn--mxtq1m +xn--jvr189m +am +blogspot.am +cam +webcam +amsterdam +stream +team +amfam +shriram +xn--qxam +bm +org.bm +com.bm +net.bm +edu.bm +gov.bm +ibm +cm +com.cm +co.cm +net.cm +gov.cm +dm +org.dm +com.dm +net.dm +edu.dm +gov.dm +fm +ifm +gm +xn--fzys8d69uvgm +hm +im +ac.im +org.im +com.im +co.im +plc.co.im +ltd.co.im +ro.im +net.im +tt.im +tv.im +kim +xn--4gbrim +km +prd.km +veterinaire.km +presse.km +org.km +mil.km +com.km +nom.km +tm.km +medecin.km +asso.km +coop.km +notaires.km +pharmaciens.km +ass.km +edu.km +gov.km +gouv.km +film +stockholm +om +med.om +org.om +com.om +museum.om +co.om +pro.om +net.om +edu.om +gov.om +bom +com +qa2.com +servemp3.com +from-ca.com +africa.com +from-ga.com +teaches-yoga.com +from-ia.com +from-ma.com +is-a-llama.com +iamallama.com +from-pa.com +is-a-cpa.com +mysecuritycamera.com +sa.com +from-va.com +from-wa.com +za.com +dyndns-web.com +gb.com +flynnhub.com +homesecuritymac.com +from-dc.com +from-nc.com +myvnc.com +homesecuritypc.com +qc.com +serveirc.com +from-sc.com +stufftoread.com +is-certified.com +is-not-certified.com +cloudcontrolled.com +from-id.com +from-md.com +from-nd.com +is-with-theband.com +from-sd.com +githubcloud.com +gist.githubcloud.com +rhcloud.com +myqnapcloud.com +alpha-myqnapcloud.com +dev-myqnapcloud.com +outsystemscloud.com +withyoutube.com +dyndns-office.com +de.com +from-de.com +googlecode.com +us-1.evennode.com +eu-1.evennode.com +us-2.evennode.com +eu-2.evennode.com +dyndns-free.com +servehalflife.com +serveexchange.com +is-a-techie.com +likes-pie.com +servequake.com +servecounterstrike.com +on-aptible.com +withgoogle.com +servegame.com +is-into-anime.com +dyndns-home.com +dyndns-at-home.com +from-ne.com +is-gone.com +cechire.com +xenapponazure.com +se.com +is-a-nurse.com +operaunite.com +hobby-site.com +yolasite.com +dyndns-remote.com +blogsyte.com +is-a-cubicle-slave.com +is-a-conservative.com +rackmaze.com +is-a-chef.com +townnews-staging.com +ddnsking.com +workisboring.com +pgfog.com +dyndns-blog.com +writesthisblog.com +from-nh.com +from-oh.com +onthewifi.com +from-hi.com +dyndns-wiki.com +from-mi.com +from-ri.com +from-wi.com +from-nj.com +from-ak.com +ciscofreak.com +is-slick.com +is-a-geek.com +isa-geek.com +hk.com +elasticbeanstalk.com +from-ok.com +dyndns-work.com +dyndns-at-work.com +uk.com +from-al.com +is-a-liberal.com +from-fl.com +from-il.com +dyndns-mail.com +bounty-full.com +alpha.bounty-full.com +beta.bounty-full.com +simple-url.com +neat-url.com +herokussl.com +from-nm.com +health-carereform.com +servesarcasm.com +is-a-republican.com +is-a-bulls-fan.com +is-a-nascarfan.com +is-a-musician.com +is-a-libertarian.com +cn.com +is-a-green.com +from-in.com +from-mn.com +gotpantheon.com +est-a-la-masion.com +est-le-patron.com +est-a-la-maison.com +unusualperson.com +jpn.com +from-tn.com +mydrobo.com +co.com +dnsdojo.com +from-mo.com +no.com +ro.com +servep2p.com +dyndns-ip.com +selfip.com +logoip.com +ditchyourip.com +getmyip.com +sinaapp.com +vipsinaapp.com +firebaseapp.com +1kapp.com +cloudcontrolapp.com +meteorapp.com +eu.meteorapp.com +pagefrontapp.com +herokuapp.com +serveftp.com +servehttp.com +ar.com +from-ar.com +is-a-rockstar.com +br.com +ownprovider.com +servebeer.com +is-an-engineer.com +is-a-blogger.com +is-a-teacher.com +is-a-photographer.com +is-a-hard-worker.com +is-a-designer.com +is-a-personaltrainer.com +is-an-entertainer.com +is-a-landscaper.com +is-a-bookkeeper.com +is-a-caterer.com +is-a-painter.com +is-a-hunter.com +dyndns-server.com +damnserver.com +is-a-player.com +is-a-lawyer.com +pagespeedmobilizer.com +gr.com +kr.com +xen.prgmr.com +from-or.com +is-a-financialadvisor.com +is-an-actor.com +is-a-doctor.com +myasustor.com +from-pr.com +dyn-o-saur.com +est-mon-blogueur.com +servehumour.com +dynalias.com +dnsalias.com +dsmynas.com +servebbs.com +dyndns-pics.com +servepics.com +securitytactics.com +familyds.com +3utilities.com +saves-the-whales.com +is-into-games.com +quicksytes.com +point2this.com +googleapis.com +from-ks.com +net-freaks.com +myshopblocks.com +from-ms.com +bloxcms.com +blogdns.com +doomdns.com +gotdns.com +dynns.com +is-into-cartoons.com +freebox-os.com +freeboxos.com +is-into-cars.com +dreamhosters.com +sells-for-less.com +is-an-actress.com +us.com +compute-1.amazonaws.com +z-1.compute-1.amazonaws.com +z-2.compute-1.amazonaws.com +s3-external-1.amazonaws.com +s3-eu-central-1.amazonaws.com +s3.eu-central-1.amazonaws.com +s3-sa-east-1.amazonaws.com +us-east-1.amazonaws.com +s3-ap-northeast-1.amazonaws.com +s3-ap-southeast-1.amazonaws.com +s3-us-west-1.amazonaws.com +s3-eu-west-1.amazonaws.com +s3-us-gov-west-1.amazonaws.com +s3-fips-us-gov-west-1.amazonaws.com +s3-external-2.amazonaws.com +s3-ap-northeast-2.amazonaws.com +s3.ap-northeast-2.amazonaws.com +s3-ap-southeast-2.amazonaws.com +s3-us-west-2.amazonaws.com +s3.amazonaws.com +elb.amazonaws.com +compute.amazonaws.com +eu-central-1.compute.amazonaws.com +sa-east-1.compute.amazonaws.com +ap-northeast-1.compute.amazonaws.com +ap-southeast-1.compute.amazonaws.com +us-west-1.compute.amazonaws.com +eu-west-1.compute.amazonaws.com +us-gov-west-1.compute.amazonaws.com +ap-northeast-2.compute.amazonaws.com +ap-southeast-2.compute.amazonaws.com +us-west-2.compute.amazonaws.com +is-a-democrat.com +from-ct.com +is-leet.com +is-uberleet.com +from-mt.com +is-an-accountant.com +is-a-student.com +space-to-rent.com +githubusercontent.com +codespot.com +blogspot.com +appspot.com +is-a-anarchist.com +is-an-anarchist.com +is-a-socialist.com +is-a-therapist.com +is-an-artist.com +dontexist.com +doesntexist.com +nfshost.com +from-ut.com +isa-hockeynut.com +from-vt.com +sells-for-u.com +4u.com +eu.com +hu.com +issmarterthanyou.com +ru.com +is-a-guru.com +from-nv.com +from-wv.com +apps.fbsbx.com +mex.com +homeunix.com +betainabox.com +from-tx.com +homelinux.com +likescandy.com +from-ky.com +dnsiskinky.com +myactivedirectory.com +uy.com +from-wy.com +geekgalaxy.com +unicom +mom +room +alstom +pm +farm +statefarm +sm +tm +org.tm +mil.tm +com.tm +nom.tm +co.tm +net.tm +edu.tm +gov.tm +museum +xn--correios-e-telecomunicaes-ghc29a.museum +vantaa.museum +judaica.museum +eastafrica.museum +mallorca.museum +canada.museum +casadelamoneda.museum +florida.museum +philadelphiaarea.museum +undersea.museum +savannahga.museum +chattanooga.museum +omaha.museum +ushuaia.museum +columbia.museum +britishcolumbia.museum +media.museum +georgia.museum +philadelphia.museum +australia.museum +filatelia.museum +virginia.museum +california.museum +russia.museum +donostia.museum +alaska.museum +nebraska.museum +lajolla.museum +xn--lns-qla.museum +missoula.museum +fortmissoula.museum +alabama.museum +panama.museum +cinema.museum +moma.museum +roma.museum +americana.museum +indiana.museum +pasadena.museum +southcarolina.museum +barcelona.museum +santabarbara.museum +svizzera.museum +usa.museum +atlanta.museum +minnesota.museum +plaza.museum +washingtondc.museum +quebec.museum +encyclopedic.museum +pacific.museum +oceanographic.museum +public.museum +music.museum +chiropractic.museum +celtic.museum +midatlantic.museum +uvic.museum +nyc.museum +baghdad.museum +farmstead.museum +mad.museum +railroad.museum +madrid.museum +beeldengeluid.museum +field.museum +and.museum +england.museum +finland.museum +judygarland.museum +scotland.museum +portland.museum +maryland.museum +hembygdsforbund.museum +imageandsound.museum +airguard.museum +oxford.museum +palace.museum +birthplace.museum +space.museum +ambulance.museum +resistance.museum +coastaldefence.museum +intelligence.museum +science.museum +historyofscience.museum +niepce.museum +force.museum +volkenkunde.museum +mesaverde.museum +tree.museum +trustee.museum +santafe.museum +wildlife.museum +village.museum +heritage.museum +nationalheritage.museum +cambridge.museum +gorge.museum +muncie.museum +wallonie.museum +sherbrooke.museum +bale.museum +bible.museum +motorcycle.museum +missile.museum +textile.museum +skole.museum +castle.museum +halloffame.museum +time.museum +maritime.museum +costume.museum +sologne.museum +online.museum +lucerne.museum +square.museum +delaware.museum +stateofdelaware.museum +lancashire.museum +yorkshire.museum +newhampshire.museum +histoire.museum +baltimore.museum +nature.museum +architecture.museum +furniture.museum +culture.museum +agriculture.museum +usculture.museum +louvre.museum +database.museum +francaise.museum +suisse.museum +house.museum +mulhouse.museum +chocolate.museum +karate.museum +state.museum +estate.museum +countryestate.museum +uscountryestate.museum +yosemite.museum +corvette.museum +oceanographique.museum +bellevue.museum +interactive.museum +automotive.museum +juif.museum +burghof.museum +building.museum +museumvereniging.museum +viking.museum +whaling.museum +mining.museum +timekeeping.museum +living.museum +kunstsammlung.museum +frog.museum +nuremberg.museum +starnberg.museum +nuernberg.museum +freiburg.museum +elburg.museum +hamburg.museum +naumburg.museum +marburg.museum +williamsburg.museum +colonialwilliamsburg.museum +christiansburg.museum +stpetersburg.museum +salzburg.museum +fribourg.museum +luxembourg.museum +utah.museum +research.museum +historisch.museum +touch.museum +xn--h1aegh.museum +pittsburgh.museum +british.museum +jewish.museum +health.museum +north.museum +fortworth.museum +monmouth.museum +youth.museum +xn--9dbhblg6di.museum +hawaii.museum +helsinki.museum +ski.museum +dali.museum +salvadordali.museum +assisi.museum +cincinnati.museum +geelvinck.museum +clock.museum +watch-and-clock.museum +watchandclock.museum +jfk.museum +sibenik.museum +silk.museum +norfolk.museum +annefrank.museum +tank.museum +cranbrook.museum +denmark.museum +steiermark.museum +york.museum +newyork.museum +medical.museum +archaeological.museum +gemological.museum +zoological.museum +botanical.museum +historical.museum +montreal.museum +memorial.museum +educational.museum +national.museum +coal.museum +cultural.museum +portal.museum +virtual.museum +naval.museum +brunel.museum +basel.museum +brussel.museum +virtuel.museum +oregontrail.museum +brasil.museum +baseball.museum +surgeonshall.museum +shell.museum +elvendrell.museum +bill.museum +mill.museum +windmill.museum +pubol.museum +school.museum +bristol.museum +amsterdam.museum +steam.museum +cheltenham.museum +durham.museum +tcm.museum +salem.museum +jerusalem.museum +film.museum +stockholm.museum +ulm.museum +farm.museum +journalism.museum +naturalhistorymuseum.museum +planetarium.museum +aquarium.museum +arboretum.museum +can.museum +american.museum +nativeamerican.museum +michigan.museum +indian.museum +egyptian.museum +isleofman.museum +saskatchewan.museum +schokoladen.museum +sweden.museum +garden.museum +botanicgarden.museum +botanicalgarden.museum +childrensgarden.museum +usgarden.museum +copenhagen.museum +muenchen.museum +westfalen.museum +natuurwetenschappen.museum +children.museum +vlaanderen.museum +uhren.museum +heimatunduhren.museum +giessen.museum +design.museum +artanddesign.museum +kunstunddesign.museum +bahn.museum +eisenbahn.museum +stjohn.museum +berlin.museum +austin.museum +koeln.museum +lincoln.museum +bonn.museum +schoenbrunn.museum +london.museum +oregon.museum +soundandvision.museum +television.museum +mansion.museum +communication.museum +education.museum +arteducation.museum +foundation.museum +creation.museum +association.museum +aviation.museum +telekommunikation.museum +assassination.museum +harvestcelebration.museum +corporation.museum +illustration.museum +civilisation.museum +plantation.museum +station.museum +preservation.museum +environmentalconservation.museum +civilization.museum +collection.museum +science-fiction.museum +exhibition.museum +iron.museum +handson.museum +jamison.museum +jefferson.museum +larsson.museum +capebreton.museum +clinton.museum +boston.museum +bern.museum +modern.museum +western.museum +bauern.museum +luzern.museum +paderborn.museum +koebenhavn.museum +town.museum +xn--comunicaes-v6a2o.museum +bilbao.museum +artdeco.museum +newmexico.museum +sanfrancisco.museum +paleo.museum +chicago.museum +otago.museum +sandiego.museum +fundacio.museum +presidio.museum +ontario.museum +monticello.museum +maritimo.museum +torino.museum +anthro.museum +riodejaneiro.museum +workshop.museum +iraq.museum +war.museum +coldwar.museum +civilwar.museum +ddr.museum +amber.museum +cyber.museum +carrier.museum +lewismiller.museum +franziskaner.museum +newspaper.museum +theater.museum +exeter.museum +center.museum +sciencecenter.museum +culturalcenter.museum +museumcenter.museum +artcenter.museum +manchester.museum +rochester.museum +muenster.museum +computer.museum +air.museum +openair.museum +labor.museum +dinosaur.museum +labour.museum +karikatur.museum +glas.museum +dallas.museum +hellas.museum +texas.museum +kids.museum +grandrapids.museum +sciences.museum +naturalsciences.museum +landes.museum +juedisches.museum +historisches.museum +medizinhistorisches.museum +naturhistorisches.museum +schlesisches.museum +humanities.museum +wales.museum +losangeles.museum +sciencesnaturelles.museum +bruxelles.museum +versailles.museum +meeres.museum +figueres.museum +castres.museum +historichouses.museum +neues.museum +cadaques.museum +antiques.museum +americanantiques.museum +usantiques.museum +comunicações.museum +correios-e-telecomunicações.museum +palmsprings.museum +baths.museum +indianapolis.museum +paris.museum +saintlouis.museum +axis.museum +brussels.museum +dolls.museum +nationalfirearms.museum +stalbans.museum +lans.museum +childrens.museum +mansions.museum +communications.museum +posts-and-telecommunications.museum +läns.museum +flanders.museum +settlers.museum +farmers.museum +miners.museum +sciencecenters.museum +glass.museum +press.museum +crafts.museum +artsandcrafts.museum +plants.museum +pilots.museum +arts.museum +finearts.museum +decorativearts.museum +usdecorativearts.museum +usarts.museum +beauxarts.museum +bus.museum +columbus.museum +circus.museum +portlligat.museum +project.museum +stadt.museum +museet.museum +indianmarket.museum +detroit.museum +settlement.museum +environment.museum +farmequipment.museum +convent.museum +depot.museum +art.museum +birdart.museum +fineart.museum +stuttgart.museum +jewishart.museum +rockart.museum +americanart.museum +cartoonart.museum +asmatart.museum +contemporaryart.museum +seaport.museum +transport.museum +newport.museum +frankfurt.museum +broadcast.museum +eastcoast.museum +southwest.museum +loyalist.museum +kunst.museum +delmenhorst.museum +marylhurst.museum +trust.museum +bergbau.museum +coloradoplateau.museum +cymru.museum +moscow.museum +nrw.museum +essex.museum +phoenix.museum +manx.museum +satx.museum +chesapeakebay.museum +gateway.museum +railway.museum +pharmacy.museum +cody.museum +bushey.museum +berkeley.museum +valley.museum +brandywinevalley.museum +trolley.museum +sydney.museum +money.museum +surrey.museum +guernsey.museum +newjersey.museum +archaeology.museum +geology.museum +entomology.museum +technology.museum +ethnology.museum +zoology.museum +anthropology.museum +topology.museum +horology.museum +photography.museum +philately.museum +family.museum +academy.museum +astronomy.museum +botany.museum +nyny.museum +spy.museum +contemporary.museum +military.museum +embroidery.museum +gallery.museum +artgallery.museum +discovery.museum +jewelry.museum +freemasonry.museum +history.museum +scienceandhistory.museum +sciencehistory.museum +livinghistory.museum +uslivinghistory.museum +localhistory.museum +naturalhistory.museum +computerhistory.museum +ushistory.museum +scienceandindustry.museum +epilepsy.museum +society.museum +historicalsociety.museum +community.museum +university.museum +county.museum +graz.museum +schweiz.museum +linz.museum +badajoz.museum +santacruz.museum +иком.museum +ירושלים.museum +forum +zm +ac.zm +org.zm +sch.zm +mil.zm +com.zm +co.zm +info.zm +net.zm +edu.zm +gov.zm +biz.zm +xn--imr513n +durban +republican +fan +jpmorgan +agakhan +guardian +theguardian +man +warman +loan +nissan +xihuan +anquan +caravan +olayan +cbn +cn +ha.cn +hb.cn +ac.cn +sc.cn +xn--55qx5d.cn +gd.cn +sd.cn +he.cn +xn--od0alg.cn +org.cn +ah.cn +qh.cn +sh.cn +xn--io0a7i.cn +hi.cn +bj.cn +fj.cn +tj.cn +xj.cn +zj.cn +hk.cn +hl.cn +mil.cn +jl.cn +nm.cn +com.cn +s3.cn-north-1.amazonaws.com.cn +compute.amazonaws.com.cn +cn-north-1.compute.amazonaws.com.cn +hn.cn +ln.cn +sn.cn +yn.cn +mo.cn +cq.cn +gs.cn +js.cn +net.cn +edu.cn +gov.cn +tw.cn +gx.cn +jx.cn +nx.cn +sx.cn +gz.cn +xz.cn +公司.cn +網絡.cn +网络.cn +bcn +gdn +akdn +garden +green +kaufen +volkswagen +kitchen +immobilien +wien +men +open +ren +vlaanderen +reisen +seven +gn +ac.gn +org.gn +com.gn +net.gn +edu.gn +gov.gn +design +verisign +hn +gob.hn +org.hn +mil.hn +com.hn +net.hn +edu.hn +in +ac.in +nic.in +ind.in +org.in +mil.in +firm.in +gen.in +co.in +res.in +net.in +blogspot.in +edu.in +gov.in +calvinklein +virgin +skin +berlin +pin +lupin +vin +win +xin +kn +org.kn +net.kn +edu.kn +gov.kn +koeln +lincoln +mn +nyc.mn +org.mn +edu.mn +gov.mn +london +fashion +creditunion +vision +eurovision +education +foundation +playstation +protection +auction +construction +nikon +salon +mormon +canon +qpon +coupon +liaison +maison +scjohnson +epson +emerson +ericsson +norton +boston +pn +org.pn +co.pn +net.pn +edu.pn +gov.pn +kpn +cern +bayern +porn +sn +org.sn +com.sn +perso.sn +blogspot.sn +art.sn +edu.sn +univ.sn +gouv.sn +tn +ind.tn +defense.tn +org.tn +intl.tn +com.tn +mincom.tn +tourism.tn +turen.tn +fin.tn +info.tn +perso.tn +ens.tn +rns.tn +nat.tn +net.tn +agrinet.tn +edunet.tn +rnrt.tn +rnu.tn +gov.tn +mtn +fun +run +datsun +yamaxun +yun +vn +ac.vn +name.vn +org.vn +health.vn +com.vn +info.vn +pro.vn +net.vn +int.vn +blogspot.vn +edu.vn +gov.vn +biz.vn +crown +town +capetown +xn--yfro4i67o +ao +pb.ao +ed.ao +og.ao +co.ao +it.ao +gv.ao +taobao +bo +gob.bo +org.bo +mil.bo +com.bo +net.bo +int.bo +edu.bo +gov.bo +tv.bo +hbo +weibo +globo +co +web.co +rec.co +org.co +mil.co +com.co +blogspot.com.co +nom.co +firm.co +info.co +arts.co +net.co +int.co +edu.co +gov.co +aco +eco +iveco +nico +aramco +blanco +bradesco +cisco +do +web.do +gob.do +sld.do +org.do +mil.do +com.do +net.do +art.do +edu.do +gov.do +abogado +fido +xn--mgbca7dzdo +ceo +video +rodeo +meo +alfaromeo +fo +info +barrel-of-knowledge.info +barrell-of-knowledge.info +ilovecollege.info +groks-the.info +here-for-more.info +nsupdate.info +knowsitall.info +dvrcam.info +no-ip.info +selfip.info +webhop.info +for-our.info +groks-this.info +dyndns.info +lego +aigo +ngo +mango +bingo +whoswho +io +gitlab.io +github.io +hzc.io +nid.io +drud.io +boxfuse.io +pantheonsite.io +ngrok.io +browsersafetymark.io +com.io +dedyn.io +hasura-app.io +backplaneapp.io +sandcats.io +protonet.io +spacekit.io +bio +radio +audio +studio +jio +rio +physio +jo +name.jo +org.jo +sch.jo +mil.jo +com.jo +net.jo +edu.jo +gov.jo +gallo +ollo +mo +org.mo +com.mo +net.mo +edu.mo +gov.mo +gmo +limo +immo +promo +no +xn--kranghke-b0a.no +xn--vegrshei-c0a.no +xn--gildeskl-g0a.no +xn--kvnangen-k0a.no +xn--ygarden-p1a.no +xn--srreisa-q1a.no +xn--tnsberg-q1a.no +xn--sr-odal-q1a.no +xn--ldingen-q1a.no +xn--sr-fron-q1a.no +xn--hyanger-q1a.no +xn--hnefoss-q1a.no +xn--trgstad-r1a.no +xn--stjrdal-s1a.no +xn--rennesy-v1a.no +xn--skjervy-v1a.no +xn--hgebostad-g3a.no +xn--jrpeland-54a.no +xn--lrenskog-54a.no +xn--hylandet-54a.no +xn--mjndalen-64a.no +xn--bhcavuotna-s4a.no +xn--mlatvuopmi-s4a.no +xn--davvenjrga-y4a.no +xn--bearalvhki-y4a.no +xn--bhccavuotna-k7a.no +xn--vre-eiker-k8a.no +xn--sr-aurdal-l8a.no +xn--krdsherad-m8a.no +aa.no +gs.aa.no +xn--nmesjevuemie-tcba.no +odda.no +davvesiida.no +volda.no +stranda.no +sauda.no +xn--l-1fa.no +xn--s-1fa.no +xn--h-2fa.no +xn--eveni-0qa01ga.no +vaga.no +vega.no +tolga.no +davvenjarga.no +unjarga.no +davvenjárga.no +unjárga.no +ha.no +xn--fl-zia.no +badaddja.no +lesja.no +leka.no +karasjohka.no +kárášjohka.no +leangaviika.no +gangaviika.no +leaŋgaviika.no +gáŋgaviika.no +narviika.no +fla.no +overhalla.no +smola.no +sola.no +vennesla.no +xn--mli-tla.no +xn--mot-tla.no +xn--rde-ula.no +sula.no +smøla.no +rauma.no +xn--rst-0na.no +xn--bod-2na.no +xn--risa-5na.no +xn--slat-5na.no +rana.no +mo-i-rana.no +frana.no +trana.no +tana.no +divtasvuodna.no +vikna.no +somna.no +sømna.no +donna.no +dønna.no +arna.no +nesna.no +giehtavuoatna.no +bahccavuotna.no +báhccavuotna.no +bahcavuotna.no +báhcavuotna.no +navuotna.no +gaivuotna.no +gáivuotna.no +omasvuotna.no +divttasvuotna.no +návuotna.no +xn--yer-zna.no +fræna.no +træna.no +xn--rdal-poa.no +xn--snes-poa.no +xn--vgan-qoa.no +xn--snsa-roa.no +xn--skjk-soa.no +xn--brum-voa.no +xn--frna-woa.no +xn--trna-woa.no +xn--klbu-woa.no +loppa.no +xn--loabt-0qa.no +xn--muost-0qa.no +xn--bievt-0qa.no +xn--lhppi-xqa.no +xn--hbmer-xqa.no +xn--hpmir-xqa.no +xn--sknit-yqa.no +xn--rsta-fra.no +xn--smna-gra.no +xn--dnna-gra.no +xn--frde-gra.no +xn--sgne-gra.no +xn--srum-gra.no +xn--lten-gra.no +xn--bmlo-gra.no +xn--rros-gra.no +xn--smla-hra.no +xn--frya-hra.no +xn--tjme-hra.no +xn--hobl-ira.no +xn--risr-ira.no +xn--rady-ira.no +xn--andy-ira.no +xn--asky-ira.no +xn--mely-ira.no +xn--lury-ira.no +xn--dyry-ira.no +utsira.no +xn--vard-jra.no +xn--flor-jra.no +xn--vads-jra.no +aukra.no +xn--fjord-lra.no +xn--seral-lra.no +xn--rholt-mra.no +xn--snase-nra.no +flora.no +xn--linds-pra.no +xn--lrdal-sra.no +hitra.no +xn--tysvr-vra.no +snasa.no +snoasa.no +raisa.no +nordreisa.no +sorreisa.no +sørreisa.no +ráisa.no +galsa.no +halsa.no +romsa.no +tromsa.no +rissa.no +fusa.no +snåsa.no +aknoluokta.no +ákŋoluokta.no +alta.no +xn--bjddar-pta.no +xn--unjrga-rta.no +hammarfeasta.no +hámmárfeasta.no +frosta.no +orsta.no +ørsta.no +xn--skierv-uta.no +xn--lesund-hua.no +xn--kfjord-iua.no +xn--mlselv-iua.no +xn--moreke-jua.no +xn--merker-kua.no +xn--rland-uua.no +xn--rskog-uua.no +xn--ksnes-uua.no +xn--ryken-vua.no +xn--drbak-wua.no +xn--gjvik-wua.no +xn--osyro-wua.no +xn--sandy-yua.no +xn--karmy-yua.no +xn--trany-yua.no +xn--finny-yua.no +xn--avery-yua.no +xn--troms-zua.no +va.no +gs.va.no +krokstadelva.no +skierva.no +xn--nvuotna-hwa.no +xn--vler-qoa.xn--stfold-9xa.no +xn--krehamn-dxa.no +xn--sknland-fxa.no +xn--holtlen-hxa.no +xn--oppegrd-ixa.no +xn--langevg-jxa.no +xn--berlevg-jxa.no +xn--rlingen-mxa.no +xn--kvfjord-nxa.no +xn--laheadju-7ya.no +xn--givuotna-8ya.no +xn--srfold-bya.no +xn--rmskog-bya.no +xn--ryrvik-bya.no +xn--jlster-bya.no +xn--mosjen-eya.no +xn--bjarky-fya.no +xn--indery-fya.no +xn--ostery-fya.no +xn--kvitsy-fya.no +xn--krager-gya.no +froya.no +frøya.no +xn--btsfjord-9za.no +xn--leagaviika-52b.no +xn--hcesuolo-7ya35b.no +xn--vg-yiab.no +xn--blt-elab.no +xn--slt-elab.no +xn--rdy-0nab.no +xn--sndre-land-0cb.no +xn--stre-toten-zcb.no +xn--sr-varanger-ggb.no +xn--sandnessjen-ogb.no +xn--ystre-slidre-ujb.no +xn--aurskog-hland-jnb.no +xn--hery-ira.xn--mre-og-romsdal-qqb.no +sande.xn--mre-og-romsdal-qqb.no +xn--stjrdalshalsen-sqb.no +xn--hmmrfeasta-s4ac.no +xn--brnnysund-m8ac.no +xn--lt-liac.no +xn--gls-elac.no +xn--bidr-5nac.no +xn--lgrd-poac.no +xn--brnny-wuac.no +xn--vrggt-xqad.no +herad.no +kvinnherad.no +krodsherad.no +krødsherad.no +sauherad.no +ibestad.no +rakkestad.no +hyllestad.no +nannestad.no +trogstad.no +trøgstad.no +flakstad.no +fredrikstad.no +vevelstad.no +grimstad.no +hagebostad.no +hægebostad.no +harstad.no +gjerstad.no +xn--bdddj-mrabd.no +eid.no +hareid.no +kviteseid.no +namdalseid.no +sorfold.no +sørfold.no +sande.vestfold.no +valer.ostfold.no +våler.østfold.no +sondre-land.no +søndre-land.no +nordre-land.no +os.hordaland.no +xn--b-5ga.nordland.no +xn--hery-ira.nordland.no +bo.nordland.no +heroy.nordland.no +herøy.nordland.no +bø.nordland.no +meland.no +hjelmeland.no +jorpeland.no +jørpeland.no +iveland.no +bygland.no +skanland.no +skånland.no +aurskog-holand.no +froland.no +orland.no +aurland.no +ørland.no +sortland.no +aurskog-høland.no +strand.no +tvedestrand.no +balestrand.no +holmestrand.no +lillesand.no +kristiansand.no +forsand.no +lund.no +solund.no +sund.no +midsund.no +tjeldsund.no +haugesund.no +alesund.no +ålesund.no +hokksund.no +kvalsund.no +kristiansund.no +farsund.no +egersund.no +eigersund.no +fetsund.no +bronnoysund.no +brønnøysund.no +svalbard.no +gs.svalbard.no +oppegard.no +algard.no +afjord.no +vindafjord.no +kafjord.no +kvafjord.no +eidfjord.no +sandefjord.no +flekkefjord.no +snillfjord.no +leirfjord.no +storfjord.no +balsfjord.no +batsfjord.no +båtsfjord.no +tysfjord.no +åfjord.no +kåfjord.no +kvæfjord.no +seljord.no +stord.no +oppegård.no +ålgård.no +nes.buskerud.no +xn--nttery-byae.no +rade.no +molde.no +forde.no +førde.no +råde.no +rygge.no +stange.no +naamesjevuemie.no +nååmesjevuemie.no +laakesvuemie.no +aejrie.no +fedje.no +skodje.no +selje.no +moareke.no +moåreke.no +kraanghke.no +kråanghke.no +ringerike.no +tokke.no +stokke.no +giske.no +fauske.no +bamble.no +bykle.no +valle.no +stathelle.no +hole.no +time.no +tjome.no +tjøme.no +grane.no +sogne.no +søgne.no +hemne.no +lierne.no +etne.no +kommune.no +bryne.no +vestre-slidre.no +oystre-slidre.no +øystre-slidre.no +aure.no +dovre.no +snaase.no +snåase.no +aarborte.no +vaapste.no +grue.no +xn--porsgu-sta26f.no +xn--rhkkervju-01af.no +xn--mtta-vrjjat-k7af.no +of.no +gs.of.no +hof.no +sf.no +gs.sf.no +vf.no +gs.vf.no +xn--nry-yla5g.no +xn--vry-yla5g.no +rollag.no +langevag.no +berlevag.no +vang.no +ullensvang.no +grong.no +eidskog.no +romskog.no +rømskog.no +lorenskog.no +lørenskog.no +orskog.no +ørskog.no +berg.no +randaberg.no +spydeberg.no +eidsberg.no +flesberg.no +kongsberg.no +tonsberg.no +tønsberg.no +sarpsborg.no +alstahaug.no +langevåg.no +berlevåg.no +xn--msy-ula0h.no +xn--ggaviika-8ya47h.no +xn--koluokta-7ya57h.no +ah.no +gs.ah.no +vegarshei.no +vegårshei.no +frei.no +bearalvahki.no +bearalváhki.no +ski.no +amli.no +åmli.no +malatvuopmi.no +málatvuopmi.no +lahppi.no +láhppi.no +dielddanuorri.no +evenassi.no +evenášši.no +xn--vgsy-qoa0j.no +xn--krjohka-hwab49j.no +drobak.no +drøbak.no +skjak.no +siellak.no +vik.no +spjelkavik.no +malvik.no +svelvik.no +ulvik.no +gamvik.no +lenvik.no +gjovik.no +larvik.no +narvik.no +kopervik.no +leirvik.no +royrvik.no +røyrvik.no +hasvik.no +leksvik.no +mosvik.no +gjøvik.no +enebakk.no +karasjok.no +xn--vler-qoa.hedmark.no +valer.hedmark.no +våler.hedmark.no +os.hedmark.no +xn--b-5ga.telemark.no +bo.telemark.no +bø.telemark.no +aremark.no +skjåk.no +al.no +surnadal.no +brumunddal.no +norddal.no +drangedal.no +etnedal.no +hemsedal.no +nissedal.no +nittedal.no +sigdal.no +lyngdal.no +orkdal.no +meldal.no +hattfjelldal.no +folldal.no +midtre-gauldal.no +suldal.no +mandal.no +arendal.no +sogndal.no +bindal.no +hornindal.no +rindal.no +sokndal.no +sunndal.no +jondal.no +nord-odal.no +sor-odal.no +sør-odal.no +oppdal.no +ardal.no +lardal.no +marnardal.no +engerdal.no +lerdal.no +verdal.no +sirdal.no +stjordal.no +stordal.no +nord-aurdal.no +sor-aurdal.no +sør-aurdal.no +hurdal.no +årdal.no +lærdal.no +stjørdal.no +gjesdal.no +kvinesdal.no +fyresdal.no +vaksdal.no +sande.more-og-romsdal.no +heroy.more-og-romsdal.no +sande.møre-og-romsdal.no +herøy.møre-og-romsdal.no +gausdal.no +saltdal.no +hjartdal.no +naustdal.no +alvdal.no +stor-elvdal.no +nore-og-uvdal.no +tydal.no +gildeskal.no +aseral.no +åseral.no +folkebibl.no +fylkesbibl.no +sel.no +hadsel.no +hl.no +gs.hl.no +mil.no +trysil.no +fjell.no +austevoll.no +tingvoll.no +askvoll.no +eidsvoll.no +nl.no +gs.nl.no +ol.no +gs.ol.no +hobol.no +gol.no +hol.no +rl.no +gs.rl.no +ål.no +gildeskål.no +hobøl.no +haram.no +kvam.no +fm.no +gs.fm.no +hm.no +gs.hm.no +trondheim.no +austrheim.no +jessheim.no +bjerkreim.no +askim.no +lom.no +tm.no +gs.tm.no +modum.no +museum.no +barum.no +gjerdrum.no +elverum.no +sorum.no +hurum.no +bærum.no +sørum.no +slattum.no +vagan.no +namsskogan.no +vågan.no +siljan.no +roan.no +gran.no +verran.no +nesodden.no +notodden.no +halden.no +oygarden.no +øygarden.no +masfjorden.no +steigen.no +salangen.no +ballangen.no +kvanangen.no +kvænangen.no +gratangen.no +nesoddtangen.no +lavangen.no +vossevangen.no +lodingen.no +lødingen.no +ralingen.no +rælingen.no +lyngen.no +bergen.no +skien.no +torsken.no +royken.no +røyken.no +songdalen.no +rendalen.no +mjondalen.no +mjøndalen.no +modalen.no +holtalen.no +gulen.no +holtålen.no +drammen.no +mosjoen.no +sandnessjoen.no +gloppen.no +stjordalshalsen.no +stjørdalshalsen.no +osen.no +loten.no +vestre-toten.no +ostre-toten.no +østre-toten.no +horten.no +løten.no +sykkylven.no +vanylven.no +jan-mayen.no +gs.jan-mayen.no +mosjøen.no +sandnessjøen.no +frogn.no +bjugn.no +troandin.no +granvin.no +bokn.no +audnedaln.no +akrehamn.no +åkrehamn.no +tinn.no +porsgrunn.no +nord-fron.no +sor-fron.no +sør-fron.no +beiarn.no +stavern.no +vefsn.no +skaun.no +stryn.no +xn--vestvgy-ixa6o.no +co.no +bodo.no +vardo.no +sveio.no +fuossko.no +bomlo.no +bømlo.no +andasuolo.no +cahcesuolo.no +čáhcesuolo.no +oslo.no +gs.oslo.no +skedsmo.no +kautokeino.no +kragero.no +floro.no +osoyro.no +osøyro.no +vadso.no +tromso.no +dep.no +nordkapp.no +klepp.no +bajddar.no +bájddar.no +baidar.no +fitjar.no +gaular.no +hamar.no +tysvar.no +leikanger.no +orkanger.no +bremanger.no +tananger.no +samnanger.no +sor-varanger.no +sør-varanger.no +porsanger.no +flatanger.no +stavanger.no +levanger.no +hoyanger.no +høyanger.no +kongsvinger.no +lier.no +steinkjer.no +jevnaker.no +meraker.no +ringsaker.no +ullensaker.no +nedre-eiker.no +ovre-eiker.no +øvre-eiker.no +marker.no +asker.no +meråker.no +fjaler.no +hvaler.no +habmer.no +hábmer.no +lillehammer.no +lunner.no +jolster.no +jølster.no +luster.no +oyer.no +øyer.no +hapmir.no +hápmir.no +mr.no +gs.mr.no +risor.no +tr.no +gs.tr.no +báidár.no +tysvær.no +risør.no +lindas.no +sandnes.no +agdenes.no +birkenes.no +kirkenes.no +moskenes.no +evenes.no +hemnes.no +gjemnes.no +evje-og-hornnes.no +asnes.no +lindesnes.no +oksnes.no +øksnes.no +fosnes.no +tysnes.no +åsnes.no +vestnes.no +vgs.no +fhs.no +lavagis.no +roros.no +røros.no +namsos.no +honefoss.no +hønefoss.no +moss.no +voss.no +melhus.no +nes.akershus.no +ås.no +lindås.no +loabat.no +voagat.no +varggat.no +matta-varjjat.no +mátta-várjjat.no +balat.no +salat.no +sálat.no +muosat.no +stat.no +bievat.no +ruovat.no +hoylandet.no +høylandet.no +fet.no +tynset.no +skedsmokorset.no +nesset.no +skiptvet.no +skanit.no +skánit.no +raholt.no +råholt.no +nt.no +gs.nt.no +amot.no +åmot.no +blogspot.no +st.no +gs.st.no +hammerfest.no +rost.no +røst.no +idrett.no +loabát.no +várggát.no +bálát.no +sálát.no +muosát.no +bievát.no +bu.no +gs.bu.no +klabu.no +andebu.no +ringebu.no +rennebu.no +selbu.no +klæbu.no +bardu.no +beardu.no +porsangu.no +ivgu.no +porsáŋgu.no +alaheadju.no +álaheadju.no +budejju.no +rahkkeravju.no +ráhkkerávju.no +fuoisku.no +guovdageaidnu.no +deatnu.no +priv.no +malselv.no +målselv.no +nesseby.no +tranby.no +lebesby.no +vestby.no +radoy.no +andoy.no +sandoy.no +rodoy.no +vestvagoy.no +bjarkoy.no +askoy.no +meloy.no +karmoy.no +tranoy.no +finnoy.no +bronnoy.no +hamaroy.no +naroy.no +varoy.no +inderoy.no +osteroy.no +notteroy.no +averoy.no +luroy.no +dyroy.no +masoy.no +rennesoy.no +vagsoy.no +karlsoy.no +kvitsoy.no +skjervoy.no +radøy.no +andøy.no +sandøy.no +rødøy.no +vestvågøy.no +bjarkøy.no +askøy.no +meløy.no +karmøy.no +tranøy.no +finnøy.no +brønnøy.no +inderøy.no +osterøy.no +nøtterøy.no +averøy.no +lurøy.no +dyrøy.no +nærøy.no +værøy.no +rennesøy.no +vågsøy.no +kvitsøy.no +måsøy.no +skjervøy.no +gálsá.no +áltá.no +skiervá.no +vågå.no +hå.no +bådåddjå.no +flå.no +bodø.no +vardø.no +kragerø.no +florø.no +vadsø.no +tromsø.no +ikano +casino +latino +uno +boo +foo +goo +yahoo +ooo +tattoo +sapo +zippo +ro +rec.ro +store.ro +org.ro +com.ro +nom.ro +firm.ro +tm.ro +info.ro +shop.ro +arts.ro +nt.ro +blogspot.ro +www.ro +aero +caa.aero +dgca.aero +media.aero +club.aero +aeroclub.aero +airtraffic.aero +aerobatic.aero +air-surveillance.aero +ambulance.aero +maintenance.aero +insurance.aero +conference.aero +exchange.aero +aerodrome.aero +engine.aero +airline.aero +magazine.aero +software.aero +trading.aero +gliding.aero +paragliding.aero +hanggliding.aero +groundhandling.aero +modelling.aero +ballooning.aero +catering.aero +leasing.aero +consulting.aero +parachuting.aero +skydiving.aero +research.aero +journal.aero +fuel.aero +council.aero +control.aero +air-traffic-control.aero +design.aero +union.aero +certification.aero +recreation.aero +accident-investigation.aero +navigation.aero +association.aero +passenger-association.aero +civilaviation.aero +federation.aero +production.aero +accident-prevention.aero +cargo.aero +championship.aero +group.aero +workinggroup.aero +trader.aero +engineer.aero +broker.aero +trainer.aero +charter.aero +author.aero +educator.aero +logistics.aero +services.aero +res.aero +works.aero +press.aero +express.aero +agents.aero +aircraft.aero +rotorcraft.aero +freight.aero +flight.aero +microlight.aero +homebuilt.aero +consultant.aero +student.aero +amusement.aero +entertainment.aero +government.aero +equipment.aero +pilot.aero +airport.aero +journalist.aero +scientist.aero +crew.aero +show.aero +emergency.aero +repbody.aero +safety.aero +ferrero +zero +pro +aaa.pro +aca.pro +cpa.pro +med.pro +eng.pro +bar.pro +jur.pro +avocat.pro +acct.pro +recht.pro +law.pro +so +org.so +com.so +net.so +to +org.to +mil.to +com.to +net.to +edu.to +gov.to +photo +moto +voto +kyoto +lotto +auto +vivo +volvo +saxo +tokyo +cheap +gap +map +sap +jcp +jeep +gp +org.gp +mobi.gp +com.gp +asso.gp +net.gp +edu.gp +rip +vip +zip +jp +xn--f6qx53a.jp +xn--ntso0iqx3a.jp +xn--6btw5a.jp +xn--uuwu58a.jp +xn--kltx9a.jp +chiba.jp +yokaichiba.chiba.jp +noda.chiba.jp +mihama.chiba.jp +nagareyama.chiba.jp +tateyama.chiba.jp +mobara.chiba.jp +nagara.chiba.jp +ichihara.chiba.jp +sodegaura.chiba.jp +sakura.chiba.jp +katsuura.chiba.jp +sosa.chiba.jp +shimofusa.chiba.jp +yachimata.chiba.jp +narita.chiba.jp +hanamigawa.chiba.jp +omigawa.chiba.jp +kamogawa.chiba.jp +ichikawa.chiba.jp +mutsuzawa.chiba.jp +kashiwa.chiba.jp +kamagaya.chiba.jp +ichinomiya.chiba.jp +sakae.chiba.jp +togane.chiba.jp +inzai.chiba.jp +chosei.chiba.jp +asahi.chiba.jp +funabashi.chiba.jp +choshi.chiba.jp +otaki.chiba.jp +kozaki.chiba.jp +isumi.chiba.jp +shiroi.chiba.jp +yokoshibahikari.chiba.jp +midori.chiba.jp +katori.chiba.jp +kujukuri.chiba.jp +shisui.chiba.jp +chonan.chiba.jp +kyonan.chiba.jp +yotsukaido.chiba.jp +matsudo.chiba.jp +tohnosho.chiba.jp +shirako.chiba.jp +tako.chiba.jp +abiko.chiba.jp +narashino.chiba.jp +minamiboso.chiba.jp +oamishirasato.chiba.jp +tomisato.chiba.jp +chuo.chiba.jp +yachiyo.chiba.jp +onjuku.chiba.jp +urayasu.chiba.jp +kimitsu.chiba.jp +futtsu.chiba.jp +kisarazu.chiba.jp +saga.jp +saga.saga.jp +hamatama.saga.jp +kiyama.saga.jp +kashima.saga.jp +tara.saga.jp +kitagata.saga.jp +kitahata.saga.jp +arita.saga.jp +nishiarita.saga.jp +ariake.saga.jp +kamimine.saga.jp +genkai.saga.jp +kyuragi.saga.jp +ogi.saga.jp +omachi.saga.jp +ouchi.saga.jp +shiroishi.saga.jp +kanzaki.saga.jp +fukudomi.saga.jp +yoshinogari.saga.jp +imari.saga.jp +hizen.saga.jp +taku.saga.jp +kouhoku.saga.jp +tosu.saga.jp +karatsu.saga.jp +shiga.jp +koka.shiga.jp +nagahama.shiga.jp +moriyama.shiga.jp +takashima.shiga.jp +maibara.shiga.jp +notogawa.shiga.jp +torahime.shiga.jp +hikone.shiga.jp +ryuoh.shiga.jp +nishiazai.shiga.jp +kosei.shiga.jp +takatsuki.shiga.jp +higashiomi.shiga.jp +omihachiman.shiga.jp +konan.shiga.jp +aisho.shiga.jp +gamo.shiga.jp +toyosato.shiga.jp +koto.shiga.jp +ritto.shiga.jp +yasu.shiga.jp +kusatsu.shiga.jp +otsu.shiga.jp +osaka.jp +kishiwada.osaka.jp +ikeda.osaka.jp +toyonaka.osaka.jp +chihayaakasaka.osaka.jp +higashiosaka.osaka.jp +tadaoka.osaka.jp +kaizuka.osaka.jp +sayama.osaka.jp +osakasayama.osaka.jp +kadoma.osaka.jp +matsubara.osaka.jp +kashiwara.osaka.jp +fujiidera.osaka.jp +hirakata.osaka.jp +kita.osaka.jp +suita.osaka.jp +neyagawa.osaka.jp +higashiyodogawa.osaka.jp +nose.osaka.jp +shijonawate.osaka.jp +minoh.osaka.jp +sakai.osaka.jp +moriguchi.osaka.jp +tondabayashi.osaka.jp +takaishi.osaka.jp +taishi.osaka.jp +nishi.osaka.jp +higashisumiyoshi.osaka.jp +ibaraki.osaka.jp +misaki.osaka.jp +takatsuki.osaka.jp +izumi.osaka.jp +tajiri.osaka.jp +kumatori.osaka.jp +kanan.osaka.jp +hannan.osaka.jp +sennan.osaka.jp +yao.osaka.jp +kawachinagano.osaka.jp +izumisano.osaka.jp +katano.osaka.jp +abeno.osaka.jp +habikino.osaka.jp +toyono.osaka.jp +minato.osaka.jp +daito.osaka.jp +shimamoto.osaka.jp +chuo.osaka.jp +izumiotsu.osaka.jp +settsu.osaka.jp +fukuoka.jp +yamada.fukuoka.jp +soeda.fukuoka.jp +onga.fukuoka.jp +koga.fukuoka.jp +kasuga.fukuoka.jp +ukiha.fukuoka.jp +miyawaka.fukuoka.jp +iizuka.fukuoka.jp +nakama.fukuoka.jp +hisayama.fukuoka.jp +miyama.fukuoka.jp +kawara.fukuoka.jp +nogata.fukuoka.jp +hakata.fukuoka.jp +munakata.fukuoka.jp +takata.fukuoka.jp +omuta.fukuoka.jp +nakagawa.fukuoka.jp +yanagawa.fukuoka.jp +tagawa.fukuoka.jp +saigawa.fukuoka.jp +okawa.fukuoka.jp +hirokawa.fukuoka.jp +ashiya.fukuoka.jp +kasuya.fukuoka.jp +yame.fukuoka.jp +kurume.fukuoka.jp +kurate.fukuoka.jp +sue.fukuoka.jp +shonai.fukuoka.jp +tachiarai.fukuoka.jp +kurogi.fukuoka.jp +fukuchi.fukuoka.jp +higashi.fukuoka.jp +yukuhashi.fukuoka.jp +nishi.fukuoka.jp +okagaki.fukuoka.jp +mizumaki.fukuoka.jp +tsuiki.fukuoka.jp +oki.fukuoka.jp +inatsuki.fukuoka.jp +minami.fukuoka.jp +shinyoshitomi.fukuoka.jp +umi.fukuoka.jp +ogori.fukuoka.jp +sasaguri.fukuoka.jp +usui.fukuoka.jp +keisen.fukuoka.jp +buzen.fukuoka.jp +chikuzen.fukuoka.jp +chikugo.fukuoka.jp +kaho.fukuoka.jp +toho.fukuoka.jp +chikuho.fukuoka.jp +onojo.fukuoka.jp +chikujo.fukuoka.jp +miyako.fukuoka.jp +chikushino.fukuoka.jp +oto.fukuoka.jp +chuo.fukuoka.jp +dazaifu.fukuoka.jp +shingu.fukuoka.jp +toyotsu.fukuoka.jp +shizuoka.jp +gotemba.shizuoka.jp +shimada.shizuoka.jp +fujieda.shizuoka.jp +yoshida.shizuoka.jp +shimoda.shizuoka.jp +shizuoka.shizuoka.jp +mishima.shizuoka.jp +haibara.shizuoka.jp +makinohara.shizuoka.jp +iwata.shizuoka.jp +kakegawa.shizuoka.jp +kikugawa.shizuoka.jp +fujikawa.shizuoka.jp +fujinomiya.shizuoka.jp +arai.shizuoka.jp +kosai.shizuoka.jp +morimachi.shizuoka.jp +fuji.shizuoka.jp +omaezaki.shizuoka.jp +matsuzaki.shizuoka.jp +kannami.shizuoka.jp +atami.shizuoka.jp +izunokuni.shizuoka.jp +fukuroi.shizuoka.jp +kawanehon.shizuoka.jp +susono.shizuoka.jp +ito.shizuoka.jp +hamamatsu.shizuoka.jp +numazu.shizuoka.jp +kawazu.shizuoka.jp +izu.shizuoka.jp +yaizu.shizuoka.jp +higashiizu.shizuoka.jp +nishiizu.shizuoka.jp +minamiizu.shizuoka.jp +shimizu.shizuoka.jp +saitama.jp +yoshida.saitama.jp +toda.saitama.jp +hasuda.saitama.jp +hidaka.saitama.jp +asaka.saitama.jp +shiraoka.saitama.jp +soka.saitama.jp +saitama.saitama.jp +sayama.saitama.jp +moroyama.saitama.jp +hatoyama.saitama.jp +higashimatsuyama.saitama.jp +tsurugashima.saitama.jp +kawajima.saitama.jp +iruma.saitama.jp +ina.saitama.jp +okegawa.saitama.jp +namegawa.saitama.jp +tokigawa.saitama.jp +ogawa.saitama.jp +arakawa.saitama.jp +yoshikawa.saitama.jp +kamikawa.saitama.jp +urawa.saitama.jp +tokorozawa.saitama.jp +kumagaya.saitama.jp +koshigaya.saitama.jp +hatogaya.saitama.jp +fukaya.saitama.jp +omiya.saitama.jp +niiza.saitama.jp +kasukabe.saitama.jp +kawagoe.saitama.jp +ogose.saitama.jp +satte.saitama.jp +yokoze.saitama.jp +warabi.saitama.jp +kawaguchi.saitama.jp +miyoshi.saitama.jp +matsubushi.saitama.jp +yorii.saitama.jp +otaki.saitama.jp +shiki.saitama.jp +kuki.saitama.jp +iwatsuki.saitama.jp +ryokami.saitama.jp +yoshimi.saitama.jp +fujimi.saitama.jp +kamiizumi.saitama.jp +ranzan.saitama.jp +sakado.saitama.jp +yashio.saitama.jp +honjo.saitama.jp +ogano.saitama.jp +minano.saitama.jp +fujimino.saitama.jp +hanno.saitama.jp +yono.saitama.jp +miyashiro.saitama.jp +nagatoro.saitama.jp +misato.saitama.jp +kamisato.saitama.jp +sugito.saitama.jp +kitamoto.saitama.jp +kazo.saitama.jp +chichibu.saitama.jp +higashichichibu.saitama.jp +kounosu.saitama.jp +hanyu.saitama.jp +wakayama.jp +arida.wakayama.jp +kamitonda.wakayama.jp +hidaka.wakayama.jp +shirahama.wakayama.jp +mihama.wakayama.jp +wakayama.wakayama.jp +kitayama.wakayama.jp +kudoyama.wakayama.jp +nachikatsuura.wakayama.jp +yura.wakayama.jp +yuasa.wakayama.jp +aridagawa.wakayama.jp +kozagawa.wakayama.jp +hirogawa.wakayama.jp +kinokawa.wakayama.jp +koya.wakayama.jp +koza.wakayama.jp +tanabe.wakayama.jp +iwade.wakayama.jp +katsuragi.wakayama.jp +taiji.wakayama.jp +inami.wakayama.jp +kainan.wakayama.jp +gobo.wakayama.jp +kimino.wakayama.jp +misato.wakayama.jp +hashimoto.wakayama.jp +kushimoto.wakayama.jp +shingu.wakayama.jp +okayama.jp +soja.okayama.jp +kasaoka.okayama.jp +okayama.okayama.jp +tsuyama.okayama.jp +hayashima.okayama.jp +ibara.okayama.jp +nishiawakura.okayama.jp +akaiwa.okayama.jp +maniwa.okayama.jp +yakage.okayama.jp +wake.okayama.jp +nagi.okayama.jp +asakuchi.okayama.jp +setouchi.okayama.jp +takahashi.okayama.jp +misaki.okayama.jp +kurashiki.okayama.jp +niimi.okayama.jp +kumenan.okayama.jp +bizen.okayama.jp +satosho.okayama.jp +shinjo.okayama.jp +tamano.okayama.jp +kagamino.okayama.jp +shoo.okayama.jp +kibichuo.okayama.jp +toyama.jp +yamada.toyama.jp +toga.toyama.jp +takaoka.toyama.jp +tateyama.toyama.jp +toyama.toyama.jp +johana.toyama.jp +taira.toyama.jp +nakaniikawa.toyama.jp +namerikawa.toyama.jp +oyabe.toyama.jp +kurobe.toyama.jp +asahi.toyama.jp +kamiichi.toyama.jp +funahashi.toyama.jp +unazuki.toyama.jp +inami.toyama.jp +tonami.toyama.jp +himi.toyama.jp +nyuzen.toyama.jp +nanto.toyama.jp +fuchu.toyama.jp +fukumitsu.toyama.jp +imizu.toyama.jp +uozu.toyama.jp +kagoshima.jp +kouyama.kagoshima.jp +kagoshima.kagoshima.jp +isa.kagoshima.jp +kanoya.kagoshima.jp +kawanabe.kagoshima.jp +nakatane.kagoshima.jp +minamitane.kagoshima.jp +akune.kagoshima.jp +nishinoomote.kagoshima.jp +satsumasendai.kagoshima.jp +makurazaki.kagoshima.jp +hioki.kagoshima.jp +amami.kagoshima.jp +izumi.kagoshima.jp +yusui.kagoshima.jp +isen.kagoshima.jp +kinko.kagoshima.jp +soo.kagoshima.jp +matsumoto.kagoshima.jp +tarumizu.kagoshima.jp +hiroshima.jp +naka.hiroshima.jp +saka.hiroshima.jp +fukuyama.hiroshima.jp +higashihiroshima.hiroshima.jp +etajima.hiroshima.jp +osakikamijima.hiroshima.jp +shobara.hiroshima.jp +takehara.hiroshima.jp +mihara.hiroshima.jp +sera.hiroshima.jp +kaita.hiroshima.jp +daiwa.hiroshima.jp +otake.hiroshima.jp +kure.hiroshima.jp +hatsukaichi.hiroshima.jp +onomichi.hiroshima.jp +shinichi.hiroshima.jp +seranishi.hiroshima.jp +miyoshi.hiroshima.jp +asaminami.hiroshima.jp +kui.hiroshima.jp +jinsekikogen.hiroshima.jp +hongo.hiroshima.jp +kumano.hiroshima.jp +fuchu.hiroshima.jp +tokushima.jp +ichiba.tokushima.jp +tokushima.tokushima.jp +komatsushima.tokushima.jp +mima.tokushima.jp +nakagawa.tokushima.jp +matsushige.tokushima.jp +mugi.tokushima.jp +sanagochi.tokushima.jp +miyoshi.tokushima.jp +wajiki.tokushima.jp +minami.tokushima.jp +aizumi.tokushima.jp +shishikui.tokushima.jp +anan.tokushima.jp +kainan.tokushima.jp +itano.tokushima.jp +naruto.tokushima.jp +fukushima.jp +futaba.fukushima.jp +otama.fukushima.jp +kaneyama.fukushima.jp +koriyama.fukushima.jp +mishima.fukushima.jp +fukushima.fukushima.jp +soma.fukushima.jp +okuma.fukushima.jp +kitashiobara.fukushima.jp +tanagura.fukushima.jp +kitakata.fukushima.jp +kawamata.fukushima.jp +hirata.fukushima.jp +sukagawa.fukushima.jp +samegawa.fukushima.jp +yugawa.fukushima.jp +tamakawa.fukushima.jp +shirakawa.fukushima.jp +asakawa.fukushima.jp +ishikawa.fukushima.jp +hanawa.fukushima.jp +showa.fukushima.jp +aizubange.fukushima.jp +namie.fukushima.jp +date.fukushima.jp +iitate.fukushima.jp +bandai.fukushima.jp +tenei.fukushima.jp +higashi.fukushima.jp +kagamiishi.fukushima.jp +iwaki.fukushima.jp +izumizaki.fukushima.jp +yabuki.fukushima.jp +kunimi.fukushima.jp +koori.fukushima.jp +yamatsuri.fukushima.jp +taishin.fukushima.jp +omotego.fukushima.jp +nishigo.fukushima.jp +nango.fukushima.jp +shimogo.fukushima.jp +ono.fukushima.jp +furudono.fukushima.jp +hirono.fukushima.jp +inawashiro.fukushima.jp +yamato.fukushima.jp +aizumisato.fukushima.jp +miharu.fukushima.jp +aizuwakamatsu.fukushima.jp +nishiaizu.fukushima.jp +yanaizu.fukushima.jp +gunma.jp +kawaba.gunma.jp +chiyoda.gunma.jp +annaka.gunma.jp +yoshioka.gunma.jp +fujioka.gunma.jp +tomioka.gunma.jp +takayama.gunma.jp +higashiagatsuma.gunma.jp +katashina.gunma.jp +kanna.gunma.jp +naganohara.gunma.jp +kanra.gunma.jp +ora.gunma.jp +itakura.gunma.jp +tamamura.gunma.jp +numata.gunma.jp +shimonita.gunma.jp +ota.gunma.jp +shibukawa.gunma.jp +meiwa.gunma.jp +showa.gunma.jp +maebashi.gunma.jp +tatebayashi.gunma.jp +takasaki.gunma.jp +isesaki.gunma.jp +minakami.gunma.jp +oizumi.gunma.jp +tsumagoi.gunma.jp +midori.gunma.jp +nakanojo.gunma.jp +ueno.gunma.jp +tsukiyono.gunma.jp +shinto.gunma.jp +nanmoku.gunma.jp +kusatsu.gunma.jp +kiryu.gunma.jp +nara.jp +kashiba.nara.jp +yamatotakada.nara.jp +uda.nara.jp +ouda.nara.jp +ikaruga.nara.jp +kamikitayama.nara.jp +shimokitayama.nara.jp +yamatokoriyama.nara.jp +ikoma.nara.jp +kashihara.nara.jp +nara.nara.jp +nosegawa.nara.jp +tenkawa.nara.jp +miyake.nara.jp +yamazoe.nara.jp +gose.nara.jp +mitsue.nara.jp +sakurai.nara.jp +kawai.nara.jp +katsuragi.nara.jp +shimoichi.nara.jp +kawanishi.nara.jp +oji.nara.jp +kanmaki.nara.jp +kurotaki.nara.jp +kawakami.nara.jp +soni.nara.jp +tenri.nara.jp +takatori.nara.jp +heguri.nara.jp +ando.nara.jp +oyodo.nara.jp +sango.nara.jp +shinjo.nara.jp +yoshino.nara.jp +higashiyoshino.nara.jp +tawaramoto.nara.jp +koryo.nara.jp +yamagata.jp +oishida.yamagata.jp +shirataka.yamagata.jp +tsuruoka.yamagata.jp +nakayama.yamagata.jp +murayama.yamagata.jp +kaneyama.yamagata.jp +kaminoyama.yamagata.jp +ohkura.yamagata.jp +yamagata.yamagata.jp +funagata.yamagata.jp +takahata.yamagata.jp +sakata.yamagata.jp +sakegawa.yamagata.jp +mamurogawa.yamagata.jp +nishikawa.yamagata.jp +mikawa.yamagata.jp +obanazawa.yamagata.jp +yonezawa.yamagata.jp +tozawa.yamagata.jp +yuza.yamagata.jp +sagae.yamagata.jp +yamanobe.yamagata.jp +iide.yamagata.jp +higashine.yamagata.jp +oe.yamagata.jp +nagai.yamagata.jp +shonai.yamagata.jp +asahi.yamagata.jp +kawanishi.yamagata.jp +oguni.yamagata.jp +tendo.yamagata.jp +shinjo.yamagata.jp +nanyo.yamagata.jp +kahoku.yamagata.jp +niigata.jp +aga.niigata.jp +muika.niigata.jp +nagaoka.niigata.jp +uonuma.niigata.jp +minamiuonuma.niigata.jp +shibata.niigata.jp +niigata.niigata.jp +yoita.niigata.jp +itoigawa.niigata.jp +sekikawa.niigata.jp +yuzawa.niigata.jp +kariwa.niigata.jp +ojiya.niigata.jp +mitsuke.niigata.jp +tsubame.niigata.jp +tainai.niigata.jp +tokamachi.niigata.jp +kashiwazaki.niigata.jp +izumozaki.niigata.jp +tagami.niigata.jp +murakami.niigata.jp +omi.niigata.jp +tsunan.niigata.jp +gosen.niigata.jp +sado.niigata.jp +tochio.niigata.jp +sanjo.niigata.jp +yahiko.niigata.jp +myoko.niigata.jp +kamo.niigata.jp +agano.niigata.jp +seiro.niigata.jp +seirou.niigata.jp +joetsu.niigata.jp +akita.jp +oga.akita.jp +kosaka.akita.jp +kamioka.akita.jp +ogata.akita.jp +hachirogata.akita.jp +akita.akita.jp +kitaakita.akita.jp +ikawa.akita.jp +kyowa.akita.jp +gojome.akita.jp +mitane.akita.jp +higashinaruse.akita.jp +odate.akita.jp +yokote.akita.jp +moriyoshi.akita.jp +katagami.akita.jp +kamikoani.akita.jp +daisen.akita.jp +nikaho.akita.jp +honjo.akita.jp +yurihonjo.akita.jp +kazuno.akita.jp +noshiro.akita.jp +fujisato.akita.jp +misato.akita.jp +honjyo.akita.jp +semboku.akita.jp +happou.akita.jp +oita.jp +bungotakada.oita.jp +hasama.oita.jp +himeshima.oita.jp +usa.oita.jp +taketa.oita.jp +hita.oita.jp +oita.oita.jp +kokonoe.oita.jp +kamitsue.oita.jp +hiji.oita.jp +kunisaki.oita.jp +saiki.oita.jp +usuki.oita.jp +tsukumi.oita.jp +bungoono.oita.jp +yufu.oita.jp +kuju.oita.jp +beppu.oita.jp +kusu.oita.jp +kagawa.jp +naoshima.kagawa.jp +kotohira.kagawa.jp +higashikagawa.kagawa.jp +ayagawa.kagawa.jp +marugame.kagawa.jp +kanonji.kagawa.jp +zentsuji.kagawa.jp +sanuki.kagawa.jp +uchinomi.kagawa.jp +tonosho.kagawa.jp +manno.kagawa.jp +mitoyo.kagawa.jp +takamatsu.kagawa.jp +tadotsu.kagawa.jp +utazu.kagawa.jp +kanagawa.jp +matsuda.kanagawa.jp +yokosuka.kanagawa.jp +hiratsuka.kanagawa.jp +zama.kanagawa.jp +ebina.kanagawa.jp +minamiashigara.kanagawa.jp +isehara.kanagawa.jp +sagamihara.kanagawa.jp +odawara.kanagawa.jp +yugawara.kanagawa.jp +miura.kanagawa.jp +kamakura.kanagawa.jp +yamakita.kanagawa.jp +aikawa.kanagawa.jp +kiyokawa.kanagawa.jp +samukawa.kanagawa.jp +fujisawa.kanagawa.jp +ninomiya.kanagawa.jp +hakone.kanagawa.jp +ayase.kanagawa.jp +nakai.kanagawa.jp +kaisei.kanagawa.jp +atsugi.kanagawa.jp +zushi.kanagawa.jp +chigasaki.kanagawa.jp +oi.kanagawa.jp +tsukui.kanagawa.jp +hadano.kanagawa.jp +oiso.kanagawa.jp +yamato.kanagawa.jp +ishikawa.jp +uchinada.ishikawa.jp +kaga.ishikawa.jp +shika.ishikawa.jp +wajima.ishikawa.jp +tsubata.ishikawa.jp +kawakita.ishikawa.jp +kanazawa.ishikawa.jp +tsurugi.ishikawa.jp +nonoichi.ishikawa.jp +nomi.ishikawa.jp +hakui.ishikawa.jp +hakusan.ishikawa.jp +nanao.ishikawa.jp +noto.ishikawa.jp +nakanoto.ishikawa.jp +kahoku.ishikawa.jp +komatsu.ishikawa.jp +anamizu.ishikawa.jp +suzu.ishikawa.jp +okinawa.jp +naha.okinawa.jp +tarama.okinawa.jp +kumejima.okinawa.jp +uruma.okinawa.jp +kadena.okinawa.jp +izena.okinawa.jp +onna.okinawa.jp +nishihara.okinawa.jp +hirara.okinawa.jp +ishikawa.okinawa.jp +okinawa.okinawa.jp +iheya.okinawa.jp +ginoza.okinawa.jp +urasoe.okinawa.jp +yaese.okinawa.jp +higashi.okinawa.jp +shimoji.okinawa.jp +ishigaki.okinawa.jp +tonaki.okinawa.jp +tokashiki.okinawa.jp +kunigami.okinawa.jp +gushikami.okinawa.jp +zamami.okinawa.jp +ogimi.okinawa.jp +taketomi.okinawa.jp +aguni.okinawa.jp +yonaguni.okinawa.jp +itoman.okinawa.jp +yomitan.okinawa.jp +ginowan.okinawa.jp +nakijin.okinawa.jp +kin.okinawa.jp +nago.okinawa.jp +nanjo.okinawa.jp +kitadaito.okinawa.jp +minamidaito.okinawa.jp +motobu.okinawa.jp +nakagusuku.okinawa.jp +kitanakagusuku.okinawa.jp +tomigusuku.okinawa.jp +yonabaru.okinawa.jp +haebaru.okinawa.jp +xn--vgu402c.jp +xn--7t0a264c.jp +xn--d5qv7z876c.jp +xn--5rtp49c.jp +ac.jp +xn--1lqs71d.jp +xn--rht3d.jp +xn--zbx025d.jp +xn--5js045d.jp +xn--klt787d.jp +xn--kltp7d.jp +xn--4it168d.jp +ad.jp +ed.jp +xn--rht61e.jp +xn--2m4a15e.jp +xn--k7yn95e.jp +mie.jp +toba.mie.jp +matsusaka.mie.jp +suzuka.mie.jp +mihama.mie.jp +kameyama.mie.jp +miyama.mie.jp +shima.mie.jp +kuwana.mie.jp +meiwa.mie.jp +kiwa.mie.jp +inabe.mie.jp +kawagoe.mie.jp +ise.mie.jp +minamiise.mie.jp +watarai.mie.jp +misugi.mie.jp +asahi.mie.jp +yokkaichi.mie.jp +tamaki.mie.jp +kisosaki.mie.jp +taki.mie.jp +taiki.mie.jp +nabari.mie.jp +tado.mie.jp +kiho.mie.jp +kumano.mie.jp +ureshino.mie.jp +udono.mie.jp +komono.mie.jp +tsu.mie.jp +ehime.jp +yawatahama.ehime.jp +niihama.ehime.jp +matsuyama.ehime.jp +uwajima.ehime.jp +kamijima.ehime.jp +ikata.ehime.jp +namikata.ehime.jp +tobe.ehime.jp +honai.ehime.jp +masaki.ehime.jp +imabari.ehime.jp +ainan.ehime.jp +kumakogen.ehime.jp +toon.ehime.jp +saijo.ehime.jp +uchiko.ehime.jp +matsuno.ehime.jp +shikokuchuo.ehime.jp +iyo.ehime.jp +seiyo.ehime.jp +kihoku.ehime.jp +ozu.ehime.jp +ne.jp +shimane.jp +hamada.shimane.jp +ohda.shimane.jp +masuda.shimane.jp +yatsuka.shimane.jp +ama.shimane.jp +nishinoshima.shimane.jp +okinoshima.shimane.jp +hikawa.shimane.jp +shimane.shimane.jp +matsue.shimane.jp +akagi.shimane.jp +yasugi.shimane.jp +kakinoki.shimane.jp +hikimi.shimane.jp +unnan.shimane.jp +yakumo.shimane.jp +izumo.shimane.jp +higashiizumo.shimane.jp +okuizumo.shimane.jp +tsuwano.shimane.jp +misato.shimane.jp +gotsu.shimane.jp +tamayu.shimane.jp +iwate.jp +yahaba.iwate.jp +yamada.iwate.jp +noda.iwate.jp +morioka.iwate.jp +tanohata.iwate.jp +rikuzentakata.iwate.jp +sumita.iwate.jp +fujisawa.iwate.jp +mizusawa.iwate.jp +shiwa.iwate.jp +ichinohe.iwate.jp +ninohe.iwate.jp +kunohe.iwate.jp +iwate.iwate.jp +fudai.iwate.jp +karumai.iwate.jp +kawai.iwate.jp +otsuchi.iwate.jp +kamaishi.iwate.jp +shizukuishi.iwate.jp +joboji.iwate.jp +kuji.iwate.jp +hanamaki.iwate.jp +kuzumaki.iwate.jp +kanegasaki.iwate.jp +ichinoseki.iwate.jp +kitakami.iwate.jp +hiraizumi.iwate.jp +iwaizumi.iwate.jp +miyako.iwate.jp +hirono.iwate.jp +tono.iwate.jp +ofunato.iwate.jp +oshu.iwate.jp +xn--uisz3g.jp +xn--ntsq17g.jp +lg.jp +xn--32vp30h.jp +xn--rny31h.jp +xn--uist22h.jp +xn--elqq16h.jp +xn--mkru45i.jp +miyagi.jp +kakuda.miyagi.jp +shiogama.miyagi.jp +shikama.miyagi.jp +matsushima.miyagi.jp +higashimatsushima.miyagi.jp +iwanuma.miyagi.jp +ogawara.miyagi.jp +ohira.miyagi.jp +shibata.miyagi.jp +murata.miyagi.jp +onagawa.miyagi.jp +furukawa.miyagi.jp +taiwa.miyagi.jp +tomiya.miyagi.jp +wakuya.miyagi.jp +tome.miyagi.jp +semine.miyagi.jp +shiroishi.miyagi.jp +ishinomaki.miyagi.jp +kawasaki.miyagi.jp +osaki.miyagi.jp +kami.miyagi.jp +watari.miyagi.jp +marumori.miyagi.jp +natori.miyagi.jp +zao.miyagi.jp +tagajo.miyagi.jp +misato.miyagi.jp +yamamoto.miyagi.jp +rifu.miyagi.jp +minamisanriku.miyagi.jp +shichikashuku.miyagi.jp +tochigi.jp +haga.tochigi.jp +ashikaga.tochigi.jp +tsuga.tochigi.jp +moka.tochigi.jp +oyama.tochigi.jp +karasuyama.tochigi.jp +kanuma.tochigi.jp +nasushiobara.tochigi.jp +ohtawara.tochigi.jp +ohira.tochigi.jp +sakura.tochigi.jp +nishikata.tochigi.jp +yaita.tochigi.jp +kaminokawa.tochigi.jp +takanezawa.tochigi.jp +utsunomiya.tochigi.jp +shioya.tochigi.jp +ujiie.tochigi.jp +shimotsuke.tochigi.jp +iwafune.tochigi.jp +ichikai.tochigi.jp +motegi.tochigi.jp +tochigi.tochigi.jp +nogi.tochigi.jp +mashiko.tochigi.jp +nikko.tochigi.jp +sano.tochigi.jp +kuroiso.tochigi.jp +bato.tochigi.jp +mibu.tochigi.jp +nasu.tochigi.jp +aichi.jp +handa.aichi.jp +ama.aichi.jp +takahama.aichi.jp +mihama.aichi.jp +inuyama.aichi.jp +tobishima.aichi.jp +tsushima.aichi.jp +tahara.aichi.jp +shitara.aichi.jp +kira.aichi.jp +higashiura.aichi.jp +iwakura.aichi.jp +chita.aichi.jp +kota.aichi.jp +toyota.aichi.jp +toyokawa.aichi.jp +inazawa.aichi.jp +ichinomiya.aichi.jp +kariya.aichi.jp +kanie.aichi.jp +toyoake.aichi.jp +asuke.aichi.jp +tokoname.aichi.jp +toyone.aichi.jp +kasugai.aichi.jp +tokai.aichi.jp +aisai.aichi.jp +toei.aichi.jp +owariasahi.aichi.jp +oguchi.aichi.jp +toyohashi.aichi.jp +miyoshi.aichi.jp +komaki.aichi.jp +okazaki.aichi.jp +isshiki.aichi.jp +yatomi.aichi.jp +gamagori.aichi.jp +hekinan.aichi.jp +konan.aichi.jp +nisshin.aichi.jp +togo.aichi.jp +nishio.aichi.jp +anjo.aichi.jp +shinshiro.aichi.jp +fuso.aichi.jp +seto.aichi.jp +obu.aichi.jp +oharu.aichi.jp +kiyosu.aichi.jp +shikatsu.aichi.jp +chiryu.aichi.jp +hazu.aichi.jp +kochi.jp +yasuda.kochi.jp +hidaka.kochi.jp +motoyama.kochi.jp +mihara.kochi.jp +yusuhara.kochi.jp +nakamura.kochi.jp +tosa.kochi.jp +nishitosa.kochi.jp +kitagawa.kochi.jp +niyodogawa.kochi.jp +sakawa.kochi.jp +okawa.kochi.jp +geisei.kochi.jp +ochi.kochi.jp +kochi.kochi.jp +umaji.kochi.jp +aki.kochi.jp +susaki.kochi.jp +otsuki.kochi.jp +kagami.kochi.jp +kami.kochi.jp +nahari.kochi.jp +sukumo.kochi.jp +ino.kochi.jp +tsuno.kochi.jp +higashitsuno.kochi.jp +muroto.kochi.jp +toyo.kochi.jp +otoyo.kochi.jp +nankoku.kochi.jp +tosashimizu.kochi.jp +yamaguchi.jp +tokuyama.yamaguchi.jp +oshima.yamaguchi.jp +toyota.yamaguchi.jp +ube.yamaguchi.jp +tabuse.yamaguchi.jp +hagi.yamaguchi.jp +shimonoseki.yamaguchi.jp +iwakuni.yamaguchi.jp +hikari.yamaguchi.jp +shunan.yamaguchi.jp +nagato.yamaguchi.jp +abu.yamaguchi.jp +hofu.yamaguchi.jp +mitou.yamaguchi.jp +kudamatsu.yamaguchi.jp +yuu.yamaguchi.jp +yamanashi.jp +fujiyoshida.yamanashi.jp +tabayama.yamanashi.jp +uenohara.yamanashi.jp +nishikatsura.yamanashi.jp +hayakawa.yamanashi.jp +fujikawa.yamanashi.jp +narusawa.yamanashi.jp +showa.yamanashi.jp +kosuge.yamanashi.jp +kai.yamanashi.jp +nakamichi.yamanashi.jp +yamanashi.yamanashi.jp +doshi.yamanashi.jp +nirasaki.yamanashi.jp +fuefuki.yamanashi.jp +otsuki.yamanashi.jp +yamanakako.yamanashi.jp +fujikawaguchiko.yamanashi.jp +oshino.yamanashi.jp +ichikawamisato.yamanashi.jp +hokuto.yamanashi.jp +chuo.yamanashi.jp +minami-alps.yamanashi.jp +nanbu.yamanashi.jp +minobu.yamanashi.jp +kofu.yamanashi.jp +koshu.yamanashi.jp +tsuru.yamanashi.jp +ibaraki.jp +tsukuba.ibaraki.jp +koga.ibaraki.jp +naka.ibaraki.jp +hitachinaka.ibaraki.jp +kasama.ibaraki.jp +omitama.ibaraki.jp +iwama.ibaraki.jp +kashima.ibaraki.jp +shimotsuma.ibaraki.jp +ina.ibaraki.jp +uchihara.ibaraki.jp +yawara.ibaraki.jp +kasumigaura.ibaraki.jp +tsuchiura.ibaraki.jp +yamagata.ibaraki.jp +namegata.ibaraki.jp +hitachiota.ibaraki.jp +sakuragawa.ibaraki.jp +ogawa.ibaraki.jp +sowa.ibaraki.jp +hitachiomiya.ibaraki.jp +moriya.ibaraki.jp +tomobe.ibaraki.jp +toride.ibaraki.jp +tone.ibaraki.jp +shimodate.ibaraki.jp +sakai.ibaraki.jp +tokai.ibaraki.jp +oarai.ibaraki.jp +chikusei.ibaraki.jp +takahagi.ibaraki.jp +asahi.ibaraki.jp +hitachi.ibaraki.jp +ibaraki.ibaraki.jp +ryugasaki.ibaraki.jp +inashiki.ibaraki.jp +yuki.ibaraki.jp +ami.ibaraki.jp +tamatsukuri.ibaraki.jp +bando.ibaraki.jp +daigo.ibaraki.jp +miho.ibaraki.jp +itako.ibaraki.jp +fujishiro.ibaraki.jp +joso.ibaraki.jp +shirosato.ibaraki.jp +mito.ibaraki.jp +yachiyo.ibaraki.jp +suifu.ibaraki.jp +ushiku.ibaraki.jp +kamisu.ibaraki.jp +nagasaki.jp +obama.nagasaki.jp +tsushima.nagasaki.jp +kawatana.nagasaki.jp +shimabara.nagasaki.jp +omura.nagasaki.jp +matsuura.nagasaki.jp +chijiwa.nagasaki.jp +isahaya.nagasaki.jp +saikai.nagasaki.jp +seihi.nagasaki.jp +nagasaki.nagasaki.jp +iki.nagasaki.jp +hasami.nagasaki.jp +unzen.nagasaki.jp +sasebo.nagasaki.jp +hirado.nagasaki.jp +oseto.nagasaki.jp +goto.nagasaki.jp +shinkamigoto.nagasaki.jp +togitsu.nagasaki.jp +kuchinotsu.nagasaki.jp +futsu.nagasaki.jp +miyazaki.jp +shiiba.miyazaki.jp +hyuga.miyazaki.jp +nobeoka.miyazaki.jp +morotsuka.miyazaki.jp +kushima.miyazaki.jp +nishimera.miyazaki.jp +kitaura.miyazaki.jp +kitakata.miyazaki.jp +mimata.miyazaki.jp +kitagawa.miyazaki.jp +kadogawa.miyazaki.jp +aya.miyazaki.jp +takanabe.miyazaki.jp +gokase.miyazaki.jp +kobayashi.miyazaki.jp +takazaki.miyazaki.jp +miyazaki.miyazaki.jp +kawaminami.miyazaki.jp +kunitomi.miyazaki.jp +shintomi.miyazaki.jp +nichinan.miyazaki.jp +kijo.miyazaki.jp +miyakonojo.miyazaki.jp +ebino.miyazaki.jp +tsuno.miyazaki.jp +saito.miyazaki.jp +takaharu.miyazaki.jp +aomori.jp +towada.aomori.jp +tsuruta.aomori.jp +misawa.aomori.jp +hachinohe.aomori.jp +shichinohe.aomori.jp +sannohe.aomori.jp +gonohe.aomori.jp +rokunohe.aomori.jp +oirase.aomori.jp +hiranai.aomori.jp +itayanagi.aomori.jp +kuroishi.aomori.jp +noheji.aomori.jp +hirosaki.aomori.jp +hashikami.aomori.jp +owani.aomori.jp +nakadomari.aomori.jp +aomori.aomori.jp +shingo.aomori.jp +takko.aomori.jp +tsugaru.aomori.jp +mutsu.aomori.jp +tottori.jp +kawahara.tottori.jp +kotoura.tottori.jp +wakasa.tottori.jp +misasa.tottori.jp +koge.tottori.jp +tottori.tottori.jp +nichinan.tottori.jp +yonago.tottori.jp +hino.tottori.jp +sakaiminato.tottori.jp +nanbu.tottori.jp +yazu.tottori.jp +chizu.tottori.jp +fukui.jp +ikeda.fukui.jp +tsuruga.fukui.jp +obama.fukui.jp +takahama.fukui.jp +mihama.fukui.jp +katsuyama.fukui.jp +wakasa.fukui.jp +sabae.fukui.jp +sakai.fukui.jp +ohi.fukui.jp +eiheiji.fukui.jp +fukui.fukui.jp +echizen.fukui.jp +minamiechizen.fukui.jp +ono.fukui.jp +xn--8ltr62k.jp +xn--5rtq34k.jp +xn--djty4k.jp +xn--nit225k.jp +xn--4it797k.jp +xn--pssu33l.jp +xn--qqqt11m.jp +xn--c3s14m.jp +xn--1lqs03n.jp +xn--ehqz56n.jp +xn--0trq7p7nn.jp +xn--tor131o.jp +xn--kbrq7o.jp +co.jp +hokkaido.jp +ikeda.hokkaido.jp +teshikaga.hokkaido.jp +shibecha.hokkaido.jp +hidaka.hokkaido.jp +bifuka.hokkaido.jp +shiranuka.hokkaido.jp +kuriyama.hokkaido.jp +tohma.hokkaido.jp +kitahiroshima.hokkaido.jp +fukushima.hokkaido.jp +saroma.hokkaido.jp +atsuma.hokkaido.jp +abira.hokkaido.jp +akabira.hokkaido.jp +obira.hokkaido.jp +furubira.hokkaido.jp +ozora.hokkaido.jp +higashikagura.hokkaido.jp +toyoura.hokkaido.jp +mikasa.hokkaido.jp +tsukigata.hokkaido.jp +numata.hokkaido.jp +nakagawa.hokkaido.jp +fukagawa.hokkaido.jp +sunagawa.hokkaido.jp +kamisunagawa.hokkaido.jp +urakawa.hokkaido.jp +asahikawa.hokkaido.jp +higashikawa.hokkaido.jp +takikawa.hokkaido.jp +kamikawa.hokkaido.jp +shimokawa.hokkaido.jp +mukawa.hokkaido.jp +iwamizawa.hokkaido.jp +eniwa.hokkaido.jp +kyowa.hokkaido.jp +toya.hokkaido.jp +matsumae.hokkaido.jp +nanae.hokkaido.jp +shikabe.hokkaido.jp +kayabe.hokkaido.jp +horonobe.hokkaido.jp +otobe.hokkaido.jp +naie.hokkaido.jp +mashike.hokkaido.jp +otofuke.hokkaido.jp +imakane.hokkaido.jp +okoppe.hokkaido.jp +nishiokoppe.hokkaido.jp +chitose.hokkaido.jp +date.hokkaido.jp +hakodate.hokkaido.jp +takinoue.hokkaido.jp +bibai.hokkaido.jp +tomakomai.hokkaido.jp +wakkanai.hokkaido.jp +horokanai.hokkaido.jp +iwanai.hokkaido.jp +kamoenai.hokkaido.jp +utashinai.hokkaido.jp +kikonai.hokkaido.jp +kuromatsunai.hokkaido.jp +nakasatsunai.hokkaido.jp +biei.hokkaido.jp +yoichi.hokkaido.jp +kembuchi.hokkaido.jp +shiriuchi.hokkaido.jp +esashi.hokkaido.jp +akkeshi.hokkaido.jp +rankoshi.hokkaido.jp +moseushi.hokkaido.jp +rishirifuji.hokkaido.jp +shimamaki.hokkaido.jp +taiki.hokkaido.jp +niki.hokkaido.jp +kitami.hokkaido.jp +toyotomi.hokkaido.jp +shikaoi.hokkaido.jp +shiraoi.hokkaido.jp +shari.hokkaido.jp +ishikari.hokkaido.jp +tomari.hokkaido.jp +abashiri.hokkaido.jp +rishiri.hokkaido.jp +biratori.hokkaido.jp +kutchan.hokkaido.jp +muroran.hokkaido.jp +esan.hokkaido.jp +shakotan.hokkaido.jp +rebun.hokkaido.jp +toyako.hokkaido.jp +erimo.hokkaido.jp +yakumo.hokkaido.jp +furano.hokkaido.jp +kamifurano.hokkaido.jp +minamifurano.hokkaido.jp +hiroo.hokkaido.jp +obihiro.hokkaido.jp +kushiro.hokkaido.jp +haboro.hokkaido.jp +bihoro.hokkaido.jp +kamishihoro.hokkaido.jp +ashoro.hokkaido.jp +nanporo.hokkaido.jp +nayoro.hokkaido.jp +nemuro.hokkaido.jp +kiyosato.hokkaido.jp +oketo.hokkaido.jp +hokuto.hokkaido.jp +assabu.hokkaido.jp +shintoku.hokkaido.jp +wassamu.hokkaido.jp +oumu.hokkaido.jp +niikappu.hokkaido.jp +otoineppu.hokkaido.jp +kunneppu.hokkaido.jp +pippu.hokkaido.jp +otaru.hokkaido.jp +takasu.hokkaido.jp +ebetsu.hokkaido.jp +aibetsu.hokkaido.jp +shibetsu.hokkaido.jp +ashibetsu.hokkaido.jp +noboribetsu.hokkaido.jp +embetsu.hokkaido.jp +mombetsu.hokkaido.jp +nakatombetsu.hokkaido.jp +honbetsu.hokkaido.jp +hamatonbetsu.hokkaido.jp +kimobetsu.hokkaido.jp +sobetsu.hokkaido.jp +tobetsu.hokkaido.jp +rikubetsu.hokkaido.jp +chippubetsu.hokkaido.jp +tsubetsu.hokkaido.jp +shinshinotsu.hokkaido.jp +sarufutsu.hokkaido.jp +urausu.hokkaido.jp +uryu.hokkaido.jp +hokuryu.hokkaido.jp +shimizu.hokkaido.jp +koshimizu.hokkaido.jp +go.jp +hyogo.jp +tamba.hyogo.jp +sanda.hyogo.jp +kasuga.hyogo.jp +taka.hyogo.jp +toyooka.hyogo.jp +yoka.hyogo.jp +takarazuka.hyogo.jp +sasayama.hyogo.jp +harima.hyogo.jp +inagawa.hyogo.jp +kakogawa.hyogo.jp +ichikawa.hyogo.jp +kamikawa.hyogo.jp +yokawa.hyogo.jp +ashiya.hyogo.jp +nishinomiya.hyogo.jp +kasai.hyogo.jp +akashi.hyogo.jp +taishi.hyogo.jp +kawanishi.hyogo.jp +awaji.hyogo.jp +minamiawaji.hyogo.jp +himeji.hyogo.jp +aogaki.hyogo.jp +amagasaki.hyogo.jp +fukusaki.hyogo.jp +nishiwaki.hyogo.jp +goshiki.hyogo.jp +miki.hyogo.jp +itami.hyogo.jp +aioi.hyogo.jp +kamigori.hyogo.jp +sannan.hyogo.jp +shinonsen.hyogo.jp +asago.hyogo.jp +takasago.hyogo.jp +ako.hyogo.jp +takino.hyogo.jp +ono.hyogo.jp +tatsuno.hyogo.jp +yashiro.hyogo.jp +shiso.hyogo.jp +sumoto.hyogo.jp +sayo.hyogo.jp +yabu.hyogo.jp +shingu.hyogo.jp +nagano.jp +hakuba.nagano.jp +wada.nagano.jp +miyada.nagano.jp +ikeda.nagano.jp +ueda.nagano.jp +iida.nagano.jp +yasaka.nagano.jp +ikusaka.nagano.jp +suzaka.nagano.jp +ooshika.nagano.jp +yasuoka.nagano.jp +takayama.nagano.jp +iiyama.nagano.jp +kisofukushima.nagano.jp +iijima.nagano.jp +chikuma.nagano.jp +ina.nagano.jp +tateshina.nagano.jp +iizuna.nagano.jp +hara.nagano.jp +togura.nagano.jp +miasa.nagano.jp +yamagata.nagano.jp +miyota.nagano.jp +nakagawa.nagano.jp +nagawa.nagano.jp +ogawa.nagano.jp +matsukawa.nagano.jp +karuizawa.nagano.jp +minowa.nagano.jp +minamiminowa.nagano.jp +ookuwa.nagano.jp +suwa.nagano.jp +shimosuwa.nagano.jp +okaya.nagano.jp +hiraya.nagano.jp +sakae.nagano.jp +komagane.nagano.jp +obuse.nagano.jp +takagi.nagano.jp +asahi.nagano.jp +achi.nagano.jp +omachi.nagano.jp +shinanomachi.nagano.jp +yamanouchi.nagano.jp +togakushi.nagano.jp +sakaki.nagano.jp +minamimaki.nagano.jp +otaki.nagano.jp +kitaaiki.nagano.jp +minamiaiki.nagano.jp +aoki.nagano.jp +mochizuki.nagano.jp +kawakami.nagano.jp +fujimi.nagano.jp +omi.nagano.jp +tomi.nagano.jp +otari.nagano.jp +shiojiri.nagano.jp +takamori.nagano.jp +anan.nagano.jp +nozawaonsen.nagano.jp +sakuho.nagano.jp +nagano.nagano.jp +nakano.nagano.jp +chino.nagano.jp +azumino.nagano.jp +tatsuno.nagano.jp +komoro.nagano.jp +nagiso.nagano.jp +kiso.nagano.jp +matsumoto.nagano.jp +saku.nagano.jp +chikuhoku.nagano.jp +agematsu.nagano.jp +kumamoto.jp +yamaga.kumamoto.jp +kashima.kumamoto.jp +nishihara.kumamoto.jp +amakusa.kumamoto.jp +kamiamakusa.kumamoto.jp +minamata.kumamoto.jp +mifune.kumamoto.jp +kikuchi.kumamoto.jp +hitoyoshi.kumamoto.jp +mashiki.kumamoto.jp +uki.kumamoto.jp +oguni.kumamoto.jp +minamioguni.kumamoto.jp +takamori.kumamoto.jp +arao.kumamoto.jp +yatsushiro.kumamoto.jp +aso.kumamoto.jp +yamato.kumamoto.jp +kumamoto.kumamoto.jp +sumoto.kumamoto.jp +uto.kumamoto.jp +gyokuto.kumamoto.jp +choyo.kumamoto.jp +nagasu.kumamoto.jp +ozu.kumamoto.jp +kyoto.jp +kyotamba.kyoto.jp +seika.kyoto.jp +kameoka.kyoto.jp +wazuka.kyoto.jp +fukuchiyama.kyoto.jp +higashiyama.kyoto.jp +kumiyama.kyoto.jp +yamashina.kyoto.jp +ujitawara.kyoto.jp +yawata.kyoto.jp +kita.kyoto.jp +tanabe.kyoto.jp +kyotanabe.kyoto.jp +ayabe.kyoto.jp +ide.kyoto.jp +ine.kyoto.jp +uji.kyoto.jp +oyamazaki.kyoto.jp +minami.kyoto.jp +nantan.kyoto.jp +kyotango.kyoto.jp +muko.kyoto.jp +kamo.kyoto.jp +minamiyamashiro.kyoto.jp +nakagyo.kyoto.jp +nagaokakyo.kyoto.jp +sakyo.kyoto.jp +joyo.kyoto.jp +maizuru.kyoto.jp +miyazu.kyoto.jp +kizu.kyoto.jp +xn--1ctwo.jp +tokyo.jp +machida.tokyo.jp +sumida.tokyo.jp +chiyoda.tokyo.jp +mitaka.tokyo.jp +katsushika.tokyo.jp +tama.tokyo.jp +okutama.tokyo.jp +higashimurayama.tokyo.jp +musashimurayama.tokyo.jp +aogashima.tokyo.jp +akishima.tokyo.jp +oshima.tokyo.jp +toshima.tokyo.jp +kouzushima.tokyo.jp +nerima.tokyo.jp +hinohara.tokyo.jp +ogasawara.tokyo.jp +kodaira.tokyo.jp +hamura.tokyo.jp +fussa.tokyo.jp +kita.tokyo.jp +ota.tokyo.jp +shinagawa.tokyo.jp +edogawa.tokyo.jp +arakawa.tokyo.jp +tachikawa.tokyo.jp +setagaya.tokyo.jp +shibuya.tokyo.jp +komae.tokyo.jp +hinode.tokyo.jp +ome.tokyo.jp +higashikurume.tokyo.jp +kiyose.tokyo.jp +koganei.tokyo.jp +inagi.tokyo.jp +adachi.tokyo.jp +kunitachi.tokyo.jp +itabashi.tokyo.jp +kokubunji.tokyo.jp +hachioji.tokyo.jp +suginami.tokyo.jp +mizuho.tokyo.jp +hachijo.tokyo.jp +nakano.tokyo.jp +hino.tokyo.jp +musashino.tokyo.jp +akiruno.tokyo.jp +meguro.tokyo.jp +higashiyamato.tokyo.jp +minato.tokyo.jp +taito.tokyo.jp +koto.tokyo.jp +chuo.tokyo.jp +bunkyo.tokyo.jp +chofu.tokyo.jp +fuchu.tokyo.jp +shinjuku.tokyo.jp +xn--6orx2r.jp +gr.jp +or.jp +xn--efvn9s.jp +xn--4pvxs.jp +blogspot.jp +xn--8pvr4u.jp +gifu.jp +ikeda.gifu.jp +hida.gifu.jp +tomika.gifu.jp +takayama.gifu.jp +hashima.gifu.jp +ena.gifu.jp +sekigahara.gifu.jp +kakamigahara.gifu.jp +kasahara.gifu.jp +yamagata.gifu.jp +kitagata.gifu.jp +ibigawa.gifu.jp +nakatsugawa.gifu.jp +shirakawa.gifu.jp +higashishirakawa.gifu.jp +mitake.gifu.jp +kawaue.gifu.jp +sakahogi.gifu.jp +anpachi.gifu.jp +wanouchi.gifu.jp +ogaki.gifu.jp +seki.gifu.jp +toki.gifu.jp +mizunami.gifu.jp +tajimi.gifu.jp +kani.gifu.jp +tarui.gifu.jp +ginan.gifu.jp +godo.gifu.jp +gujo.gifu.jp +minokamo.gifu.jp +mino.gifu.jp +yoro.gifu.jp +hichiso.gifu.jp +gifu.gifu.jp +motosu.gifu.jp +kasamatsu.gifu.jp +yaotsu.gifu.jp +xn--klty5x.jp +xn--djrs72d6uy.jp +xn--rht27z.jp +福井.jp +東京.jp +大分.jp +鳥取.jp +山口.jp +宮城.jp +茨城.jp +愛媛.jp +富山.jp +岡山.jp +和歌山.jp +福岡.jp +静岡.jp +鹿児島.jp +広島.jp +徳島.jp +福島.jp +宮崎.jp +長崎.jp +神奈川.jp +石川.jp +香川.jp +兵庫.jp +山形.jp +岩手.jp +栃木.jp +熊本.jp +島根.jp +山梨.jp +青森.jp +新潟.jp +埼玉.jp +秋田.jp +愛知.jp +高知.jp +沖縄.jp +奈良.jp +千葉.jp +佐賀.jp +滋賀.jp +北海道.jp +京都.jp +三重.jp +長野.jp +岐阜.jp +大阪.jp +群馬.jp +kp +tra.kp +org.kp +com.kp +rep.kp +edu.kp +gov.kp +help +mp +camp +jmp +dnp +gop +hiphop +shop +dunlop +coop +top +app +aarp +sharp +makeup +gallup +group +stcgroup +kuokgroup +olayangroup +rsvp +xn--mgbi4ecexp +aq +xn--y9a3aq +gq +iq +org.iq +mil.iq +com.iq +net.iq +edu.iq +gov.iq +mq +esq +ar +gob.ar +org.ar +mil.ar +com.ar +blogspot.com.ar +tur.ar +net.ar +int.ar +edu.ar +gov.ar +xn--mgberp4a5d4ar +bar +car +goodyear +solar +mopar +tatar +star +movistar +neustar +jaguar +br +g12.br +b.br +imb.br +rec.br +psc.br +etc.br +med.br +bmd.br +fnd.br +ind.br +trd.br +ggf.br +inf.br +leg.br +slg.br +zlg.br +cng.br +eng.br +blog.br +flog.br +vlog.br +ppg.br +org.br +wiki.br +psi.br +eti.br +taxi.br +lel.br +mil.br +qsl.br +am.br +adm.br +fm.br +cim.br +com.br +blogspot.com.br +ecn.br +eco.br +odo.br +teo.br +bio.br +radio.br +pro.br +ato.br +mp.br +emp.br +tmp.br +coop.br +esp.br +arq.br +far.br +agr.br +jor.br +ntr.br +tur.br +jus.br +mus.br +mat.br +net.br +vet.br +cnt.br +fot.br +not.br +art.br +fst.br +edu.br +adv.br +gov.br +srv.br +tv.br +cr +sa.cr +ac.cr +ed.cr +fi.cr +co.cr +go.cr +or.cr +weber +soccer +kinder +beer +engineer +pioneer +career +grainger +boehringer +rocher +kosher +weather +brother +frontier +cartier +locker +poker +broker +dealer +schaeffler +chrysler +lamer +sener +juniper +theater +vermögensberater +walter +center +lancaster +monster +blockbuster +computer +discover +swiftcover +landrover +observer +wolterskluwer +lawyer +pfizer +fr +greta.fr +assedic.fr +prd.fr +huissier-justice.fr +chirurgiens-dentistes-en-france.fr +veterinaire.fr +presse.fr +cci.fr +chambagri.fr +com.fr +nom.fr +tm.fr +pharmacien.fr +medecin.fr +asso.fr +experts-comptables.fr +notaires.fr +chirurgiens-dentistes.fr +avoues.fr +fbx-os.fr +freebox-os.fr +fbxos.fr +freeboxos.fr +avocat.fr +blogspot.fr +geometre-expert.fr +port.fr +aeroport.fr +gouv.fr +xn--mgbqly7cvafr +sfr +gr +org.gr +com.gr +net.gr +blogspot.gr +edu.gr +gov.gr +hr +name.hr +com.hr +from.hr +blogspot.hr +iz.hr +ruhr +ir +xn--mgba3a4f16a.ir +xn--mgba3a4fra.ir +ac.ir +id.ir +org.ir +sch.ir +co.ir +net.ir +gov.ir +ايران.ir +ایران.ir +hair +repair +weir +flir +kr +ac.kr +sc.kr +ne.kr +pe.kr +re.kr +kg.kr +gyeonggi.kr +gyeongbuk.kr +chungbuk.kr +jeonbuk.kr +mil.kr +seoul.kr +gyeongnam.kr +chungnam.kr +jeonnam.kr +ulsan.kr +busan.kr +incheon.kr +daejeon.kr +gangwon.kr +co.kr +go.kr +or.kr +es.kr +hs.kr +ms.kr +blogspot.kr +daegu.kr +jeju.kr +gwangju.kr +flickr +lr +org.lr +com.lr +net.lr +edu.lr +gov.lr +mr +blogspot.mr +gov.mr +nr +org.nr +com.nr +info.nr +net.nr +edu.nr +gov.nr +biz.nr +scor +author +frontdoor +actor +doctor +realtor +pr +isla.pr +ac.pr +name.pr +prof.pr +org.pr +com.pr +info.pr +pro.pr +net.pr +est.pr +edu.pr +gov.pr +biz.pr +sr +tr +k12.tr +web.tr +nc.tr +gov.nc.tr +name.tr +org.tr +bel.tr +tel.tr +mil.tr +pol.tr +com.tr +blogspot.com.tr +gen.tr +info.tr +kep.tr +dr.tr +bbs.tr +net.tr +edu.tr +av.tr +gov.tr +tv.tr +biz.tr +ftr +mtr +dabur +dvr +xn--fiqs8s +xn--fiqz9s +as +gov.as +bnpparibas +vegas +villas +christmas +sas +bs +org.bs +com.bs +net.bs +edu.bs +gov.bs +cbs +jobs +sbs +ubs +graphics +pics +kerrylogistics +analytics +docs +ads +dds +lds +mcdonalds +goodhands +fairwinds +diamonds +homegoods +cards +es +gob.es +org.es +com.es +blogspot.com.es +nom.es +edu.es +services +xn--mgb2ddes +codes +watches +hughes +supplies +industries +properties +kerryproperties +viajes +ladbrokes +wales +motorcycles +hoteles +singles +staples +games +homes +hermes +tunes +shoes +recipes +tires +pictures +ventures +ses +enterprises +cruises +courses +associates +gives +gs +holdings +xn--fiq228c5hs +is +cupcake.is +org.is +com.is +net.is +int.is +blogspot.is +edu.is +gov.is +xn--90ais +tennis +paris +gratis +rocks +sucks +xn--80adxhks +works +ls +org.ls +co.ls +deals +rentals +brussels +hotels +kerryhotels +marshalls +mls +tools +ms +org.ms +com.ms +net.ms +edu.ms +gov.ms +bms +systems +claims +fans +frogans +loans +passagens +bargains +domains +origins +vacations +productions +solutions +coupons +duns +condos +juegos +vuelos +zappos +photos +autos +ps +sec.ps +org.ps +com.ps +plo.ps +net.ps +edu.ps +gov.ps +scholarships +philips +tips +ups +rs +ac.rs +org.rs +in.rs +co.rs +blogspot.rs +edu.rs +gov.rs +cars +pars +guitars +crs +builders +careers +rogers +travelers +farmers +winners +partners +flowers +contractors +tatamotors +jprs +tours +glass +business +fitness +press +express +americanexpress +orientexpress +lanxess +swiss +beats +cityeats +boats +tickets +markets +gifts +yachts +flights +accountants +apartments +investments +events +boots +parts +us +ca.us +k12.ca.us +lib.ca.us +cc.ca.us +ga.us +k12.ga.us +lib.ga.us +cc.ga.us +ia.us +k12.ia.us +lib.ia.us +cc.ia.us +la.us +k12.la.us +lib.la.us +cc.la.us +ma.us +k12.ma.us +paroch.k12.ma.us +chtr.k12.ma.us +pvt.k12.ma.us +lib.ma.us +cc.ma.us +pa.us +k12.pa.us +lib.pa.us +cc.pa.us +isa.us +va.us +k12.va.us +lib.va.us +cc.va.us +wa.us +k12.wa.us +lib.wa.us +cc.wa.us +dc.us +k12.dc.us +lib.dc.us +cc.dc.us +nc.us +k12.nc.us +lib.nc.us +cc.nc.us +sc.us +k12.sc.us +lib.sc.us +cc.sc.us +fed.us +id.us +k12.id.us +lib.id.us +cc.id.us +md.us +k12.md.us +lib.md.us +cc.md.us +nd.us +lib.nd.us +cc.nd.us +sd.us +lib.sd.us +cc.sd.us +drud.us +de.us +k12.de.us +lib.de.us +cc.de.us +land-4-sale.us +stuff-4-sale.us +me.us +k12.me.us +lib.me.us +cc.me.us +ne.us +k12.ne.us +lib.ne.us +cc.ne.us +nh.us +k12.nh.us +lib.nh.us +cc.nh.us +oh.us +k12.oh.us +lib.oh.us +cc.oh.us +hi.us +lib.hi.us +cc.hi.us +mi.us +k12.mi.us +lib.mi.us +cc.mi.us +dni.us +ri.us +k12.ri.us +lib.ri.us +cc.ri.us +vi.us +k12.vi.us +lib.vi.us +cc.vi.us +wi.us +k12.wi.us +lib.wi.us +cc.wi.us +nj.us +k12.nj.us +lib.nj.us +cc.nj.us +ak.us +k12.ak.us +lib.ak.us +cc.ak.us +ok.us +k12.ok.us +lib.ok.us +cc.ok.us +al.us +k12.al.us +lib.al.us +cc.al.us +fl.us +k12.fl.us +lib.fl.us +cc.fl.us +il.us +k12.il.us +lib.il.us +cc.il.us +nm.us +k12.nm.us +lib.nm.us +cc.nm.us +golffan.us +in.us +k12.in.us +lib.in.us +cc.in.us +mn.us +k12.mn.us +lib.mn.us +cc.mn.us +nsn.us +tn.us +k12.tn.us +lib.tn.us +cc.tn.us +co.us +k12.co.us +lib.co.us +cc.co.us +mo.us +k12.mo.us +lib.mo.us +cc.mo.us +pointto.us +noip.us +ar.us +k12.ar.us +lib.ar.us +cc.ar.us +or.us +k12.or.us +lib.or.us +cc.or.us +pr.us +k12.pr.us +lib.pr.us +cc.pr.us +as.us +k12.as.us +lib.as.us +cc.as.us +kids.us +ks.us +k12.ks.us +lib.ks.us +cc.ks.us +ms.us +k12.ms.us +lib.ms.us +cc.ms.us +ct.us +k12.ct.us +lib.ct.us +cc.ct.us +mt.us +k12.mt.us +lib.mt.us +cc.mt.us +ut.us +k12.ut.us +lib.ut.us +cc.ut.us +vt.us +k12.vt.us +lib.vt.us +cc.vt.us +gu.us +k12.gu.us +lib.gu.us +cc.gu.us +nv.us +k12.nv.us +lib.nv.us +cc.nv.us +wv.us +cc.wv.us +tx.us +k12.tx.us +lib.tx.us +cc.tx.us +is-by.us +ky.us +k12.ky.us +lib.ky.us +cc.ky.us +ny.us +k12.ny.us +lib.ny.us +cc.ny.us +wy.us +k12.wy.us +lib.wy.us +cc.wy.us +az.us +k12.az.us +lib.az.us +cc.az.us +haus +bauhaus +airbus +locus +eus +fresenius +plus +lexus +nexus +tvs +ws +org.ws +com.ws +dyndns.ws +mypets.ws +net.ws +edu.ws +gov.ws +aws +reviews +news +windows +barclays +macys +toys +xn--czrs0t +at +ac.at +co.at +blogspot.co.at +info.at +or.at +gv.at +priv.at +biz.at +cat +eat +seat +chat +fiat +lat +etisalat +imamat +democrat +bt +org.bt +com.bt +net.bt +edu.bt +gov.bt +bbt +lgbt +contact +select +iselect +uconnect +direct +nextdirect +schmidt +et +name.et +org.et +com.et +info.et +net.et +edu.et +gov.et +biz.et +bet +meet +piaget +target +diet +cricket +market +net +dynv6.net +r.cdn77.net +from-la.net +mysecuritycamera.net +za.net +gb.net +eating-organic.net +mymediapc.net +in-the-band.net +privatizehealthinsurance.net +office-on-the.net +azure-mobile.net +bounceme.net +dynathome.net +redirectme.net +podzone.net +thruhere.net +se.net +scrapper-site.net +rackmaze.net +is-a-chef.net +serveblog.net +is-a-geek.net +isa-geek.net +uk.net +cdn77-ssl.net +pgafan.net +nhlfan.net +in.net +from-co.net +dnsdojo.net +no-ip.net +homeip.net +selfip.net +jp.net +at-band-camp.net +ham-radio-op.net +webhop.net +cloudapp.net +homeftp.net +serveftp.net +dynalias.net +dnsalias.net +dsmynas.net +servebbs.net +familyds.net +buyshouses.net +azurewebsites.net +sytes.net +ddns.net +blogdns.net +cloudfunctions.net +kicks-ass.net +myeffect.net +endofinternet.net +serveminecraft.net +broke-it.net +does-it.net +sells-it.net +gets-it.net +mydissent.net +cloudfront.net +dontexist.net +hu.net +homeunix.net +mypsx.net +homelinux.net +a.prod.fastly.net +global.prod.fastly.net +a.ssl.fastly.net +b.ssl.fastly.net +global.ssl.fastly.net +from-ny.net +from-az.net +myfritz.net +iinet +pet +pictet +vet +gift +loft +microsoft +gt +gob.gt +ind.gt +org.gt +mil.gt +com.gt +net.gt +edu.gt +ht +med.ht +org.ht +rel.ht +pol.ht +com.ht +firm.ht +info.ht +pro.ht +perso.ht +asso.ht +shop.ht +coop.ht +net.ht +adult.ht +art.ht +edu.ht +gouv.ht +it +taa.it +ba.it +ca.it +lucca.it +vda.it +tempio-olbia.it +tempioolbia.it +brescia.it +lombardia.it +foggia.it +perugia.it +puglia.it +sicilia.it +reggio-emilia.it +reggioemilia.it +friuli-venezia-giulia.it +friulivenezia-giulia.it +friuli-ve-giulia.it +friulive-giulia.it +friuli-v-giulia.it +friuliv-giulia.it +friuli-veneziagiulia.it +friuliveneziagiulia.it +friuli-vegiulia.it +friulivegiulia.it +friuli-vgiulia.it +friulivgiulia.it +verbania.it +lucania.it +campania.it +catania.it +sardinia.it +iglesias-carbonia.it +iglesiascarbonia.it +isernia.it +pistoia.it +calabria.it +reggio-calabria.it +reggiocalabria.it +umbria.it +trani-barletta-andria.it +barletta-trani-andria.it +tranibarlettaandria.it +barlettatraniandria.it +alessandria.it +imperia.it +liguria.it +vibo-valentia.it +vibovalentia.it +pavia.it +venezia.it +la-spezia.it +laspezia.it +gorizia.it +aquila.it +laquila.it +biella.it +roma.it +parma.it +na.it +toscana.it +modena.it +siena.it +forli-cesena.it +forlicesena.it +emilia-romagna.it +emiliaromagna.it +sardegna.it +bologna.it +messina.it +latina.it +enna.it +ravenna.it +ancona.it +cremona.it +verona.it +savona.it +genoa.it +pa.it +ra.it +pescara.it +massa-carrara.it +massacarrara.it +ferrara.it +novara.it +matera.it +ogliastra.it +dell-ogliastra.it +dellogliastra.it +sa.it +pisa.it +carrara-massa.it +carraramassa.it +siracusa.it +ragusa.it +ta.it +basilicata.it +macerata.it +caserta.it +aosta.it +valle-d-aosta.it +val-d-aosta.it +valled-aosta.it +vald-aosta.it +valle-aosta.it +valle-daosta.it +val-daosta.it +valledaosta.it +valdaosta.it +valleaosta.it +trani-andria-barletta.it +andria-trani-barletta.it +traniandriabarletta.it +andriatranibarletta.it +caltanissetta.it +padua.it +va.it +padova.it +genova.it +mantova.it +monza-e-della-brianza.it +monza-brianza.it +monzaedellabrianza.it +monzabrianza.it +monzaebrianza.it +piacenza.it +vicenza.it +cosenza.it +potenza.it +monza.it +cb.it +mb.it +umb.it +vb.it +fc.it +sic.it +lc.it +mc.it +pc.it +rc.it +vc.it +pd.it +ud.it +ce.it +lecce.it +venice.it +florence.it +fe.it +ge.it +trentino-a-adige.it +trentinoa-adige.it +alto-adige.it +trentino-alto-adige.it +trentinoalto-adige.it +trentino-aadige.it +trentinoaadige.it +altoadige.it +trentino-altoadige.it +trentinoaltoadige.it +marche.it +le.it +me.it +rome.it +udine.it +pordenone.it +frosinone.it +crotone.it +pe.it +re.it +varese.it +molise.it +te.it +piemonte.it +trieste.it +aoste.it +vallee-aoste.it +valleeaoste.it +ve.it +firenze.it +ag.it +bg.it +fg.it +lig.it +og.it +pg.it +rg.it +pug.it +fvg.it +ch.it +bi.it +ci.it +lodi.it +fi.it +li.it +vercelli.it +napoli.it +cesena-forli.it +cesenaforli.it +mi.it +trapani.it +andria-barletta-trani.it +andriabarlettatrani.it +rimini.it +terni.it +pi.it +ri.it +bari.it +cagliari.it +sassari.it +si.it +brindisi.it +chieti.it +rieti.it +asti.it +vi.it +al.it +cal.it +bl.it +cl.it +mol.it +trentino-sued-tirol.it +trentinosued-tirol.it +trentino-sud-tirol.it +trentinosud-tirol.it +trentino-s-tirol.it +trentinos-tirol.it +suedtirol.it +trentino-suedtirol.it +trentinosuedtirol.it +trentino-sudtirol.it +trentinosudtirol.it +trentino-stirol.it +trentinostirol.it +cam.it +fm.it +im.it +lom.it +rm.it +an.it +milan.it +balsan.it +bn.it +cn.it +en.it +ven.it +bozen.it +turin.it +mn.it +pmn.it +pn.it +rn.it +tn.it +ao.it +vao.it +bo.it +viterbo.it +co.it +lecco.it +cuneo.it +go.it +rovigo.it +campidano-medio.it +campidanomedio.it +olbia-tempio.it +olbiatempio.it +sondrio.it +lazio.it +lo.it +mo.it +bergamo.it +teramo.it +como.it +fermo.it +palermo.it +no.it +medio-campidano.it +mediocampidano.it +milano.it +oristano.it +bolzano.it +ascoli-piceno.it +ascolipiceno.it +pesaro-urbino.it +pesarourbino.it +avellino.it +torino.it +trentino.it +salerno.it +livorno.it +belluno.it +po.it +ro.it +urbino-pesaro.it +urbinopesaro.it +catanzaro.it +nuoro.it +so.it +treviso.it +campobasso.it +to.it +prato.it +veneto.it +grosseto.it +taranto.it +agrigento.it +trento.it +benevento.it +arezzo.it +abruzzo.it +ap.it +sp.it +tp.it +aq.it +ar.it +mar.it +sar.it +br.it +abr.it +cr.it +fr.it +gr.it +kr.it +emr.it +or.it +pr.it +sr.it +tr.it +vr.it +bas.it +carbonia-iglesias.it +carboniaiglesias.it +bs.it +cs.it +naples.it +is.it +ms.it +tos.it +ss.it +ts.it +vs.it +at.it +bt.it +ct.it +lt.it +mt.it +piedmont.it +ot.it +blogspot.it +pt.it +vt.it +edu.it +lu.it +nu.it +pu.it +av.it +gov.it +pv.it +sv.it +tv.it +vv.it +lombardy.it +aosta-valley.it +aostavalley.it +sicily.it +tuscany.it +laz.it +bz.it +cz.it +pz.it +credit +reit +fit +mit +rmit +intuit +xn--mgba3a3ejt +hkt +lt +blogspot.lt +gov.lt +adult +mt +org.mt +com.mt +blogspot.com.mt +net.mt +edu.mt +sandvikcoromant +restaurant +accountant +gent +management +router.management +equipment +rent +int +eu.int +mint +goldpoint +vistaprint +dupont +discount +bot +scot +dot +got +hot +jot +barefoot +homedepot +spot +pt +nome.pt +org.pt +publ.pt +com.pt +net.pt +int.pt +blogspot.pt +edu.pt +gov.pt +art +walmart +smart +expert +report +support +srt +st +embaixada.st +saotome.st +principe.st +store.st +org.st +mil.st +com.st +co.st +consulado.st +net.st +edu.st +gov.st +comcast +fast +best +budapest +rest +quest +ist +florist +dentist +host +post +epost +auspost +trust +tt +name.tt +org.tt +mobi.tt +travel.tt +com.tt +museum.tt +co.tt +info.tt +aero.tt +pro.tt +coop.tt +jobs.tt +net.tt +int.tt +edu.tt +gov.tt +biz.tt +hyatt +ntt +ott +abbott +marriott +hangout +next +yt +jetzt +xn--9et52u +xn--pssy2u +au +sa.au +wa.au +vic.au +id.au +qld.au +conf.au +org.au +com.au +blogspot.com.au +asn.au +info.au +tas.au +act.au +net.au +nt.au +edu.au +sa.edu.au +wa.edu.au +vic.edu.au +qld.edu.au +tas.edu.au +act.edu.au +nt.edu.au +nsw.edu.au +gov.au +sa.gov.au +wa.gov.au +vic.gov.au +qld.gov.au +tas.gov.au +nsw.au +oz.au +itau +cu +inf.cu +org.cu +com.cu +net.cu +edu.cu +gov.cu +icu +edu +baidu +eu +mycd.eu +hu +2000.hu +erotica.hu +media.hu +erotika.hu +tozsde.hu +org.hu +suli.hu +hotel.hu +reklam.hu +film.hu +tm.hu +forum.hu +ingatlan.hu +co.hu +video.hu +info.hu +konyvelo.hu +casino.hu +shop.hu +agrar.hu +lakas.hu +utazas.hu +games.hu +news.hu +bolt.hu +blogspot.hu +sport.hu +priv.hu +sex.hu +szex.hu +city.hu +jogasz.hu +sohu +tushu +lu +blogspot.lu +mu +ac.mu +org.mu +com.mu +co.mu +or.mu +net.mu +gov.mu +nu +merseine.nu +mine.nu +shacknet.nu +menu +wanggou +you +cyou +ru +vologda.ru +kaluga.ru +chuvashia.ru +kalmykia.ru +karelia.ru +bashkiria.ru +khakassia.ru +buryatia.ru +udmurtia.ru +yakutia.ru +mordovia.ru +nakhodka.ru +dudinka.ru +kamchatka.ru +vyatka.ru +chukotka.ru +joshkar-ola.ru +tula.ru +kostroma.ru +palana.ru +samara.ru +chita.ru +tuva.ru +adygeya.ru +penza.ru +spb.ru +ac.ru +volgograd.ru +zgrad.ru +rnd.ru +belgorod.ru +ulan-ude.ru +marine.ru +cbg.ru +koenig.ru +org.ru +e-burg.ru +orenburg.ru +yekaterinburg.ru +voronezh.ru +kustanai.ru +altai.ru +komi.ru +mari.ru +nalchik.ru +vladivostok.ru +k-uralsk.ru +arkhangelsk.ru +norilsk.ru +msk.ru +omsk.ru +tomsk.ru +nsk.ru +murmansk.ru +bryansk.ru +smolensk.ru +chelyabinsk.ru +yuzhno-sakhalinsk.ru +vdonsk.ru +krasnoyarsk.ru +novosibirsk.ru +simbirsk.ru +pyatigorsk.ru +kursk.ru +amursk.ru +tsk.ru +lipetsk.ru +irkutsk.ru +izhevsk.ru +khabarovsk.ru +rubtsovsk.ru +baikal.ru +jamal.ru +yamal.ru +mari-el.ru +chel.ru +mil.ru +oskol.ru +stavropol.ru +oryol.ru +yaroslavl.ru +udm.ru +com.ru +tom.ru +perm.ru +kuban.ru +magadan.ru +kurgan.ru +astrakhan.ru +syzran.ru +dagestan.ru +tatarstan.ru +kazan.ru +ryazan.ru +tyumen.ru +sakhalin.ru +vrn.ru +tsaritsyn.ru +ivanovo.ru +kemerovo.ru +pp.ru +jar.ru +tver.ru +kchr.ru +bir.ru +vladimir.ru +amur.ru +mytis.ru +kms.ru +kuzbass.ru +net.ru +int.ru +blogspot.ru +fareast.ru +test.ru +surgut.ru +edu.ru +khv.ru +tambov.ru +gov.ru +nov.ru +nnov.ru +kirov.ru +saratov.ru +stv.ru +cmw.ru +grozny.ru +vladikavkaz.ru +nkz.ru +snz.ru +ptz.ru +cymru +pru +guru +su +vologda.su +kaluga.su +kalmykia.su +karelia.su +bashkiria.su +khakassia.su +mordovia.su +tula.su +tuva.su +adygeya.su +penza.su +spb.su +lenug.su +sochi.su +togliatti.su +nalchik.su +arkhangelsk.su +msk.su +murmansk.su +bryansk.su +obninsk.su +troitsk.su +pokrovsk.su +kurgan.su +dagestan.su +ivanovo.su +krasnodar.su +vladimir.su +balashov.su +nov.su +grozny.su +vladikavkaz.su +komatsu +fujitsu +hisamitsu +vu +org.vu +com.vu +net.vu +edu.vu +ryukyu +bv +cv +blogspot.cv +dev +hiv +lv +id.lv +conf.lv +org.lv +mil.lv +com.lv +asn.lv +net.lv +edu.lv +gov.lv +mv +name.mv +org.mv +mil.mv +com.mv +museum.mv +info.mv +aero.mv +pro.mv +coop.mv +net.mv +int.mv +edu.mv +gov.mv +biz.mv +gov +mov +trv +sv +gob.sv +red.sv +org.sv +com.sv +edu.sv +tv +on-the-web.tv +worse-than.tv +better-than.tv +dyndns.tv +dtv +hgtv +itv +nowtv +xn--vhquv +aw +com.aw +shaw +law +bw +org.bw +co.bw +cw +org.cw +com.cw +net.cw +edu.cw +pccw +review +new +sew +gw +mw +ac.mw +org.mw +com.mw +museum.mw +co.mw +coop.mw +net.mw +int.mw +edu.mw +gov.mw +biz.mw +bmw +moscow +how +show +now +wow +pw +ed.pw +ne.pw +co.pw +go.pw +or.pw +belau.pw +rw +ac.rw +mil.rw +com.rw +co.rw +net.rw +int.rw +edu.rw +gov.rw +gouv.rw +nrw +tw +xn--zf0ao64a.tw +xn--czrw28b.tw +club.tw +game.tw +org.tw +mil.tw +com.tw +net.tw +blogspot.tw +edu.tw +idv.tw +gov.tw +xn--uc0atv.tw +ebiz.tw +商業.tw +組織.tw +網路.tw +ax +tax +cx +ath.cx +gov.cx +nadex +fedex +yandex +amex +banamex +forex +sex +netflix +tjx +mx +gob.mx +org.mx +com.mx +net.mx +blogspot.mx +edu.mx +gmx +xn--ygbi2ammx +box +xbox +fox +xerox +fujixerox +xn--ngbrx +sx +gov.sx +tjmaxx +tkmaxx +xxx +xn--unup4y +xn--30rr7y +day +holiday +blackfriday +today +play +pay +alipay +toray +nissay +broadway +by +of.by +mil.by +com.by +blogspot.com.by +gov.by +baby +ac.cy +ltd.cy +name.cy +org.cy +com.cy +blogspot.com.cy +tm.cy +pro.cy +ekloges.cy +press.cy +net.cy +parliament.cy +gov.cy +biz.cy +pharmacy +agency +godaddy +study +hockey +bentley +sydney +money +attorney +mckinsey +gy +org.gy +com.gy +co.gy +net.gy +edu.gy +gov.gy +technology +energy +photography +diy +ky +org.ky +com.ky +net.ky +edu.ky +gov.ky +sky +ly +plc.ly +med.ly +id.ly +org.ly +sch.ly +com.ly +net.ly +edu.ly +gov.ly +fly +mobily +family +americanfamily +ally +lilly +supply +my +name.my +org.my +mil.my +com.my +net.my +blogspot.my +edu.my +gov.my +academy +army +tiffany +company +afamilycompany +sony +joy +soy +py +org.py +mil.py +com.py +coop.py +net.py +edu.py +gov.py +grocery +surgery +gallery +delivery +jewelry +directory +country +luxury +sy +org.sy +mil.sy +com.sy +net.sy +edu.sy +gov.sy +lipsy +safety +city +telecity +fidelity +xfinity +community +security +university +realty +party +property +beauty +uy +gub.uy +org.uy +mil.uy +com.uy +blogspot.com.uy +net.uy +edu.uy +buy +bestbuy +navy +oldnavy +sexy +az +name.az +org.az +mil.az +com.az +info.az +pro.az +pp.az +net.az +int.az +edu.az +gov.az +biz.az +bz +za.bz +org.bz +com.bz +net.bz +edu.bz +gov.bz +cz +e4.cz +realm.cz +co.cz +blogspot.cz +dz +org.dz +pol.dz +com.dz +asso.dz +net.dz +art.dz +edu.dz +gov.dz +biz +dscloud.biz +for-the.biz +for-some.biz +for-more.biz +mmafan.biz +no-ip.biz +selfip.biz +webhop.biz +myftp.biz +for-better.biz +dyndns.biz +gbiz +kz +org.kz +mil.kz +com.kz +net.kz +edu.kz +gov.kz +nz +xn--mori-qsa.nz +ac.nz +org.nz +health.nz +cri.nz +maori.nz +māori.nz +iwi.nz +kiwi.nz +geek.nz +mil.nz +school.nz +gen.nz +co.nz +blogspot.co.nz +net.nz +parliament.nz +govt.nz +anz +allfinanz +schwarz +sz +ac.sz +org.sz +co.sz +tz +ac.tz +sc.tz +me.tz +ne.tz +mobi.tz +hotel.tz +mil.tz +co.tz +info.tz +go.tz +or.tz +tv.tz +uz +org.uz +com.uz +co.uz +net.uz +nowruz +xyz +fhapp.xyz +buzz +ελ +москва +срб +орг.срб +од.срб +ак.срб +обр.срб +пр.срб +упр.срб +бг +орг +мкд +қаз +дети +католик +бел +ком +онлайн +мон +укр +рус +сайт +рф +ею +հայ +קום +سوريا +مليسيا +عرب +المغرب +شبكة +السعودية +سورية +السعودیة +امارات +اتصالات +بھارت +الجزائر +بازار +مصر +قطر +تونس +موقع +عراق +بيتك +كاثوليك +كوم +پاكستان +پاکستان +سودان +ايران +ایران +عمان +العليان +الاردن +اليمن +فلسطين +همراه +السعوديه +ارامكو +ابوظبي +موبايلي +السعودیۃ +नेट +भारत +संगठन +कॉम +ভারত +বাংলা +ਭਾਰਤ +ભારત +இந்தியா +இலங்கை +சிங்கப்பூர் +భారత్ +ලංකා +คอม +ไทย +გე +みんな +ストア +ポイント +クラウド +コム +グーグル +セール +ファッション +企业 +广东 +娱乐 +诺基亚 +我爱你 +中信 +政务 +移动 +微博 +八卦 +餐厅 +公司 +食品 +慈善 +集团 +中国 +中國 +网址 +新加坡 +商城 +珠宝 +时尚 +佛山 +一号店 +商店 +网店 +嘉里大酒店 +政府 +健康 +信息 +游戏 +香格里拉 +大拿 +天主教 +手机 +机构 +组织机构 +商标 +谷歌 +飞利浦 +香港 +台湾 +台灣 +臺灣 +购物 +世界 +公益 +点看 +電訊盈科 +网站 +書籍 +在线 +网络 +中文网 +工行 +手表 +通販 +大众汽车 +联通 +嘉里 +淡马锡 +澳門 +澳门 +新闻 +家電 +한국 +닷넷 +삼성 +닷컴 \ No newline at end of file diff --git a/mobile/android/app/build.gradle b/mobile/android/app/build.gradle new file mode 100644 index 0000000000..724b955ef4 --- /dev/null +++ b/mobile/android/app/build.gradle @@ -0,0 +1,404 @@ +buildDir "${topobjdir}/gradle/build/mobile/android/app" + +apply plugin: 'android-sdk-manager' // Must come before 'com.android.*'. +apply plugin: 'com.android.application' +apply plugin: 'checkstyle' + +android { + compileSdkVersion 23 + buildToolsVersion mozconfig.substs.ANDROID_BUILD_TOOLS_VERSION + + defaultConfig { + targetSdkVersion 23 + minSdkVersion 15 + applicationId mozconfig.substs.ANDROID_PACKAGE_NAME + testApplicationId 'org.mozilla.roboexample.test' + testInstrumentationRunner 'org.mozilla.gecko.FennecInstrumentationTestRunner' + manifestPlaceholders = [ + ANDROID_PACKAGE_NAME: mozconfig.substs.ANDROID_PACKAGE_NAME, + MOZ_ANDROID_MIN_SDK_VERSION: mozconfig.substs.MOZ_ANDROID_MIN_SDK_VERSION, + MOZ_ANDROID_SHARED_ID: "${mozconfig.substs.ANDROID_PACKAGE_NAME}.sharedID", + ] + // Used by Robolectric based tests; see TestRunner. + buildConfigField 'String', 'BUILD_DIR', "\"${project.buildDir}\"" + + vectorDrawables.useSupportLibrary = true + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_7 + targetCompatibility JavaVersion.VERSION_1_7 + } + + dexOptions { + javaMaxHeapSize "2g" + } + + lintOptions { + abortOnError true + } + + buildTypes { + release { + shrinkResources true + minifyEnabled true + proguardFile "${topsrcdir}/mobile/android/config/proguard/proguard.cfg" + } + } + + productFlavors { + // For API 21+ - with multi dex, this will be faster for local development. + local { + // For multi dex, setting `minSdkVersion 21` allows the Android gradle plugin to + // pre-DEX each module and produce an APK that can be tested on + // Android Lollipop without time consuming DEX merging processes. + minSdkVersion 21 + dexOptions { + preDexLibraries true + // We only call `MultiDex.install()` for the automation build flavor + // so this may not work. However, I don't think the multidex support + // library is necessary for 21+, so I expect that it will work. + multiDexEnabled true + } + } + // For API < 21 - does not support multi dex because local development + // is slow in that case. Most builds will not require multi dex so this + // should not be an issue. + localOld { + } + // Automation builds. + automation { + dexOptions { + // As of FF48 on beta, the "test", "lint", etc. treeherder jobs fail because they + // exceed the method limit. Beta includes Adjust and its GPS dependencies, which + // increase the method count & explain the failures. Furthermore, this error only + // occurs on debug builds because we don't proguard. + // + // We enable multidex as an easy, quick-fix with minimal side effects but before we + // move to gradle for our production builds, we should re-evaluate this decision + // (bug 1286677). + multiDexEnabled true + } + } + } + + sourceSets { + main { + manifest.srcFile "${project.buildDir}/generated/source/preprocessed_manifest/AndroidManifest.xml" + + aidl { + srcDir "${topsrcdir}/mobile/android/base/aidl" + } + + java { + srcDir "${topsrcdir}/mobile/android/base/java" + srcDir "${topsrcdir}/mobile/android/search/java" + srcDir "${topsrcdir}/mobile/android/javaaddons/java" + srcDir "${topsrcdir}/mobile/android/services/src/main/java" + + if (mozconfig.substs.MOZ_ANDROID_MLS_STUMBLER) { + srcDir "${topsrcdir}/mobile/android/stumbler/java" + } + + exclude 'org/mozilla/gecko/CrashReporter.java' + + if (!mozconfig.substs.MOZ_NATIVE_DEVICES) { + exclude 'org/mozilla/gecko/ChromeCastDisplay.java' + exclude 'org/mozilla/gecko/ChromeCastPlayer.java' + exclude 'org/mozilla/gecko/GeckoMediaPlayer.java' + exclude 'org/mozilla/gecko/GeckoPresentationDisplay.java' + exclude 'org/mozilla/gecko/MediaPlayerManager.java' + } + + if (mozconfig.substs.MOZ_WEBRTC) { + srcDir "${topsrcdir}/media/webrtc/trunk/webrtc/modules/audio_device/android/java/src" + srcDir "${topsrcdir}/media/webrtc/trunk/webrtc/modules/video_capture/android/java/src" + srcDir "${topsrcdir}/media/webrtc/trunk/webrtc/modules/video_render/android/java/src" + } + + if (mozconfig.substs.MOZ_INSTALL_TRACKING) { + exclude 'org/mozilla/gecko/adjust/StubAdjustHelper.java' + } else { + exclude 'org/mozilla/gecko/adjust/AdjustHelper.java' + } + + if (!mozconfig.substs.MOZ_ANDROID_GCM) { + exclude 'org/mozilla/gecko/gcm/**/*.java' + exclude 'org/mozilla/gecko/push/**/*.java' + } + + srcDir "${project.buildDir}/generated/source/preprocessed_code" // See syncPreprocessedCode. + } + + res { + srcDir "${topsrcdir}/${mozconfig.substs.MOZ_BRANDING_DIRECTORY}/res" + srcDir "${project.buildDir}/generated/source/preprocessed_resources" // See syncPreprocessedResources. + srcDir "${topsrcdir}/mobile/android/base/resources" + srcDir "${topsrcdir}/mobile/android/services/src/main/res" + if (mozconfig.substs.MOZ_CRASHREPORTER) { + srcDir "${topsrcdir}/mobile/android/base/crashreporter/res" + } + } + + assets { + if (mozconfig.substs.MOZ_ANDROID_DISTRIBUTION_DIRECTORY && !mozconfig.substs.MOZ_ANDROID_PACKAGE_INSTALL_BOUNCER) { + // If we are packaging the bouncer, it will have the distribution, so don't put + // it in the main APK as well. + srcDir "${mozconfig.substs.MOZ_ANDROID_DISTRIBUTION_DIRECTORY}/assets" + } + srcDir "${topsrcdir}/mobile/android/app/assets" + } + } + + test { + java { + srcDir "${topsrcdir}/mobile/android/tests/background/junit4/src" + + if (!mozconfig.substs.MOZ_ANDROID_GCM) { + exclude 'org/mozilla/gecko/gcm/**/*.java' + exclude 'org/mozilla/gecko/push/**/*.java' + } + } + resources { + srcDir "${topsrcdir}/mobile/android/tests/background/junit4/resources" + } + } + + androidTest { + java { + srcDir "${topsrcdir}/mobile/android/tests/browser/robocop/src" + srcDir "${topsrcdir}/mobile/android/tests/background/junit3/src" + srcDir "${topsrcdir}/mobile/android/tests/browser/junit3/src" + srcDir "${topsrcdir}/mobile/android/tests/javaddons/src" + } + res { + srcDir "${topsrcdir}/mobile/android/tests/browser/robocop/res" + } + assets { + srcDir "${topsrcdir}/mobile/android/tests/browser/robocop/assets" + } + } + } + + testOptions { + unitTests.all { + // We'd like to use (Runtime.runtime.availableProcessors()/2), but + // we have tests that start test servers and the bound ports + // collide. We'll fix this soon to have much faster test cycles. + maxParallelForks 1 + } + } +} + +dependencies { + compile 'com.android.support:multidex:1.0.0' + + compile "com.android.support:support-v4:${mozconfig.substs.ANDROID_SUPPORT_LIBRARY_VERSION}" + compile "com.android.support:appcompat-v7:${mozconfig.substs.ANDROID_SUPPORT_LIBRARY_VERSION}" + compile "com.android.support:cardview-v7:${mozconfig.substs.ANDROID_SUPPORT_LIBRARY_VERSION}" + compile "com.android.support:recyclerview-v7:${mozconfig.substs.ANDROID_SUPPORT_LIBRARY_VERSION}" + compile "com.android.support:design:${mozconfig.substs.ANDROID_SUPPORT_LIBRARY_VERSION}" + compile "com.android.support:customtabs:${mozconfig.substs.ANDROID_SUPPORT_LIBRARY_VERSION}" + compile "com.android.support:palette-v7:${mozconfig.substs.ANDROID_SUPPORT_LIBRARY_VERSION}" + + if (mozconfig.substs.MOZ_NATIVE_DEVICES) { + compile "com.android.support:mediarouter-v7:${mozconfig.substs.ANDROID_SUPPORT_LIBRARY_VERSION}" + compile "com.google.android.gms:play-services-basement:${mozconfig.substs.ANDROID_GOOGLE_PLAY_SERVICES_VERSION}" + compile "com.google.android.gms:play-services-base:${mozconfig.substs.ANDROID_GOOGLE_PLAY_SERVICES_VERSION}" + compile "com.google.android.gms:play-services-cast:${mozconfig.substs.ANDROID_GOOGLE_PLAY_SERVICES_VERSION}" + } + + if (mozconfig.substs.MOZ_INSTALL_TRACKING) { + compile "com.google.android.gms:play-services-ads:${mozconfig.substs.ANDROID_GOOGLE_PLAY_SERVICES_VERSION}" + compile "com.google.android.gms:play-services-basement:${mozconfig.substs.ANDROID_GOOGLE_PLAY_SERVICES_VERSION}" + } + + if (mozconfig.substs.MOZ_ANDROID_GCM) { + compile "com.google.android.gms:play-services-basement:${mozconfig.substs.ANDROID_GOOGLE_PLAY_SERVICES_VERSION}" + compile "com.google.android.gms:play-services-base:${mozconfig.substs.ANDROID_GOOGLE_PLAY_SERVICES_VERSION}" + compile "com.google.android.gms:play-services-gcm:${mozconfig.substs.ANDROID_GOOGLE_PLAY_SERVICES_VERSION}" + compile "com.google.android.gms:play-services-measurement:${mozconfig.substs.ANDROID_GOOGLE_PLAY_SERVICES_VERSION}" + } + + // Include LeakCanary in most gradle based builds. LeakCanary adds about 5k methods, so we disable + // it for the (non-proguarded, non-multidex) localOld builds to allow space for other libraries. + // Gradle based tests include the no-op version. Mach based builds only include the no-op version + // of this library. + // It doesn't seem like there is a non-trivial way to be conditional on 'localOld', so instead we explicitly + // define a version of leakcanary for every flavor: + localCompile 'com.squareup.leakcanary:leakcanary-android:1.4-beta1' + localOldCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta1' + automationCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta1' + testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta1' + + compile project(':geckoview') + compile project(':thirdparty') + + testCompile 'junit:junit:4.12' + testCompile 'org.robolectric:robolectric:3.1.2' + testCompile 'org.simpleframework:simple-http:6.0.1' + testCompile 'org.mockito:mockito-core:1.10.19' + + // Including the Robotium JAR directly can cause issues with dexing. + androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.5.4' +} + +// TODO: (bug 1261486): This impl is not robust - +// we just wanted to land something. +task checkstyle(type: Checkstyle) { + configFile file("checkstyle.xml") + // TODO: should use sourceSets from project instead of hard-coded str. + source '../base/java/' + // TODO: This ignores our pre-processed resources. + include '**/*.java' + // TODO: classpath should probably be something. + classpath = files() +} + +task syncPreprocessedCode(type: Sync, dependsOn: rootProject.generateCodeAndResources) { + into("${project.buildDir}/generated/source/preprocessed_code") + from("${topobjdir}/mobile/android/base/generated/preprocessed") { + // All other preprocessed code is included in the geckoview project. + include '**/AdjustConstants.java' + } +} + +// The localization system uses the moz.build preprocessor to interpolate a .dtd +// file of XML entity definitions into an XML file of elements referencing those +// entities. (Each locale produces its own .dtd file, backstopped by the en-US +// .dtd file in tree.) Android Studio (and IntelliJ) don't handle these inline +// entities smoothly. This filter merely expands the entities in place, making +// them appear properly throughout the IDE. Be aware that this assumes that the +// JVM's file.encoding is utf-8. See comments in +// mobile/android/mach_commands.py. +class ExpandXMLEntitiesFilter extends FilterReader { + ExpandXMLEntitiesFilter(Reader input) { + // Extremely inefficient, but whatever. + super(new StringReader(groovy.xml.XmlUtil.serialize(new XmlParser(false, false, true).parse(input)))) + } +} + +task syncPreprocessedResources(type: Sync, dependsOn: rootProject.generateCodeAndResources) { + into("${project.buildDir}/generated/source/preprocessed_resources") + from("${topobjdir}/mobile/android/base/res") + filesMatching('**/strings.xml') { + filter(ExpandXMLEntitiesFilter) + } +} + +// It's not easy -- see the backout in Bug 1242213 -- to change the +// package for Fennec. Gradle has grown a mechanism to achieve what we want for +// Fennec, however, with applicationId. To use the same manifest as moz.build, +// we replace the package with org.mozilla.gecko (the eventual package) here. +task rewriteManifestPackage(type: Copy, dependsOn: rootProject.generateCodeAndResources) { + into("${project.buildDir}/generated/source/preprocessed_manifest") + from("${topobjdir}/mobile/android/base/AndroidManifest.xml") + filter { it.replaceFirst(/package=".*?"/, 'package="org.mozilla.gecko"') } +} + +apply from: "${topsrcdir}/mobile/android/gradle/with_gecko_binaries.gradle" + +android.applicationVariants.all { variant -> + variant.preBuild.dependsOn rewriteManifestPackage + variant.preBuild.dependsOn syncPreprocessedCode + variant.preBuild.dependsOn syncPreprocessedResources + + // Automation builds don't include Gecko binaries, since those binaries are + // not produced until after build time (at package time). Therefore, + // automation builds include the Gecko binaries into the APK at package + // time. The "withGeckoBinaries" variant of the :geckoview project also + // does this. (It does what it says on the tin!) For notes on this + // approach, see mobile/android/gradle/with_gecko_binaries.gradle. + + // Like 'local' or 'localOld'. + def productFlavor = variant.productFlavors[0].name + + // :app uses :geckoview:release and handles it's own Gecko binary inclusion, + // even though this would be most naturally done in the :geckoview project. + if (!productFlavor.equals('automation')) { + configureVariantWithGeckoBinaries(variant) + } +} + +apply plugin: 'spoon' + +spoon { + // For now, let's be verbose. + debug = true + // It's not helpful to pass when we don't have a device connected. + failIfNoDeviceConnected = true + + def spoonPackageName + if (gradle.startParameter.taskNames.contains('runBrowserTests')) { + spoonPackageName = 'org.mozilla.tests.browser.junit3' + } + if (gradle.startParameter.taskNames.contains('runBackgroundTests')) { + spoonPackageName = 'org.mozilla.gecko.background' + } + if (project.hasProperty('spoonPackageName')) { + // Command line overrides everything. + spoonPackageName = project.spoonPackageName + } + if (spoonPackageName) { + instrumentationArgs = ['-e', "package=${spoonPackageName}".toString()] + } +} + +// See discussion at https://github.com/stanfy/spoon-gradle-plugin/issues/9. +afterEvaluate { + tasks["spoonLocal${android.testBuildType.capitalize()}AndroidTest"].outputs.upToDateWhen { false } + + // This is an awkward way to define different sets of instrumentation tests. + // The task name itself is fished at runtime and the package name configured + // in the spoon configuration. + task runBrowserTests { + dependsOn tasks["spoonLocalOldDebugAndroidTest"] + } + task runBackgroundTests { + dependsOn tasks["spoonLocalOldDebugAndroidTest"] + } +} + +// Bug 1299015: Complain to treeherder if checkstyle, lint, or unittest fails. It's not obvious +// how to listen to individual errors in most cases, so we just link to the reports for now. +def makeTaskExecutionListener(artifactRootUrl) { + return new TaskExecutionListener() { + void beforeExecute(Task task) { + // Do nothing. + } + + void afterExecute(Task task, TaskState state) { + if (!state.failure) { + return + } + + // Link to the failing report. The task path and the report path + // depend on the android-lint task in + // taskcluster/ci/android-stuff/kind.yml. It's not possible to link + // directly, so for now consumers will need to copy-paste the URL. + switch (task.path) { + case ':app:checkstyle': + def url = "${artifactRootUrl}/public/android/checkstyle/checkstyle.xml" + println "TEST-UNEXPECTED-FAIL | android-checkstyle | Checkstyle rule violations were found. See the report at: $url" + break + + case ':app:lintAutomationDebug': + def url = "${artifactRootUrl}/public/android/lint/lint-results-automationDebug.html" + println "TEST-UNEXPECTED-FAIL | android-lint | Lint found errors in the project; aborting build. See the report at: $url" + break + + case ':app:testAutomationDebugUnitTest': + def url = "${artifactRootUrl}/public/android/unittest/automationDebug/index.html" + println "TEST-UNEXPECTED-FAIL | android-test | There were failing tests. See the report at: $url" + break + } + } + } +} + +// TASK_ID and RUN_ID are provided by docker-worker; see +// https://docs.taskcluster.net/manual/execution/workers/docker-worker. +if (System.env.TASK_ID && System.env.RUN_ID) { + def artifactRootUrl = "https://queue.taskcluster.net/v1/task/${System.env.TASK_ID}/runs/${System.env.RUN_ID}/artifacts" + gradle.addListener(makeTaskExecutionListener(artifactRootUrl)) +} diff --git a/mobile/android/app/checkstyle.xml b/mobile/android/app/checkstyle.xml new file mode 100644 index 0000000000..09a200d28a --- /dev/null +++ b/mobile/android/app/checkstyle.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mobile/android/app/lint.xml b/mobile/android/app/lint.xml new file mode 100644 index 0000000000..6d818a6c1f --- /dev/null +++ b/mobile/android/app/lint.xml @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mobile/android/app/mobile.ico b/mobile/android/app/mobile.ico new file mode 100644 index 0000000000..38312abac4 Binary files /dev/null and b/mobile/android/app/mobile.ico differ diff --git a/mobile/android/app/mobile.js b/mobile/android/app/mobile.js new file mode 100644 index 0000000000..ef4764d88e --- /dev/null +++ b/mobile/android/app/mobile.js @@ -0,0 +1,928 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#filter substitution + +// For browser.xml binding +// +// cacheRatio* is a ratio that determines the amount of pixels to cache. The +// ratio is multiplied by the viewport width or height to get the displayport's +// width or height, respectively. +// +// (divide integer value by 1000 to get the ratio) +// +// For instance: cachePercentageWidth is 1500 +// viewport height is 500 +// => display port height will be 500 * 1.5 = 750 +// +pref("toolkit.browser.cacheRatioWidth", 2000); +pref("toolkit.browser.cacheRatioHeight", 3000); + +// How long before a content view (a handle to a remote scrollable object) +// expires. +pref("toolkit.browser.contentViewExpire", 3000); + +pref("toolkit.defaultChromeURI", "chrome://browser/content/browser.xul"); +pref("browser.chromeURL", "chrome://browser/content/"); + +// If a tab has not been active for this long (seconds), then it may be +// turned into a zombie tab to preemptively free up memory. -1 disables time-based +// expiration (but low-memory conditions may still require the tab to be zombified). +pref("browser.tabs.expireTime", 900); + +// Disables zombification of background tabs under memory pressure. +// Intended for use in testing, where we don't want the tab running the +// test harness code to be zombified. +pref("browser.tabs.disableBackgroundZombification", false); + +// Control whether tab content should try to load from disk cache when network +// is offline. +// Controlled by Switchboard experiment "offline-cache". +pref("browser.tabs.useCache", false); + +// From libpref/src/init/all.js, extended to allow a slightly wider zoom range. +pref("zoom.minPercent", 20); +pref("zoom.maxPercent", 400); +pref("toolkit.zoomManager.zoomValues", ".2,.3,.5,.67,.8,.9,1,1.1,1.2,1.33,1.5,1.7,2,2.4,3,4"); + +// Mobile will use faster, less durable mode. +pref("toolkit.storage.synchronous", 0); + +pref("browser.viewport.desktopWidth", 980); +// The default fallback zoom level to render pages at. Set to -1 to fit page; otherwise +// the value is divided by 1000 and clamped to hard-coded min/max scale values. +pref("browser.viewport.defaultZoom", -1); + +// Show/Hide scrollbars when active/inactive +pref("ui.showHideScrollbars", 1); +pref("ui.useOverlayScrollbars", 1); +pref("ui.scrollbarFadeBeginDelay", 450); +pref("ui.scrollbarFadeDuration", 0); + +/* turn off the caret blink after 10 cycles */ +pref("ui.caretBlinkCount", 10); + +/* cache prefs */ +pref("browser.cache.disk.enable", true); +pref("browser.cache.disk.capacity", 20480); // kilobytes +pref("browser.cache.disk.max_entry_size", 4096); // kilobytes +pref("browser.cache.disk.smart_size.enabled", true); +pref("browser.cache.disk.smart_size.first_run", true); + +#ifdef MOZ_PKG_SPECIAL +// low memory devices +pref("browser.cache.memory.enable", false); +#else +pref("browser.cache.memory.enable", true); +#endif +pref("browser.cache.memory.capacity", 1024); // kilobytes + +pref("browser.cache.memory_limit", 5120); // 5 MB + +/* image cache prefs */ +pref("image.cache.size", 1048576); // bytes + +/* offline cache prefs */ +pref("browser.offline-apps.notify", true); +pref("browser.cache.offline.enable", true); +pref("browser.cache.offline.capacity", 5120); // kilobytes +pref("offline-apps.quota.warn", 1024); // kilobytes + +// cache compression turned off for now - see bug #715198 +pref("browser.cache.compression_level", 0); + +/* disable some protocol warnings */ +pref("network.protocol-handler.warn-external.tel", false); +pref("network.protocol-handler.warn-external.sms", false); +pref("network.protocol-handler.warn-external.mailto", false); +pref("network.protocol-handler.warn-external.vnd.youtube", false); + +/* http prefs */ +pref("network.http.pipelining", true); +pref("network.http.pipelining.ssl", true); +pref("network.http.proxy.pipelining", true); +pref("network.http.pipelining.maxrequests" , 6); +pref("network.http.keep-alive.timeout", 109); +pref("network.http.max-connections", 20); +pref("network.http.max-persistent-connections-per-server", 6); +pref("network.http.max-persistent-connections-per-proxy", 20); + +// spdy +pref("network.http.spdy.push-allowance", 32768); +pref("network.http.spdy.default-hpack-buffer", 4096); // 4k + +// See bug 545869 for details on why these are set the way they are +pref("network.buffer.cache.count", 24); +pref("network.buffer.cache.size", 16384); + +// predictive actions +pref("network.predictor.enabled", true); +pref("network.predictor.max-db-size", 2097152); // bytes +pref("network.predictor.preserve", 50); // percentage of predictor data to keep when cleaning up + +// Use JS mDNS as a fallback +pref("network.mdns.use_js_fallback", true); + +/* history max results display */ +pref("browser.display.history.maxresults", 100); + +/* How many times should have passed before the remote tabs list is refreshed */ +pref("browser.display.remotetabs.timeout", 10); + +/* session history */ +pref("browser.sessionhistory.max_total_viewers", 1); +pref("browser.sessionhistory.max_entries", 50); +pref("browser.sessionhistory.contentViewerTimeout", 360); +pref("browser.sessionhistory.bfcacheIgnoreMemoryPressure", false); + +/* session store */ +pref("browser.sessionstore.resume_session_once", false); +pref("browser.sessionstore.resume_from_crash", true); +pref("browser.sessionstore.interval", 10000); // milliseconds +pref("browser.sessionstore.backupInterval", 120000); // milliseconds -> 2 minutes +pref("browser.sessionstore.max_tabs_undo", 10); +pref("browser.sessionstore.max_resumed_crashes", 1); +pref("browser.sessionstore.privacy_level", 0); // saving data: 0 = all, 1 = unencrypted sites, 2 = never +pref("browser.sessionstore.debug_logging", false); + +/* these should help performance */ +pref("mozilla.widget.force-24bpp", true); +pref("mozilla.widget.use-buffer-pixmap", true); +pref("mozilla.widget.disable-native-theme", true); +pref("layout.reflow.synthMouseMove", false); +pref("layout.css.report_errors", false); + +/* download manager (don't show the window or alert) */ +pref("browser.download.useDownloadDir", true); +pref("browser.download.folderList", 1); // Default to ~/Downloads +pref("browser.download.manager.showAlertOnComplete", false); +pref("browser.download.manager.showAlertInterval", 2000); +pref("browser.download.manager.retention", 2); +pref("browser.download.manager.showWhenStarting", false); +pref("browser.download.manager.closeWhenDone", true); +pref("browser.download.manager.openDelay", 0); +pref("browser.download.manager.focusWhenStarting", false); +pref("browser.download.manager.flashCount", 2); +pref("browser.download.manager.displayedHistoryDays", 7); +pref("browser.download.manager.addToRecentDocs", true); + +/* download helper */ +pref("browser.helperApps.deleteTempFileOnExit", false); + +/* password manager */ +pref("signon.rememberSignons", true); +pref("signon.autofillForms.http", true); +pref("signon.expireMasterPassword", false); +pref("signon.debug", false); + +/* form helper (scroll to and optionally zoom into editable fields) */ +pref("formhelper.mode", 2); // 0 = disabled, 1 = enabled, 2 = dynamic depending on screen size +pref("formhelper.autozoom", true); + +/* find helper */ +pref("findhelper.autozoom", true); + +/* autocomplete */ +pref("browser.formfill.enable", true); + +/* spellcheck */ +pref("layout.spellcheckDefault", 0); + +/* new html5 forms */ +pref("dom.experimental_forms", true); +pref("dom.forms.number", true); + +/* extension manager and xpinstall */ +pref("xpinstall.whitelist.directRequest", false); +pref("xpinstall.whitelist.fileRequest", false); +pref("xpinstall.whitelist.add", "https://addons.mozilla.org,https://testpilot.firefox.com"); + +pref("xpinstall.signatures.required", true); + +pref("extensions.enabledScopes", 1); +pref("extensions.autoupdate.enabled", true); +pref("extensions.autoupdate.interval", 86400); +pref("extensions.update.enabled", true); +pref("extensions.update.interval", 86400); +pref("extensions.dss.enabled", false); +pref("extensions.dss.switchPending", false); +pref("extensions.ignoreMTimeChanges", false); +pref("extensions.logging.enabled", false); +pref("extensions.hideInstallButton", true); +pref("extensions.showMismatchUI", false); +pref("extensions.hideUpdateButton", false); +pref("extensions.strictCompatibility", false); +pref("extensions.minCompatibleAppVersion", "11.0"); + +pref("extensions.update.url", "https://versioncheck.addons.mozilla.org/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=52.9&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%¤tAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%"); +pref("extensions.update.background.url", "https://versioncheck-bg.addons.mozilla.org/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=52.9&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%¤tAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%"); + +pref("extensions.hotfix.id", "firefox-android-hotfix@mozilla.org"); +pref("extensions.hotfix.cert.checkAttributes", true); +pref("extensions.hotfix.certs.1.sha1Fingerprint", "91:53:98:0C:C1:86:DF:47:8F:35:22:9E:11:C9:A7:31:04:49:A1:AA"); + +/* preferences for the Get Add-ons pane */ +pref("extensions.getAddons.cache.enabled", true); +pref("extensions.getAddons.maxResults", 15); +pref("extensions.getAddons.recommended.browseURL", "https://addons.mozilla.org/%LOCALE%/android/recommended/"); +pref("extensions.getAddons.recommended.url", "https://services.addons.mozilla.org/%LOCALE%/android/api/%API_VERSION%/list/featured/all/%MAX_RESULTS%/%OS%/%VERSION%"); +pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/android/search?q=%TERMS%&platform=%OS%&appver=%VERSION%"); +pref("extensions.getAddons.search.url", "https://services.addons.mozilla.org/%LOCALE%/android/api/%API_VERSION%/search/%TERMS%/all/%MAX_RESULTS%/%OS%/%VERSION%/%COMPATIBILITY_MODE%"); +pref("extensions.getAddons.browseAddons", "https://addons.mozilla.org/%LOCALE%/android/"); +pref("extensions.getAddons.get.url", "https://services.addons.mozilla.org/%LOCALE%/android/api/%API_VERSION%/search/guid:%IDS%?src=mobile&appOS=%OS%&appVersion=%VERSION%"); +pref("extensions.getAddons.getWithPerformance.url", "https://services.addons.mozilla.org/%LOCALE%/android/api/%API_VERSION%/search/guid:%IDS%?src=mobile&appOS=%OS%&appVersion=%VERSION%&tMain=%TIME_MAIN%&tFirstPaint=%TIME_FIRST_PAINT%&tSessionRestored=%TIME_SESSION_RESTORED%"); + +/* preference for the locale picker */ +pref("extensions.getLocales.get.url", ""); +pref("extensions.compatability.locales.buildid", "0"); + +/* Don't let XPIProvider install distribution add-ons; we do our own thing on mobile. */ +pref("extensions.installDistroAddons", false); + +// Add-on content security policies. +pref("extensions.webextensions.base-content-security-policy", "script-src 'self' https://* moz-extension: blob: filesystem: 'unsafe-eval' 'unsafe-inline'; object-src 'self' https://* moz-extension: blob: filesystem:;"); +pref("extensions.webextensions.default-content-security-policy", "script-src 'self'; object-src 'self';"); + +/* block popups by default, and notify the user about blocked popups */ +pref("dom.disable_open_during_load", true); +pref("privacy.popups.showBrowserMessage", true); + +/* disable opening windows with the dialog feature */ +pref("dom.disable_window_open_dialog_feature", true); +pref("dom.disable_window_showModalDialog", true); +pref("dom.disable_window_print", true); +pref("dom.disable_window_find", true); + +pref("keyword.enabled", true); +pref("browser.fixup.domainwhitelist.localhost", true); + +pref("accessibility.typeaheadfind", false); +pref("accessibility.typeaheadfind.timeout", 5000); +pref("accessibility.typeaheadfind.flashBar", 1); +pref("accessibility.typeaheadfind.linksonly", false); +pref("accessibility.typeaheadfind.casesensitive", 0); +pref("accessibility.browsewithcaret_shortcut.enabled", false); + +// Whether the character encoding menu is under the main Firefox button. This +// preference is a string so that localizers can alter it. +pref("browser.menu.showCharacterEncoding", "chrome://browser/locale/browser.properties"); + +// pointer to the default engine name +pref("browser.search.defaultenginename", "chrome://browser/locale/region.properties"); +// SSL error page behaviour +pref("browser.ssl_override_behavior", 2); +pref("browser.xul.error_pages.expert_bad_cert", false); + +// ordering of search engines in the engine list. +pref("browser.search.order.1", "chrome://browser/locale/region.properties"); +pref("browser.search.order.2", "chrome://browser/locale/region.properties"); +pref("browser.search.order.3", "chrome://browser/locale/region.properties"); + +// Market-specific search defaults +pref("browser.search.geoSpecificDefaults", true); +pref("browser.search.geoSpecificDefaults.url", "https://search.services.mozilla.com/1/%APP%/%VERSION%/%CHANNEL%/%LOCALE%/%REGION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%"); + +// US specific default (used as a fallback if the geoSpecificDefaults request fails). +pref("browser.search.defaultenginename.US", "chrome://browser/locale/region.properties"); +pref("browser.search.order.US.1", "chrome://browser/locale/region.properties"); +pref("browser.search.order.US.2", "chrome://browser/locale/region.properties"); +pref("browser.search.order.US.3", "chrome://browser/locale/region.properties"); + +// disable updating +pref("browser.search.update", false); + +// disable search suggestions by default +pref("browser.search.suggest.enabled", false); +pref("browser.search.suggest.prompted", false); + +// tell the search service that we don't really expose the "current engine" +pref("browser.search.noCurrentEngine", true); + +// Control media casting & mirroring features +pref("browser.casting.enabled", true); +#ifdef RELEASE_OR_BETA +// Chromecast mirroring is broken (bug 1131084) +pref("browser.mirroring.enabled", false); +#else +pref("browser.mirroring.enabled", true); +#endif + +// Enable sparse localization by setting a few package locale overrides +pref("chrome.override_package.global", "browser"); +pref("chrome.override_package.mozapps", "browser"); +pref("chrome.override_package.passwordmgr", "browser"); + +// enable xul error pages +pref("browser.xul.error_pages.enabled", true); + +// disable color management +pref("gfx.color_management.mode", 0); + +// 0=fixed margin, 1=velocity bias, 2=dynamic resolution, 3=no margins, 4=prediction bias +pref("gfx.displayport.strategy", 1); + +// all of the following displayport strategy prefs will be divided by 1000 +// to obtain some multiplier which is then used in the strategy. +// fixed margin strategy options +pref("gfx.displayport.strategy_fm.multiplier", -1); // displayport dimension multiplier +pref("gfx.displayport.strategy_fm.danger_x", -1); // danger zone on x-axis when multiplied by viewport width +pref("gfx.displayport.strategy_fm.danger_y", -1); // danger zone on y-axis when multiplied by viewport height + +// velocity bias strategy options +pref("gfx.displayport.strategy_vb.multiplier", -1); // displayport dimension multiplier +pref("gfx.displayport.strategy_vb.threshold", -1); // velocity threshold in inches/frame +pref("gfx.displayport.strategy_vb.reverse_buffer", -1); // fraction of buffer to keep in reverse direction from scroll +pref("gfx.displayport.strategy_vb.danger_x_base", -1); // danger zone on x-axis when multiplied by viewport width +pref("gfx.displayport.strategy_vb.danger_y_base", -1); // danger zone on y-axis when multiplied by viewport height +pref("gfx.displayport.strategy_vb.danger_x_incr", -1); // additional danger zone on x-axis when multiplied by viewport width and velocity +pref("gfx.displayport.strategy_vb.danger_y_incr", -1); // additional danger zone on y-axis when multiplied by viewport height and velocity + +// prediction bias strategy options +pref("gfx.displayport.strategy_pb.threshold", -1); // velocity threshold in inches/frame + +// Allow 24-bit colour when the hardware supports it +pref("gfx.android.rgb16.force", false); + +// Allow GLContexts to be attached/detached from SurfaceTextures +pref("gfx.SurfaceTexture.detach.enabled", true); + +// don't allow JS to move and resize existing windows +pref("dom.disable_window_move_resize", true); + +// prevent click image resizing for nsImageDocument +pref("browser.enable_click_image_resizing", false); + +// open in tab preferences +// 0=default window, 1=current window/tab, 2=new window, 3=new tab in most window +pref("browser.link.open_external", 3); +pref("browser.link.open_newwindow", 3); +// 0=force all new windows to tabs, 1=don't force, 2=only force those with no features set +pref("browser.link.open_newwindow.restriction", 0); + +// show images option +// 0=never, 1=always, 2=cellular-only +pref("browser.image_blocking", 1); + +// controls which bits of private data to clear. by default we clear them all. +pref("privacy.item.cache", true); +pref("privacy.item.cookies", true); +pref("privacy.item.offlineApps", true); +pref("privacy.item.history", true); +pref("privacy.item.searchHistory", true); +pref("privacy.item.formdata", true); +pref("privacy.item.downloads", true); +pref("privacy.item.passwords", true); +pref("privacy.item.sessions", true); +pref("privacy.item.geolocation", true); +pref("privacy.item.siteSettings", true); +pref("privacy.item.syncAccount", true); + +// enable geo +pref("geo.enabled", true); + +// content sink control -- controls responsiveness during page load +// see https://bugzilla.mozilla.org/show_bug.cgi?id=481566#c9 +//pref("content.sink.enable_perf_mode", 2); // 0 - switch, 1 - interactive, 2 - perf +//pref("content.sink.pending_event_mode", 0); +//pref("content.sink.perf_deflect_count", 1000000); +//pref("content.sink.perf_parse_time", 50000000); + +// Disable the JS engine's gc on memory pressure, since we do one in the mobile +// browser (bug 669346). +pref("javascript.options.gc_on_memory_pressure", false); + +#ifdef MOZ_PKG_SPECIAL +// low memory devices +pref("javascript.options.mem.gc_high_frequency_heap_growth_max", 120); +pref("javascript.options.mem.gc_high_frequency_heap_growth_min", 120); +pref("javascript.options.mem.gc_high_frequency_high_limit_mb", 40); +pref("javascript.options.mem.gc_high_frequency_low_limit_mb", 10); +pref("javascript.options.mem.gc_low_frequency_heap_growth", 120); +pref("javascript.options.mem.high_water_mark", 16); +pref("javascript.options.mem.gc_allocation_threshold_mb", 3); +pref("javascript.options.mem.gc_min_empty_chunk_count", 1); +pref("javascript.options.mem.gc_max_empty_chunk_count", 2); +#else +pref("javascript.options.mem.high_water_mark", 32); +#endif + +pref("dom.max_chrome_script_run_time", 0); // disable slow script dialog for chrome +pref("dom.max_script_run_time", 20); + +// Absolute path to the devtools unix domain socket file used +// to communicate with a usb cable via adb forward. +pref("devtools.debugger.unix-domain-socket", "/data/data/@ANDROID_PACKAGE_NAME@/firefox-debugger-socket"); + +pref("devtools.remote.usb.enabled", false); +pref("devtools.remote.wifi.enabled", false); + +pref("font.size.inflation.minTwips", 0); + +// When true, zooming will be enabled on all sites, even ones that declare user-scalable=no. +pref("browser.ui.zoom.force-user-scalable", false); + +// When removing this Nightly flag, also remember to remove the flags surrounding this feature +// in GeckoPreferences and BrowserApp (see bug 1245930). +#ifdef NIGHTLY_BUILD +pref("ui.zoomedview.enabled", true); +#else +pref("ui.zoomedview.enabled", false); +#endif +pref("ui.zoomedview.keepLimitSize", 16); // value in layer pixels, used to not keep the large elements in the cluster list (Bug 1191041) +pref("ui.zoomedview.limitReadableSize", 8); // value in layer pixels +pref("ui.zoomedview.defaultZoomFactor", 2); +pref("ui.zoomedview.simplified", true); // Do not display all the zoomed view controls, do not use size heurisistic + +pref("ui.touch.radius.enabled", false); +pref("ui.touch.radius.leftmm", 3); +pref("ui.touch.radius.topmm", 5); +pref("ui.touch.radius.rightmm", 3); +pref("ui.touch.radius.bottommm", 2); +pref("ui.touch.radius.visitedWeight", 120); + +pref("ui.mouse.radius.enabled", false); +pref("ui.mouse.radius.leftmm", 3); +pref("ui.mouse.radius.topmm", 5); +pref("ui.mouse.radius.rightmm", 3); +pref("ui.mouse.radius.bottommm", 2); +pref("ui.mouse.radius.visitedWeight", 120); +pref("ui.mouse.radius.reposition", true); + +// The percentage of the screen that needs to be scrolled before toolbar +// manipulation is allowed. +pref("browser.ui.scroll-toolbar-threshold", 10); + +// Maximum distance from the point where the user pressed where we still +// look for text to select +pref("browser.ui.selection.distance", 250); + +// plugins +pref("plugin.disable", false); +pref("dom.ipc.plugins.enabled", false); + +// This pref isn't actually used anymore, but we're leaving this here to avoid changing +// the default so that we can migrate a user-set pref. See bug 885357. +pref("plugins.click_to_play", true); +// The default value for nsIPluginTag.enabledState (STATE_CLICKTOPLAY = 1) +pref("plugin.default.state", 1); + +// product URLs +// The breakpad report server to link to in about:crashes +pref("breakpad.reportURL", "https://crash-stats.mozilla.com/report/index/"); + +pref("app.support.baseURL", "https://support.mozilla.org/1/mobile/%VERSION%/%OS%/%LOCALE%/"); +pref("app.supportURL", "https://support.mozilla.org/1/mobile/%VERSION%/%OS%/%LOCALE%/mobile-help"); +pref("app.faqURL", "https://support.mozilla.org/1/mobile/%VERSION%/%OS%/%LOCALE%/faq"); + +// URL for feedback page +// This should be kept in sync with the "feedback_link" string defined in strings.xml.in +pref("app.feedbackURL", "https://input.mozilla.org/feedback/android/%VERSION%/%CHANNEL%/?utm_source=feedback-prompt"); + +pref("app.privacyURL", "https://www.mozilla.org/privacy/firefox/"); +pref("app.creditsURL", "https://www.mozilla.org/credits/"); +pref("app.channelURL", "https://www.mozilla.org/%LOCALE%/firefox/channel/"); +#if MOZ_UPDATE_CHANNEL == aurora +pref("app.releaseNotesURL", "https://www.mozilla.com/%LOCALE%/mobile/%VERSION%/auroranotes/"); +#elif MOZ_UPDATE_CHANNEL == beta +pref("app.releaseNotesURL", "https://www.mozilla.com/%LOCALE%/mobile/%VERSION%beta/releasenotes/"); +#else +pref("app.releaseNotesURL", "https://www.mozilla.com/%LOCALE%/mobile/%VERSION%/releasenotes/"); +#endif + +// Name of alternate about: page for certificate errors (when undefined, defaults to about:neterror) +pref("security.alternate_certificate_error_page", "certerror"); + +pref("security.warn_viewing_mixed", false); // Warning is disabled. See Bug 616712. + +// Block insecure active content on https pages +pref("security.mixed_content.block_active_content", true); + +// Enable pinning +pref("security.cert_pinning.enforcement_level", 1); + +// Only fetch OCSP for EV certificates +pref("security.OCSP.enabled", 2); + +// Override some named colors to avoid inverse OS themes +pref("ui.-moz-dialog", "#efebe7"); +pref("ui.-moz-dialogtext", "#101010"); +pref("ui.-moz-field", "#fff"); +pref("ui.-moz-fieldtext", "#1a1a1a"); +pref("ui.-moz-buttonhoverface", "#f3f0ed"); +pref("ui.-moz-buttonhovertext", "#101010"); +pref("ui.-moz-combobox", "#fff"); +pref("ui.-moz-comboboxtext", "#101010"); +pref("ui.buttonface", "#ece7e2"); +pref("ui.buttonhighlight", "#fff"); +pref("ui.buttonshadow", "#aea194"); +pref("ui.buttontext", "#101010"); +pref("ui.captiontext", "#101010"); +pref("ui.graytext", "#b1a598"); +pref("ui.highlight", "#fad184"); +pref("ui.highlighttext", "#1a1a1a"); +pref("ui.infobackground", "#f5f5b5"); +pref("ui.infotext", "#000"); +pref("ui.menu", "#f7f5f3"); +pref("ui.menutext", "#101010"); +pref("ui.threeddarkshadow", "#000"); +pref("ui.threedface", "#ece7e2"); +pref("ui.threedhighlight", "#fff"); +pref("ui.threedlightshadow", "#ece7e2"); +pref("ui.threedshadow", "#aea194"); +pref("ui.window", "#efebe7"); +pref("ui.windowtext", "#101010"); +pref("ui.windowframe", "#efebe7"); + +/* prefs used by the update timer system (including blocklist pings) */ +pref("app.update.timerFirstInterval", 30000); // milliseconds +pref("app.update.timerMinimumDelay", 30); // seconds + +// used by update service to decide whether or not to +// automatically download an update +pref("app.update.autodownload", "wifi"); +pref("app.update.url.android", "https://aus5.mozilla.org/update/4/%PRODUCT%/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/%MOZ_VERSION%/update.xml"); + +#ifdef MOZ_UPDATER +/* prefs used specifically for updating the app */ +pref("app.update.enabled", false); +pref("app.update.channel", "@MOZ_UPDATE_CHANNEL@"); + +#endif + +// replace newlines with spaces on paste into single-line text boxes +pref("editor.singleLine.pasteNewlines", 2); + +// threshold where a tap becomes a drag, in 1/240" reference pixels +// The names of the preferences are to be in sync with EventStateManager.cpp +pref("ui.dragThresholdX", 25); +pref("ui.dragThresholdY", 25); + +pref("layers.acceleration.disabled", false); +pref("layers.async-video.enabled", true); + +pref("apz.content_response_timeout", 600); +pref("apz.allow_immediate_handoff", false); +pref("apz.touch_start_tolerance", "0.06"); +pref("apz.axis_lock.breakout_angle", "0.7853982"); // PI / 4 (45 degrees) +// APZ physics settings reviewed by UX +pref("apz.axis_lock.mode", 1); // Use "strict" axis locking +pref("apz.fling_curve_function_x1", "0.59"); +pref("apz.fling_curve_function_y1", "0.46"); +pref("apz.fling_curve_function_x2", "0.05"); +pref("apz.fling_curve_function_y2", "1.00"); +pref("apz.fling_curve_threshold_inches_per_ms", "0.01"); +// apz.fling_friction and apz.fling_stopped_threshold are currently ignored by Fennec. +pref("apz.fling_friction", "0.004"); +pref("apz.fling_stopped_threshold", "0.0"); +pref("apz.max_velocity_inches_per_ms", "0.07"); +pref("apz.fling_accel_interval_ms", 750); +pref("apz.overscroll.enabled", true); + +pref("layers.progressive-paint", true); +pref("layers.low-precision-buffer", true); +pref("layers.low-precision-resolution", "0.25"); +pref("layers.low-precision-opacity", "1.0"); +// We want to limit layers for two reasons: +// 1) We can't scroll smoothly if we have to many draw calls +// 2) Pages that have too many layers consume too much memory and crash. +// By limiting the number of layers on mobile we're making the main thread +// work harder keep scrolling smooth and memory low. +pref("layers.max-active", 20); + +pref("notification.feature.enabled", true); +pref("dom.webnotifications.enabled", true); + +// prevent tooltips from showing up +pref("browser.chrome.toolbar_tips", false); + +// don't allow meta-refresh when backgrounded +pref("browser.meta_refresh_when_inactive.disabled", true); + +// prevent video elements from preloading too much data +pref("media.preload.default", 1); // default to preload none +pref("media.preload.auto", 2); // preload metadata if preload=auto +pref("media.cache_size", 32768); // 32MB media cache +// Try to save battery by not resuming reading from a connection until we fall +// below 10s of buffered data. +pref("media.cache_resume_threshold", 10); +pref("media.cache_readahead_limit", 30); + +// Number of video frames we buffer while decoding video. +// On Android this is decided by a similar value which varies for +// each OMX decoder |OMX_PARAM_PORTDEFINITIONTYPE::nBufferCountMin|. This +// number must be less than the OMX equivalent or gecko will think it is +// chronically starved of video frames. All decoders seen so far have a value +// of at least 4. +pref("media.video-queue.default-size", 3); + +// Enable the MediaCodec PlatformDecoderModule by default. +pref("media.android-media-codec.enabled", true); +pref("media.android-media-codec.preferred", true); +// Run decoder in seperate process. +pref("media.android-remote-codec.enabled", false); + +// Enable MSE +pref("media.mediasource.enabled", true); + +pref("media.mediadrm-widevinecdm.visible", true); + +#ifdef MOZ_EME +// Enable EME(Encrypted media extensions?) +pref("media.eme.enabled", false); +pref("media.eme.apiVisible", false); +#endif + +// optimize images memory usage +pref("image.downscale-during-decode.enabled", true); + +#ifdef MOZ_SAFE_BROWSING +pref("browser.safebrowsing.downloads.enabled", false); + +pref("browser.safebrowsing.id", @MOZ_APP_UA_NAME@); +#endif + +// True if this is the first time we are showing about:firstrun +pref("browser.firstrun.show.uidiscovery", true); +pref("browser.firstrun.show.localepicker", false); + +// True if you always want dump() to work +// +// On Android, you also need to do the following for the output +// to show up in logcat: +// +// $ adb shell stop +// $ adb shell setprop log.redirect-stdio true +// $ adb shell start +pref("browser.dom.window.dump.enabled", true); + +// controls if we want camera support +pref("device.camera.enabled", true); +pref("media.realtime_decoder.enabled", true); + +pref("javascript.options.showInConsole", true); + +pref("full-screen-api.enabled", true); + +pref("direct-texture.force.enabled", false); +pref("direct-texture.force.disabled", false); + +// This fraction in 1000ths of velocity remains after every animation frame when the velocity is low. +pref("ui.scrolling.friction_slow", -1); +// This fraction in 1000ths of velocity remains after every animation frame when the velocity is high. +pref("ui.scrolling.friction_fast", -1); +// The maximum velocity change factor between events, per ms, in 1000ths. +// Direction changes are excluded. +pref("ui.scrolling.max_event_acceleration", -1); +// The rate of deceleration when the surface has overscrolled, in 1000ths. +pref("ui.scrolling.overscroll_decel_rate", -1); +// The fraction of the surface which can be overscrolled before it must snap back, in 1000ths. +pref("ui.scrolling.overscroll_snap_limit", -1); +// The minimum amount of space that must be present for an axis to be considered scrollable, +// in 1/1000ths of pixels. +pref("ui.scrolling.min_scrollable_distance", -1); +// The axis lock mode for panning behaviour - set between standard, free and sticky +pref("ui.scrolling.axis_lock_mode", "standard"); +// Negate scroll, true will make the mouse scroll wheel move the screen the same direction as with most desktops or laptops. +pref("ui.scrolling.negate_wheel_scroll", true); +// Determine the dead zone for gamepad joysticks. Higher values result in larger dead zones; use a negative value to +// auto-detect based on reported hardware values +pref("ui.scrolling.gamepad_dead_zone", 115); + +// Prefs for fling acceleration +pref("ui.scrolling.fling_accel_interval", -1); +pref("ui.scrolling.fling_accel_base_multiplier", -1); +pref("ui.scrolling.fling_accel_supplemental_multiplier", -1); + +// Prefs for fling curving +pref("ui.scrolling.fling_curve_function_x1", -1); +pref("ui.scrolling.fling_curve_function_y1", -1); +pref("ui.scrolling.fling_curve_function_x2", -1); +pref("ui.scrolling.fling_curve_function_y2", -1); +pref("ui.scrolling.fling_curve_threshold_velocity", -1); +pref("ui.scrolling.fling_curve_max_velocity", -1); +pref("ui.scrolling.fling_curve_newton_iterations", -1); + +// Enable accessibility mode if platform accessibility is enabled. +pref("accessibility.accessfu.activate", 2); +pref("accessibility.accessfu.quicknav_modes", "Link,Heading,FormElement,Landmark,ListItem"); +// Active quicknav mode, index value of list from quicknav_modes +pref("accessibility.accessfu.quicknav_index", 0); +// Setting for an utterance order (0 - description first, 1 - description last). +pref("accessibility.accessfu.utterance", 1); +// Whether to skip images with empty alt text +pref("accessibility.accessfu.skip_empty_images", true); + +// Transmit UDP busy-work to the LAN when anticipating low latency +// network reads and on wifi to mitigate 802.11 Power Save Polling delays +pref("network.tickle-wifi.enabled", true); + +// Mobile manages state by autodetection +pref("network.manage-offline-status", true); + +// increase the timeout clamp for background tabs to 15 minutes +pref("dom.min_background_timeout_value", 900000); + +// Media plugins for libstagefright playback on android +pref("media.plugins.enabled", true); + +// Stagefright's OMXCodec::CreationFlags. The interesting flag values are: +// 0 = Let Stagefright choose hardware or software decoding (default) +// 8 = Force software decoding +// 16 = Force hardware decoding +pref("media.stagefright.omxcodec.flags", 0); + +// Coalesce touch events to prevent them from flooding the event queue +pref("dom.event.touch.coalescing.enabled", false); + +// default orientation for the app, default to undefined +// the java GeckoScreenOrientationListener needs this to be defined +pref("app.orientation.default", ""); + +// On memory pressure, release dirty but unused pages held by jemalloc +// back to the system. +pref("memory.free_dirty_pages", true); + +pref("layout.framevisibility.numscrollportwidths", 1); +pref("layout.framevisibility.numscrollportheights", 1); + +pref("layers.enable-tiles", true); + +// Enable the dynamic toolbar +pref("browser.chrome.dynamictoolbar", true); + +// Hide common parts of URLs like "www." or "http://" +pref("browser.urlbar.trimURLs", true); + +#ifdef MOZ_PKG_SPECIAL +// Disable webgl on ARMv6 because running the reftests takes +// too long for some reason (bug 843738) +pref("webgl.disabled", true); +#endif + +// initial web feed readers list +pref("browser.contentHandlers.types.0.title", "chrome://browser/locale/region.properties"); +pref("browser.contentHandlers.types.0.uri", "chrome://browser/locale/region.properties"); +pref("browser.contentHandlers.types.0.type", "application/vnd.mozilla.maybe.feed"); +pref("browser.contentHandlers.types.1.title", "chrome://browser/locale/region.properties"); +pref("browser.contentHandlers.types.1.uri", "chrome://browser/locale/region.properties"); +pref("browser.contentHandlers.types.1.type", "application/vnd.mozilla.maybe.feed"); +pref("browser.contentHandlers.types.2.title", "chrome://browser/locale/region.properties"); +pref("browser.contentHandlers.types.2.uri", "chrome://browser/locale/region.properties"); +pref("browser.contentHandlers.types.2.type", "application/vnd.mozilla.maybe.feed"); +pref("browser.contentHandlers.types.3.title", "chrome://browser/locale/region.properties"); +pref("browser.contentHandlers.types.3.uri", "chrome://browser/locale/region.properties"); +pref("browser.contentHandlers.types.3.type", "application/vnd.mozilla.maybe.feed"); + +// Shortnumber matching needed for e.g. Brazil: +// 01187654321 can be found with 87654321 +pref("dom.phonenumber.substringmatching.BR", 8); +pref("dom.phonenumber.substringmatching.CO", 10); +pref("dom.phonenumber.substringmatching.VE", 7); + +// Enable hardware-accelerated Skia canvas +pref("gfx.canvas.azure.backends", "skia"); +pref("gfx.canvas.azure.accelerated", true); + +// See ua-update.json.in for the packaged UA override list +pref("general.useragent.updates.enabled", true); +pref("general.useragent.updates.url", "https://dynamicua.cdn.mozilla.net/0/%APP_ID%"); +pref("general.useragent.updates.interval", 604800); // 1 week +pref("general.useragent.updates.retry", 86400); // 1 day + +// When true, phone number linkification is enabled. +pref("browser.ui.linkify.phone", false); + +// Enables/disables Spatial Navigation +pref("snav.enabled", true); + +// This url, if changed, MUST continue to point to an https url. Pulling arbitrary content to inject into +// this page over http opens us up to a man-in-the-middle attack that we'd rather not face. If you are a downstream +// repackager of this code using an alternate snippet url, please keep your users safe +pref("browser.snippets.updateUrl", "https://snippets.cdn.mozilla.net/json/%SNIPPETS_VERSION%/%NAME%/%VERSION%/%APPBUILDID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/"); + +// How frequently we check for new snippets, in seconds (1 day) +pref("browser.snippets.updateInterval", 86400); + +// URL used to check for user's country code. Please do not directly use this code or Snippets key. +// Contact MLS team for your own credentials. https://location.services.mozilla.com/contact +pref("browser.snippets.geoUrl", "https://location.services.mozilla.com/v1/country?key=fff72d56-b040-4205-9a11-82feda9d83a3"); + +// URL used to ping metrics with stats about which snippets have been shown +pref("browser.snippets.statsUrl", "https://snippets-stats.mozilla.org/mobile"); + +// These prefs require a restart to take effect. +pref("browser.snippets.enabled", true); +pref("browser.snippets.syncPromo.enabled", true); +pref("browser.snippets.firstrunHomepage.enabled", true); + +// The mode of home provider syncing. +// 0: Sync always +// 1: Sync only when on wifi +pref("home.sync.updateMode", 0); + +// How frequently to check if we should sync home provider data. +pref("home.sync.checkIntervalSecs", 3600); + +// Enable device storage API +pref("device.storage.enabled", true); + +// Enable meta-viewport support for font inflation code +pref("dom.meta-viewport.enabled", true); + +// Enable GMP support in the addon manager. +pref("media.gmp-provider.enabled", true); + +// The default color scheme in reader mode (light, dark, auto) +// auto = color automatically adjusts according to ambient light level +// (auto only works on platforms where the 'devicelight' event is enabled) +pref("reader.color_scheme", "auto"); + +// Color scheme values available in reader mode UI. +pref("reader.color_scheme.values", "[\"dark\",\"auto\",\"light\"]"); + +// Whether to use a vertical or horizontal toolbar. +pref("reader.toolbar.vertical", false); + +// Telemetry settings. +// Whether to use the unified telemetry behavior, requires a restart. +pref("toolkit.telemetry.unified", false); + +// Unified AccessibleCarets (touch-caret and selection-carets). +pref("layout.accessiblecaret.enabled", true); + +// AccessibleCaret CSS for the Android L style assets. +pref("layout.accessiblecaret.width", "22.0"); +pref("layout.accessiblecaret.height", "22.0"); +pref("layout.accessiblecaret.margin-left", "-11.5"); + +// Android needs to show the caret when long tapping on an empty content. +pref("layout.accessiblecaret.caret_shown_when_long_tapping_on_empty_content", true); + +// Androids carets are always tilt to match the text selection guideline. +pref("layout.accessiblecaret.always_tilt", true); + +// Selection change notifications generated by Javascript changes +// update active AccessibleCarets / UI interactions. +pref("layout.accessiblecaret.allow_script_change_updates", true); + +// Optionally provide haptic feedback on longPress selection events. +pref("layout.accessiblecaret.hapticfeedback", true); + +// Initial text selection on long-press is enhanced to provide +// a smarter phone-number selection for direct-dial ActionBar action. +pref("layout.accessiblecaret.extend_selection_for_phone_number", true); + +// Disable sending console to logcat on release builds. +#ifdef RELEASE_OR_BETA +pref("consoleservice.logcat", false); +#else +pref("consoleservice.logcat", true); +#endif + +#ifndef RELEASE_OR_BETA +// Enable VR on mobile, making it enable by default. +pref("dom.vr.enabled", true); +#endif + +pref("browser.tabs.showAudioPlayingIcon", true); + +pref("dom.serviceWorkers.enabled", false); +pref("dom.serviceWorkers.interception.enabled", false); +pref("dom.serviceWorkers.openWindow.enabled", false); + +pref("dom.push.debug", false); +// The upstream autopush endpoint must have the Google API key corresponding to +// the App's sender ID; we bake this assumption directly into the URL. +pref("dom.push.serverURL", "https://updates.push.services.mozilla.com/v1/gcm/@MOZ_ANDROID_GCM_SENDERID@"); +pref("dom.push.maxRecentMessageIDsPerSubscription", 0); + +#ifdef MOZ_ANDROID_GCM +pref("dom.push.enabled", false); +#endif + +// The remote content URL where FxAccountsWebChannel messages originate. Must use HTTPS. +pref("identity.fxaccounts.remote.webchannel.uri", "https://accounts.firefox.com"); + +// The remote URL of the Firefox Account profile server. +pref("identity.fxaccounts.remote.profile.uri", "https://profile.accounts.firefox.com/v1"); + +// The remote URL of the Firefox Account oauth server. +pref("identity.fxaccounts.remote.oauth.uri", "https://oauth.accounts.firefox.com/v1"); + +// Token server used by Firefox Account-authenticated Sync. +pref("identity.sync.tokenserver.uri", "https://token.services.mozilla.com/1.0/sync/1.5"); + +// Enable Presentation API +pref("dom.presentation.enabled", false); +pref("dom.presentation.discovery.enabled", true); +pref("dom.presentation.discovery.legacy.enabled", true); // for TV 2.5 backward capability + +pref("dom.audiochannel.audioCompeting", true); +pref("dom.audiochannel.mediaControl", true); + +// Space separated list of URLS that are allowed to send objects (instead of +// only strings) through webchannels. This list is duplicated in browser/app/profile/firefox.js +pref("webchannel.allowObject.urlWhitelist", "https://accounts.firefox.com https://content.cdn.mozilla.net https://input.mozilla.org https://support.mozilla.org https://install.mozilla.org"); + +pref("media.openUnsupportedTypeWithExternalApp", true); diff --git a/mobile/android/app/moz.build b/mobile/android/app/moz.build new file mode 100644 index 0000000000..cfa46fe096 --- /dev/null +++ b/mobile/android/app/moz.build @@ -0,0 +1,30 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +for var in ('APP_NAME', 'APP_VERSION'): + DEFINES[var] = CONFIG['MOZ_%s' % var] + +for var in ('MOZ_UPDATER', 'MOZ_APP_UA_NAME', 'ANDROID_PACKAGE_NAME'): + DEFINES[var] = CONFIG[var] + +for var in ('MOZ_ANDROID_GCM', ): + if CONFIG[var]: + DEFINES[var] = 1 + +for var in ('MOZ_ANDROID_GCM_SENDERID', ): + if CONFIG[var]: + DEFINES[var] = CONFIG[var] + +if CONFIG['MOZ_PKG_SPECIAL']: + DEFINES['MOZ_PKG_SPECIAL'] = CONFIG['MOZ_PKG_SPECIAL'] + +JS_PREFERENCE_PP_FILES += [ + 'mobile.js', +] + +FINAL_TARGET_PP_FILES += [ + 'ua-update.json.in', +] diff --git a/mobile/android/app/omnijar/build.gradle b/mobile/android/app/omnijar/build.gradle new file mode 100644 index 0000000000..c5274a618a --- /dev/null +++ b/mobile/android/app/omnijar/build.gradle @@ -0,0 +1,33 @@ +buildDir "${topobjdir}/gradle/build/mobile/android/omnijar" + +apply plugin: 'java' + +// This project is a dummy project; the JAR produced is not used. The :app +// project uses the set of inputs here to check if the omnijar needs to be +// rebuilt. By listing them here as resource directories, IntelliJ labels each +// checked directly nicely. Why list the directories here? There's a mismatch +// between SourceDirectorySet and TaskInputs: the former is directory oriented, +// while the latter is more general. That means its easy to convert this list +// into inputs for :app, but not vice-versa. Sadly this implies that :app +// evaluation depends on :omnijar, but the evaluation overhead is low enough +// that we accept it. +sourceSets { + main { + // Depend on the Gecko resources in mobile/android. + resources { + srcDir "${topsrcdir}/mobile/android/chrome" + srcDir "${topsrcdir}/mobile/android/components" + srcDir "${topsrcdir}/mobile/android/locales" + srcDir "${topsrcdir}/mobile/android/modules" + srcDir "${topsrcdir}/mobile/android/themes" + srcDir "${topsrcdir}/toolkit" + } + } +} + +apply plugin: 'idea' + +idea { + module { + } +} diff --git a/mobile/android/app/src/androidTest/AndroidManifest.xml b/mobile/android/app/src/androidTest/AndroidManifest.xml new file mode 100644 index 0000000000..9478f5b079 --- /dev/null +++ b/mobile/android/app/src/androidTest/AndroidManifest.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mobile/android/app/src/test/java/org/mozilla/gecko/TestGeckoApplication.java b/mobile/android/app/src/test/java/org/mozilla/gecko/TestGeckoApplication.java new file mode 100644 index 0000000000..fee9a426d1 --- /dev/null +++ b/mobile/android/app/src/test/java/org/mozilla/gecko/TestGeckoApplication.java @@ -0,0 +1,27 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +package org.mozilla.gecko; + +import android.app.Application; + +import org.robolectric.TestLifecycleApplication; + +import java.lang.reflect.Method; + +/** + * GeckoApplication isn't test-lifecycle friendly: onCreate is called multiple times, which + * re-registers Gecko event listeners, which fails. This class is magically named so that + * Robolectric uses it instead of the application defined in the Android manifest. See + * http://robolectric.blogspot.ca/2013/04/the-test-lifecycle-in-20.html. + */ +public class TestGeckoApplication extends Application implements TestLifecycleApplication { + @Override public void beforeTest(Method method) { + } + + @Override public void prepareTest(Object test) { + } + + @Override public void afterTest(Method method) { + } +} diff --git a/mobile/android/app/ua-update.json.in b/mobile/android/app/ua-update.json.in new file mode 100644 index 0000000000..97f1b99a4d --- /dev/null +++ b/mobile/android/app/ua-update.json.in @@ -0,0 +1,15 @@ +#filter slashslash +// Everything after the first // on a line will be removed by the preproccesor. +// Send these sites a custom user-agent. Bugs should be included with an entry. +// NOTE: trailing commas are not valid JSON and will prevent the CDN from syncing. +{ + "weather.yahoo.co.jp": "Mozilla/5.0 (Linux; Android 5.0.2; Galaxy Nexus Build/IMM76B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.93 Mobile Safari/537.36", + // bug 1177298, lohaco.jp + "lohaco.jp": "Mozilla/5.0 (Linux; Android 5.0.2; Galaxy Nexus Build/IMM76B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.93 Mobile Safari/537.36", + // bug 1177298, www.nhk.or.jp + "nhk.or.jp": "\\)\\s# AppleWebKit ", + // bug 1177298, uniqlo.com + "uniqlo.com": "\\)\\s#) Mobile Safari ", + // bug 1338260, directv.com + "directv.com": "Mozilla/5.0 (Linux; Android 6.0.1; SM-G920F Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.91 Mobile Safari/537.36" +} diff --git a/mobile/android/base/AdjustConstants.java.in b/mobile/android/base/AdjustConstants.java.in new file mode 100644 index 0000000000..6388cbbf91 --- /dev/null +++ b/mobile/android/base/AdjustConstants.java.in @@ -0,0 +1,32 @@ +//#filter substitution +//#include @OBJDIR@/adjust_sdk_app_token +/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*- + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.gecko; + +import org.mozilla.gecko.adjust.AdjustHelperInterface; +//#ifdef MOZ_INSTALL_TRACKING +import org.mozilla.gecko.adjust.AdjustHelper; +//#else +import org.mozilla.gecko.adjust.StubAdjustHelper; +//#endif + +public class AdjustConstants { + public static final String MOZ_INSTALL_TRACKING_ADJUST_SDK_APP_TOKEN = +//#ifdef MOZ_INSTALL_TRACKING_ADJUST_SDK_APP_TOKEN + "@MOZ_INSTALL_TRACKING_ADJUST_SDK_APP_TOKEN@"; +//#else + null; +//#endif + + public static AdjustHelperInterface getAdjustHelper() { +//#ifdef MOZ_INSTALL_TRACKING + return new AdjustHelper(); +//#else + return new StubAdjustHelper(); +//#endif + } +} diff --git a/mobile/android/base/AndroidManifest.xml.in b/mobile/android/base/AndroidManifest.xml.in new file mode 100644 index 0000000000..0352c1ab68 --- /dev/null +++ b/mobile/android/base/AndroidManifest.xml.in @@ -0,0 +1,433 @@ +#filter substitution + + + + + +#include FennecManifest_permissions.xml.in + + +#else + android:debuggable="false"> +#endif + + + +#ifdef MOZ_NATIVE_DEVICES + + + + +#endif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#ifdef MOZ_ANDROID_BEAM + + + + + + +#endif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#include ../services/manifests/FxAccountAndroidManifest_activities.xml.in +#ifdef MOZ_ANDROID_SEARCH_ACTIVITY +#include ../search/manifests/SearchAndroidManifest_activities.xml.in +#endif + + + + + + + + + + + + + + + + + + +#ifdef MOZ_ANDROID_CUSTOM_TABS + +#endif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#ifdef MOZ_ANDROID_CUSTOM_TABS + + + + + +#endif + +#include ../services/manifests/FxAccountAndroidManifest_services.xml.in + + + + +#ifdef MOZ_ANDROID_SEARCH_ACTIVITY +#include ../search/manifests/SearchAndroidManifest_services.xml.in +#endif +#ifdef MOZ_ANDROID_MLS_STUMBLER +#include ../stumbler/manifests/StumblerManifest_services.xml.in +#endif + +#ifdef MOZ_ANDROID_GCM +#include GcmAndroidManifest_services.xml.in +#endif + + + + + + diff --git a/mobile/android/base/AppConstants.java.in b/mobile/android/base/AppConstants.java.in new file mode 100644 index 0000000000..21748e73ba --- /dev/null +++ b/mobile/android/base/AppConstants.java.in @@ -0,0 +1,342 @@ +//#filter substitution +/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*- + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.gecko; + +import android.content.Context; +import android.os.Build; +//#ifdef MOZ_BUILD_MOBILE_ANDROID_WITH_GRADLE +import android.support.multidex.MultiDex; +//#endif + +/** + * A collection of constants that pertain to the build and runtime state of the + * application. Typically these are sourced from build-time definitions (see + * Makefile.in). This is a Java-side substitute for nsIXULAppInfo, amongst + * other things. + * + * See also SysInfo.java, which includes some of the values available from + * nsSystemInfo inside Gecko. + */ +// Normally, we'd annotate with @RobocopTarget. Since AppConstants is compiled +// before RobocopTarget, we instead add o.m.g.AppConstants directly to the +// Proguard configuration. +public class AppConstants { + public static final String ANDROID_PACKAGE_NAME = "@ANDROID_PACKAGE_NAME@"; + public static final String MANGLED_ANDROID_PACKAGE_NAME = "@MANGLED_ANDROID_PACKAGE_NAME@"; + + public static final String MOZ_ANDROID_SHARED_FXACCOUNT_TYPE = "@ANDROID_PACKAGE_NAME@_fxaccount"; + + /** + * Encapsulates access to compile-time version definitions, allowing + * for dead code removal for particular APKs. + */ + public static final class Versions { + public static final int MIN_SDK_VERSION = @MOZ_ANDROID_MIN_SDK_VERSION@; + public static final int MAX_SDK_VERSION = +//#ifdef MOZ_ANDROID_MAX_SDK_VERSION + @MOZ_ANDROID_MAX_SDK_VERSION@; +//#else + 999; +//#endif + + /* + * The SDK_INT >= N check can only pass if our MAX_SDK_VERSION is + * _greater than or equal_ to that number, because otherwise we + * won't be installed on the device. + * + * If MIN_SDK_VERSION is greater than or equal to the number, there + * is no need to do the runtime check. + */ + public static final boolean feature16Plus = MIN_SDK_VERSION >= 16 || (MAX_SDK_VERSION >= 16 && Build.VERSION.SDK_INT >= 16); + public static final boolean feature17Plus = MIN_SDK_VERSION >= 17 || (MAX_SDK_VERSION >= 17 && Build.VERSION.SDK_INT >= 17); + public static final boolean feature19Plus = MIN_SDK_VERSION >= 19 || (MAX_SDK_VERSION >= 19 && Build.VERSION.SDK_INT >= 19); + public static final boolean feature20Plus = MIN_SDK_VERSION >= 20 || (MAX_SDK_VERSION >= 20 && Build.VERSION.SDK_INT >= 20); + public static final boolean feature21Plus = MIN_SDK_VERSION >= 21 || (MAX_SDK_VERSION >= 21 && Build.VERSION.SDK_INT >= 21); + + /* + * If our MIN_SDK_VERSION is 14 or higher, we must be an ICS device. + * If our MAX_SDK_VERSION is lower than ICS, we must not be an ICS device. + * Otherwise, we need a range check. + */ + public static final boolean preMarshmallow = MAX_SDK_VERSION < 23 || (MIN_SDK_VERSION < 23 && Build.VERSION.SDK_INT < 23); + public static final boolean preLollipop = MAX_SDK_VERSION < 21 || (MIN_SDK_VERSION < 21 && Build.VERSION.SDK_INT < 21); + public static final boolean preJBMR2 = MAX_SDK_VERSION < 18 || (MIN_SDK_VERSION < 18 && Build.VERSION.SDK_INT < 18); + public static final boolean preJBMR1 = MAX_SDK_VERSION < 17 || (MIN_SDK_VERSION < 17 && Build.VERSION.SDK_INT < 17); + public static final boolean preJB = MAX_SDK_VERSION < 16 || (MIN_SDK_VERSION < 16 && Build.VERSION.SDK_INT < 16); + public static final boolean preN = MAX_SDK_VERSION < 24 || (MIN_SDK_VERSION < 24 && Build.VERSION.SDK_INT < 24); + } + + /** + * The name of the Java class that represents the android application. + */ + public static final String MOZ_ANDROID_APPLICATION_CLASS = "@MOZ_ANDROID_APPLICATION_CLASS@"; + /** + * The name of the Java class that launches the browser activity. + */ + public static final String MOZ_ANDROID_BROWSER_INTENT_CLASS = "@MOZ_ANDROID_BROWSER_INTENT_CLASS@"; + /** + * The name of the Java class that launches the search activity. + */ + public static final String MOZ_ANDROID_SEARCH_INTENT_CLASS = "@MOZ_ANDROID_SEARCH_INTENT_CLASS@"; + + public static final String GRE_MILESTONE = "@GRE_MILESTONE@"; + + public static final String MOZ_APP_ABI = "@MOZ_APP_ABI@"; + public static final String MOZ_APP_BASENAME = "@MOZ_APP_BASENAME@"; + + // For the benefit of future archaeologists: + // GRE_BUILDID is exactly the same as MOZ_APP_BUILDID unless you're running + // on XULRunner, which is never the case on Android. + public static final String MOZ_APP_BUILDID = "@MOZ_BUILDID@"; + public static final String MOZ_APP_ID = "@MOZ_APP_ID@"; + public static final String MOZ_APP_NAME = "@MOZ_APP_NAME@"; + public static final String MOZ_APP_VENDOR = "@MOZ_APP_VENDOR@"; + public static final String MOZ_APP_VERSION = "@MOZ_APP_VERSION@"; + public static final String MOZ_APP_DISPLAYNAME = "@MOZ_APP_DISPLAYNAME@"; + // MOZ_APP_UA_NAME is already quoted when it gets substituted, like MOZILLA_VERSION. + public static final String MOZ_APP_UA_NAME = @MOZ_APP_UA_NAME@; + + // MOZILLA_VERSION is already quoted when it gets substituted in. If we + // add additional quotes we end up with ""x.y"", which is a syntax error. + public static final String MOZILLA_VERSION = @MOZILLA_VERSION@; + + public static final String MOZ_MOZILLA_API_KEY = "@MOZ_MOZILLA_API_KEY@"; + public static final boolean MOZ_STUMBLER_BUILD_TIME_ENABLED = +//#ifdef MOZ_ANDROID_MLS_STUMBLER + true; +//#else + false; +//#endif + + public static final boolean MOZ_ANDROID_GCM = +//#ifdef MOZ_ANDROID_GCM + true; +//#else + false; +//#endif + + public static final String MOZ_ANDROID_GCM_SENDERID = +//#ifdef MOZ_ANDROID_GCM_SENDERID + "@MOZ_ANDROID_GCM_SENDERID@"; +//#else + null; +//#endif + + public static final String MOZ_CHILD_PROCESS_NAME = "@MOZ_CHILD_PROCESS_NAME@"; + public static final String MOZ_UPDATE_CHANNEL = "@MOZ_UPDATE_CHANNEL@"; + public static final String OMNIJAR_NAME = "@OMNIJAR_NAME@"; + public static final String OS_TARGET = "@OS_TARGET@"; + public static final String TARGET_XPCOM_ABI = @TARGET_XPCOM_ABI@; + + public static final String USER_AGENT_BOT_LIKE = "Redirector/" + AppConstants.MOZ_APP_VERSION + + " (Android; rv:" + AppConstants.MOZ_APP_VERSION + ")"; + + public static final String USER_AGENT_FENNEC_MOBILE = "Mozilla/5.0 (Android " + + Build.VERSION.RELEASE + "; Mobile; rv:" + + AppConstants.MOZ_APP_VERSION + ") Gecko/" + + AppConstants.MOZ_APP_VERSION + " Firefox/" + + AppConstants.MOZ_APP_VERSION; + + public static final String USER_AGENT_FENNEC_TABLET = "Mozilla/5.0 (Android " + + Build.VERSION.RELEASE + "; Tablet; rv:" + + AppConstants.MOZ_APP_VERSION + ") Gecko/" + + AppConstants.MOZ_APP_VERSION + " Firefox/" + + AppConstants.MOZ_APP_VERSION; + + public static final int MOZ_MIN_CPU_VERSION = @MOZ_MIN_CPU_VERSION@; + + public static final boolean MOZ_ANDROID_ANR_REPORTER = +//#ifdef MOZ_ANDROID_ANR_REPORTER + true; +//#else + false; +//#endif + + public static final String MOZ_PKG_SPECIAL = +//#ifdef MOZ_PKG_SPECIAL + "@MOZ_PKG_SPECIAL@"; +//#else + null; +//#endif + + public static final boolean MOZ_EXCLUDE_HYPHENATION_DICTIONARIES = +//#ifdef MOZ_EXCLUDE_HYPHENATION_DICTIONARIES + true; +//#else + false; +//#endif + + public static final boolean MOZ_SERVICES_HEALTHREPORT = +//#ifdef MOZ_SERVICES_HEALTHREPORT + true; +//#else + false; +//#endif + + public static final boolean MOZ_TELEMETRY_ON_BY_DEFAULT = +//#ifdef MOZ_TELEMETRY_ON_BY_DEFAULT + true; +//#else + false; +//#endif + + public static final String TELEMETRY_PREF_NAME = + "toolkit.telemetry.enabled"; + + public static final boolean MOZ_TELEMETRY_REPORTING = +//#ifdef MOZ_TELEMETRY_REPORTING + true; +//#else + false; +//#endif + + public static final boolean MOZ_DATA_REPORTING = +//#ifdef MOZ_DATA_REPORTING + true; +//#else + false; +//#endif + + public static final boolean MOZ_LOCALE_SWITCHER = +//#ifdef MOZ_LOCALE_SWITCHER + true; +//#else + false; +//#endif + + public static final boolean MOZ_UPDATER = +//#ifdef MOZ_UPDATER + true; +//#else + false; +//#endif + + // Android Beam is only supported on API14+, so we don't even bother building + // it if this APK doesn't include API14 support. + public static final boolean MOZ_ANDROID_BEAM = +//#ifdef MOZ_ANDROID_BEAM + true; +//#else + false; +//#endif + + // See this wiki page for more details about channel specific build defines: + // https://wiki.mozilla.org/Platform/Channel-specific_build_defines + public static final boolean RELEASE_OR_BETA = +//#ifdef RELEASE_OR_BETA + true; +//#else + false; +//#endif + + public static final boolean NIGHTLY_BUILD = +//#ifdef NIGHTLY_BUILD + true; +//#else + false; +//#endif + + public static final boolean DEBUG_BUILD = +//#ifdef MOZ_DEBUG + true; +//#else + false; +//#endif + + public static final boolean MOZ_MEDIA_PLAYER = +//#ifdef MOZ_NATIVE_DEVICES + true; +//#else + false; +//#endif + + // Official corresponds, roughly, to whether this build is performed on + // Mozilla's continuous integration infrastructure. You should disable + // developer-only functionality when this flag is set. + public static final boolean MOZILLA_OFFICIAL = +//#ifdef MOZILLA_OFFICIAL + true; +//#else + false; +//#endif + + public static final boolean ANDROID_DOWNLOADS_INTEGRATION = +//#ifdef MOZ_ANDROID_DOWNLOADS_INTEGRATION + true; +//#else + false; +//#endif + + public static final boolean MOZ_DRAGGABLE_URLBAR = false; + + public static final boolean MOZ_INSTALL_TRACKING = +//#ifdef MOZ_INSTALL_TRACKING + true; +//#else + false; +//#endif + + public static final boolean MOZ_SWITCHBOARD = +//#ifdef MOZ_SWITCHBOARD + true; +//#else + false; +//#endif + + /** + * Target CPU architecture: "armeabi-v7a", "x86, "mips", .. + */ + public static final String ANDROID_CPU_ARCH = "@ANDROID_CPU_ARCH@"; + + public static final boolean MOZ_ANDROID_EXCLUDE_FONTS = +//#ifdef MOZ_ANDROID_EXCLUDE_FONTS + true; +//#else + false; +//#endif + + public static final boolean MOZ_ANDROID_DOWNLOAD_CONTENT_SERVICE = +//#ifdef MOZ_ANDROID_DOWNLOAD_CONTENT_SERVICE + true; +//#else + false; +//#endif + + public static final boolean MOZ_ANDROID_CUSTOM_TABS = +//#ifdef MOZ_ANDROID_CUSTOM_TABS + true; +//#else + false; +//#endif + + // (bug 1266820) Temporarily disabled since no one is working on it. + public static final boolean SCREENSHOTS_IN_BOOKMARKS_ENABLED = false; + + /** + * Enables multidex depending on build flags. For more information, + * see `multiDexEnabled true` in mobile/android/app/build.gradle. + * + * As a method, this shouldn't be in AppConstants, but it's + * the only semi-relevant Java file that we pre-process. + */ + public static void maybeInstallMultiDex(final Context context) { +//#ifdef MOZ_BUILD_MOBILE_ANDROID_WITH_GRADLE + if (BuildConfig.FLAVOR.equals("automation")) { + MultiDex.install(context); + } +//#else + // Do nothing. +//#endif + } + + public static final boolean MOZ_ANDROID_ACTIVITY_STREAM = +//#ifdef MOZ_ANDROID_ACTIVITY_STREAM + true; +//#else + false; +//#endif +} diff --git a/mobile/android/base/FennecManifest_permissions.xml.in b/mobile/android/base/FennecManifest_permissions.xml.in new file mode 100644 index 0000000000..cf3365582c --- /dev/null +++ b/mobile/android/base/FennecManifest_permissions.xml.in @@ -0,0 +1,65 @@ + + +#include ../services/manifests/FxAccountAndroidManifest_permissions.xml.in + +#ifdef MOZ_ANDROID_SEARCH_ACTIVITY +#include ../search/manifests/SearchAndroidManifest_permissions.xml.in +#endif + + +#include GcmAndroidManifest_permissions.xml.in + + + + + + + + + + + + + + + + +#ifdef MOZ_ANDROID_DOWNLOADS_INTEGRATION + +#endif + + + + + + + + +#ifdef MOZ_ANDROID_BEAM + + + +#endif + +#ifdef MOZ_WEBRTC + + + + +#endif + + + + + + diff --git a/mobile/android/base/GcmAndroidManifest_permissions.xml.in b/mobile/android/base/GcmAndroidManifest_permissions.xml.in new file mode 100644 index 0000000000..b6fe5fffa0 --- /dev/null +++ b/mobile/android/base/GcmAndroidManifest_permissions.xml.in @@ -0,0 +1,4 @@ + + diff --git a/mobile/android/base/GcmAndroidManifest_services.xml.in b/mobile/android/base/GcmAndroidManifest_services.xml.in new file mode 100644 index 0000000000..de1c77b3be --- /dev/null +++ b/mobile/android/base/GcmAndroidManifest_services.xml.in @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/mobile/android/base/Makefile.in b/mobile/android/base/Makefile.in new file mode 100644 index 0000000000..fe2f9d3ec2 --- /dev/null +++ b/mobile/android/base/Makefile.in @@ -0,0 +1,594 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# We call mach -> Make -> gradle -> mach, which races to find and +# create .mozconfig files and to generate targets. +ifdef MOZ_BUILD_MOBILE_ANDROID_WITH_GRADLE +.NOTPARALLEL: +endif + +MOZ_BUILDID := $(shell awk '{print $$3}' $(DEPTH)/buildid.h) + +# Set the appropriate version code, based on the existance of the +# MOZ_APP_ANDROID_VERSION_CODE variable. +ifdef MOZ_APP_ANDROID_VERSION_CODE + ANDROID_VERSION_CODE:=$(MOZ_APP_ANDROID_VERSION_CODE) +else + ANDROID_VERSION_CODE:=$(shell $(PYTHON) \ + $(topsrcdir)/python/mozbuild/mozbuild/android_version_code.py \ + --verbose \ + --with-android-cpu-arch=$(ANDROID_CPU_ARCH) \ + $(if $(MOZ_ANDROID_MIN_SDK_VERSION),--with-android-min-sdk=$(MOZ_ANDROID_MIN_SDK_VERSION)) \ + $(if $(MOZ_ANDROID_MAX_SDK_VERSION),--with-android-max-sdk=$(MOZ_ANDROID_MAX_SDK_VERSION)) \ + $(MOZ_BUILDID)) +endif + +DEFINES += \ + -DANDROID_VERSION_CODE=$(ANDROID_VERSION_CODE) \ + -DMOZ_ANDROID_SHARED_ID="$(MOZ_ANDROID_SHARED_ID)" \ + -DMOZ_BUILDID=$(MOZ_BUILDID) \ + $(NULL) + +GARBAGE += \ + classes.dex \ + gecko.ap_ \ + res/values/strings.xml \ + res/raw/browsersearch.json \ + res/raw/suggestedsites.json \ + .aapt.deps \ + GeneratedJNINatives.h \ + GeneratedJNIWrappers.cpp \ + GeneratedJNIWrappers.h \ + FennecJNINatives.h \ + FennecJNIWrappers.cpp \ + FennecJNIWrappers.h \ + $(NULL) + +GARBAGE_DIRS += classes db jars res sync services generated + +# The bootclasspath is functionally identical to the classpath, but allows the +# classes given to redefine classes in core packages, such as java.lang. +# android.jar is here as it provides Android's definition of the Java Standard +# Library. The compatability lib here tweaks a few of the core classes to paint +# over changes in behaviour between versions. +JAVA_BOOTCLASSPATH := \ + $(ANDROID_SDK)/android.jar \ + $(NULL) + +JAVA_BOOTCLASSPATH := $(subst $(NULL) ,:,$(strip $(JAVA_BOOTCLASSPATH))) + +JAVA_CLASSPATH += \ + $(ANDROID_SUPPORT_ANNOTATIONS_JAR_LIB) \ + $(ANDROID_SUPPORT_V4_AAR_LIB) \ + $(ANDROID_SUPPORT_V4_AAR_INTERNAL_LIB) \ + $(ANDROID_APPCOMPAT_V7_AAR_LIB) \ + $(ANDROID_SUPPORT_VECTOR_DRAWABLE_AAR_LIB) \ + $(ANDROID_ANIMATED_VECTOR_DRAWABLE_AAR_LIB) \ + $(ANDROID_CARDVIEW_V7_AAR_LIB) \ + $(ANDROID_DESIGN_AAR_LIB) \ + $(ANDROID_RECYCLERVIEW_V7_AAR_LIB) \ + $(ANDROID_CUSTOMTABS_AAR_LIB) \ + $(ANDROID_PALETTE_V7_AAR_LIB) \ + $(NULL) + +# If native devices are enabled, add Google Play Services and some of the v7 +# compat libraries. +ifdef MOZ_NATIVE_DEVICES + JAVA_CLASSPATH += \ + $(ANDROID_PLAY_SERVICES_BASE_AAR_LIB) \ + $(ANDROID_PLAY_SERVICES_BASEMENT_AAR_LIB) \ + $(ANDROID_PLAY_SERVICES_CAST_AAR_LIB) \ + $(ANDROID_MEDIAROUTER_V7_AAR_LIB) \ + $(ANDROID_MEDIAROUTER_V7_AAR_INTERNAL_LIB) \ + $(NULL) +endif + +ifdef MOZ_ANDROID_GCM + JAVA_CLASSPATH += \ + $(ANDROID_PLAY_SERVICES_BASE_AAR_LIB) \ + $(ANDROID_PLAY_SERVICES_BASEMENT_AAR_LIB) \ + $(ANDROID_PLAY_SERVICES_GCM_AAR_LIB) \ + $(ANDROID_PLAY_SERVICES_MEASUREMENT_AAR_LIB) \ + $(NULL) +endif + +ifdef MOZ_INSTALL_TRACKING + JAVA_CLASSPATH += \ + $(ANDROID_PLAY_SERVICES_ADS_AAR_LIB) \ + $(ANDROID_PLAY_SERVICES_BASEMENT_AAR_LIB) \ + $(NULL) +endif + +JAVA_CLASSPATH := $(subst $(NULL) ,:,$(strip $(JAVA_CLASSPATH))) + +# Library jars that we're bundling: these are subject to Proguard before inclusion +# into classes.dex. +java_bundled_libs := \ + $(ANDROID_SUPPORT_V4_AAR_LIB) \ + $(ANDROID_SUPPORT_V4_AAR_INTERNAL_LIB) \ + $(ANDROID_APPCOMPAT_V7_AAR_LIB) \ + $(ANDROID_SUPPORT_VECTOR_DRAWABLE_AAR_LIB) \ + $(ANDROID_ANIMATED_VECTOR_DRAWABLE_AAR_LIB) \ + $(ANDROID_CARDVIEW_V7_AAR_LIB) \ + $(ANDROID_DESIGN_AAR_LIB) \ + $(ANDROID_RECYCLERVIEW_V7_AAR_LIB) \ + $(ANDROID_CUSTOMTABS_AAR_LIB) \ + $(ANDROID_PALETTE_V7_AAR_LIB) \ + $(NULL) + +ifdef MOZ_NATIVE_DEVICES + java_bundled_libs += \ + $(ANDROID_PLAY_SERVICES_BASE_AAR_LIB) \ + $(ANDROID_PLAY_SERVICES_BASEMENT_AAR_LIB) \ + $(ANDROID_PLAY_SERVICES_CAST_AAR_LIB) \ + $(ANDROID_MEDIAROUTER_V7_AAR_LIB) \ + $(ANDROID_MEDIAROUTER_V7_AAR_INTERNAL_LIB) \ + $(NULL) +endif + +ifdef MOZ_ANDROID_GCM + java_bundled_libs += \ + $(ANDROID_PLAY_SERVICES_BASE_AAR_LIB) \ + $(ANDROID_PLAY_SERVICES_BASEMENT_AAR_LIB) \ + $(ANDROID_PLAY_SERVICES_GCM_AAR_LIB) \ + $(ANDROID_PLAY_SERVICES_MEASUREMENT_AAR_LIB) \ + $(NULL) +endif + +ifdef MOZ_INSTALL_TRACKING + java_bundled_libs += \ + $(ANDROID_PLAY_SERVICES_ADS_AAR_LIB) \ + $(ANDROID_PLAY_SERVICES_BASEMENT_AAR_LIB) \ + $(NULL) +endif + +# uniq purloined from http://stackoverflow.com/a/16151140. +uniq = $(if $1,$(firstword $1) $(call uniq,$(filter-out $(firstword $1),$1))) + +java_bundled_libs := $(call uniq,$(java_bundled_libs)) +java_bundled_libs := $(subst $(NULL) ,:,$(strip $(java_bundled_libs))) + +GECKOVIEW_JARS = \ + constants.jar \ + gecko-R.jar \ + gecko-mozglue.jar \ + gecko-util.jar \ + gecko-view.jar \ + sync-thirdparty.jar \ + $(NULL) + +ifdef MOZ_INSTALL_TRACKING +GECKOVIEW_JARS += gecko-thirdparty-adjust_sdk.jar +endif + +geckoview_jars_classpath := $(subst $(NULL) ,:,$(strip $(GECKOVIEW_JARS))) + +FENNEC_JARS = \ + gecko-browser.jar \ + gecko-thirdparty.jar \ + services.jar \ + ../javaaddons/javaaddons-1.0.jar \ + $(NULL) + +ifdef MOZ_WEBRTC +FENNEC_JARS += webrtc.jar +endif + +ifdef MOZ_ANDROID_SEARCH_ACTIVITY +FENNEC_JARS += search-activity.jar +endif + +ifdef MOZ_ANDROID_MLS_STUMBLER +FENNEC_JARS += ../stumbler/stumbler.jar +endif + +# All the jars we're compiling from source. (not to be confused with +# java_bundled_libs, which holds the jars which we're including as binaries). +ALL_JARS = \ + $(GECKOVIEW_JARS) \ + $(FENNEC_JARS) \ + $(NULL) + +# The list of jars in Java classpath notation (colon-separated). +all_jars_classpath := $(subst $(NULL) ,:,$(strip $(ALL_JARS))) + +include $(topsrcdir)/config/config.mk + +library_jars := \ + $(ANDROID_SDK)/android.jar \ + $(NULL) + +# Android 23 (Marshmallow) deprecated a part of the Android platform, namely the +# org.apache.http package. Fennec removed all code that referenced said package +# in order to easily ship to Android 23 devices (and, by extension, all devices +# before Android 23). +# +# Google did not remove all code that referenced said package in their own +# com.google.android.gms namespace! It turns out that the org.apache.http +# package is not removed, only deprecated and hidden by default. Google added a +# a `useLibrary` Gradle directive that allows legacy code to reference the +# package, which is still (hidden) in the Android 23 platform. +# +# Fennec code doesn't need to compile against the deprecated package, since our +# code doesn't reference the package anymore. However, we do need to Proguard +# against the deprecated package. If we don't, Proguard -- which is a global +# optimization -- sees Google libraries referencing "non-existent" libraries and +# complains. The solution is to mimic the `useLibraries` directive by declaring +# the legacy package as a provided library jar. +# +# See https://bugzilla.mozilla.org/show_bug.cgi?id=1233238#c19 for symptoms and +# more discussion. +ifdef MOZ_INSTALL_TRACKING +library_jars += $(ANDROID_SDK)/optional/org.apache.http.legacy.jar +endif # MOZ_INSTALL_TRACKING + +library_jars := $(subst $(NULL) ,:,$(strip $(library_jars))) + +gradle_dir := $(topobjdir)/gradle/build/mobile/android + +ifdef MOZ_BUILD_MOBILE_ANDROID_WITH_GRADLE +.gradle.deps: .aapt.deps FORCE + @$(TOUCH) $@ + $(topsrcdir)/mach gradle \ + app:assembleAutomationDebug app:assembleAutomationDebugAndroidTest -x lint + +classes.dex: .gradle.deps + $(REPORT_BUILD) + cp $(gradle_dir)/app/intermediates/transforms/dex/automation/debug/folders/1000/1f/main/classes.dex $@ +else +classes.dex: .proguard.deps + $(REPORT_BUILD) + $(DX) --dex --output=classes.dex jars-proguarded +endif + +ifdef MOZ_DISABLE_PROGUARD + PROGUARD_PASSES=0 +else + ifdef MOZ_DEBUG + PROGUARD_PASSES=1 + else + ifndef MOZILLA_OFFICIAL + PROGUARD_PASSES=1 + else + PROGUARD_PASSES=6 + endif + endif +endif + +proguard_config_dir=$(topsrcdir)/mobile/android/config/proguard + +# This stanza ensures that the set of GeckoView classes does not depend on too +# much of Fennec, where "too much" is defined as the set of potentially +# non-GeckoView classes that GeckoView already depended on at a certain point in +# time. The idea is to set a high-water mark that is not to be crossed. +classycle_jar := $(topsrcdir)/mobile/android/build/classycle/classycle-1.4.1.jar +.geckoview.deps: geckoview.ddf $(classycle_jar) $(ALL_JARS) + $(JAVA) -cp $(classycle_jar) \ + classycle.dependency.DependencyChecker \ + -mergeInnerClasses \ + -dependencies=@$< \ + $(ALL_JARS) + @$(TOUCH) $@ + +# First, we delete debugging information from libraries. Having line-number +# information for libraries for which we lack the source isn't useful, so this +# saves us a bit of space. Importantly, Proguard has a bug causing it to +# sometimes corrupt this information if present (which it does for some of the +# included libraries). This corruption prevents dex from completing, so we need +# to get rid of it. This prevents us from seeing line numbers in stack traces +# for stack frames inside libraries. +# +# This step can occur much earlier than the main Proguard pass: it needs only +# gecko-R.jar to have been compiled (as that's where the library R.java files +# end up), but it does block the main Proguard pass. +.bundled.proguard.deps: gecko-R.jar $(proguard_config_dir)/strip-libs.cfg + $(REPORT_BUILD) + @$(TOUCH) $@ + $(JAVA) \ + -Xmx512m -Xms128m \ + -jar $(ANDROID_SDK_ROOT)/tools/proguard/lib/proguard.jar \ + @$(proguard_config_dir)/strip-libs.cfg \ + -injars $(subst ::,:,$(java_bundled_libs))\ + -outjars bundled-jars-nodebug \ + -libraryjars $(library_jars):gecko-R.jar + +# We touch the target file before invoking Proguard so that Proguard's +# outputs are fresher than the target, preventing a subsequent +# invocation from thinking Proguard's outputs are stale. This is safe +# because Make removes the target file if any recipe command fails. +.proguard.deps: .geckoview.deps .bundled.proguard.deps $(ALL_JARS) $(proguard_config_dir)/proguard.cfg + $(REPORT_BUILD) + @$(TOUCH) $@ + $(JAVA) \ + -Xmx512m -Xms128m \ + -jar $(ANDROID_SDK_ROOT)/tools/proguard/lib/proguard.jar \ + @$(proguard_config_dir)/proguard.cfg \ + -optimizationpasses $(PROGUARD_PASSES) \ + -injars $(subst ::,:,$(all_jars_classpath)):bundled-jars-nodebug \ + -outjars jars-proguarded \ + -libraryjars $(library_jars) + +ANNOTATION_PROCESSOR_JAR_FILES := $(DEPTH)/build/annotationProcessors/annotationProcessors.jar + +# This annotation processing step also generates +# GeneratedJNIWrappers.h and GeneratedJNINatives.h +GeneratedJNIWrappers.cpp: $(ANNOTATION_PROCESSOR_JAR_FILES) $(GECKOVIEW_JARS) + $(JAVA) -classpath $(geckoview_jars_classpath):$(JAVA_BOOTCLASSPATH):$(JAVA_CLASSPATH):$(ANNOTATION_PROCESSOR_JAR_FILES) \ + org.mozilla.gecko.annotationProcessors.AnnotationProcessor \ + Generated $(GECKOVIEW_JARS) + +# This annotation processing step also generates +# FennecJNIWrappers.h and FennecJNINatives.h +FennecJNIWrappers.cpp: $(ANNOTATION_PROCESSOR_JAR_FILES) $(FENNEC_JARS) + $(JAVA) -classpath $(all_jars_classpath):$(JAVA_BOOTCLASSPATH):$(JAVA_CLASSPATH):$(ANNOTATION_PROCESSOR_JAR_FILES) \ + org.mozilla.gecko.annotationProcessors.AnnotationProcessor \ + Fennec $(FENNEC_JARS) + +# Certain source files need to be preprocessed. This special rule +# generates these files into generated/org/mozilla/gecko for +# consumption by the build system and IDEs. + +# The list in moz.build looks like +# 'preprocessed/org/mozilla/gecko/AppConstants.java'. The list in +# constants_PP_JAVAFILES looks like +# 'generated/preprocessed/org/mozilla/gecko/AppConstants.java'. We +# need to write AppConstants.java.in to +# generated/preprocessed/org/mozilla/gecko. +preprocessed := $(addsuffix .in,$(subst generated/preprocessed/org/mozilla/gecko/,,$(filter generated/preprocessed/org/mozilla/gecko/%,$(constants_PP_JAVAFILES)))) + +preprocessed_PATH := generated/preprocessed/org/mozilla/gecko +preprocessed_KEEP_PATH := 1 +preprocessed_FLAGS := --marker='//\\\#' + +PP_TARGETS += preprocessed + +include $(topsrcdir)/config/rules.mk + +not_android_res_files := \ + *.mkdir.done* \ + *.DS_Store* \ + *\#* \ + *.rej \ + *.orig \ + $(NULL) + +# This uses the fact that Android resource directories list all +# resource files one subdirectory below the parent resource directory. +android_res_files := $(filter-out $(not_android_res_files),$(wildcard $(addsuffix /*,$(wildcard $(addsuffix /*,$(ANDROID_RES_DIRS)))))) + +$(ANDROID_GENERATED_RESFILES): $(call mkdir_deps,$(sort $(dir $(ANDROID_GENERATED_RESFILES)))) + +# [Comment 1/3] We don't have correct dependencies for strings.xml at +# this point, so we always recursively invoke the submake to check the +# dependencies. Sigh. And, with multilocale builds, there will be +# multiple strings.xml files, and we need to rebuild gecko.ap_ if any +# of them change. But! mobile/android/base/locales does not have +# enough information to actually build res/values/strings.xml during a +# language repack. So rather than adding rules into the main +# makefile, and trying to work around the lack of information, we +# force a rebuild of gecko.ap_ during packaging. See below. + +# Since the sub-Make is forced, it doesn't matter that we touch the +# target file before the command. If in the future we stop forcing +# the sub-Make, touching the target file first is better, because the +# sub-Make outputs will be fresher than the target, and not require +# rebuilding. This is all safe because Make removes the target file +# if any recipe command fails. It is crucial that the sub-Make touch +# the target files (those depending on .locales.deps) only when there +# contents have changed; otherwise, this will force rebuild them as +# part of every build. +.locales.deps: FORCE + $(TOUCH) $@ + $(MAKE) -C locales + + +# This .deps pattern saves an invocation of the sub-Make: the single +# invocation generates strings.xml, browsersearch.json, and +# suggestedsites.json. The trailing semi-colon defines an empty +# recipe: defining no recipe at all causes Make to treat the target +# differently, in a way that defeats our dependencies. +res/values/strings.xml: .locales.deps ; +res/raw/browsersearch.json: .locales.deps ; +res/raw/suggestedsites.json: .locales.deps ; + +all_resources = \ + $(DEPTH)/mobile/android/base/AndroidManifest.xml \ + $(android_res_files) \ + $(ANDROID_GENERATED_RESFILES) \ + $(NULL) + +# All of generated/org/mozilla/gecko/R.java, gecko.ap_, and R.txt are +# produced by aapt; this saves aapt invocations. The trailing +# semi-colon defines an empty recipe; defining no recipe at all causes +# Make to treat the target differently, in a way that defeats our +# dependencies. + +generated/org/mozilla/gecko/R.java: .aapt.deps ; + +# Only add libraries that contain resources here. We (unecessarily) generate an identical R.java which +# is copied into each of these locations, and each of these files contains thousands of fields. +# Each unnecessary copy therefore wastes unnecessary fields in the output dex file. +# Note: usually proguard will help clean this up after the fact, but having too many fields will cause +# dexing to fail, regardless of any later optimisations proguard could later make to bring us back +# under the limit. +# Ideally we would fix our aapt invocations to correctly generate minimal copies of R.java for each +# package, but that seems redundant since gradle builds are able to correctly generate these files. + +# If native devices are enabled, add Google Play Services, build their resources +# (no resources) generated/android/support/v4/R.java: .aapt.deps ; +generated/android/support/v7/appcompat/R.java: .aapt.deps ; +# (no resources) generated/android/support/graphics/drawable/animated/R.java: .aapt.deps ; +# (no resources) generated/android/support/graphics/drawable/R.java: .aapt.deps ; +generated/android/support/v7/cardview/R.java: .aapt.deps ; +generated/android/support/design/R.java: .aapt.deps ; +generated/android/support/v7/mediarouter/R.java: .aapt.deps ; +generated/android/support/v7/recyclerview/R.java: .aapt.deps ; +# (no resources) generated/android/support/customtabs/R.java: .aapt.deps ; +# (no resources) generated/android/support/v7/palette/R.java: .aapt.deps ; +generated/com/google/android/gms/R.java: .aapt.deps ; +generated/com/google/android/gms/ads/R.java: .aapt.deps ; +generated/com/google/android/gms/base/R.java: .aapt.deps ; +generated/com/google/android/gms/cast/R.java: .aapt.deps ; +# (no resources) generated/com/google/android/gms/gcm/R.java: .aapt.deps ; +# (no resources) generated/com/google/android/gms/measurement/R.java: .aapt.deps ; + +gecko.ap_: .aapt.deps ; +R.txt: .aapt.deps ; + +# [Comment 2/3] This tom-foolery provides a target that forces a +# rebuild of gecko.ap_. This is used during packaging to ensure that +# resources are fresh. The alternative would be complicated; see +# [Comment 1/3]. + +gecko-nodeps/R.java: .aapt.nodeps ; +gecko-nodeps.ap_: .aapt.nodeps ; +gecko-nodeps/R.txt: .aapt.nodeps ; + +# This ignores the default set of resources ignored by aapt, plus +# files starting with '#'. (Emacs produces temp files named #temp#.) +# This doesn't actually set the environment variable; it's used as a +# parameter in the aapt invocation below. Consider updating +# not_android_res_files as well. + +ANDROID_AAPT_IGNORE := !.svn:!.git:.*:_*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~:\#*:*.rej:*.orig + +# 1: target file. +# 2: dependencies. +# 3: name of ap_ file to write. +# 4: directory to write R.java into. +# 5: directory to write R.txt into. +# We touch the target file before invoking aapt so that aapt's outputs +# are fresher than the target, preventing a subsequent invocation from +# thinking aapt's outputs are stale. This is safe because Make +# removes the target file if any recipe command fails. + +define aapt_command +$(1): $$(call mkdir_deps,$(filter-out ./,$(dir $(3) $(4) $(5)))) $(2) + @$$(TOUCH) $$@ + $$(AAPT) package -f -m \ + -M AndroidManifest.xml \ + -I $(ANDROID_SDK)/android.jar \ + $(if $(MOZ_ANDROID_MAX_SDK_VERSION),--max-res-version $(MOZ_ANDROID_MAX_SDK_VERSION),) \ + --auto-add-overlay \ + $$(addprefix -S ,$$(ANDROID_RES_DIRS)) \ + $$(addprefix -A ,$$(ANDROID_ASSETS_DIRS)) \ + $(if $(ANDROID_EXTRA_PACKAGES),--extra-packages $$(subst $$(NULL) ,:,$$(strip $$(ANDROID_EXTRA_PACKAGES)))) \ + $(if $(ANDROID_EXTRA_RES_DIRS),$$(addprefix -S ,$$(ANDROID_EXTRA_RES_DIRS))) \ + --custom-package org.mozilla.gecko \ + --no-version-vectors \ + -F $(3) \ + -J $(4) \ + --output-text-symbols $(5) \ + --ignore-assets "$$(ANDROID_AAPT_IGNORE)" +endef + +# [Comment 3/3] The first of these rules is used during regular +# builds. The second writes an ap_ file that is only used during +# packaging. It doesn't write the normal ap_, or R.java, since we +# don't want the packaging step to write anything that would make a +# further no-op build do work. See also +# toolkit/mozapps/installer/packager.mk. + +# .aapt.deps: $(all_resources) +$(eval $(call aapt_command,.aapt.deps,$(all_resources),gecko.ap_,generated/,./)) + +ifdef MOZ_BUILD_MOBILE_ANDROID_WITH_GRADLE +.aapt.nodeps: FORCE + cp $(gradle_dir)/app/intermediates/res/resources-automation-debug.ap_ gecko-nodeps.ap_ +else +# .aapt.nodeps: $(DEPTH)/mobile/android/base/AndroidManifest.xml FORCE +$(eval $(call aapt_command,.aapt.nodeps,$(DEPTH)/mobile/android/base/AndroidManifest.xml FORCE,gecko-nodeps.ap_,gecko-nodeps/,gecko-nodeps/)) +endif + +# Override the Java settings with some specific android settings +include $(topsrcdir)/config/android-common.mk + +update-generated-wrappers: + @cp $(CURDIR)/GeneratedJNIWrappers.cpp \ + $(CURDIR)/GeneratedJNIWrappers.h \ + $(CURDIR)/GeneratedJNINatives.h $(topsrcdir)/widget/android + @echo Updated generated JNI code + +update-fennec-wrappers: + @cp $(CURDIR)/FennecJNIWrappers.cpp \ + $(CURDIR)/FennecJNIWrappers.h \ + $(CURDIR)/FennecJNINatives.h $(topsrcdir)/widget/android/fennec + @echo Updated Fennec JNI code + +.PHONY: update-generated-wrappers + +# This target is only used by IDE integrations. It rebuilds resources +# that end up in omni.ja using the equivalent of |mach build faster|, +# does most of the packaging step, and then updates omni.ja in +# place. If you're not using an IDE, you should be using |mach build +# mobile/android && mach package|. +$(ABS_DIST)/fennec/$(OMNIJAR_NAME): FORCE + $(REPORT_BUILD) + $(MAKE) -C ../../../faster + $(MAKE) -C ../installer stage-package + $(MKDIR) -p $(@D) + rsync --update $(DIST)/fennec/$(notdir $(OMNIJAR_NAME)) $@ + $(RM) $(DIST)/fennec/$(notdir $(OMNIJAR_NAME)) + +# Targets built very early during a Gradle build. +gradle-targets: $(foreach f,$(constants_PP_JAVAFILES),$(f)) +gradle-targets: $(DEPTH)/mobile/android/base/AndroidManifest.xml +gradle-targets: $(ANDROID_GENERATED_RESFILES) + +ifndef MOZILLA_OFFICIAL +# Local developers update omni.ja during their builds. There's a +# chicken-and-egg problem here. +gradle-omnijar: $(abspath $(DIST)/fennec/$(OMNIJAR_NAME)) +else +# In automation, omni.ja is built only during packaging. +gradle-omnijar: +endif + +.PHONY: gradle-targets gradle-omnijar + +# GeneratedJNIWrappers.cpp target also generates +# GeneratedJNIWrappers.h and GeneratedJNINatives.h +# FennecJNIWrappers.cpp target also generates +# FennecJNIWrappers.h and FennecJNINatives.h +ifndef MOZ_BUILD_MOBILE_ANDROID_WITH_GRADLE +libs:: GeneratedJNIWrappers.cpp + @(diff GeneratedJNIWrappers.cpp $(topsrcdir)/widget/android/GeneratedJNIWrappers.cpp >/dev/null && \ + diff GeneratedJNIWrappers.h $(topsrcdir)/widget/android/GeneratedJNIWrappers.h >/dev/null && \ + diff GeneratedJNINatives.h $(topsrcdir)/widget/android/GeneratedJNINatives.h >/dev/null) || \ + (echo '*****************************************************' && \ + echo '*** Error: The generated JNI code has changed ***' && \ + echo '* To update generated code in the tree, please run *' && \ + echo && \ + echo ' make -C $(CURDIR) update-generated-wrappers' && \ + echo && \ + echo '* Repeat the build, and check in any changes. *' && \ + echo '*****************************************************' && \ + exit 1) + +libs:: FennecJNIWrappers.cpp + @(diff FennecJNIWrappers.cpp $(topsrcdir)/widget/android/fennec/FennecJNIWrappers.cpp >/dev/null && \ + diff FennecJNIWrappers.h $(topsrcdir)/widget/android/fennec/FennecJNIWrappers.h >/dev/null && \ + diff FennecJNINatives.h $(topsrcdir)/widget/android/fennec/FennecJNINatives.h >/dev/null) || \ + (echo '*****************************************************' && \ + echo '*** Error: The Fennec JNI code has changed ***' && \ + echo '* To update generated code in the tree, please run *' && \ + echo && \ + echo ' make -C $(CURDIR) update-fennec-wrappers' && \ + echo && \ + echo '* Repeat the build, and check in any changes. *' && \ + echo '*****************************************************' && \ + exit 1) +endif + +libs:: classes.dex + $(INSTALL) classes.dex $(FINAL_TARGET) + +# Generate Java binder interfaces from AIDL files. +aidl_src_path := $(srcdir)/aidl +aidl_target_path := generated +media_pkg := org/mozilla/gecko/media + +$(aidl_target_path)/$(media_pkg)/%.java:$(aidl_src_path)/$(media_pkg)/%.aidl + @echo "Processing AIDL: $< => $@" + $(AIDL) -p$(ANDROID_SDK)/framework.aidl -I$(aidl_src_path) -o$(aidl_target_path) $< diff --git a/mobile/android/base/adjust-sdk-sandbox.token b/mobile/android/base/adjust-sdk-sandbox.token new file mode 100644 index 0000000000..bb5bd50943 --- /dev/null +++ b/mobile/android/base/adjust-sdk-sandbox.token @@ -0,0 +1 @@ +ABCDEFGHIJKL diff --git a/mobile/android/base/adjust_sdk_app_token.in b/mobile/android/base/adjust_sdk_app_token.in new file mode 100644 index 0000000000..07ac44d3f4 --- /dev/null +++ b/mobile/android/base/adjust_sdk_app_token.in @@ -0,0 +1,3 @@ +//#ifdef MOZ_INSTALL_TRACKING +//#define MOZ_INSTALL_TRACKING_ADJUST_SDK_APP_TOKEN @MOZ_ADJUST_SDK_KEY@ +//#endif diff --git a/mobile/android/base/aidl/org/mozilla/gecko/media/FormatParam.aidl b/mobile/android/base/aidl/org/mozilla/gecko/media/FormatParam.aidl new file mode 100644 index 0000000000..91ce56d463 --- /dev/null +++ b/mobile/android/base/aidl/org/mozilla/gecko/media/FormatParam.aidl @@ -0,0 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.gecko.media; + +parcelable FormatParam; \ No newline at end of file diff --git a/mobile/android/base/aidl/org/mozilla/gecko/media/ICodec.aidl b/mobile/android/base/aidl/org/mozilla/gecko/media/ICodec.aidl new file mode 100644 index 0000000000..7b434a5b63 --- /dev/null +++ b/mobile/android/base/aidl/org/mozilla/gecko/media/ICodec.aidl @@ -0,0 +1,26 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.gecko.media; + +// Non-default types used in interface. +import android.os.Bundle; +import android.view.Surface; +import org.mozilla.gecko.media.FormatParam; +import org.mozilla.gecko.media.ICodecCallbacks; +import org.mozilla.gecko.media.Sample; + +interface ICodec { + void setCallbacks(in ICodecCallbacks callbacks); + boolean configure(in FormatParam format, inout Surface surface, int flags); + oneway void start(); + oneway void stop(); + oneway void flush(); + oneway void release(); + + Sample dequeueInput(int size); + oneway void queueInput(in Sample sample); + + oneway void releaseOutput(in Sample sample); +} diff --git a/mobile/android/base/aidl/org/mozilla/gecko/media/ICodecCallbacks.aidl b/mobile/android/base/aidl/org/mozilla/gecko/media/ICodecCallbacks.aidl new file mode 100644 index 0000000000..59e637f55e --- /dev/null +++ b/mobile/android/base/aidl/org/mozilla/gecko/media/ICodecCallbacks.aidl @@ -0,0 +1,16 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.gecko.media; + +// Non-default types used in interface. +import org.mozilla.gecko.media.FormatParam; +import org.mozilla.gecko.media.Sample; + +interface ICodecCallbacks { + oneway void onInputExhausted(); + oneway void onOutputFormatChanged(in FormatParam format); + oneway void onOutput(in Sample sample); + oneway void onError(boolean fatal); +} \ No newline at end of file diff --git a/mobile/android/base/aidl/org/mozilla/gecko/media/IMediaDrmBridge.aidl b/mobile/android/base/aidl/org/mozilla/gecko/media/IMediaDrmBridge.aidl new file mode 100644 index 0000000000..515e4b7d08 --- /dev/null +++ b/mobile/android/base/aidl/org/mozilla/gecko/media/IMediaDrmBridge.aidl @@ -0,0 +1,25 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.gecko.media; + +// Non-default types used in interface. +import org.mozilla.gecko.media.IMediaDrmBridgeCallbacks; + +interface IMediaDrmBridge { + void setCallbacks(in IMediaDrmBridgeCallbacks callbacks); + + oneway void createSession(int createSessionToken, + int promiseId, + String initDataType, + in byte[] initData); + + oneway void updateSession(int promiseId, + String sessionId, + in byte[] response); + + oneway void closeSession(int promiseId, String sessionId); + + oneway void release(); +} diff --git a/mobile/android/base/aidl/org/mozilla/gecko/media/IMediaDrmBridgeCallbacks.aidl b/mobile/android/base/aidl/org/mozilla/gecko/media/IMediaDrmBridgeCallbacks.aidl new file mode 100644 index 0000000000..b3918417e6 --- /dev/null +++ b/mobile/android/base/aidl/org/mozilla/gecko/media/IMediaDrmBridgeCallbacks.aidl @@ -0,0 +1,31 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.gecko.media; + +// Non-default types used in interface. +import org.mozilla.gecko.media.SessionKeyInfo; + +interface IMediaDrmBridgeCallbacks { + + oneway void onSessionCreated(int createSessionToken, + int promiseId, + in byte[] sessionId, + in byte[] request); + + oneway void onSessionUpdated(int promiseId, in byte[] sessionId); + + oneway void onSessionClosed(int promiseId, in byte[] sessionId); + + oneway void onSessionMessage(in byte[] sessionId, + int sessionMessageType, + in byte[] request); + + oneway void onSessionError(in byte[] sessionId, String message); + + oneway void onSessionBatchedKeyChanged(in byte[] sessionId, + in SessionKeyInfo[] keyInfos); + + oneway void onRejectPromise(int promiseId, String message); +} diff --git a/mobile/android/base/aidl/org/mozilla/gecko/media/IMediaManager.aidl b/mobile/android/base/aidl/org/mozilla/gecko/media/IMediaManager.aidl new file mode 100644 index 0000000000..023733d9db --- /dev/null +++ b/mobile/android/base/aidl/org/mozilla/gecko/media/IMediaManager.aidl @@ -0,0 +1,18 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.gecko.media; + +// Non-default types used in interface. +import org.mozilla.gecko.media.ICodec; +import org.mozilla.gecko.media.IMediaDrmBridge; + +interface IMediaManager { + /** Creates a remote ICodec object. */ + ICodec createCodec(); + + /** Creates a remote IMediaDrmBridge object. */ + IMediaDrmBridge createRemoteMediaDrmBridge(in String keySystem, + in String stubId); +} diff --git a/mobile/android/base/aidl/org/mozilla/gecko/media/Sample.aidl b/mobile/android/base/aidl/org/mozilla/gecko/media/Sample.aidl new file mode 100644 index 0000000000..0d55c76fc6 --- /dev/null +++ b/mobile/android/base/aidl/org/mozilla/gecko/media/Sample.aidl @@ -0,0 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.gecko.media; + +parcelable Sample; \ No newline at end of file diff --git a/mobile/android/base/aidl/org/mozilla/gecko/media/SessionKeyInfo.aidl b/mobile/android/base/aidl/org/mozilla/gecko/media/SessionKeyInfo.aidl new file mode 100644 index 0000000000..1ec8f63c73 --- /dev/null +++ b/mobile/android/base/aidl/org/mozilla/gecko/media/SessionKeyInfo.aidl @@ -0,0 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.gecko.media; + +parcelable SessionKeyInfo; \ No newline at end of file diff --git a/mobile/android/base/android-services.mozbuild b/mobile/android/base/android-services.mozbuild new file mode 100644 index 0000000000..118a0c44c9 --- /dev/null +++ b/mobile/android/base/android-services.mozbuild @@ -0,0 +1,1084 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +sync_thirdparty_java_files = [ + 'ch/boye/httpclientandroidlib/androidextra/Base64.java', + 'ch/boye/httpclientandroidlib/androidextra/HttpClientAndroidLog.java', + 'ch/boye/httpclientandroidlib/annotation/GuardedBy.java', + 'ch/boye/httpclientandroidlib/annotation/Immutable.java', + 'ch/boye/httpclientandroidlib/annotation/NotThreadSafe.java', + 'ch/boye/httpclientandroidlib/annotation/package-info.java', + 'ch/boye/httpclientandroidlib/annotation/ThreadSafe.java', + 'ch/boye/httpclientandroidlib/auth/AUTH.java', + 'ch/boye/httpclientandroidlib/auth/AuthenticationException.java', + 'ch/boye/httpclientandroidlib/auth/AuthOption.java', + 'ch/boye/httpclientandroidlib/auth/AuthProtocolState.java', + 'ch/boye/httpclientandroidlib/auth/AuthScheme.java', + 'ch/boye/httpclientandroidlib/auth/AuthSchemeFactory.java', + 'ch/boye/httpclientandroidlib/auth/AuthSchemeProvider.java', + 'ch/boye/httpclientandroidlib/auth/AuthSchemeRegistry.java', + 'ch/boye/httpclientandroidlib/auth/AuthScope.java', + 'ch/boye/httpclientandroidlib/auth/AuthState.java', + 'ch/boye/httpclientandroidlib/auth/BasicUserPrincipal.java', + 'ch/boye/httpclientandroidlib/auth/ChallengeState.java', + 'ch/boye/httpclientandroidlib/auth/ContextAwareAuthScheme.java', + 'ch/boye/httpclientandroidlib/auth/Credentials.java', + 'ch/boye/httpclientandroidlib/auth/InvalidCredentialsException.java', + 'ch/boye/httpclientandroidlib/auth/MalformedChallengeException.java', + 'ch/boye/httpclientandroidlib/auth/NTCredentials.java', + 'ch/boye/httpclientandroidlib/auth/NTUserPrincipal.java', + 'ch/boye/httpclientandroidlib/auth/package-info.java', + 'ch/boye/httpclientandroidlib/auth/params/AuthParamBean.java', + 'ch/boye/httpclientandroidlib/auth/params/AuthParams.java', + 'ch/boye/httpclientandroidlib/auth/params/AuthPNames.java', + 'ch/boye/httpclientandroidlib/auth/params/package-info.java', + 'ch/boye/httpclientandroidlib/auth/UsernamePasswordCredentials.java', + 'ch/boye/httpclientandroidlib/client/AuthCache.java', + 'ch/boye/httpclientandroidlib/client/AuthenticationHandler.java', + 'ch/boye/httpclientandroidlib/client/AuthenticationStrategy.java', + 'ch/boye/httpclientandroidlib/client/BackoffManager.java', + 'ch/boye/httpclientandroidlib/client/cache/CacheResponseStatus.java', + 'ch/boye/httpclientandroidlib/client/cache/HeaderConstants.java', + 'ch/boye/httpclientandroidlib/client/cache/HttpCacheContext.java', + 'ch/boye/httpclientandroidlib/client/cache/HttpCacheEntry.java', + 'ch/boye/httpclientandroidlib/client/cache/HttpCacheEntrySerializationException.java', + 'ch/boye/httpclientandroidlib/client/cache/HttpCacheEntrySerializer.java', + 'ch/boye/httpclientandroidlib/client/cache/HttpCacheInvalidator.java', + 'ch/boye/httpclientandroidlib/client/cache/HttpCacheStorage.java', + 'ch/boye/httpclientandroidlib/client/cache/HttpCacheUpdateCallback.java', + 'ch/boye/httpclientandroidlib/client/cache/HttpCacheUpdateException.java', + 'ch/boye/httpclientandroidlib/client/cache/InputLimit.java', + 'ch/boye/httpclientandroidlib/client/cache/Resource.java', + 'ch/boye/httpclientandroidlib/client/cache/ResourceFactory.java', + 'ch/boye/httpclientandroidlib/client/CircularRedirectException.java', + 'ch/boye/httpclientandroidlib/client/ClientProtocolException.java', + 'ch/boye/httpclientandroidlib/client/config/AuthSchemes.java', + 'ch/boye/httpclientandroidlib/client/config/CookieSpecs.java', + 'ch/boye/httpclientandroidlib/client/config/package-info.java', + 'ch/boye/httpclientandroidlib/client/config/RequestConfig.java', + 'ch/boye/httpclientandroidlib/client/ConnectionBackoffStrategy.java', + 'ch/boye/httpclientandroidlib/client/CookieStore.java', + 'ch/boye/httpclientandroidlib/client/CredentialsProvider.java', + 'ch/boye/httpclientandroidlib/client/entity/DecompressingEntity.java', + 'ch/boye/httpclientandroidlib/client/entity/DeflateDecompressingEntity.java', + 'ch/boye/httpclientandroidlib/client/entity/DeflateInputStream.java', + 'ch/boye/httpclientandroidlib/client/entity/EntityBuilder.java', + 'ch/boye/httpclientandroidlib/client/entity/GzipCompressingEntity.java', + 'ch/boye/httpclientandroidlib/client/entity/GzipDecompressingEntity.java', + 'ch/boye/httpclientandroidlib/client/entity/LazyDecompressingInputStream.java', + 'ch/boye/httpclientandroidlib/client/entity/package-info.java', + 'ch/boye/httpclientandroidlib/client/entity/UrlEncodedFormEntity.java', + 'ch/boye/httpclientandroidlib/client/HttpClient.java', + 'ch/boye/httpclientandroidlib/client/HttpRequestRetryHandler.java', + 'ch/boye/httpclientandroidlib/client/HttpResponseException.java', + 'ch/boye/httpclientandroidlib/client/methods/AbortableHttpRequest.java', + 'ch/boye/httpclientandroidlib/client/methods/AbstractExecutionAwareRequest.java', + 'ch/boye/httpclientandroidlib/client/methods/CloseableHttpResponse.java', + 'ch/boye/httpclientandroidlib/client/methods/Configurable.java', + 'ch/boye/httpclientandroidlib/client/methods/HttpDelete.java', + 'ch/boye/httpclientandroidlib/client/methods/HttpEntityEnclosingRequestBase.java', + 'ch/boye/httpclientandroidlib/client/methods/HttpExecutionAware.java', + 'ch/boye/httpclientandroidlib/client/methods/HttpGet.java', + 'ch/boye/httpclientandroidlib/client/methods/HttpHead.java', + 'ch/boye/httpclientandroidlib/client/methods/HttpOptions.java', + 'ch/boye/httpclientandroidlib/client/methods/HttpPatch.java', + 'ch/boye/httpclientandroidlib/client/methods/HttpPost.java', + 'ch/boye/httpclientandroidlib/client/methods/HttpPut.java', + 'ch/boye/httpclientandroidlib/client/methods/HttpRequestBase.java', + 'ch/boye/httpclientandroidlib/client/methods/HttpRequestWrapper.java', + 'ch/boye/httpclientandroidlib/client/methods/HttpTrace.java', + 'ch/boye/httpclientandroidlib/client/methods/HttpUriRequest.java', + 'ch/boye/httpclientandroidlib/client/methods/package-info.java', + 'ch/boye/httpclientandroidlib/client/methods/RequestBuilder.java', + 'ch/boye/httpclientandroidlib/client/NonRepeatableRequestException.java', + 'ch/boye/httpclientandroidlib/client/package-info.java', + 'ch/boye/httpclientandroidlib/client/params/AllClientPNames.java', + 'ch/boye/httpclientandroidlib/client/params/AuthPolicy.java', + 'ch/boye/httpclientandroidlib/client/params/ClientParamBean.java', + 'ch/boye/httpclientandroidlib/client/params/ClientPNames.java', + 'ch/boye/httpclientandroidlib/client/params/CookiePolicy.java', + 'ch/boye/httpclientandroidlib/client/params/HttpClientParamConfig.java', + 'ch/boye/httpclientandroidlib/client/params/HttpClientParams.java', + 'ch/boye/httpclientandroidlib/client/params/package-info.java', + 'ch/boye/httpclientandroidlib/client/protocol/ClientContext.java', + 'ch/boye/httpclientandroidlib/client/protocol/ClientContextConfigurer.java', + 'ch/boye/httpclientandroidlib/client/protocol/HttpClientContext.java', + 'ch/boye/httpclientandroidlib/client/protocol/package-info.java', + 'ch/boye/httpclientandroidlib/client/protocol/RequestAcceptEncoding.java', + 'ch/boye/httpclientandroidlib/client/protocol/RequestAddCookies.java', + 'ch/boye/httpclientandroidlib/client/protocol/RequestAuthCache.java', + 'ch/boye/httpclientandroidlib/client/protocol/RequestAuthenticationBase.java', + 'ch/boye/httpclientandroidlib/client/protocol/RequestClientConnControl.java', + 'ch/boye/httpclientandroidlib/client/protocol/RequestDefaultHeaders.java', + 'ch/boye/httpclientandroidlib/client/protocol/RequestExpectContinue.java', + 'ch/boye/httpclientandroidlib/client/protocol/RequestProxyAuthentication.java', + 'ch/boye/httpclientandroidlib/client/protocol/RequestTargetAuthentication.java', + 'ch/boye/httpclientandroidlib/client/protocol/ResponseAuthCache.java', + 'ch/boye/httpclientandroidlib/client/protocol/ResponseContentEncoding.java', + 'ch/boye/httpclientandroidlib/client/protocol/ResponseProcessCookies.java', + 'ch/boye/httpclientandroidlib/client/RedirectException.java', + 'ch/boye/httpclientandroidlib/client/RedirectHandler.java', + 'ch/boye/httpclientandroidlib/client/RedirectStrategy.java', + 'ch/boye/httpclientandroidlib/client/RequestDirector.java', + 'ch/boye/httpclientandroidlib/client/ResponseHandler.java', + 'ch/boye/httpclientandroidlib/client/ServiceUnavailableRetryStrategy.java', + 'ch/boye/httpclientandroidlib/client/UserTokenHandler.java', + 'ch/boye/httpclientandroidlib/client/utils/CloneUtils.java', + 'ch/boye/httpclientandroidlib/client/utils/DateUtils.java', + 'ch/boye/httpclientandroidlib/client/utils/HttpClientUtils.java', + 'ch/boye/httpclientandroidlib/client/utils/Idn.java', + 'ch/boye/httpclientandroidlib/client/utils/JdkIdn.java', + 'ch/boye/httpclientandroidlib/client/utils/package-info.java', + 'ch/boye/httpclientandroidlib/client/utils/Punycode.java', + 'ch/boye/httpclientandroidlib/client/utils/Rfc3492Idn.java', + 'ch/boye/httpclientandroidlib/client/utils/URIBuilder.java', + 'ch/boye/httpclientandroidlib/client/utils/URIUtils.java', + 'ch/boye/httpclientandroidlib/client/utils/URLEncodedUtils.java', + 'ch/boye/httpclientandroidlib/concurrent/BasicFuture.java', + 'ch/boye/httpclientandroidlib/concurrent/Cancellable.java', + 'ch/boye/httpclientandroidlib/concurrent/FutureCallback.java', + 'ch/boye/httpclientandroidlib/concurrent/package-info.java', + 'ch/boye/httpclientandroidlib/config/ConnectionConfig.java', + 'ch/boye/httpclientandroidlib/config/Lookup.java', + 'ch/boye/httpclientandroidlib/config/MessageConstraints.java', + 'ch/boye/httpclientandroidlib/config/package-info.java', + 'ch/boye/httpclientandroidlib/config/Registry.java', + 'ch/boye/httpclientandroidlib/config/RegistryBuilder.java', + 'ch/boye/httpclientandroidlib/config/SocketConfig.java', + 'ch/boye/httpclientandroidlib/conn/BasicEofSensorWatcher.java', + 'ch/boye/httpclientandroidlib/conn/BasicManagedEntity.java', + 'ch/boye/httpclientandroidlib/conn/ClientConnectionManager.java', + 'ch/boye/httpclientandroidlib/conn/ClientConnectionManagerFactory.java', + 'ch/boye/httpclientandroidlib/conn/ClientConnectionOperator.java', + 'ch/boye/httpclientandroidlib/conn/ClientConnectionRequest.java', + 'ch/boye/httpclientandroidlib/conn/ConnectionKeepAliveStrategy.java', + 'ch/boye/httpclientandroidlib/conn/ConnectionPoolTimeoutException.java', + 'ch/boye/httpclientandroidlib/conn/ConnectionReleaseTrigger.java', + 'ch/boye/httpclientandroidlib/conn/ConnectionRequest.java', + 'ch/boye/httpclientandroidlib/conn/ConnectTimeoutException.java', + 'ch/boye/httpclientandroidlib/conn/DnsResolver.java', + 'ch/boye/httpclientandroidlib/conn/EofSensorInputStream.java', + 'ch/boye/httpclientandroidlib/conn/EofSensorWatcher.java', + 'ch/boye/httpclientandroidlib/conn/HttpClientConnectionManager.java', + 'ch/boye/httpclientandroidlib/conn/HttpConnectionFactory.java', + 'ch/boye/httpclientandroidlib/conn/HttpHostConnectException.java', + 'ch/boye/httpclientandroidlib/conn/HttpInetSocketAddress.java', + 'ch/boye/httpclientandroidlib/conn/HttpRoutedConnection.java', + 'ch/boye/httpclientandroidlib/conn/ManagedClientConnection.java', + 'ch/boye/httpclientandroidlib/conn/ManagedHttpClientConnection.java', + 'ch/boye/httpclientandroidlib/conn/MultihomePlainSocketFactory.java', + 'ch/boye/httpclientandroidlib/conn/OperatedClientConnection.java', + 'ch/boye/httpclientandroidlib/conn/package-info.java', + 'ch/boye/httpclientandroidlib/conn/params/ConnConnectionParamBean.java', + 'ch/boye/httpclientandroidlib/conn/params/ConnConnectionPNames.java', + 'ch/boye/httpclientandroidlib/conn/params/ConnManagerParamBean.java', + 'ch/boye/httpclientandroidlib/conn/params/ConnManagerParams.java', + 'ch/boye/httpclientandroidlib/conn/params/ConnManagerPNames.java', + 'ch/boye/httpclientandroidlib/conn/params/ConnPerRoute.java', + 'ch/boye/httpclientandroidlib/conn/params/ConnPerRouteBean.java', + 'ch/boye/httpclientandroidlib/conn/params/ConnRouteParamBean.java', + 'ch/boye/httpclientandroidlib/conn/params/ConnRouteParams.java', + 'ch/boye/httpclientandroidlib/conn/params/ConnRoutePNames.java', + 'ch/boye/httpclientandroidlib/conn/params/package-info.java', + 'ch/boye/httpclientandroidlib/conn/routing/BasicRouteDirector.java', + 'ch/boye/httpclientandroidlib/conn/routing/HttpRoute.java', + 'ch/boye/httpclientandroidlib/conn/routing/HttpRouteDirector.java', + 'ch/boye/httpclientandroidlib/conn/routing/HttpRoutePlanner.java', + 'ch/boye/httpclientandroidlib/conn/routing/package-info.java', + 'ch/boye/httpclientandroidlib/conn/routing/RouteInfo.java', + 'ch/boye/httpclientandroidlib/conn/routing/RouteTracker.java', + 'ch/boye/httpclientandroidlib/conn/scheme/HostNameResolver.java', + 'ch/boye/httpclientandroidlib/conn/scheme/LayeredSchemeSocketFactory.java', + 'ch/boye/httpclientandroidlib/conn/scheme/LayeredSocketFactory.java', + 'ch/boye/httpclientandroidlib/conn/scheme/LayeredSocketFactoryAdaptor.java', + 'ch/boye/httpclientandroidlib/conn/scheme/package-info.java', + 'ch/boye/httpclientandroidlib/conn/scheme/PlainSocketFactory.java', + 'ch/boye/httpclientandroidlib/conn/scheme/Scheme.java', + 'ch/boye/httpclientandroidlib/conn/scheme/SchemeLayeredSocketFactory.java', + 'ch/boye/httpclientandroidlib/conn/scheme/SchemeLayeredSocketFactoryAdaptor.java', + 'ch/boye/httpclientandroidlib/conn/scheme/SchemeLayeredSocketFactoryAdaptor2.java', + 'ch/boye/httpclientandroidlib/conn/scheme/SchemeRegistry.java', + 'ch/boye/httpclientandroidlib/conn/scheme/SchemeSocketFactory.java', + 'ch/boye/httpclientandroidlib/conn/scheme/SchemeSocketFactoryAdaptor.java', + 'ch/boye/httpclientandroidlib/conn/scheme/SocketFactory.java', + 'ch/boye/httpclientandroidlib/conn/scheme/SocketFactoryAdaptor.java', + 'ch/boye/httpclientandroidlib/conn/SchemePortResolver.java', + 'ch/boye/httpclientandroidlib/conn/socket/ConnectionSocketFactory.java', + 'ch/boye/httpclientandroidlib/conn/socket/LayeredConnectionSocketFactory.java', + 'ch/boye/httpclientandroidlib/conn/socket/package-info.java', + 'ch/boye/httpclientandroidlib/conn/socket/PlainConnectionSocketFactory.java', + 'ch/boye/httpclientandroidlib/conn/ssl/AbstractVerifier.java', + 'ch/boye/httpclientandroidlib/conn/ssl/AllowAllHostnameVerifier.java', + 'ch/boye/httpclientandroidlib/conn/ssl/BrowserCompatHostnameVerifier.java', + 'ch/boye/httpclientandroidlib/conn/ssl/DistinguishedNameParser.java', + 'ch/boye/httpclientandroidlib/conn/ssl/package-info.java', + 'ch/boye/httpclientandroidlib/conn/ssl/PrivateKeyDetails.java', + 'ch/boye/httpclientandroidlib/conn/ssl/PrivateKeyStrategy.java', + 'ch/boye/httpclientandroidlib/conn/ssl/SSLConnectionSocketFactory.java', + 'ch/boye/httpclientandroidlib/conn/ssl/SSLContextBuilder.java', + 'ch/boye/httpclientandroidlib/conn/ssl/SSLContexts.java', + 'ch/boye/httpclientandroidlib/conn/ssl/SSLInitializationException.java', + 'ch/boye/httpclientandroidlib/conn/ssl/SSLSocketFactory.java', + 'ch/boye/httpclientandroidlib/conn/ssl/StrictHostnameVerifier.java', + 'ch/boye/httpclientandroidlib/conn/ssl/TokenParser.java', + 'ch/boye/httpclientandroidlib/conn/ssl/TrustSelfSignedStrategy.java', + 'ch/boye/httpclientandroidlib/conn/ssl/TrustStrategy.java', + 'ch/boye/httpclientandroidlib/conn/ssl/X509HostnameVerifier.java', + 'ch/boye/httpclientandroidlib/conn/UnsupportedSchemeException.java', + 'ch/boye/httpclientandroidlib/conn/util/InetAddressUtils.java', + 'ch/boye/httpclientandroidlib/conn/util/package-info.java', + 'ch/boye/httpclientandroidlib/ConnectionClosedException.java', + 'ch/boye/httpclientandroidlib/ConnectionReuseStrategy.java', + 'ch/boye/httpclientandroidlib/Consts.java', + 'ch/boye/httpclientandroidlib/ContentTooLongException.java', + 'ch/boye/httpclientandroidlib/cookie/ClientCookie.java', + 'ch/boye/httpclientandroidlib/cookie/Cookie.java', + 'ch/boye/httpclientandroidlib/cookie/CookieAttributeHandler.java', + 'ch/boye/httpclientandroidlib/cookie/CookieIdentityComparator.java', + 'ch/boye/httpclientandroidlib/cookie/CookieOrigin.java', + 'ch/boye/httpclientandroidlib/cookie/CookiePathComparator.java', + 'ch/boye/httpclientandroidlib/cookie/CookieRestrictionViolationException.java', + 'ch/boye/httpclientandroidlib/cookie/CookieSpec.java', + 'ch/boye/httpclientandroidlib/cookie/CookieSpecFactory.java', + 'ch/boye/httpclientandroidlib/cookie/CookieSpecProvider.java', + 'ch/boye/httpclientandroidlib/cookie/CookieSpecRegistry.java', + 'ch/boye/httpclientandroidlib/cookie/MalformedCookieException.java', + 'ch/boye/httpclientandroidlib/cookie/package-info.java', + 'ch/boye/httpclientandroidlib/cookie/params/CookieSpecParamBean.java', + 'ch/boye/httpclientandroidlib/cookie/params/CookieSpecPNames.java', + 'ch/boye/httpclientandroidlib/cookie/params/package-info.java', + 'ch/boye/httpclientandroidlib/cookie/SetCookie.java', + 'ch/boye/httpclientandroidlib/cookie/SetCookie2.java', + 'ch/boye/httpclientandroidlib/cookie/SM.java', + 'ch/boye/httpclientandroidlib/entity/AbstractHttpEntity.java', + 'ch/boye/httpclientandroidlib/entity/BasicHttpEntity.java', + 'ch/boye/httpclientandroidlib/entity/BufferedHttpEntity.java', + 'ch/boye/httpclientandroidlib/entity/ByteArrayEntity.java', + 'ch/boye/httpclientandroidlib/entity/ContentLengthStrategy.java', + 'ch/boye/httpclientandroidlib/entity/ContentProducer.java', + 'ch/boye/httpclientandroidlib/entity/ContentType.java', + 'ch/boye/httpclientandroidlib/entity/EntityTemplate.java', + 'ch/boye/httpclientandroidlib/entity/FileEntity.java', + 'ch/boye/httpclientandroidlib/entity/HttpEntityWrapper.java', + 'ch/boye/httpclientandroidlib/entity/InputStreamEntity.java', + 'ch/boye/httpclientandroidlib/entity/mime/AbstractMultipartForm.java', + 'ch/boye/httpclientandroidlib/entity/mime/content/AbstractContentBody.java', + 'ch/boye/httpclientandroidlib/entity/mime/content/ByteArrayBody.java', + 'ch/boye/httpclientandroidlib/entity/mime/content/ContentBody.java', + 'ch/boye/httpclientandroidlib/entity/mime/content/ContentDescriptor.java', + 'ch/boye/httpclientandroidlib/entity/mime/content/FileBody.java', + 'ch/boye/httpclientandroidlib/entity/mime/content/InputStreamBody.java', + 'ch/boye/httpclientandroidlib/entity/mime/content/package-info.java', + 'ch/boye/httpclientandroidlib/entity/mime/content/StringBody.java', + 'ch/boye/httpclientandroidlib/entity/mime/FormBodyPart.java', + 'ch/boye/httpclientandroidlib/entity/mime/Header.java', + 'ch/boye/httpclientandroidlib/entity/mime/HttpBrowserCompatibleMultipart.java', + 'ch/boye/httpclientandroidlib/entity/mime/HttpMultipartMode.java', + 'ch/boye/httpclientandroidlib/entity/mime/HttpRFC6532Multipart.java', + 'ch/boye/httpclientandroidlib/entity/mime/HttpStrictMultipart.java', + 'ch/boye/httpclientandroidlib/entity/mime/MIME.java', + 'ch/boye/httpclientandroidlib/entity/mime/MinimalField.java', + 'ch/boye/httpclientandroidlib/entity/mime/MultipartEntityBuilder.java', + 'ch/boye/httpclientandroidlib/entity/mime/MultipartFormEntity.java', + 'ch/boye/httpclientandroidlib/entity/mime/package-info.java', + 'ch/boye/httpclientandroidlib/entity/package-info.java', + 'ch/boye/httpclientandroidlib/entity/SerializableEntity.java', + 'ch/boye/httpclientandroidlib/entity/StringEntity.java', + 'ch/boye/httpclientandroidlib/FormattedHeader.java', + 'ch/boye/httpclientandroidlib/Header.java', + 'ch/boye/httpclientandroidlib/HeaderElement.java', + 'ch/boye/httpclientandroidlib/HeaderElementIterator.java', + 'ch/boye/httpclientandroidlib/HeaderIterator.java', + 'ch/boye/httpclientandroidlib/HttpClientConnection.java', + 'ch/boye/httpclientandroidlib/HttpConnection.java', + 'ch/boye/httpclientandroidlib/HttpConnectionFactory.java', + 'ch/boye/httpclientandroidlib/HttpConnectionMetrics.java', + 'ch/boye/httpclientandroidlib/HttpEntity.java', + 'ch/boye/httpclientandroidlib/HttpEntityEnclosingRequest.java', + 'ch/boye/httpclientandroidlib/HttpException.java', + 'ch/boye/httpclientandroidlib/HttpHeaders.java', + 'ch/boye/httpclientandroidlib/HttpHost.java', + 'ch/boye/httpclientandroidlib/HttpInetConnection.java', + 'ch/boye/httpclientandroidlib/HttpMessage.java', + 'ch/boye/httpclientandroidlib/HttpRequest.java', + 'ch/boye/httpclientandroidlib/HttpRequestFactory.java', + 'ch/boye/httpclientandroidlib/HttpRequestInterceptor.java', + 'ch/boye/httpclientandroidlib/HttpResponse.java', + 'ch/boye/httpclientandroidlib/HttpResponseFactory.java', + 'ch/boye/httpclientandroidlib/HttpResponseInterceptor.java', + 'ch/boye/httpclientandroidlib/HttpServerConnection.java', + 'ch/boye/httpclientandroidlib/HttpStatus.java', + 'ch/boye/httpclientandroidlib/HttpVersion.java', + 'ch/boye/httpclientandroidlib/impl/AbstractHttpClientConnection.java', + 'ch/boye/httpclientandroidlib/impl/AbstractHttpServerConnection.java', + 'ch/boye/httpclientandroidlib/impl/auth/AuthSchemeBase.java', + 'ch/boye/httpclientandroidlib/impl/auth/BasicScheme.java', + 'ch/boye/httpclientandroidlib/impl/auth/BasicSchemeFactory.java', + 'ch/boye/httpclientandroidlib/impl/auth/DigestScheme.java', + 'ch/boye/httpclientandroidlib/impl/auth/DigestSchemeFactory.java', + 'ch/boye/httpclientandroidlib/impl/auth/HttpAuthenticator.java', + 'ch/boye/httpclientandroidlib/impl/auth/HttpEntityDigester.java', + 'ch/boye/httpclientandroidlib/impl/auth/NTLMEngine.java', + 'ch/boye/httpclientandroidlib/impl/auth/NTLMEngineException.java', + 'ch/boye/httpclientandroidlib/impl/auth/NTLMEngineImpl.java', + 'ch/boye/httpclientandroidlib/impl/auth/NTLMScheme.java', + 'ch/boye/httpclientandroidlib/impl/auth/NTLMSchemeFactory.java', + 'ch/boye/httpclientandroidlib/impl/auth/package-info.java', + 'ch/boye/httpclientandroidlib/impl/auth/RFC2617Scheme.java', + 'ch/boye/httpclientandroidlib/impl/auth/SpnegoTokenGenerator.java', + 'ch/boye/httpclientandroidlib/impl/auth/UnsupportedDigestAlgorithmException.java', + 'ch/boye/httpclientandroidlib/impl/BHttpConnectionBase.java', + 'ch/boye/httpclientandroidlib/impl/client/AbstractAuthenticationHandler.java', + 'ch/boye/httpclientandroidlib/impl/client/AbstractHttpClient.java', + 'ch/boye/httpclientandroidlib/impl/client/AIMDBackoffManager.java', + 'ch/boye/httpclientandroidlib/impl/client/AuthenticationStrategyAdaptor.java', + 'ch/boye/httpclientandroidlib/impl/client/AuthenticationStrategyImpl.java', + 'ch/boye/httpclientandroidlib/impl/client/AutoRetryHttpClient.java', + 'ch/boye/httpclientandroidlib/impl/client/BasicAuthCache.java', + 'ch/boye/httpclientandroidlib/impl/client/BasicCookieStore.java', + 'ch/boye/httpclientandroidlib/impl/client/BasicCredentialsProvider.java', + 'ch/boye/httpclientandroidlib/impl/client/BasicResponseHandler.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/AsynchronousValidationRequest.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/AsynchronousValidator.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/BasicHttpCache.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/BasicHttpCacheStorage.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/BasicIdGenerator.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/CacheableRequestPolicy.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/CacheConfig.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/CachedHttpResponseGenerator.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/CachedResponseSuitabilityChecker.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/CacheEntity.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/CacheEntryUpdater.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/CacheInvalidator.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/CacheKeyGenerator.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/CacheMap.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/CacheValidityPolicy.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/CachingExec.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/CachingHttpClientBuilder.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/CachingHttpClients.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/CombinedEntity.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/ConditionalRequestBuilder.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/DefaultFailureCache.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/DefaultHttpCacheEntrySerializer.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/ExponentialBackOffSchedulingStrategy.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/FailureCache.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/FailureCacheValue.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/FileResource.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/FileResourceFactory.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/HeapResource.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/HeapResourceFactory.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/HttpCache.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/ImmediateSchedulingStrategy.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/IOUtils.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/ManagedHttpCacheStorage.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/OptionsHttp11Response.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/Proxies.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/RequestProtocolCompliance.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/RequestProtocolError.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/ResourceReference.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/ResponseCachingPolicy.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/ResponseProtocolCompliance.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/ResponseProxyHandler.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/SchedulingStrategy.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/SizeLimitedResponseReader.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/Variant.java', + 'ch/boye/httpclientandroidlib/impl/client/cache/WarningValue.java', + 'ch/boye/httpclientandroidlib/impl/client/ClientParamsStack.java', + 'ch/boye/httpclientandroidlib/impl/client/Clock.java', + 'ch/boye/httpclientandroidlib/impl/client/CloseableHttpClient.java', + 'ch/boye/httpclientandroidlib/impl/client/CloseableHttpResponseProxy.java', + 'ch/boye/httpclientandroidlib/impl/client/ContentEncodingHttpClient.java', + 'ch/boye/httpclientandroidlib/impl/client/DecompressingHttpClient.java', + 'ch/boye/httpclientandroidlib/impl/client/DefaultBackoffStrategy.java', + 'ch/boye/httpclientandroidlib/impl/client/DefaultConnectionKeepAliveStrategy.java', + 'ch/boye/httpclientandroidlib/impl/client/DefaultHttpClient.java', + 'ch/boye/httpclientandroidlib/impl/client/DefaultHttpRequestRetryHandler.java', + 'ch/boye/httpclientandroidlib/impl/client/DefaultProxyAuthenticationHandler.java', + 'ch/boye/httpclientandroidlib/impl/client/DefaultRedirectHandler.java', + 'ch/boye/httpclientandroidlib/impl/client/DefaultRedirectStrategy.java', + 'ch/boye/httpclientandroidlib/impl/client/DefaultRedirectStrategyAdaptor.java', + 'ch/boye/httpclientandroidlib/impl/client/DefaultRequestDirector.java', + 'ch/boye/httpclientandroidlib/impl/client/DefaultServiceUnavailableRetryStrategy.java', + 'ch/boye/httpclientandroidlib/impl/client/DefaultTargetAuthenticationHandler.java', + 'ch/boye/httpclientandroidlib/impl/client/DefaultUserTokenHandler.java', + 'ch/boye/httpclientandroidlib/impl/client/EntityEnclosingRequestWrapper.java', + 'ch/boye/httpclientandroidlib/impl/client/FutureRequestExecutionMetrics.java', + 'ch/boye/httpclientandroidlib/impl/client/FutureRequestExecutionService.java', + 'ch/boye/httpclientandroidlib/impl/client/HttpAuthenticator.java', + 'ch/boye/httpclientandroidlib/impl/client/HttpClientBuilder.java', + 'ch/boye/httpclientandroidlib/impl/client/HttpClients.java', + 'ch/boye/httpclientandroidlib/impl/client/HttpRequestFutureTask.java', + 'ch/boye/httpclientandroidlib/impl/client/HttpRequestTaskCallable.java', + 'ch/boye/httpclientandroidlib/impl/client/InternalHttpClient.java', + 'ch/boye/httpclientandroidlib/impl/client/LaxRedirectStrategy.java', + 'ch/boye/httpclientandroidlib/impl/client/MinimalHttpClient.java', + 'ch/boye/httpclientandroidlib/impl/client/NoopUserTokenHandler.java', + 'ch/boye/httpclientandroidlib/impl/client/NullBackoffStrategy.java', + 'ch/boye/httpclientandroidlib/impl/client/package-info.java', + 'ch/boye/httpclientandroidlib/impl/client/ProxyAuthenticationStrategy.java', + 'ch/boye/httpclientandroidlib/impl/client/ProxyClient.java', + 'ch/boye/httpclientandroidlib/impl/client/RedirectLocations.java', + 'ch/boye/httpclientandroidlib/impl/client/RequestWrapper.java', + 'ch/boye/httpclientandroidlib/impl/client/RoutedRequest.java', + 'ch/boye/httpclientandroidlib/impl/client/StandardHttpRequestRetryHandler.java', + 'ch/boye/httpclientandroidlib/impl/client/SystemClock.java', + 'ch/boye/httpclientandroidlib/impl/client/SystemDefaultCredentialsProvider.java', + 'ch/boye/httpclientandroidlib/impl/client/SystemDefaultHttpClient.java', + 'ch/boye/httpclientandroidlib/impl/client/TargetAuthenticationStrategy.java', + 'ch/boye/httpclientandroidlib/impl/client/TunnelRefusedException.java', + 'ch/boye/httpclientandroidlib/impl/conn/AbstractClientConnAdapter.java', + 'ch/boye/httpclientandroidlib/impl/conn/AbstractPooledConnAdapter.java', + 'ch/boye/httpclientandroidlib/impl/conn/AbstractPoolEntry.java', + 'ch/boye/httpclientandroidlib/impl/conn/BasicClientConnectionManager.java', + 'ch/boye/httpclientandroidlib/impl/conn/BasicHttpClientConnectionManager.java', + 'ch/boye/httpclientandroidlib/impl/conn/ConnectionShutdownException.java', + 'ch/boye/httpclientandroidlib/impl/conn/CPool.java', + 'ch/boye/httpclientandroidlib/impl/conn/CPoolEntry.java', + 'ch/boye/httpclientandroidlib/impl/conn/CPoolProxy.java', + 'ch/boye/httpclientandroidlib/impl/conn/DefaultClientConnection.java', + 'ch/boye/httpclientandroidlib/impl/conn/DefaultClientConnectionOperator.java', + 'ch/boye/httpclientandroidlib/impl/conn/DefaultHttpResponseParser.java', + 'ch/boye/httpclientandroidlib/impl/conn/DefaultHttpResponseParserFactory.java', + 'ch/boye/httpclientandroidlib/impl/conn/DefaultHttpRoutePlanner.java', + 'ch/boye/httpclientandroidlib/impl/conn/DefaultManagedHttpClientConnection.java', + 'ch/boye/httpclientandroidlib/impl/conn/DefaultProxyRoutePlanner.java', + 'ch/boye/httpclientandroidlib/impl/conn/DefaultResponseParser.java', + 'ch/boye/httpclientandroidlib/impl/conn/DefaultRoutePlanner.java', + 'ch/boye/httpclientandroidlib/impl/conn/DefaultSchemePortResolver.java', + 'ch/boye/httpclientandroidlib/impl/conn/HttpClientConnectionOperator.java', + 'ch/boye/httpclientandroidlib/impl/conn/HttpConnPool.java', + 'ch/boye/httpclientandroidlib/impl/conn/HttpPoolEntry.java', + 'ch/boye/httpclientandroidlib/impl/conn/IdleConnectionHandler.java', + 'ch/boye/httpclientandroidlib/impl/conn/InMemoryDnsResolver.java', + 'ch/boye/httpclientandroidlib/impl/conn/LoggingInputStream.java', + 'ch/boye/httpclientandroidlib/impl/conn/LoggingManagedHttpClientConnection.java', + 'ch/boye/httpclientandroidlib/impl/conn/LoggingOutputStream.java', + 'ch/boye/httpclientandroidlib/impl/conn/LoggingSessionInputBuffer.java', + 'ch/boye/httpclientandroidlib/impl/conn/LoggingSessionOutputBuffer.java', + 'ch/boye/httpclientandroidlib/impl/conn/ManagedClientConnectionImpl.java', + 'ch/boye/httpclientandroidlib/impl/conn/ManagedHttpClientConnectionFactory.java', + 'ch/boye/httpclientandroidlib/impl/conn/package-info.java', + 'ch/boye/httpclientandroidlib/impl/conn/PoolingClientConnectionManager.java', + 'ch/boye/httpclientandroidlib/impl/conn/PoolingHttpClientConnectionManager.java', + 'ch/boye/httpclientandroidlib/impl/conn/ProxySelectorRoutePlanner.java', + 'ch/boye/httpclientandroidlib/impl/conn/SchemeRegistryFactory.java', + 'ch/boye/httpclientandroidlib/impl/conn/SingleClientConnManager.java', + 'ch/boye/httpclientandroidlib/impl/conn/SystemDefaultDnsResolver.java', + 'ch/boye/httpclientandroidlib/impl/conn/SystemDefaultRoutePlanner.java', + 'ch/boye/httpclientandroidlib/impl/conn/tsccm/AbstractConnPool.java', + 'ch/boye/httpclientandroidlib/impl/conn/tsccm/BasicPooledConnAdapter.java', + 'ch/boye/httpclientandroidlib/impl/conn/tsccm/BasicPoolEntry.java', + 'ch/boye/httpclientandroidlib/impl/conn/tsccm/BasicPoolEntryRef.java', + 'ch/boye/httpclientandroidlib/impl/conn/tsccm/ConnPoolByRoute.java', + 'ch/boye/httpclientandroidlib/impl/conn/tsccm/package-info.java', + 'ch/boye/httpclientandroidlib/impl/conn/tsccm/PoolEntryRequest.java', + 'ch/boye/httpclientandroidlib/impl/conn/tsccm/RouteSpecificPool.java', + 'ch/boye/httpclientandroidlib/impl/conn/tsccm/ThreadSafeClientConnManager.java', + 'ch/boye/httpclientandroidlib/impl/conn/tsccm/WaitingThread.java', + 'ch/boye/httpclientandroidlib/impl/conn/tsccm/WaitingThreadAborter.java', + 'ch/boye/httpclientandroidlib/impl/conn/Wire.java', + 'ch/boye/httpclientandroidlib/impl/ConnSupport.java', + 'ch/boye/httpclientandroidlib/impl/cookie/AbstractCookieAttributeHandler.java', + 'ch/boye/httpclientandroidlib/impl/cookie/AbstractCookieSpec.java', + 'ch/boye/httpclientandroidlib/impl/cookie/BasicClientCookie.java', + 'ch/boye/httpclientandroidlib/impl/cookie/BasicClientCookie2.java', + 'ch/boye/httpclientandroidlib/impl/cookie/BasicCommentHandler.java', + 'ch/boye/httpclientandroidlib/impl/cookie/BasicDomainHandler.java', + 'ch/boye/httpclientandroidlib/impl/cookie/BasicExpiresHandler.java', + 'ch/boye/httpclientandroidlib/impl/cookie/BasicMaxAgeHandler.java', + 'ch/boye/httpclientandroidlib/impl/cookie/BasicPathHandler.java', + 'ch/boye/httpclientandroidlib/impl/cookie/BasicSecureHandler.java', + 'ch/boye/httpclientandroidlib/impl/cookie/BestMatchSpec.java', + 'ch/boye/httpclientandroidlib/impl/cookie/BestMatchSpecFactory.java', + 'ch/boye/httpclientandroidlib/impl/cookie/BrowserCompatSpec.java', + 'ch/boye/httpclientandroidlib/impl/cookie/BrowserCompatSpecFactory.java', + 'ch/boye/httpclientandroidlib/impl/cookie/BrowserCompatVersionAttributeHandler.java', + 'ch/boye/httpclientandroidlib/impl/cookie/CookieSpecBase.java', + 'ch/boye/httpclientandroidlib/impl/cookie/DateParseException.java', + 'ch/boye/httpclientandroidlib/impl/cookie/DateUtils.java', + 'ch/boye/httpclientandroidlib/impl/cookie/IgnoreSpec.java', + 'ch/boye/httpclientandroidlib/impl/cookie/IgnoreSpecFactory.java', + 'ch/boye/httpclientandroidlib/impl/cookie/NetscapeDomainHandler.java', + 'ch/boye/httpclientandroidlib/impl/cookie/NetscapeDraftHeaderParser.java', + 'ch/boye/httpclientandroidlib/impl/cookie/NetscapeDraftSpec.java', + 'ch/boye/httpclientandroidlib/impl/cookie/NetscapeDraftSpecFactory.java', + 'ch/boye/httpclientandroidlib/impl/cookie/package-info.java', + 'ch/boye/httpclientandroidlib/impl/cookie/PublicSuffixFilter.java', + 'ch/boye/httpclientandroidlib/impl/cookie/PublicSuffixListParser.java', + 'ch/boye/httpclientandroidlib/impl/cookie/RFC2109DomainHandler.java', + 'ch/boye/httpclientandroidlib/impl/cookie/RFC2109Spec.java', + 'ch/boye/httpclientandroidlib/impl/cookie/RFC2109SpecFactory.java', + 'ch/boye/httpclientandroidlib/impl/cookie/RFC2109VersionHandler.java', + 'ch/boye/httpclientandroidlib/impl/cookie/RFC2965CommentUrlAttributeHandler.java', + 'ch/boye/httpclientandroidlib/impl/cookie/RFC2965DiscardAttributeHandler.java', + 'ch/boye/httpclientandroidlib/impl/cookie/RFC2965DomainAttributeHandler.java', + 'ch/boye/httpclientandroidlib/impl/cookie/RFC2965PortAttributeHandler.java', + 'ch/boye/httpclientandroidlib/impl/cookie/RFC2965Spec.java', + 'ch/boye/httpclientandroidlib/impl/cookie/RFC2965SpecFactory.java', + 'ch/boye/httpclientandroidlib/impl/cookie/RFC2965VersionAttributeHandler.java', + 'ch/boye/httpclientandroidlib/impl/DefaultBHttpClientConnection.java', + 'ch/boye/httpclientandroidlib/impl/DefaultBHttpClientConnectionFactory.java', + 'ch/boye/httpclientandroidlib/impl/DefaultBHttpServerConnection.java', + 'ch/boye/httpclientandroidlib/impl/DefaultBHttpServerConnectionFactory.java', + 'ch/boye/httpclientandroidlib/impl/DefaultConnectionReuseStrategy.java', + 'ch/boye/httpclientandroidlib/impl/DefaultHttpClientConnection.java', + 'ch/boye/httpclientandroidlib/impl/DefaultHttpRequestFactory.java', + 'ch/boye/httpclientandroidlib/impl/DefaultHttpResponseFactory.java', + 'ch/boye/httpclientandroidlib/impl/DefaultHttpServerConnection.java', + 'ch/boye/httpclientandroidlib/impl/EnglishReasonPhraseCatalog.java', + 'ch/boye/httpclientandroidlib/impl/entity/DisallowIdentityContentLengthStrategy.java', + 'ch/boye/httpclientandroidlib/impl/entity/EntityDeserializer.java', + 'ch/boye/httpclientandroidlib/impl/entity/EntitySerializer.java', + 'ch/boye/httpclientandroidlib/impl/entity/LaxContentLengthStrategy.java', + 'ch/boye/httpclientandroidlib/impl/entity/package-info.java', + 'ch/boye/httpclientandroidlib/impl/entity/StrictContentLengthStrategy.java', + 'ch/boye/httpclientandroidlib/impl/execchain/BackoffStrategyExec.java', + 'ch/boye/httpclientandroidlib/impl/execchain/ClientExecChain.java', + 'ch/boye/httpclientandroidlib/impl/execchain/ConnectionHolder.java', + 'ch/boye/httpclientandroidlib/impl/execchain/HttpResponseProxy.java', + 'ch/boye/httpclientandroidlib/impl/execchain/MainClientExec.java', + 'ch/boye/httpclientandroidlib/impl/execchain/MinimalClientExec.java', + 'ch/boye/httpclientandroidlib/impl/execchain/package-info.java', + 'ch/boye/httpclientandroidlib/impl/execchain/ProtocolExec.java', + 'ch/boye/httpclientandroidlib/impl/execchain/RedirectExec.java', + 'ch/boye/httpclientandroidlib/impl/execchain/RequestAbortedException.java', + 'ch/boye/httpclientandroidlib/impl/execchain/RequestEntityProxy.java', + 'ch/boye/httpclientandroidlib/impl/execchain/ResponseEntityProxy.java', + 'ch/boye/httpclientandroidlib/impl/execchain/RetryExec.java', + 'ch/boye/httpclientandroidlib/impl/execchain/ServiceUnavailableRetryExec.java', + 'ch/boye/httpclientandroidlib/impl/execchain/TunnelRefusedException.java', + 'ch/boye/httpclientandroidlib/impl/HttpConnectionMetricsImpl.java', + 'ch/boye/httpclientandroidlib/impl/io/AbstractMessageParser.java', + 'ch/boye/httpclientandroidlib/impl/io/AbstractMessageWriter.java', + 'ch/boye/httpclientandroidlib/impl/io/AbstractSessionInputBuffer.java', + 'ch/boye/httpclientandroidlib/impl/io/AbstractSessionOutputBuffer.java', + 'ch/boye/httpclientandroidlib/impl/io/ChunkedInputStream.java', + 'ch/boye/httpclientandroidlib/impl/io/ChunkedOutputStream.java', + 'ch/boye/httpclientandroidlib/impl/io/ContentLengthInputStream.java', + 'ch/boye/httpclientandroidlib/impl/io/ContentLengthOutputStream.java', + 'ch/boye/httpclientandroidlib/impl/io/DefaultHttpRequestParser.java', + 'ch/boye/httpclientandroidlib/impl/io/DefaultHttpRequestParserFactory.java', + 'ch/boye/httpclientandroidlib/impl/io/DefaultHttpRequestWriter.java', + 'ch/boye/httpclientandroidlib/impl/io/DefaultHttpRequestWriterFactory.java', + 'ch/boye/httpclientandroidlib/impl/io/DefaultHttpResponseParser.java', + 'ch/boye/httpclientandroidlib/impl/io/DefaultHttpResponseParserFactory.java', + 'ch/boye/httpclientandroidlib/impl/io/DefaultHttpResponseWriter.java', + 'ch/boye/httpclientandroidlib/impl/io/DefaultHttpResponseWriterFactory.java', + 'ch/boye/httpclientandroidlib/impl/io/HttpRequestParser.java', + 'ch/boye/httpclientandroidlib/impl/io/HttpRequestWriter.java', + 'ch/boye/httpclientandroidlib/impl/io/HttpResponseParser.java', + 'ch/boye/httpclientandroidlib/impl/io/HttpResponseWriter.java', + 'ch/boye/httpclientandroidlib/impl/io/HttpTransportMetricsImpl.java', + 'ch/boye/httpclientandroidlib/impl/io/IdentityInputStream.java', + 'ch/boye/httpclientandroidlib/impl/io/IdentityOutputStream.java', + 'ch/boye/httpclientandroidlib/impl/io/package-info.java', + 'ch/boye/httpclientandroidlib/impl/io/SessionInputBufferImpl.java', + 'ch/boye/httpclientandroidlib/impl/io/SessionOutputBufferImpl.java', + 'ch/boye/httpclientandroidlib/impl/io/SocketInputBuffer.java', + 'ch/boye/httpclientandroidlib/impl/io/SocketOutputBuffer.java', + 'ch/boye/httpclientandroidlib/impl/NoConnectionReuseStrategy.java', + 'ch/boye/httpclientandroidlib/impl/package-info.java', + 'ch/boye/httpclientandroidlib/impl/pool/BasicConnFactory.java', + 'ch/boye/httpclientandroidlib/impl/pool/BasicConnPool.java', + 'ch/boye/httpclientandroidlib/impl/pool/BasicPoolEntry.java', + 'ch/boye/httpclientandroidlib/impl/pool/package-info.java', + 'ch/boye/httpclientandroidlib/impl/SocketHttpClientConnection.java', + 'ch/boye/httpclientandroidlib/impl/SocketHttpServerConnection.java', + 'ch/boye/httpclientandroidlib/io/BufferInfo.java', + 'ch/boye/httpclientandroidlib/io/EofSensor.java', + 'ch/boye/httpclientandroidlib/io/HttpMessageParser.java', + 'ch/boye/httpclientandroidlib/io/HttpMessageParserFactory.java', + 'ch/boye/httpclientandroidlib/io/HttpMessageWriter.java', + 'ch/boye/httpclientandroidlib/io/HttpMessageWriterFactory.java', + 'ch/boye/httpclientandroidlib/io/HttpTransportMetrics.java', + 'ch/boye/httpclientandroidlib/io/package-info.java', + 'ch/boye/httpclientandroidlib/io/SessionInputBuffer.java', + 'ch/boye/httpclientandroidlib/io/SessionOutputBuffer.java', + 'ch/boye/httpclientandroidlib/MalformedChunkCodingException.java', + 'ch/boye/httpclientandroidlib/message/AbstractHttpMessage.java', + 'ch/boye/httpclientandroidlib/message/BasicHeader.java', + 'ch/boye/httpclientandroidlib/message/BasicHeaderElement.java', + 'ch/boye/httpclientandroidlib/message/BasicHeaderElementIterator.java', + 'ch/boye/httpclientandroidlib/message/BasicHeaderIterator.java', + 'ch/boye/httpclientandroidlib/message/BasicHeaderValueFormatter.java', + 'ch/boye/httpclientandroidlib/message/BasicHeaderValueParser.java', + 'ch/boye/httpclientandroidlib/message/BasicHttpEntityEnclosingRequest.java', + 'ch/boye/httpclientandroidlib/message/BasicHttpRequest.java', + 'ch/boye/httpclientandroidlib/message/BasicHttpResponse.java', + 'ch/boye/httpclientandroidlib/message/BasicLineFormatter.java', + 'ch/boye/httpclientandroidlib/message/BasicLineParser.java', + 'ch/boye/httpclientandroidlib/message/BasicListHeaderIterator.java', + 'ch/boye/httpclientandroidlib/message/BasicNameValuePair.java', + 'ch/boye/httpclientandroidlib/message/BasicRequestLine.java', + 'ch/boye/httpclientandroidlib/message/BasicStatusLine.java', + 'ch/boye/httpclientandroidlib/message/BasicTokenIterator.java', + 'ch/boye/httpclientandroidlib/message/BufferedHeader.java', + 'ch/boye/httpclientandroidlib/message/HeaderGroup.java', + 'ch/boye/httpclientandroidlib/message/HeaderValueFormatter.java', + 'ch/boye/httpclientandroidlib/message/HeaderValueParser.java', + 'ch/boye/httpclientandroidlib/message/LineFormatter.java', + 'ch/boye/httpclientandroidlib/message/LineParser.java', + 'ch/boye/httpclientandroidlib/message/package-info.java', + 'ch/boye/httpclientandroidlib/message/ParserCursor.java', + 'ch/boye/httpclientandroidlib/MessageConstraintException.java', + 'ch/boye/httpclientandroidlib/MethodNotSupportedException.java', + 'ch/boye/httpclientandroidlib/NameValuePair.java', + 'ch/boye/httpclientandroidlib/NoHttpResponseException.java', + 'ch/boye/httpclientandroidlib/package-info.java', + 'ch/boye/httpclientandroidlib/params/AbstractHttpParams.java', + 'ch/boye/httpclientandroidlib/params/BasicHttpParams.java', + 'ch/boye/httpclientandroidlib/params/CoreConnectionPNames.java', + 'ch/boye/httpclientandroidlib/params/CoreProtocolPNames.java', + 'ch/boye/httpclientandroidlib/params/DefaultedHttpParams.java', + 'ch/boye/httpclientandroidlib/params/HttpAbstractParamBean.java', + 'ch/boye/httpclientandroidlib/params/HttpConnectionParamBean.java', + 'ch/boye/httpclientandroidlib/params/HttpConnectionParams.java', + 'ch/boye/httpclientandroidlib/params/HttpParamConfig.java', + 'ch/boye/httpclientandroidlib/params/HttpParams.java', + 'ch/boye/httpclientandroidlib/params/HttpParamsNames.java', + 'ch/boye/httpclientandroidlib/params/HttpProtocolParamBean.java', + 'ch/boye/httpclientandroidlib/params/HttpProtocolParams.java', + 'ch/boye/httpclientandroidlib/params/package-info.java', + 'ch/boye/httpclientandroidlib/params/SyncBasicHttpParams.java', + 'ch/boye/httpclientandroidlib/ParseException.java', + 'ch/boye/httpclientandroidlib/pool/AbstractConnPool.java', + 'ch/boye/httpclientandroidlib/pool/ConnFactory.java', + 'ch/boye/httpclientandroidlib/pool/ConnPool.java', + 'ch/boye/httpclientandroidlib/pool/ConnPoolControl.java', + 'ch/boye/httpclientandroidlib/pool/package-info.java', + 'ch/boye/httpclientandroidlib/pool/PoolEntry.java', + 'ch/boye/httpclientandroidlib/pool/PoolEntryCallback.java', + 'ch/boye/httpclientandroidlib/pool/PoolEntryFuture.java', + 'ch/boye/httpclientandroidlib/pool/PoolStats.java', + 'ch/boye/httpclientandroidlib/pool/RouteSpecificPool.java', + 'ch/boye/httpclientandroidlib/protocol/BasicHttpContext.java', + 'ch/boye/httpclientandroidlib/protocol/BasicHttpProcessor.java', + 'ch/boye/httpclientandroidlib/protocol/ChainBuilder.java', + 'ch/boye/httpclientandroidlib/protocol/DefaultedHttpContext.java', + 'ch/boye/httpclientandroidlib/protocol/ExecutionContext.java', + 'ch/boye/httpclientandroidlib/protocol/HTTP.java', + 'ch/boye/httpclientandroidlib/protocol/HttpContext.java', + 'ch/boye/httpclientandroidlib/protocol/HttpCoreContext.java', + 'ch/boye/httpclientandroidlib/protocol/HttpDateGenerator.java', + 'ch/boye/httpclientandroidlib/protocol/HttpExpectationVerifier.java', + 'ch/boye/httpclientandroidlib/protocol/HttpProcessor.java', + 'ch/boye/httpclientandroidlib/protocol/HttpProcessorBuilder.java', + 'ch/boye/httpclientandroidlib/protocol/HttpRequestExecutor.java', + 'ch/boye/httpclientandroidlib/protocol/HttpRequestHandler.java', + 'ch/boye/httpclientandroidlib/protocol/HttpRequestHandlerMapper.java', + 'ch/boye/httpclientandroidlib/protocol/HttpRequestHandlerRegistry.java', + 'ch/boye/httpclientandroidlib/protocol/HttpRequestHandlerResolver.java', + 'ch/boye/httpclientandroidlib/protocol/HttpRequestInterceptorList.java', + 'ch/boye/httpclientandroidlib/protocol/HttpResponseInterceptorList.java', + 'ch/boye/httpclientandroidlib/protocol/HttpService.java', + 'ch/boye/httpclientandroidlib/protocol/ImmutableHttpProcessor.java', + 'ch/boye/httpclientandroidlib/protocol/package-info.java', + 'ch/boye/httpclientandroidlib/protocol/RequestConnControl.java', + 'ch/boye/httpclientandroidlib/protocol/RequestContent.java', + 'ch/boye/httpclientandroidlib/protocol/RequestDate.java', + 'ch/boye/httpclientandroidlib/protocol/RequestExpectContinue.java', + 'ch/boye/httpclientandroidlib/protocol/RequestTargetHost.java', + 'ch/boye/httpclientandroidlib/protocol/RequestUserAgent.java', + 'ch/boye/httpclientandroidlib/protocol/ResponseConnControl.java', + 'ch/boye/httpclientandroidlib/protocol/ResponseContent.java', + 'ch/boye/httpclientandroidlib/protocol/ResponseDate.java', + 'ch/boye/httpclientandroidlib/protocol/ResponseServer.java', + 'ch/boye/httpclientandroidlib/protocol/SyncBasicHttpContext.java', + 'ch/boye/httpclientandroidlib/protocol/UriHttpRequestHandlerMapper.java', + 'ch/boye/httpclientandroidlib/protocol/UriPatternMatcher.java', + 'ch/boye/httpclientandroidlib/ProtocolException.java', + 'ch/boye/httpclientandroidlib/ProtocolVersion.java', + 'ch/boye/httpclientandroidlib/ReasonPhraseCatalog.java', + 'ch/boye/httpclientandroidlib/RequestLine.java', + 'ch/boye/httpclientandroidlib/StatusLine.java', + 'ch/boye/httpclientandroidlib/TokenIterator.java', + 'ch/boye/httpclientandroidlib/TruncatedChunkException.java', + 'ch/boye/httpclientandroidlib/UnsupportedHttpVersionException.java', + 'ch/boye/httpclientandroidlib/util/Args.java', + 'ch/boye/httpclientandroidlib/util/Asserts.java', + 'ch/boye/httpclientandroidlib/util/ByteArrayBuffer.java', + 'ch/boye/httpclientandroidlib/util/CharArrayBuffer.java', + 'ch/boye/httpclientandroidlib/util/CharsetUtils.java', + 'ch/boye/httpclientandroidlib/util/EncodingUtils.java', + 'ch/boye/httpclientandroidlib/util/EntityUtils.java', + 'ch/boye/httpclientandroidlib/util/ExceptionUtils.java', + 'ch/boye/httpclientandroidlib/util/LangUtils.java', + 'ch/boye/httpclientandroidlib/util/NetUtils.java', + 'ch/boye/httpclientandroidlib/util/package-info.java', + 'ch/boye/httpclientandroidlib/util/TextUtils.java', + 'ch/boye/httpclientandroidlib/util/VersionInfo.java', + 'org/json/simple/ItemList.java', + 'org/json/simple/JSONArray.java', + 'org/json/simple/JSONAware.java', + 'org/json/simple/JSONObject.java', + 'org/json/simple/JSONStreamAware.java', + 'org/json/simple/JSONValue.java', + 'org/json/simple/parser/ContainerFactory.java', + 'org/json/simple/parser/ContentHandler.java', + 'org/json/simple/parser/JSONParser.java', + 'org/json/simple/parser/ParseException.java', + 'org/json/simple/parser/Yylex.java', + 'org/json/simple/parser/Yytoken.java', + 'org/mozilla/apache/commons/codec/binary/Base32.java', + 'org/mozilla/apache/commons/codec/binary/Base32InputStream.java', + 'org/mozilla/apache/commons/codec/binary/Base32OutputStream.java', + 'org/mozilla/apache/commons/codec/binary/Base64.java', + 'org/mozilla/apache/commons/codec/binary/Base64InputStream.java', + 'org/mozilla/apache/commons/codec/binary/Base64OutputStream.java', + 'org/mozilla/apache/commons/codec/binary/BaseNCodec.java', + 'org/mozilla/apache/commons/codec/binary/BaseNCodecInputStream.java', + 'org/mozilla/apache/commons/codec/binary/BaseNCodecOutputStream.java', + 'org/mozilla/apache/commons/codec/binary/BinaryCodec.java', + 'org/mozilla/apache/commons/codec/binary/Hex.java', + 'org/mozilla/apache/commons/codec/binary/StringUtils.java', + 'org/mozilla/apache/commons/codec/BinaryDecoder.java', + 'org/mozilla/apache/commons/codec/BinaryEncoder.java', + 'org/mozilla/apache/commons/codec/CharEncoding.java', + 'org/mozilla/apache/commons/codec/Decoder.java', + 'org/mozilla/apache/commons/codec/DecoderException.java', + 'org/mozilla/apache/commons/codec/digest/DigestUtils.java', + 'org/mozilla/apache/commons/codec/Encoder.java', + 'org/mozilla/apache/commons/codec/EncoderException.java', + 'org/mozilla/apache/commons/codec/language/AbstractCaverphone.java', + 'org/mozilla/apache/commons/codec/language/Caverphone.java', + 'org/mozilla/apache/commons/codec/language/Caverphone1.java', + 'org/mozilla/apache/commons/codec/language/Caverphone2.java', + 'org/mozilla/apache/commons/codec/language/ColognePhonetic.java', + 'org/mozilla/apache/commons/codec/language/DoubleMetaphone.java', + 'org/mozilla/apache/commons/codec/language/Metaphone.java', + 'org/mozilla/apache/commons/codec/language/RefinedSoundex.java', + 'org/mozilla/apache/commons/codec/language/Soundex.java', + 'org/mozilla/apache/commons/codec/language/SoundexUtils.java', + 'org/mozilla/apache/commons/codec/net/BCodec.java', + 'org/mozilla/apache/commons/codec/net/QCodec.java', + 'org/mozilla/apache/commons/codec/net/QuotedPrintableCodec.java', + 'org/mozilla/apache/commons/codec/net/RFC1522Codec.java', + 'org/mozilla/apache/commons/codec/net/URLCodec.java', + 'org/mozilla/apache/commons/codec/net/Utils.java', + 'org/mozilla/apache/commons/codec/StringDecoder.java', + 'org/mozilla/apache/commons/codec/StringEncoder.java', + 'org/mozilla/apache/commons/codec/StringEncoderComparator.java', +] + +sync_java_files = [TOPSRCDIR + '/mobile/android/services/src/main/java/org/mozilla/gecko/' + x for x in [ + 'background/common/EditorBranch.java', + 'background/common/GlobalConstants.java', + 'background/common/log/Logger.java', + 'background/common/log/writers/AndroidLevelCachingLogWriter.java', + 'background/common/log/writers/AndroidLogWriter.java', + 'background/common/log/writers/LevelFilteringLogWriter.java', + 'background/common/log/writers/LogWriter.java', + 'background/common/log/writers/PrintLogWriter.java', + 'background/common/log/writers/SimpleTagLogWriter.java', + 'background/common/log/writers/StringLogWriter.java', + 'background/common/log/writers/TagLogWriter.java', + 'background/common/log/writers/ThreadLocalTagLogWriter.java', + 'background/common/PrefsBranch.java', + 'background/common/telemetry/TelemetryWrapper.java', + 'background/db/CursorDumper.java', + 'background/db/Tab.java', + 'background/fxa/FxAccount20CreateDelegate.java', + 'background/fxa/FxAccount20LoginDelegate.java', + 'background/fxa/FxAccountClient.java', + 'background/fxa/FxAccountClient20.java', + 'background/fxa/FxAccountClientException.java', + 'background/fxa/FxAccountRemoteError.java', + 'background/fxa/FxAccountUtils.java', + 'background/fxa/oauth/FxAccountAbstractClient.java', + 'background/fxa/oauth/FxAccountAbstractClientException.java', + 'background/fxa/oauth/FxAccountOAuthClient10.java', + 'background/fxa/oauth/FxAccountOAuthRemoteError.java', + 'background/fxa/PasswordStretcher.java', + 'background/fxa/profile/FxAccountProfileClient10.java', + 'background/fxa/QuickPasswordStretcher.java', + 'background/fxa/SkewHandler.java', + 'background/nativecode/NativeCrypto.java', + 'background/preferences/PreferenceFragment.java', + 'background/preferences/PreferenceManagerCompat.java', + 'background/ReadingListConstants.java', + 'browserid/ASNUtils.java', + 'browserid/BrowserIDKeyPair.java', + 'browserid/DSACryptoImplementation.java', + 'browserid/JSONWebTokenUtils.java', + 'browserid/MockMyIDTokenFactory.java', + 'browserid/RSACryptoImplementation.java', + 'browserid/SigningPrivateKey.java', + 'browserid/verifier/AbstractBrowserIDRemoteVerifierClient.java', + 'browserid/verifier/BrowserIDRemoteVerifierClient10.java', + 'browserid/verifier/BrowserIDRemoteVerifierClient20.java', + 'browserid/verifier/BrowserIDVerifierClient.java', + 'browserid/verifier/BrowserIDVerifierDelegate.java', + 'browserid/verifier/BrowserIDVerifierException.java', + 'browserid/VerifyingPublicKey.java', + 'fxa/AccountLoader.java', + 'fxa/activities/CustomColorPreference.java', + 'fxa/activities/FxAccountAbstractActivity.java', + 'fxa/activities/FxAccountConfirmAccountActivityWeb.java', + 'fxa/activities/FxAccountFinishMigratingActivityWeb.java', + 'fxa/activities/FxAccountGetStartedActivityWeb.java', + 'fxa/activities/FxAccountStatusActivity.java', + 'fxa/activities/FxAccountStatusFragment.java', + 'fxa/activities/FxAccountUpdateCredentialsActivityWeb.java', + 'fxa/activities/FxAccountWebFlowActivity.java', + 'fxa/activities/PicassoPreferenceIconTarget.java', + 'fxa/authenticator/AccountPickler.java', + 'fxa/authenticator/AndroidFxAccount.java', + 'fxa/authenticator/FxAccountAuthenticator.java', + 'fxa/authenticator/FxAccountAuthenticatorService.java', + 'fxa/authenticator/FxAccountLoginDelegate.java', + 'fxa/authenticator/FxAccountLoginException.java', + 'fxa/authenticator/FxADefaultLoginStateMachineDelegate.java', + 'fxa/FirefoxAccounts.java', + 'fxa/FxAccountConstants.java', + 'fxa/FxAccountDevice.java', + 'fxa/FxAccountDeviceRegistrator.java', + 'fxa/FxAccountPushHandler.java', + 'fxa/login/BaseRequestDelegate.java', + 'fxa/login/Cohabiting.java', + 'fxa/login/Doghouse.java', + 'fxa/login/Engaged.java', + 'fxa/login/FxAccountLoginStateMachine.java', + 'fxa/login/FxAccountLoginTransition.java', + 'fxa/login/Married.java', + 'fxa/login/MigratedFromSync11.java', + 'fxa/login/Separated.java', + 'fxa/login/State.java', + 'fxa/login/StateFactory.java', + 'fxa/login/TokensAndKeysState.java', + 'fxa/receivers/FxAccountDeletedService.java', + 'fxa/receivers/FxAccountUpgradeReceiver.java', + 'fxa/sync/FxAccountNotificationManager.java', + 'fxa/sync/FxAccountProfileService.java', + 'fxa/sync/FxAccountSchedulePolicy.java', + 'fxa/sync/FxAccountSyncAdapter.java', + 'fxa/sync/FxAccountSyncDelegate.java', + 'fxa/sync/FxAccountSyncService.java', + 'fxa/sync/FxAccountSyncStatusHelper.java', + 'fxa/sync/SchedulePolicy.java', + 'fxa/SyncStatusListener.java', + 'push/autopush/AutopushClient.java', + 'push/autopush/AutopushClientException.java', + 'push/RegisterUserAgentResponse.java', + 'push/SubscribeChannelResponse.java', + 'sync/AlreadySyncingException.java', + 'sync/BackoffHandler.java', + 'sync/BadRequiredFieldJSONException.java', + 'sync/CollectionKeys.java', + 'sync/CommandProcessor.java', + 'sync/CommandRunner.java', + 'sync/CredentialException.java', + 'sync/crypto/CryptoException.java', + 'sync/crypto/CryptoInfo.java', + 'sync/crypto/HKDF.java', + 'sync/crypto/HMACVerificationException.java', + 'sync/crypto/KeyBundle.java', + 'sync/crypto/MissingCryptoInputException.java', + 'sync/crypto/NoKeyBundleException.java', + 'sync/crypto/PBKDF2.java', + 'sync/crypto/PersistedCrypto5Keys.java', + 'sync/CryptoRecord.java', + 'sync/DelayedWorkTracker.java', + 'sync/delegates/ClientsDataDelegate.java', + 'sync/delegates/FreshStartDelegate.java', + 'sync/delegates/GlobalSessionCallback.java', + 'sync/delegates/JSONRecordFetchDelegate.java', + 'sync/delegates/KeyUploadDelegate.java', + 'sync/delegates/MetaGlobalDelegate.java', + 'sync/delegates/WipeServerDelegate.java', + 'sync/EngineSettings.java', + 'sync/ExtendedJSONObject.java', + 'sync/GlobalSession.java', + 'sync/HTTPFailureException.java', + 'sync/InfoCollections.java', + 'sync/InfoConfiguration.java', + 'sync/InfoCounts.java', + 'sync/JSONRecordFetcher.java', + 'sync/KeyBundleProvider.java', + 'sync/MetaGlobal.java', + 'sync/MetaGlobalException.java', + 'sync/MetaGlobalMissingEnginesException.java', + 'sync/MetaGlobalNotSetException.java', + 'sync/middleware/Crypto5MiddlewareRepository.java', + 'sync/middleware/Crypto5MiddlewareRepositorySession.java', + 'sync/middleware/MiddlewareRepository.java', + 'sync/middleware/MiddlewareRepositorySession.java', + 'sync/net/AbstractBearerTokenAuthHeaderProvider.java', + 'sync/net/AuthHeaderProvider.java', + 'sync/net/BaseResource.java', + 'sync/net/BaseResourceDelegate.java', + 'sync/net/BasicAuthHeaderProvider.java', + 'sync/net/BearerAuthHeaderProvider.java', + 'sync/net/BrowserIDAuthHeaderProvider.java', + 'sync/net/ConnectionMonitorThread.java', + 'sync/net/GzipNonChunkedCompressingEntity.java', + 'sync/net/HandleProgressException.java', + 'sync/net/HawkAuthHeaderProvider.java', + 'sync/net/HMACAuthHeaderProvider.java', + 'sync/net/HttpResponseObserver.java', + 'sync/net/MozResponse.java', + 'sync/net/Resource.java', + 'sync/net/ResourceDelegate.java', + 'sync/net/SRPConstants.java', + 'sync/net/SyncResponse.java', + 'sync/net/SyncStorageCollectionRequest.java', + 'sync/net/SyncStorageCollectionRequestDelegate.java', + 'sync/net/SyncStorageRecordRequest.java', + 'sync/net/SyncStorageRequest.java', + 'sync/net/SyncStorageRequestDelegate.java', + 'sync/net/SyncStorageRequestIncrementalDelegate.java', + 'sync/net/SyncStorageResponse.java', + 'sync/net/TLSSocketFactory.java', + 'sync/net/WBOCollectionRequestDelegate.java', + 'sync/net/WBORequestDelegate.java', + 'sync/NoCollectionKeysSetException.java', + 'sync/NodeAuthenticationException.java', + 'sync/NonArrayJSONException.java', + 'sync/NonObjectJSONException.java', + 'sync/NullClusterURLException.java', + 'sync/PersistedMetaGlobal.java', + 'sync/PrefsBackoffHandler.java', + 'sync/repositories/android/AndroidBrowserBookmarksDataAccessor.java', + 'sync/repositories/android/AndroidBrowserBookmarksRepository.java', + 'sync/repositories/android/AndroidBrowserBookmarksRepositorySession.java', + 'sync/repositories/android/AndroidBrowserHistoryDataAccessor.java', + 'sync/repositories/android/AndroidBrowserHistoryRepository.java', + 'sync/repositories/android/AndroidBrowserHistoryRepositorySession.java', + 'sync/repositories/android/AndroidBrowserRepository.java', + 'sync/repositories/android/AndroidBrowserRepositoryDataAccessor.java', + 'sync/repositories/android/AndroidBrowserRepositorySession.java', + 'sync/repositories/android/BookmarksDeletionManager.java', + 'sync/repositories/android/BookmarksInsertionManager.java', + 'sync/repositories/android/BrowserContractHelpers.java', + 'sync/repositories/android/CachedSQLiteOpenHelper.java', + 'sync/repositories/android/ClientsDatabase.java', + 'sync/repositories/android/ClientsDatabaseAccessor.java', + 'sync/repositories/android/FennecTabsRepository.java', + 'sync/repositories/android/FormHistoryRepositorySession.java', + 'sync/repositories/android/PasswordsRepositorySession.java', + 'sync/repositories/android/RepoUtils.java', + 'sync/repositories/android/VisitsHelper.java', + 'sync/repositories/BookmarkNeedsReparentingException.java', + 'sync/repositories/BookmarksRepository.java', + 'sync/repositories/ConstrainedServer11Repository.java', + 'sync/repositories/delegates/DeferrableRepositorySessionCreationDelegate.java', + 'sync/repositories/delegates/DeferredRepositorySessionBeginDelegate.java', + 'sync/repositories/delegates/DeferredRepositorySessionFetchRecordsDelegate.java', + 'sync/repositories/delegates/DeferredRepositorySessionFinishDelegate.java', + 'sync/repositories/delegates/DeferredRepositorySessionStoreDelegate.java', + 'sync/repositories/delegates/RepositorySessionBeginDelegate.java', + 'sync/repositories/delegates/RepositorySessionCleanDelegate.java', + 'sync/repositories/delegates/RepositorySessionCreationDelegate.java', + 'sync/repositories/delegates/RepositorySessionFetchRecordsDelegate.java', + 'sync/repositories/delegates/RepositorySessionFinishDelegate.java', + 'sync/repositories/delegates/RepositorySessionGuidsSinceDelegate.java', + 'sync/repositories/delegates/RepositorySessionStoreDelegate.java', + 'sync/repositories/delegates/RepositorySessionWipeDelegate.java', + 'sync/repositories/domain/BookmarkRecord.java', + 'sync/repositories/domain/BookmarkRecordFactory.java', + 'sync/repositories/domain/ClientRecord.java', + 'sync/repositories/domain/ClientRecordFactory.java', + 'sync/repositories/domain/FormHistoryRecord.java', + 'sync/repositories/domain/HistoryRecord.java', + 'sync/repositories/domain/HistoryRecordFactory.java', + 'sync/repositories/domain/PasswordRecord.java', + 'sync/repositories/domain/PasswordRecordFactory.java', + 'sync/repositories/domain/Record.java', + 'sync/repositories/domain/RecordParseException.java', + 'sync/repositories/domain/TabsRecord.java', + 'sync/repositories/domain/TabsRecordFactory.java', + 'sync/repositories/domain/VersionConstants.java', + 'sync/repositories/downloaders/BatchingDownloader.java', + 'sync/repositories/downloaders/BatchingDownloaderDelegate.java', + 'sync/repositories/FetchFailedException.java', + 'sync/repositories/HashSetStoreTracker.java', + 'sync/repositories/HistoryRepository.java', + 'sync/repositories/IdentityRecordFactory.java', + 'sync/repositories/InactiveSessionException.java', + 'sync/repositories/InvalidBookmarkTypeException.java', + 'sync/repositories/InvalidRequestException.java', + 'sync/repositories/InvalidSessionTransitionException.java', + 'sync/repositories/MultipleRecordsForGuidException.java', + 'sync/repositories/NoContentProviderException.java', + 'sync/repositories/NoGuidForIdException.java', + 'sync/repositories/NoStoreDelegateException.java', + 'sync/repositories/NullCursorException.java', + 'sync/repositories/ParentNotFoundException.java', + 'sync/repositories/ProfileDatabaseException.java', + 'sync/repositories/RecordFactory.java', + 'sync/repositories/RecordFilter.java', + 'sync/repositories/Repository.java', + 'sync/repositories/RepositorySession.java', + 'sync/repositories/RepositorySessionBundle.java', + 'sync/repositories/Server11Repository.java', + 'sync/repositories/Server11RepositorySession.java', + 'sync/repositories/StoreFailedException.java', + 'sync/repositories/StoreTracker.java', + 'sync/repositories/StoreTrackingRepositorySession.java', + 'sync/repositories/uploaders/BatchingUploader.java', + 'sync/repositories/uploaders/BatchMeta.java', + 'sync/repositories/uploaders/BufferSizeTracker.java', + 'sync/repositories/uploaders/MayUploadProvider.java', + 'sync/repositories/uploaders/Payload.java', + 'sync/repositories/uploaders/PayloadUploadDelegate.java', + 'sync/repositories/uploaders/RecordUploadRunnable.java', + 'sync/Server11PreviousPostFailedException.java', + 'sync/Server11RecordPostFailedException.java', + 'sync/setup/activities/ActivityUtils.java', + 'sync/setup/activities/WebURLFinder.java', + 'sync/setup/Constants.java', + 'sync/setup/InvalidSyncKeyException.java', + 'sync/SharedPreferencesClientsDataDelegate.java', + 'sync/stage/AbstractNonRepositorySyncStage.java', + 'sync/stage/AbstractSessionManagingSyncStage.java', + 'sync/stage/AndroidBrowserBookmarksServerSyncStage.java', + 'sync/stage/AndroidBrowserHistoryServerSyncStage.java', + 'sync/stage/CheckPreconditionsStage.java', + 'sync/stage/CompletedStage.java', + 'sync/stage/EnsureCrypto5KeysStage.java', + 'sync/stage/FennecTabsServerSyncStage.java', + 'sync/stage/FetchInfoCollectionsStage.java', + 'sync/stage/FetchInfoConfigurationStage.java', + 'sync/stage/FetchMetaGlobalStage.java', + 'sync/stage/FormHistoryServerSyncStage.java', + 'sync/stage/GlobalSyncStage.java', + 'sync/stage/NoSuchStageException.java', + 'sync/stage/PasswordsServerSyncStage.java', + 'sync/stage/SafeConstrainedServer11Repository.java', + 'sync/stage/ServerSyncStage.java', + 'sync/stage/SyncClientsEngineStage.java', + 'sync/stage/UploadMetaGlobalStage.java', + 'sync/Sync11Configuration.java', + 'sync/SyncConfiguration.java', + 'sync/SyncConfigurationException.java', + 'sync/SyncConstants.java', + 'sync/SyncException.java', + 'sync/synchronizer/ConcurrentRecordConsumer.java', + 'sync/synchronizer/RecordConsumer.java', + 'sync/synchronizer/RecordsChannel.java', + 'sync/synchronizer/RecordsChannelDelegate.java', + 'sync/synchronizer/RecordsConsumerDelegate.java', + 'sync/synchronizer/SerialRecordConsumer.java', + 'sync/synchronizer/ServerLocalSynchronizer.java', + 'sync/synchronizer/ServerLocalSynchronizerSession.java', + 'sync/synchronizer/SessionNotBegunException.java', + 'sync/synchronizer/Synchronizer.java', + 'sync/synchronizer/SynchronizerDelegate.java', + 'sync/synchronizer/SynchronizerSession.java', + 'sync/synchronizer/SynchronizerSessionDelegate.java', + 'sync/synchronizer/UnbundleError.java', + 'sync/synchronizer/UnexpectedSessionException.java', + 'sync/SynchronizerConfiguration.java', + 'sync/telemetry/TelemetryContract.java', + 'sync/ThreadPool.java', + 'sync/UnexpectedJSONException.java', + 'sync/UnknownSynchronizerConfigurationVersionException.java', + 'sync/Utils.java', + 'tokenserver/TokenServerClient.java', + 'tokenserver/TokenServerClientDelegate.java', + 'tokenserver/TokenServerException.java', + 'tokenserver/TokenServerToken.java', + 'util/PRNGFixes.java', +]] diff --git a/mobile/android/base/crashreporter/res/drawable-mdpi/crash_reporter.png b/mobile/android/base/crashreporter/res/drawable-mdpi/crash_reporter.png new file mode 100644 index 0000000000..c9f495d30b Binary files /dev/null and b/mobile/android/base/crashreporter/res/drawable-mdpi/crash_reporter.png differ diff --git a/mobile/android/base/crashreporter/res/drawable/textbox_bg.xml b/mobile/android/base/crashreporter/res/drawable/textbox_bg.xml new file mode 100644 index 0000000000..bcc884a08c --- /dev/null +++ b/mobile/android/base/crashreporter/res/drawable/textbox_bg.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/mobile/android/base/crashreporter/res/layout/crash_reporter.xml b/mobile/android/base/crashreporter/res/layout/crash_reporter.xml new file mode 100644 index 0000000000..b7285dc202 --- /dev/null +++ b/mobile/android/base/crashreporter/res/layout/crash_reporter.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +