tbb-commits
Threads by month
- ----- 2025 -----
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
November 2018
- 2 participants
- 75 discussions

[tor-browser/tor-browser-60.3.0esr-8.5-1] Bug 27256 - Enable TouchEvents on Android
by gk@torproject.org 20 Nov '18
by gk@torproject.org 20 Nov '18
20 Nov '18
commit 0b188f1fd0349fc76f8cc5663279a67b283d3b68
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Fri Nov 16 04:03:09 2018 +0000
Bug 27256 - Enable TouchEvents on Android
This allows highlighting/selecting text by long pressing.
Thanks to towiw for the info.
---
mobile/android/app/000-tor-browser-android.js | 3 +++
1 file changed, 3 insertions(+)
diff --git a/mobile/android/app/000-tor-browser-android.js b/mobile/android/app/000-tor-browser-android.js
index 04a613092e6d..c329fcdee5f7 100644
--- a/mobile/android/app/000-tor-browser-android.js
+++ b/mobile/android/app/000-tor-browser-android.js
@@ -61,3 +61,6 @@ pref("network.proxy.socks_port", 9050);
pref("xpinstall.enabled", false);
pref("extensions.enabledScopes", 1);
pref("extensions.autoDisableScopes", 1);
+
+// Enable touch events on Android (highlighting text, etc)
+pref("dom.w3c_touch_events.enabled", 2);
1
0

[torbutton/master] Bug 28515: Use en-US for english Torbutton strings
by gk@torproject.org 20 Nov '18
by gk@torproject.org 20 Nov '18
20 Nov '18
commit 6a10722355e8c457df9cfcacde22cd3d2f04e5a3
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon Nov 19 09:20:09 2018 +0000
Bug 28515: Use en-US for english Torbutton strings
There is no `en` in Mozilla's universe and we need `en-US` for Torbutton
integration into `tor-browser` (see: #25013). Thus, switch our locale
code for english in Torbutton accordingly.
The server-side of this switch got done in #28261 and the workaround for
that, which was symlinking `en` to `en-US`, is not needed anymore.
---
makexpi.sh | 4 ++--
src/chrome.manifest | 2 +-
src/chrome/locale/en | 1 -
trans_tools/import-translations.sh | 2 +-
4 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/makexpi.sh b/makexpi.sh
index aa3e665b..243fbd6b 100755
--- a/makexpi.sh
+++ b/makexpi.sh
@@ -20,8 +20,8 @@ echo ---------- create $APP_NAME.xpi ----------
# create the pkg directory if it doesn't exist yet
mkdir -p pkg
cd src
-echo zip -X -9r ../pkg/$XPI_NAME ./ -x "chrome/*" -x "*.diff" -x "*.svn/*" -x "chrome/locale/en-US/*"
-zip -X -9r ../pkg/$XPI_NAME ./ -x "*.svn/*" -x "*.diff" -x "chrome/locale/en-US/*" #-x "chrome/*"
+echo zip -X -9r ../pkg/$XPI_NAME ./ -x "chrome/*" -x "*.diff" -x "*.svn/*"
+zip -X -9r ../pkg/$XPI_NAME ./ -x "*.svn/*" -x "*.diff" #-x "chrome/*"
#mv ../$APP_NAME.jar ./chrome
#zip -9m ../pkg/$XPI_NAME chrome/$APP_NAME.jar
cd ..
diff --git a/src/chrome.manifest b/src/chrome.manifest
index 18c5f5b9..33199ccf 100644
--- a/src/chrome.manifest
+++ b/src/chrome.manifest
@@ -45,7 +45,7 @@ locale torbutton da chrome/locale/da/
locale torbutton de chrome/locale/de/
locale torbutton dz chrome/locale/dz/
locale torbutton el chrome/locale/el/
-locale torbutton en chrome/locale/en/
+locale torbutton en chrome/locale/en-US/
locale torbutton eo chrome/locale/eo/
locale torbutton es chrome/locale/es/
locale torbutton et chrome/locale/et/
diff --git a/src/chrome/locale/en b/src/chrome/locale/en
deleted file mode 120000
index f2b0341f..00000000
--- a/src/chrome/locale/en
+++ /dev/null
@@ -1 +0,0 @@
-en-US
\ No newline at end of file
diff --git a/trans_tools/import-translations.sh b/trans_tools/import-translations.sh
index 8f562208..00de8243 100755
--- a/trans_tools/import-translations.sh
+++ b/trans_tools/import-translations.sh
@@ -28,7 +28,7 @@ FILEMAP=( "aboutDialog.dtd:torbutton-aboutdialogdtd"
# Verify that the FILEMAP contains an entry for each Torbutton file.
FILES_ARE_MISSING=0
-for DEST_PATH in $LOCALE_DIR/en/*.dtd $LOCALE_DIR/en/*.properties;
+for DEST_PATH in $LOCALE_DIR/en-US/*.dtd $LOCALE_DIR/en-US/*.properties;
do
IS_FILE_IN_MAP=0
DEST_FILE=${DEST_PATH##*/}
1
0

[tor-browser-build/master] Bug 27443: Update Firefox RBM config and build for Android
by gk@torproject.org 20 Nov '18
by gk@torproject.org 20 Nov '18
20 Nov '18
commit b068c56f0ae00663e267ae0c6a2c89dd06f6ea20
Author: sisbell <shane.isbell(a)gmail.com>
Date: Tue Sep 4 09:47:14 2018 -0700
Bug 27443: Update Firefox RBM config and build for Android
---
projects/firefox/build | 14 +-
projects/firefox/config | 12 +
projects/firefox/gradle-dependencies-list.txt | 358 ++++++++++++++++++++++++++
projects/firefox/mozconfig-android-armv7 | 49 ++++
4 files changed, 431 insertions(+), 2 deletions(-)
diff --git a/projects/firefox/build b/projects/firefox/build
index c73590d..d210b7a 100644
--- a/projects/firefox/build
+++ b/projects/firefox/build
@@ -1,6 +1,10 @@
#!/bin/bash
[% c("var/setarch") -%]
[% c("var/set_default_env") -%]
+[% IF c("var/android") %]
+ export GRADLE_MAVEN_REPOSITORIES="file://$rootdir/[% c('input_files_by_name/gradle-dependencies') %]"
+[% END -%]
+
[% IF c("var/windows") -%]
[% pc('gcc', 'var/setup', { compiler_tarfile => c('input_files_by_name/gcc') }) %]
# We need a link to our GCC, otherwise the system cc gets used which points to
@@ -10,6 +14,7 @@
[% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %]
distdir=/var/tmp/dist/[% project %]
mkdir -p /var/tmp/build
+mkdir -p [% dest_dir _ '/' _ c('filename') %]
[% IF c("var/windows") -%]
mingwdir=/var/tmp/dist/mingw-w64
@@ -143,6 +148,13 @@ rm -f js/src/configure
./mach configure --with-tor-browser-version=[% c("var/torbrowser_version") %] --with-distribution-id=org.torproject --enable-update-channel=[% c("var/torbrowser_update_channel") %] --enable-bundled-fonts
./mach build --verbose
+
+[% IF c("var/android") %]
+ ./mach package
+ cp obj-*/dist/*unsigned-unaligned.apk [% dest_dir _ '/' _ c('filename') %]/tor-browser-unsigned-unaligned.apk
+ [% RETURN %]
+[% END %]
+
./mach build stage-package
[% IF c("var/osx") %]
@@ -257,8 +269,6 @@ cd $distdir
[% c("var/rezip", { rezip_file => '"Tor Browser.app/Contents/Resources/browser/omni.ja"' }) %]
[% END %]
-mkdir -p [% dest_dir _ '/' _ c('filename') %]
-
[%
IF c("var/osx");
SET browserdir='"Tor Browser.app/Contents"';
diff --git a/projects/firefox/config b/projects/firefox/config
index dfdf2c4..9f88ae8 100644
--- a/projects/firefox/config
+++ b/projects/firefox/config
@@ -4,6 +4,7 @@ filename: 'firefox-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id")
git_hash: 'tor-browser-[% c("var/firefox_version") %]-[% c("var/torbrowser_branch") %]-1-build1'
tag_gpg_id: 1
git_url: https://git.torproject.org/tor-browser.git
+git_submodule: 1
gpg_keyring: torbutton.gpg
var:
@@ -21,6 +22,8 @@ var:
- python
container:
use_container: 1
+ # this should be updated when the list of gradle dependencies is changed
+ gradle_dependencies_version: 2
targets:
release:
@@ -33,6 +36,11 @@ targets:
var:
torbrowser_update_channel: default
+ android-armv7:
+ var:
+ arch_deps:
+ - openjdk-8-jdk
+
linux:
var:
arch_deps:
@@ -120,3 +128,7 @@ input_files:
enable: '[% c("var/linux") %]'
- filename: start-firefox
enable: '[% c("var/linux") %]'
+ - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]'
+ name: gradle-dependencies
+ exec: '[% INCLUDE "fetch-gradle-dependencies" %]'
+ enable: '[% c("var/android") %]'
diff --git a/projects/firefox/gradle-dependencies-list.txt b/projects/firefox/gradle-dependencies-list.txt
new file mode 100644
index 0000000..f96af50
--- /dev/null
+++ b/projects/firefox/gradle-dependencies-list.txt
@@ -0,0 +1,358 @@
+# On how to update dependencies see projects/common/how-to-create-gradle-dependencies-list.txt
+# Don't forget to update var/gradle_dependencies_version when modifying this file
+sha256sum | url
+f51550a06b1410bd4962cb0e71df0b921a60a7ef47bfa9c4825a14be72316eea | https://jcenter.bintray.com/org/codehaus/mojo/animal-sniffer-parent/1.14/an…
+fb40265f982548212ff82e362e59732b2187ec6f0d80182885c14ef1f982827a | https://jcenter.bintray.com/org/sonatype/oss/oss-parent/9/oss-parent-9.pom
+50cadbcd70d80cf627661628e9d5163fe4f0757b87e89e68b43663b509c031d5 | https://jcenter.bintray.com/org/simpleframework/simple-common/6.0.1/simple-…
+1ef71c25a9d46ae0ce023d02a5734e0b06fdf934fbc5948e20482526b22b4179 | https://maven.google.com/com/android/tools/build/gradle/3.0.1/gradle-3.0.1.…
+315a79bf0beee4a355ebe36de326b7b9b22a1ecdf22badd7e1bb2af94429bff1 | https://maven.google.com/com/android/support/cardview-v7/23.4.0/cardview-v7…
+f2abf7db3c5937fe021fd66f8bd2d9460cf2c9b1ad8efa0abb797d778390b22f | https://jcenter.bintray.com/com/squareup/haha/haha/2.0.2/haha-2.0.2.pom
+d49d179f707d3f3a00b2a7d36136b54aa8d44fa22770703cd82fe52fb39e22eb | https://jcenter.bintray.com/com/android/tools/build/transform-api/2.0.0-dep…
+0288414509c625b8dd544384fbd29f502bdc8b4f86cfc26625aa23eef9fa6057 | https://jcenter.bintray.com/net/sf/proguard/proguard-parent/5.3.3/proguard-…
+e91a88dd0c5e99069b7f09d4a46b5e06f1e9c4c72fc0a8e987e25d86af480f01 | https://maven.google.com/com/android/support/support-annotations/23.4.0/sup…
+d5831ee4f71055800821a34a3051cf1ed5b3702f295ffebd50f65fb5d81a71b8 | https://jcenter.bintray.com/org/mockito/mockito-core/1.10.19/mockito-core-1…
+fb5369fc7ea4b2e3cf8d6f20243f1d97f81341bf818b179cd8dbd1da7a781a21 | https://jcenter.bintray.com/org/ow2/asm/asm-tree/5.1/asm-tree-5.1.pom
+7af7e2d8b24b4798f04c2b7da24c9fbd1b7557b4e017c2054481565916079092 | https://jcenter.bintray.com/net/sf/jopt-simple/jopt-simple/4.9/jopt-simple-…
+b5b46ac0c09da41b04dbc753456b48912856a7ffbb1490676910b510c471d13f | https://jcenter.bintray.com/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.pom
+e6d920d5a1a34aaaebab1e6a82c36bbfd61f1eeaabc4534ee05d4faad56f1b7a | https://jcenter.bintray.com/org/apache/ant/ant/1.8.0/ant-1.8.0.pom
+9e9323a26ba8eb2394efef0c96d31b70df570808630dc147cab1e73541cc5194 | https://jcenter.bintray.com/org/apache/apache/4/apache-4.pom
+56057490cbc1eeae6227e6eb5c6d5b324b77429b8a78d15027c77d491ef9c675 | https://jcenter.bintray.com/org/ow2/asm/asm/5.0.1/asm-5.0.1.jar
+85c3c8840bb21554faf159998146f7ca9ef1b951defb29ec4e8252ec463728fd | https://jcenter.bintray.com/org/apache/maven/wagon/wagon-provider-api/1.0-b…
+47a89be0fa0fedd476db5fd2c83487654d2a119c391f83a142be876667cf7dab | https://jcenter.bintray.com/com/googlecode/json-simple/json-simple/1.1/json…
+857db5645aaefbd7fbe9ba6454b072bc0518ebaba08a93d5eae89a9850e949c4 | https://jcenter.bintray.com/com/getkeepsafe/dexcount/dexcount-gradle-plugin…
+2ca121831e597b4d8f2cb22d17c5c041fc23a7777ceb6bfbdd4dfb34bbe7d997 | https://jcenter.bintray.com/org/codehaus/plexus/plexus-utils/1.5.15/plexus-…
+ecaffef655fea6b138f0855a12f7dbb59fc0d6bffb5c1bfd31803cccb49ea08c | https://jcenter.bintray.com/org/apache/maven/maven-profile/2.2.1/maven-prof…
+f0c98c571e93a7cb4dd18df0fa308f0963e7a0620ac2d4244e61e709d03ad6be | https://jcenter.bintray.com/com/google/j2objc/j2objc-annotations/1.1/j2objc…
+70f418efbb506c5155da5f9a5a33262ea08a9e4d7fea186aa9015c41a7224ac2 | https://jcenter.bintray.com/org/hamcrest/hamcrest-integration/1.3/hamcrest-…
+fcd77cba4ea3893429860b93da5d43f2e089f2ba8bdfa97ef724f410f404152a | https://maven.google.com/com/android/tools/build/gradle/3.0.1/gradle-3.0.1.…
+fb1cb7fa27d892712ced8fbf8d027eb5052ecd3999dba1ba47824357accb40e7 | https://jcenter.bintray.com/org/ow2/asm/asm-commons/5.0.1/asm-commons-5.0.1…
+38db692b5cbaf69d89b1fe5b0fc38a5cc83f898716f8bc64086fa17c25ea57d6 | https://maven.google.com/com/android/tools/analytics-library/shared/26.0.1/…
+b46b548f116a5dd5b018e6f1f4760fe04f93aecdbea094c2f0890e8bf690ada3 | https://jcenter.bintray.com/org/robolectric/shadows-framework/3.5.1/shadows…
+343b1a3093410e3fb26c66998423ab389c3a7441cd1a8859bd327dd15b479aa4 | https://jcenter.bintray.com/org/objenesis/objenesis-parent/2.1/objenesis-pa…
+ff2aceed10da9930a44f6c8f81c6372d5e55eb59c4e0ea9d37f77dfd765fa9fa | https://jcenter.bintray.com/org/ow2/asm/asm-tree/5.0.1/asm-tree-5.0.1.jar
+f1226fd07fc72af8d6232bdfa70bf31d883a1a01cbc547f23a74e9066c692df1 | https://jcenter.bintray.com/com/google/guava/guava-parent/20.0/guava-parent…
+6d535f94efb663bdb682c9f27a50335394688009642ba7a9677504bc1be4129b | https://jcenter.bintray.com/org/hamcrest/hamcrest-parent/1.3/hamcrest-paren…
+1ceb4bfb0f098ae29b935044b2363e11323313fe3ed2055df8b79737d5056277 | https://jcenter.bintray.com/org/hamcrest/hamcrest-library/1.3/hamcrest-libr…
+419487d0c123d11cc6e1a12da517d02958ee1de209f1e1855bb14f5dd3759bb0 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-android-extensions/…
+4f88a89142c64bf03906f84609594666e9694df56e3e6f05edfab8a68b39d837 | https://maven.google.com/com/android/tools/annotations/26.0.1/annotations-2…
+597b54cc1a494799d783921c6ac04352f33e94fca8e00f299d4ca192db79e3fc | https://jcenter.bintray.com/org/robolectric/shadows-framework/3.5.1/shadows…
+f699823d0081f69cbb676c1845ea222e0ada79bc88a53e5d22d8bd02d328f57e | https://jcenter.bintray.com/com/squareup/javawriter/2.1.1/javawriter-2.1.1.…
+ec4c74554312fac5116350164786f91b35c9e082fa4ea598bfa42b5db05d7abb | https://jcenter.bintray.com/org/jacoco/org.jacoco.core/0.7.4.201502262128/o…
+4a028c17c75cce301e13fdfbc0750ceb48a166dd1013ee516a49684472fcf0e5 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-android-extensions/…
+1d2e883717b8ab7d3fcc9fa01034d165809a9c94daa6303a838f11e4d36adc86 | https://jcenter.bintray.com/net/sf/proguard/proguard-base/5.3.3/proguard-ba…
+b6eb99f1362b8344ca5400d57a35c49e3504f23f3dee304fdb879d4d953f4bc6 | https://jcenter.bintray.com/org/apache/httpcomponents/httpcore/4.2.5/httpco…
+e899e02ec8ac6a73fb9c9c7cb9ebd9bfc4ce8263412285d5ec6f2df920880905 | https://maven.google.com/com/android/tools/build/builder-model/3.0.1/builde…
+3c09321a4140cbbaf50ceefb08f249e2a033eef78dc6efc3d3022515b05a0cda | https://maven.google.com/com/android/support/customtabs/23.4.0/customtabs-2…
+c74330cc6b806c804fd37e74487b4fe5d7c2750c5e15fbc6efa13bdee1bdef80 | https://jcenter.bintray.com/org/objenesis/objenesis/2.1/objenesis-2.1.jar
+d1e247c4ed3952385fd704ac9db2a222247cfe7d20508b4f3c76b90f857952ed | https://jcenter.bintray.com/org/apache/maven/maven-artifact-manager/2.2.1/m…
+db50fbb16778e5ff47eaf46a2b63891c546911e7bde06c068ecbe9806b02c672 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin/1.1.5…
+7b5da383a465a071e90eac4a5e615992a499d9776938305d7581d8abbf3b13e5 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-runner/1.1…
+3d6eba428555a558de046b5d76eacc1f5a54b4f5f20b84d636ed7aff18aa48c3 | https://jcenter.bintray.com/org/apache/httpcomponents/project/7/project-7.p…
+2ba9c1cfec6b4a183b72a5ccc6cb2c83479d6ad7e931543c792292c1679a7f43 | https://maven.google.com/com/android/tools/external/org-jetbrains/uast/26.0…
+e37a4467bac5cdeb02c5c4b8e5063d2f4e67b69e3c7df6d6b610f13185572bab | https://jcenter.bintray.com/com/ibm/icu/icu4j/53.1/icu4j-53.1.jar
+a06e35d3fff3a6b813d94894ebf3e498f9540c864c5b39ae783907e3a6c72889 | https://jcenter.bintray.com/commons-codec/commons-codec/1.6/commons-codec-1…
+a47c950c755747ca3093a05e9ec85d0e2f33cbd224909f571fe7577963a4d799 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.1.3-2/kot…
+d3d96637b0e8e61046567b8c87b667dcf3cd31c7447f651cb58d6e6e744adfba | https://maven.google.com/com/android/support/appcompat-v7/23.4.0/appcompat-…
+14db0f7d2299c5400ff7764bb37b4fa80306582d8965fdf6999091723e2384ce | https://jcenter.bintray.com/org/robolectric/annotations/3.5.1/annotations-3…
+be214032de23c6b520b79c1ccdb160948e0c67ed7c11984b7ec4ca5537867b4e | https://jcenter.bintray.com/org/apache/maven/wagon/wagon-http-lightweight/1…
+31ce606f4e9518936299bb0d27c978fa61e185fd1de7c9874fe959a53e34a685 | https://jcenter.bintray.com/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.pom
+8c6191e0dd8bfdc862332cb79b08185ac5b63565d405dac2605be4c2b19774bd | https://jcenter.bintray.com/com/android/tools/external/lombok/lombok-ast/0.…
+5fe8a11e913086fb7ab505b930987f30cfa3f4b226d4bbbc68003ca4387ae40e | https://maven.google.com/com/android/tools/lint/lint-api/26.0.1/lint-api-26…
+aeb197158a2fb6bd2cb9233e22874f8051f82891dbd82b6b089f49e309f82e40 | https://maven.google.com/com/android/tools/lint/lint/26.0.1/lint-26.0.1.jar
+ff9988062651ac02bfcafd3aa4302f9366fac66d4ad639b36530193afdbdd67b | https://jcenter.bintray.com/org/robolectric/utils/3.5.1/utils-3.5.1.pom
+59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a | https://jcenter.bintray.com/junit/junit/4.12/junit-4.12.jar
+beff8c3c1e840e0f7f78aadef170f347bae349f098babfc176765f499a4bcbb5 | https://jcenter.bintray.com/org/robolectric/sandbox/3.5.1/sandbox-3.5.1.jar
+91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff | https://jcenter.bintray.com/javax/inject/javax.inject/1/javax.inject-1.jar
+52b6fd2eaf2240e14dbe752f1fa884270cc668d6f350e8e7f65f6033a8172d69 | https://jcenter.bintray.com/org/apache/httpcomponents/httpcomponents-client…
+50eb253acd0b6ee048f432d9fc3a3b36264efb3da1ffa7fb07f6c4d4b7a8ca31 | https://jcenter.bintray.com/org/codehaus/codehaus-parent/3/codehaus-parent-…
+95b8b357d19f63797dd7d67622fd3f18374d64acbc6584faba1c7759a31e8438 | https://jcenter.bintray.com/nekohtml/xercesMinimal/1.9.6.2/xercesMinimal-1.…
+603cf898f93b854f18021fab452aca3fe482368eeb2e720988ae82212ebcf4b6 | https://jcenter.bintray.com/org/robolectric/robolectric/3.5.1/robolectric-3…
+2bf4e59f3acd106fea6145a9a88fe8956509f8b9c0fdd11eb96fee757269e3f3 | https://jcenter.bintray.com/classworlds/classworlds/1.1-alpha-2/classworlds…
+1879f19a05991e3ed95910b96689333396b0c467a215dc4d1f90018404b72a26 | https://jcenter.bintray.com/org/codehaus/mojo/animal-sniffer-annotations/1.…
+567ae5af5665bb445802ca650a4dc848737c9ee564f69f2ead5df1189d394304 | https://maven.google.com/com/android/support/recyclerview-v7/23.4.0/recycle…
+8a4e4b32eedaa72976a757e12cf1dfe742725db0b7311bf176dd937ba4236384 | https://jcenter.bintray.com/org/antlr/antlr4/4.5.3/antlr4-4.5.3.pom
+401429d864e4c28b0ef7bc9213ac7b48989f8a9a26db200abb8c65f41f5a503e | https://jcenter.bintray.com/org/ow2/asm/asm-tree/5.0.1/asm-tree-5.0.1.pom
+b2b5dd46cf998fa626eb6f8a1c114f6167c8d392694164e62533e5898e9b31f2 | https://jcenter.bintray.com/commons-io/commons-io/2.4/commons-io-2.4.pom
+30b09c7504768820bfd8572ffcf8c2c55a668ecff6ca3e125906d00bf393a082 | https://maven.google.com/com/android/support/test/espresso/espresso-idling-…
+e2f7b17610f9f0a2b55c019b7627be3d42ec142fde1db5caf8a34dbe3bb8dbcd | https://maven.google.com/com/android/tools/build/gradle-api/3.0.1/gradle-ap…
+0397963405810796ee2d9527e9d1e1a2ed9c44cdb83cdd6959a4ee148ab56fbe | https://jcenter.bintray.com/org/robolectric/sandbox/3.5.1/sandbox-3.5.1.pom
+363cc83767b760d7a564d5301e09467e6d48fc1c1c1664b1e18c50815ce19076 | https://jcenter.bintray.com/com/google/guava/guava/20.0/guava-20.0.pom
+58aa4df8faae90e484c0bc47494a1ec97dc51fe53eae2b4a70d60ea7489cdf8c | https://maven.google.com/com/android/tools/external/com-intellij/intellij-c…
+b7134929f7cc7c04021ec1cc27ef63ab907e410cf0588e397b8851181eb91092 | https://jcenter.bintray.com/com/google/code/gson/gson/2.8.2/gson-2.8.2.jar
+cd36b31f1495f4fe55a936dd00607abdd945e1f8074549225a04c402d1d35750 | https://jcenter.bintray.com/org/ow2/asm/asm-commons/5.1/asm-commons-5.1.pom
+3759796aab6669f10d58d6f6ef1b25a8a9ca4f7ec48bd47ad5141dd1f0865a38 | https://jcenter.bintray.com/com/squareup/leakcanary/leakcanary-watcher/1.4-…
+0156d3f3f54a82eda56285b82aa85caadfdf00d90cde549f7091e0bb0702aad2 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.1.51/kotli…
+21bb4d44dff54e33a37c11af69859a714202ae00969aab5453eba7276688f8ec | https://jcenter.bintray.com/org/apache/httpcomponents/project/4.1.1/project…
+7a3554c605e088e7e323b1084656243f0444fa353e2f2dee1f1a4204eb64ff09 | https://jcenter.bintray.com/org/jacoco/org.jacoco.report/0.7.4.201502262128…
+616da56b2e90bf055b90436800259a8f82715f8e03307c512483328380a51248 | https://jcenter.bintray.com/org/simpleframework/simple-transport/6.0.1/simp…
+5d252585d47129cd667d96c92237383138a42edec5a8963a7dd44cd770faed91 | https://maven.google.com/com/android/tools/lint/lint-checks/26.0.1/lint-che…
+cf3d36efa6d760c6901a21fb14d9eab6553454742ecc4c5c484e2a347cdac4ea | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-annotation-processi…
+8bd632c00bdf80a7de36c22b60f12452c147d8eca2f00d79d66699ebe7daa02a | https://jcenter.bintray.com/org/apache/commons/commons-parent/5/commons-par…
+87cd27e1a02a5c3eb6d85059ce98696bb1b44c2b8b650f0567c86df60fa61da7 | https://jcenter.bintray.com/org/apache/commons/commons-parent/39/commons-pa…
+10107898991129eff2042a41b1bfc2d72c4ea8e4babe429ae3aeb32c69c568de | https://maven.google.com/com/android/tools/analytics-library/tracker/26.0.1…
+e246e2a062b5d989fdefc521c9c56431ba5554ff8d2344edee9218a34a546a33 | https://jcenter.bintray.com/org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.p…
+d53062ffe8677a4f5e1ad3a1d1fa37ed600fab39166d39be7ed204635c5f839b | https://jcenter.bintray.com/org/apache/maven/maven-artifact/2.2.1/maven-art…
+f26bdec2b9496470c0ce63b0d290816e8000ef018daaa259597ebae947fd690f | https://jcenter.bintray.com/net/sf/proguard/proguard-gradle/5.3.3/proguard-…
+7b0cdb372fbde4e801f76bdb416927162ebd32c0c4e53fa39828437d3112c9d5 | https://jcenter.bintray.com/com/squareup/leakcanary/leakcanary-android-no-o…
+5215b648798c6c8d9b9cde3642d3bfb5a4cc894b7c8411004352e7de5d119827 | https://jcenter.bintray.com/org/apache/httpcomponents/httpcomponents-client…
+0ec9e69539aa51350a7d295003d8e7f36007d9cd4a3b93730994a24ada5a11c5 | https://maven.google.com/com/android/support/test/exposed-instrumentation-a…
+9f85ff2fd7d6cb3097aa47fb419ee7f0ebe869109f98aba9f4eca3f49e74a40e | https://jcenter.bintray.com/org/apache/apache/16/apache-16.pom
+90f163f78e3ffb6f1c7ad97de9e7eba4eea25807141b85d6d12be67ca25449c4 | https://jcenter.bintray.com/junit/junit/4.12/junit-4.12.pom
+ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478 | https://jcenter.bintray.com/org/jetbrains/annotations/13.0/annotations-13.0…
+bede73084ec812b916f686cc6e47625bd0756154bef589a4c2b419e54a393bf5 | https://jcenter.bintray.com/com/android/tools/build/manifest-merger/26.0.1/…
+668eb6aeb3d038267e719deb55f38a4233a12602afb97e89da609c095394400a | https://maven.google.com/com/android/tools/build/apksig/3.0.1/apksig-3.0.1.…
+bfadb3b40f65dd6de1666d6b29f8bb54031396c76eeef4146cf9f28255f8bf33 | https://jcenter.bintray.com/com/google/guava/guava/22.0/guava-22.0.pom
+2ec779741f72313fc6623d0f0e42b2450dd2425dd6ad319697e658aae9ae177b | https://jcenter.bintray.com/com/android/tools/dvlib/26.0.1/dvlib-26.0.1.pom
+5f1d5eab6940ece3ebb73691d8a60434d8d1e330176442be8f35a1585345b2ec | https://maven.google.com/com/android/support/design/23.4.0/design-23.4.0.aar
+8f10ffd8df0d3e9819c8cc8402709c6b248bc53a954ef6e45470d9ae3a5735fb | https://jcenter.bintray.com/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.pom
+a20fb26c8de5b0ff7a3069e681fcf01ebefd2f3d24b832c3af22d981d7d4376b | https://maven.google.com/com/android/tools/repository/26.0.1/repository-26.…
+24ddb65b7a6c3befb6267ce5f739f237c84eba99389265c30df67c3dd8396a40 | https://jcenter.bintray.com/org/apache/maven/maven-project/2.2.1/maven-proj…
+3a0a524d3540d005d4df0ca39305fce1972f0d2d966d9b8e6bdb956011501584 | https://maven.google.com/com/android/support/test/runner/0.5/runner-0.5.pom
+c513995cf019d9213d4fda666589937b2bf1bea5c4cdd337e6170e80b18406ee | https://jcenter.bintray.com/org/sonatype/oss/oss-parent/4/oss-parent-4.pom
+d125b3ade9f694ae60ef835f5ae000b6ba35fba8c34bafd8b40a1961375e63fa | https://jcenter.bintray.com/org/apache/maven/maven-profile/2.2.1/maven-prof…
+f056ed61a281b3e230a63e4abf510c0d2f9bf7ff513cacb65a29538ba90ab177 | https://jcenter.bintray.com/org/jacoco/org.jacoco.build/0.7.4.201502262128/…
+54b34e941b8e1414bd3e40d736efd3481772dc26db3296f6aa45cec9f6203d86 | https://jcenter.bintray.com/commons-codec/commons-codec/1.6/commons-codec-1…
+631b213b1b10c00c900aad759c88ed0c83084bae76336ad00dcfe1f24c48be65 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-embeddable…
+1bd627d7252500462075f4a08cd0db4dbbf1ccecc08b093709551b54c8649085 | https://jcenter.bintray.com/org/simpleframework/simple-transport/6.0.1/simp…
+965aeb2bedff369819bdde1bf7a0b3b89b8247dd69c88b86375d76163bb8c397 | https://jcenter.bintray.com/org/jetbrains/annotations/13.0/annotations-13.0…
+6b87237de8c2e1740cf80627c7f3ce3e15de1930bb250c55a1eca94fa3e014df | https://jcenter.bintray.com/org/codehaus/codehaus-parent/4/codehaus-parent-…
+905721a0eea90a81534abb7ee6ef4ea2e5e645fa1def0a5cd88402df1b46c9ed | https://jcenter.bintray.com/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.…
+1158e94c7de4da480873f0b4ab4a1da14c0d23d4b1902cc94a58a6f0f9ab579e | https://jcenter.bintray.com/com/google/guava/guava/22.0/guava-22.0.jar
+36a666e3b71ae7f0f0dca23654b67e086e6c93d192f60ba5dfd5519db6c288c8 | https://jcenter.bintray.com/com/google/guava/guava/20.0/guava-20.0.jar
+63b465cc628f8c305702b12b26501cea236a3175db15b5a7356e98484aa63db5 | https://maven.google.com/com/android/tools/build/builder-model/3.0.1/builde…
+31629566148e8a47688ae43b420abc3ecd783ed15b33bebc00824bf24c9b15aa | https://jcenter.bintray.com/org/apache/httpcomponents/httpmime/4.1/httpmime…
+ff513db0361fd41237bef4784968bc15aae478d4ec0a9496f811072ccaf3841d | https://jcenter.bintray.com/org/apache/apache/13/apache-13.pom
+e7a7a5810829dee924cec654a569a48301fcedd487f7b88710e816d127385f51 | https://maven.google.com/com/android/tools/analytics-library/shared/26.0.1/…
+ee041b3beb682e8bbf2dc16b6edc233483cbc36bde27fd13996617a667b615a5 | https://maven.google.com/com/android/tools/external/com-intellij/intellij-c…
+a0d002465c0f611eedaaef2b2530707d2e9fb3a5c7ed66f53c556a12f714f43a | https://maven.google.com/com/android/support/support-v4/23.4.0/support-v4-2…
+b9c445604a16b15c4269485d569252a53e3094efc8a0c252e09dee1f2f204568 | https://jcenter.bintray.com/org/robolectric/annotations/3.5.1/annotations-3…
+6d574f9ae0922791eb8f06979f0010997d4b862c7aec96d485ae797ddfc13278 | https://jcenter.bintray.com/org/robolectric/shadowapi/3.5.1/shadowapi-3.5.1…
+8ba35dd4ea1647b89a8ae082bb6c81d5695a1ec31e73aa57bfa3512069c4bee2 | https://jcenter.bintray.com/com/thoughtworks/xstream/xstream/1.4.8/xstream-…
+d135cff96dcbbc8a5fab30180e557cae620373cf26941d4c738a88896a2d98ed | https://jcenter.bintray.com/org/apache/maven/maven/2.2.1/maven-2.2.1.pom
+3e395d6fbc43c09a3774cac8694ce527398305ea3fd5492d80e25af27d382a9c | https://jcenter.bintray.com/org/codehaus/mojo/mojo-parent/34/mojo-parent-34…
+258f12f1facc44d0b25b9fa2bde33a58f3de9eea412588ff47922c9cac910a5a | https://maven.google.com/com/android/support/cardview-v7/23.4.0/cardview-v7…
+712d7c974d20b71ce730938a3dda8d23e87cfd16500e1c1a2c9ecc2c9ff0d323 | https://maven.google.com/com/android/tools/build/apksig/3.0.1/apksig-3.0.1.…
+949246020c08a0543389082af38268cdce4ee7a7a8218097369b9845752866cb | https://maven.google.com/com/android/tools/lint/lint-checks/26.0.1/lint-che…
+1917871c8deb468307a584680c87a44572f5a8b0b98c6d397fc0f5f86596dbe7 | https://jcenter.bintray.com/org/jetbrains/trove4j/trove4j/20160824/trove4j-…
+fb8c5e55e30a7addb4ff210858a0e8d2494ed6757bbe19012da99d51586c3cbb | https://jcenter.bintray.com/org/apache/commons/commons-parent/22/commons-pa…
+cf5c43860b53ba5a95c19bc6525cc43d3488a6fe3df2f649c0099a613a0640e3 | https://jcenter.bintray.com/com/google/code/gson/gson-parent/2.8.2/gson-par…
+3ec9d39b3e35fad9aab1e6b137466ce2190f88aee897cffa383e94a65287105e | https://jcenter.bintray.com/com/jayway/android/robotium/robotium-solo/5.5.4…
+953b116521a73575eee990e3f2c36a892fb088bb2d9a3027c82193cb7a013ef7 | https://jcenter.bintray.com/it/unimi/dsi/fastutil/7.2.0/fastutil-7.2.0.pom
+4ad0673155d7e0e5cf6d13689802d8d507f38e5ea00a6d2fb92aef206108213d | https://jcenter.bintray.com/org/apache/maven/maven-plugin-registry/2.2.1/ma…
+12a3c9a32b82fdc95223cab1f9d344e14ef3e396da14c4d0013451646f3280e7 | https://jcenter.bintray.com/org/codehaus/plexus/plexus-utils/1.5.15/plexus-…
+f34b3a0b62cdb468eb7e8335de4edc87958dc299306c2b4ba8ea15e6a4be106a | https://jcenter.bintray.com/net/sf/proguard/proguard-gradle/5.3.3/proguard-…
+fdff6cfa9ed9cc911c842a5d2395f209ec621ef1239d46810e9e495809d3ae09 | https://jcenter.bintray.com/nekohtml/nekohtml/1.9.6.2/nekohtml-1.9.6.2.jar
+ecd46dc69f5212b35eb21d64db68072f956c000083030ff53e09d1f81487c580 | https://maven.google.com/com/android/tools/external/org-jetbrains/uast/26.0…
+cf149955279b07d4f11e817985c1164a69e930d73db7441b43a6ef53bbd286c4 | https://jcenter.bintray.com/com/google/errorprone/error_prone_parent/2.0.18…
+ef71d45a49edfe76be0f520312a76bc2aae73ec0743a5ffffe10d30122c6e2b2 | https://jcenter.bintray.com/org/codehaus/plexus/plexus-container-default/1.…
+fcfb09fb0ea0aa97d3cfe7ea792398081348e468f126b3603cb3803f240197f0 | https://jcenter.bintray.com/com/squareup/javawriter/2.5.0/javawriter-2.5.0.…
+b3005544708f8583e455c22b09a4940596a057108bccdadb9db4d8e048091fed | https://jcenter.bintray.com/org/apache/maven/maven-error-diagnostics/2.2.1/…
+e2b4935e76d91b5abec44de309f2c8bb8d1d2e6cc0b8790b43cb654f1e22c722 | https://maven.google.com/com/android/tools/layoutlib/layoutlib-api/26.0.1/l…
+1a5c870be804f9041c1392606c19ef5a8ae503e79705962c2f8452c51cb0d27c | https://jcenter.bintray.com/com/squareup/leakcanary/leakcanary-analyzer/1.4…
+2d9484f4c649f708f47f9a479465fc729770ee65617dca3011836602264f6439 | https://jcenter.bintray.com/com/googlecode/json-simple/json-simple/1.1/json…
+153b32f474fd676ec36ad807c508885005139140fc92168bb76bf6be31f8efb8 | https://jcenter.bintray.com/org/apache/maven/maven-model/2.2.1/maven-model-…
+1f8c906d0de98ddfa81b1ce520ee52fbd280c222383b66cba89e16eafb626001 | https://maven.google.com/com/android/databinding/baseLibrary/3.0.1/baseLibr…
+6f52ba933a117bd67131b281214510ea30232b9807bfe569bc0c17e6a2d4018c | https://maven.google.com/com/android/tools/repository/26.0.1/repository-26.…
+5fe283f47b0e7f7d95a4252af3fa7a0db4d8f080cd9df308608c0472b8f168a1 | https://jcenter.bintray.com/org/apache/maven/maven-repository-metadata/2.2.…
+07f08b315c812406e9d497e1b592689742feb3950c1a713f95e2692d3e15b619 | https://jcenter.bintray.com/com/android/tools/ddms/ddmlib/26.0.1/ddmlib-26.…
+c5f51e723e84eee14c339170730b4e590342732e1560747ae559585a6ae09a0d | https://jcenter.bintray.com/org/robolectric/robolectric/3.5.1/robolectric-3…
+1870cb5f561ac94760064c5eff8d4259692dd5845680113e78ed9b239e6cf34a | https://jcenter.bintray.com/org/simpleframework/simple-http/6.0.1/simple-ht…
+58a4152e2ea975e955393d49ed23f3c88fa8368d75d2290fb2c28373a6c5a977 | https://maven.google.com/com/android/support/test/runner/0.5/runner-0.5.aar
+340422be8f3e3c847a0a0bf944296774f6db81f2fa8b34912bc931a112a26919 | https://jcenter.bintray.com/org/apache/maven/wagon/wagon-providers/1.0-beta…
+e8b4151ae1679f1abe7a14ee371ac9b3c651ae7b63290d1f586bdd0f78face9a | https://jcenter.bintray.com/com/android/tools/build/transform-api/2.0.0-dep…
+34af0baedaef19375b7c1a7da967e9089d5e0754647fdbe9a302590392874b77 | https://jcenter.bintray.com/org/apache/maven/maven-project/2.2.1/maven-proj…
+a9660f8b64b74f474226c70a50187d8efcac448d32ce97756f408975aa52cdaa | https://maven.google.com/com/android/tools/sdk-common/26.0.1/sdk-common-26.…
+ee032c39ae5e3cd099148fbba9a2124f9ed613e5cb93e03ee0fa8808ce364040 | https://jcenter.bintray.com/org/ow2/asm/asm-util/5.1/asm-util-5.1.jar
+f4778bb3abf2df40bfa365d00ff301b5eec76f2933b85f6aa3918e2ab6f08b91 | https://maven.google.com/com/android/support/design/23.4.0/design-23.4.0.pom
+f5a0a1eeaa100ed36aa83eca562d5dbb7e9b045c98b44db7da4745e9d9a20328 | https://jcenter.bintray.com/org/apache/httpcomponents/httpclient/4.2.6/http…
+9619e68f7eb36da3a28a60315f34320972badbad43749cc66712bb95b96a4ef3 | https://maven.google.com/com/android/support/support-annotations/23.4.0/sup…
+4054f186137e3b849a7c23c9e846cd57d8a2fe32c17d4c62bd420512d74c3d3f | https://jcenter.bintray.com/org/objenesis/objenesis/2.1/objenesis-2.1.pom
+645e30c1a93c6b50c918c14cea11e1f41015153fe6329149ad17d930e820be4a | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin/1.1.5…
+a34658f5c5de4b573eef21131cc32cc25f7b66407944f312b28ec2e56abb1fa9 | https://jcenter.bintray.com/org/ow2/asm/asm-analysis/5.1/asm-analysis-5.1.j…
+2242fd02d12b1ca73267fb3d89863025517200e7a4ee426cba4667d0172c74c3 | https://jcenter.bintray.com/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.p…
+feab9191311c3d7aeef2b66d6064afc80d3d1d52d980fb07ae43c78c987ba93a | https://jcenter.bintray.com/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.…
+0c0e9d1857c250d1d71b5c6be7b8cc29afe55e7419a90d13bbe968ae5bd7240e | https://jcenter.bintray.com/org/ow2/asm/asm-util/5.1/asm-util-5.1.pom
+d47fc646324c22c66f2b0e0e743c850dde9a51990c53925e7501d960f2e8df84 | https://jcenter.bintray.com/com/squareup/javawriter/2.1.1/javawriter-2.1.1.…
+9e1d8dd83ca6003f841e3af878ce2dc7c22497493a7bb6d1b62ec1b0d0a83c05 | https://jcenter.bintray.com/com/almworks/sqlite4java/sqlite4java/0.282/sqli…
+467ae650442e876867379094e7518dfdd67d22c5352ebd39808c84259e9790ba | https://jcenter.bintray.com/org/apache/commons/commons-parent/25/commons-pa…
+ee4e1227673b6ba0b462b567f011b88b6e4e4cd044e1c9734ffb1a2ff80d7ee7 | https://jcenter.bintray.com/org/robolectric/resources/3.5.1/resources-3.5.1…
+51215c67d2c068d8b7d2f6f80f51372a098075deccc448d4bdd7b987ba8328fb | https://jcenter.bintray.com/org/ow2/ow2/1.3/ow2-1.3.pom
+e5e82da4cc66c8d917bbf743e3c0752efe8522735e7fc9dbddb65bccea81cfe9 | https://jcenter.bintray.com/org/apache/httpcomponents/httpcore/4.2.5/httpco…
+e6531a278b4f632f198a6e45b9e11de1b2b678cd5a4e0fdff442f604c2439a42 | https://jcenter.bintray.com/org/jacoco/org.jacoco.report/0.7.4.201502262128…
+7c758612888782ccfe376823aee7cdcc7e0cdafb097f7ef50295a0b0c3a16edf | https://jcenter.bintray.com/org/codehaus/plexus/plexus-container-default/1.…
+362e9324ee7c697e21279e20077b52737ddef3f1b2c1a7abe5ad34b465145550 | https://jcenter.bintray.com/org/apache/httpcomponents/httpclient/4.2.6/http…
+df5f5e4b6d2ddcde49ed5a4e7e3bf2cb7f87e0d9892e5b066f995c4d703b228f | https://maven.google.com/com/android/tools/analytics-library/protos/26.0.1/…
+7b0aa6ed7553597ce0610684a9f7eca8021eee218f2e2f427c04a7fbf5f920bd | https://jcenter.bintray.com/com/google/android/apps/common/testing/accessib…
+40ceb7157feb263949e0f503fe5f71689333a621021aa20ce0d0acee3badaa0f | https://jcenter.bintray.com/com/google/j2objc/j2objc-annotations/1.1/j2objc…
+ecf58351f8fe0c398b8b452216705bece5291b9b327d30202c16b28ac680450c | https://jcenter.bintray.com/org/apache/maven/maven-artifact-manager/2.2.1/m…
+b27bbb9d269a97be8ff0ac480c0f09c9a953f62e6ff05d90fcbb0ddb4de97c77 | https://jcenter.bintray.com/com/android/tools/common/26.0.1/common-26.0.1.j…
+fde386a7905173a1b103de6ab820727584b50d0e32282e2797787c20a64ffa93 | https://jcenter.bintray.com/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.…
+dce95c6e899e42925697aa961b4f01ced3211003cd2101df93ce9d52bb3c3d0a | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-runner/1.1…
+c0de2bbc4cb8297419659813ecd4ed1d077ed1dd5c1f5544cc5143e493e84c10 | https://jcenter.bintray.com/org/ow2/asm/asm-tree/5.1/asm-tree-5.1.jar
+70c458dcf6040317b41ddf50a7d53a02b8a85b0723b36cde9562c59e3cd11dae | https://jcenter.bintray.com/com/android/tools/dvlib/26.0.1/dvlib-26.0.1.jar
+ecbd655fd71d298eaf0787045b84324ce68936ad0de98c7a9c55538e539f2747 | https://jcenter.bintray.com/org/apache/ant/ant-parent/1.8.0/ant-parent-1.8.…
+c71555751e57e0ef912870e8ac9625ae782502a6a5b9c19ccf83b2a97d8b26bd | https://jcenter.bintray.com/com/google/jimfs/jimfs-parent/1.1/jimfs-parent-…
+0dc4d181e4d347893c2ddbd2e6cd5d7287fc651c03648fa64b2341c7366b1773 | https://jcenter.bintray.com/org/bouncycastle/bcprov-jdk15on/1.52/bcprov-jdk…
+34e08ee62116071cbb69c0ed70d15a7a5b208d62798c59f2120bb8929324cb63 | https://jcenter.bintray.com/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar
+db3cd95bec1001605e1653f2843e8542e712fa2bb672fd9c8c1ace86c57673d1 | https://jcenter.bintray.com/org/apache/httpcomponents/httpmime/4.1/httpmime…
+f8ab13b14be080fe2f617f90e55599760e4a1b4deeea5c595df63d0d6375ed6d | https://jcenter.bintray.com/com/intellij/annotations/12.0/annotations-12.0.…
+c3c99bf58182889fe86315e9a01473ee2c95540b9dedef898cec64554d925c54 | https://jcenter.bintray.com/com/android/tools/annotations/24.5.0/annotation…
+d7e368746fa68ca6ba63519fb0838be9a278d509a5fcee6cd4a778a119eae447 | https://maven.google.com/com/android/support/appcompat-v7/23.4.0/appcompat-…
+f095c882716d49269a806685dcb256fa6a36389b2713ac56bb758bf8693565a2 | https://jcenter.bintray.com/org/apache/maven/wagon/wagon-http-shared/1.0-be…
+e767a1248adb4843110457e839e504c2511649ee78f05a6a311ea7f23578894d | https://maven.google.com/com/android/tools/build/builder-test-api/3.0.1/bui…
+22a5564590c8bfd8df7efb2b0c7d9942b46a0beb59ba38899d59c1270f293b1c | https://jcenter.bintray.com/org/robolectric/resources/3.5.1/resources-3.5.1…
+9884c02d47244364e1fb27675b5ef3b206a2d2d3141ac77f57fd771a175c2a2f | https://jcenter.bintray.com/org/ow2/asm/asm-parent/5.0.1/asm-parent-5.0.1.p…
+7e4a34c7b63d879c5cec454e2e47eb1e61e271a58672e7e548659f4f23742500 | https://jcenter.bintray.com/org/bouncycastle/bcprov-jdk15on/1.52/bcprov-jdk…
+ef5ff4dc0257c1eebed07da22b4695ffdd3030da8d224282fb9c565b56cf2f24 | https://jcenter.bintray.com/org/simpleframework/simple-http/6.0.1/simple-ht…
+6422a1f272022e3153ed68af04e5a03548fe48061ed2846c044df84e02abb143 | https://jcenter.bintray.com/org/robolectric/junit/3.5.1/junit-3.5.1.pom
+e263064a6ebeba4209d1abb089f9fff5194d79bb011b525d276b3994025123e0 | https://maven.google.com/com/android/support/test/rules/0.5/rules-0.5.aar
+23e6d006f7d07bb43ebc80b2e530c8cdd65bbabcaaf911c3f12e2ea26167178c | https://maven.google.com/com/android/tools/build/gradle-core/3.0.1/gradle-c…
+b2e81b7d5a22755f2ea76aa9bbbd4359d61c4cb9577193ccfbb8f97378ed293b | https://jcenter.bintray.com/org/robolectric/junit/3.5.1/junit-3.5.1.jar
+5c415a9d8585200de4be1947e15291cc79f599b06249375f5c9ea22d4b2d090f | https://jcenter.bintray.com/org/jetbrains/trove4j/trove4j/20160824/trove4j-…
+e1abd7f1116cf5e0c59947693e2189208ec94296b2a3394c959e3511d399a7b0 | https://jcenter.bintray.com/com/squareup/javawriter/2.5.0/javawriter-2.5.0.…
+757bfe906193b8b651e79dc26cd67d6b55d0770a2cdfb0381591504f779d4a76 | https://jcenter.bintray.com/com/googlecode/juniversalchardet/juniversalchar…
+8b870b3f2ee38bf15681acbc8b628df1ccf7c533190b5c79af9934b6cd66d451 | https://maven.google.com/com/android/databinding/baseLibrary/3.0.1/baseLibr…
+711d64522f9ec410983bd310934296da134be4254a125080a0416ec178dfad1c | https://jcenter.bintray.com/org/hamcrest/hamcrest-library/1.3/hamcrest-libr…
+7bc4c7f999b9c673c714f7f8adb6281b11b8f14d5821a2b860c3d60c24518c66 | https://jcenter.bintray.com/com/squareup/leakcanary/leakcanary-watcher/1.4-…
+faf82de0dc02e0c0ae327cd653f37255496b2e53fce280b3ab4cb34553a89086 | https://jcenter.bintray.com/com/intellij/annotations/12.0/annotations-12.0.…
+cb4cfad870bf563a07199f3ebea5763f0dec440fcda0b318640b1feaa788656b | https://jcenter.bintray.com/com/google/errorprone/error_prone_annotations/2…
+401877d5e70ad599e9b6cff18434ea0332f637b51f8ec68352646c836f9bb2a4 | https://jcenter.bintray.com/org/antlr/antlr4-master/4.5.3/antlr4-master-4.5…
+d19c24122f9f70221e8d97a54f48fbf43feba5b003963057458982e0407aab42 | https://jcenter.bintray.com/com/jayway/android/robotium/robotium-solo/5.5.4…
+52d73f35f7e638ce3cb56546f879c20e7f7019f72aa20cde1fa80e97865dfd40 | https://jcenter.bintray.com/javax/annotation/javax.annotation-api/1.2/javax…
+7e8bdca281bdcb6dad48a80854837f1c0ab46f31a0b292370e320f471f5b9cfd | https://maven.google.com/com/android/tools/sdk-common/26.0.1/sdk-common-26.…
+0251dbb938740ace07a53675113eee753ba389db65aebc814b175af50321620e | https://jcenter.bintray.com/org/apache/ant/ant/1.8.0/ant-1.8.0.jar
+b51f8867c92b6a722499557fc3a1fdea77bdf9ef574722fe90ce436a29559454 | https://jcenter.bintray.com/org/sonatype/oss/oss-parent/7/oss-parent-7.pom
+d2da399a9967c69f0a21739256fa79d284222c223082cacadc17372244764b54 | https://jcenter.bintray.com/org/ow2/asm/asm/5.1/asm-5.1.jar
+c9268e671899430946b54c4d1b93c30f0db1b7df0b39b3c6279d6bd475a6fbdc | https://jcenter.bintray.com/com/thoughtworks/xstream/xstream-parent/1.4.8/x…
+fee07b2760ef3ed20f2edefa70504a29f9216d277adae56ce85778ee4b18cd04 | https://maven.google.com/com/android/support/support-v4/23.4.0/support-v4-2…
+d46777ad3ea8bca73491b2e02fc85b3664486abf5314cc4dc6740908bd855330 | https://jcenter.bintray.com/com/google/android/apps/common/testing/accessib…
+781ae7e6a1ae87e55b3e0a19a441bafd385f4ed9b5b4bd6316ec9bc6952d0273 | https://maven.google.com/com/android/support/test/exposed-instrumentation-a…
+b787d574c851505e76212968b9ae1641ea79804aef7f5a2cee2a01cd4055213a | https://jcenter.bintray.com/org/apache/commons/commons-compress/1.12/common…
+715268d800bacd07236ee1e6f4407650e61cf979733bc262e4de15fbd13b920d | https://jcenter.bintray.com/org/mockito/mockito-core/1.10.19/mockito-core-1…
+13c1448f7ebb61f67e6fbd6cd5c188804c17c4d7e77c4b79b316ede4ef9cd9b3 | https://maven.google.com/com/android/tools/lint/lint/26.0.1/lint-26.0.1.pom
+2f781378c1be7caa98fa1c5a109f296a6bcdcbe1f9a67a3d16e07f5eb786c96c | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-project/1.1.51/kotl…
+ce6f913cad1f0db3aad70186d65c5bc7ffcc9a99e3fe8e0b137312819f7c362f | https://jcenter.bintray.com/commons-logging/commons-logging/1.1.1/commons-l…
+a1e7d6b3efc1703c7c8f1b15ecf8757f17d0ac41f32c9a48481a5caf638c55db | https://jcenter.bintray.com/com/google/protobuf/protobuf-java/3.0.0/protobu…
+260cc48a58764afbcadec4a9b41877c5aa826c760ae3b6b1db8bde44074c7c41 | https://jcenter.bintray.com/org/ow2/asm/asm/5.0.1/asm-5.0.1.pom
+4a16a423391387d46724749ad29263e64894dadf6783aa38e4b9c888c88d25fe | https://jcenter.bintray.com/org/robolectric/shadowapi/3.5.1/shadowapi-3.5.1…
+2068320bd6bad744c3673ab048f67e30bef8f518996fa380033556600669905d | https://jcenter.bintray.com/org/codehaus/mojo/animal-sniffer-annotations/1.…
+02c12c3c2ae12dd475219ff691c82a4d9ea21f44bc594a181295bf6d43dcfbb0 | https://jcenter.bintray.com/com/google/code/findbugs/jsr305/2.0.1/jsr305-2.…
+ce9e83354fb5c24ed0e2b26a986130ed5d3dedeba288eb1fce563f78f7bb881f | https://maven.google.com/com/android/support/test/espresso/espresso-core/2.…
+a160969150a1671661098deef05da96e1a4f40b93dab045e222485aa976e75a6 | https://maven.google.com/com/android/support/customtabs/23.4.0/customtabs-2…
+3db15325cd620c0e54c3d88b6b7ec1bac43db376e18c9bf56bd0c05402ee6be8 | https://jcenter.bintray.com/org/apache/maven/maven-plugin-registry/2.2.1/ma…
+08426143d37d770f3e4dae45b0870c3ab1ba512cb64418f34496025b72d16760 | https://jcenter.bintray.com/org/apache/ant/ant-launcher/1.8.0/ant-launcher-…
+1e7f53fa5b8b5c807e986ba335665da03f18d660802d8bf061823089d1bee468 | https://jcenter.bintray.com/com/google/code/findbugs/jsr305/2.0.1/jsr305-2.…
+c9a55463942128f0b7fad62b8bee5886d1cb1c733fb3b78507465b025e6a4031 | https://maven.google.com/com/android/databinding/compilerCommon/3.0.1/compi…
+a219a1abf948400b669d08be73a6f9209fb720d237e5ff74c223bffe5f9df93d | https://jcenter.bintray.com/com/thoughtworks/xstream/xstream/1.4.8/xstream-…
+24633fb1e62a9e4b1a25e2c1751d68be89e050b488652456e545b8019539137d | https://maven.google.com/com/android/tools/build/gradle-api/3.0.1/gradle-ap…
+770471090ca40a17b9e436ee2ec00819be42042da6f4085ece1d37916dc08ff9 | https://jcenter.bintray.com/backport-util-concurrent/backport-util-concurre…
+727a7252ca385f648c3ddf4f104e3908cba723fa577fdd93b0cf851eb16c44f1 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.1.51/kotli…
+943e12b100627804638fa285805a0ab788a680266531e650921ebfe4621a8bfa | https://jcenter.bintray.com/javax/inject/javax.inject/1/javax.inject-1.pom
+164e7a9cf23a4e63bbc961f8db7d965d53d685710660a88249641f91d36f83a4 | https://jcenter.bintray.com/org/apache/httpcomponents/httpcomponents-core/4…
+15d4b252c5aa3aeb8d634ae5aaf348ac6ce183b6b5e3615364e6c083715c1133 | https://jcenter.bintray.com/com/getkeepsafe/dexcount/dexcount-gradle-plugin…
+ddb0fc5402b4cd8f31d5f29c830793d3ec00fd8ce60786254e5f0f132f0bdd8d | https://maven.google.com/com/android/tools/lint/lint-api/26.0.1/lint-api-26…
+381d72c526be217b770f9f8c3f749a86d3b1548ac5c1fcb48d267530ec60d43f | https://jcenter.bintray.com/org/codehaus/plexus/plexus-components/1.1.14/pl…
+9cddda75f4a1b4469e73f44e7b61a3e897d0f657df4797f9106ffe88c4eeade0 | https://jcenter.bintray.com/org/eclipse/jdt/core/compiler/ecj/4.6.1/ecj-4.6…
+0ee5f691cbbedb69969b48374d27412f821959af5d2dffbabc424b607cdbbdf6 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.1.3-2/kot…
+052b0d2b58e5df4f30e4f64bdf5414473f6cfa10147f8f8d89cb0b63316ba8f3 | https://jcenter.bintray.com/com/android/tools/build/manifest-merger/26.0.1/…
+9144127192d6f612c2366825dceaeb23b0d53130b83e0bf1ffe107d1470a8487 | https://jcenter.bintray.com/com/google/errorprone/error_prone_annotations/2…
+b84d281f59b9da528139e0752a0e1cab0bd98d52c58442b00e45c9748e1d9eee | https://jcenter.bintray.com/org/codehaus/plexus/plexus-interpolation/1.11/p…
+2a0e55bb02940d54bc025aca27ec5071535890fc8ef892cf4fb4fe63f216242d | https://jcenter.bintray.com/com/squareup/haha/haha/2.0.2/haha-2.0.2.jar
+e824935c264b041e847b67808aee704f8cd47d698203259057e42f473e1f6f30 | https://maven.google.com/com/android/databinding/compilerCommon/3.0.1/compi…
+f021eb07aebec822496f489a2d6ec5d3fa81a2717bfc8407cb0ebcaadcee2d7e | https://jcenter.bintray.com/org/apache/maven/wagon/wagon-http-lightweight/1…
+da9fd92eacdf63daf0be52eb71accc10ff7943a85d7aac9ea96cf7e03ee3d3cc | https://jcenter.bintray.com/org/apache/ant/ant-launcher/1.8.0/ant-launcher-…
+2d4cdc52be79184386d74333d1c4466b7960f83505bfd5e596e76c5ab6ee3bbf | https://jcenter.bintray.com/com/almworks/sqlite4java/sqlite4java/0.282/sqli…
+f6775dc981540ffa10f33bd831f14608517ce38b90628e045707dd5bb5d1348e | https://jcenter.bintray.com/org/apache/maven/wagon/wagon-http-shared/1.0-be…
+8fdc3336e7b01873193ba9c48b87de7d788dc0954d1eb45c322492627a4b5c6e | https://jcenter.bintray.com/org/bouncycastle/bcprov-jdk15on/1.56/bcprov-jdk…
+45eb0d6e49430271b5fb385c53fae0b81d6ad3eae465a7a8d948217bcae1e86d | https://jcenter.bintray.com/com/android/tools/external/lombok/lombok-ast/0.…
+bcb7ce66a9c629fa7c723a767b6430e1a383e8d4dd543d603dcb0ad1b855b8b2 | https://maven.google.com/com/android/support/animated-vector-drawable/23.4.…
+8b5cd510f29b8f96143cd990747797e9408735c914078a47fa3a6290b474d045 | https://maven.google.com/com/android/support/test/rules/0.5/rules-0.5.pom
+6b5ad911a13a5c814c04be4376586eec15838158cb59b9f062ae138ddff1b861 | https://maven.google.com/com/android/tools/layoutlib/layoutlib-api/26.0.1/l…
+1dea25a2af87ff4757ece0dcb676e0d891dfe1e1e784d6251112e35f21d77b86 | https://maven.google.com/com/android/support/palette-v7/23.4.0/palette-v7-2…
+321668fc474a73140eb9cc73c779f1ebb9f60948aade3beddee082ecefcf0259 | https://jcenter.bintray.com/org/bouncycastle/bcpkix-jdk15on/1.56/bcpkix-jdk…
+bfc90e9e32d0eab1f397fb974b5f150a815188382ac41f372a7149d5bc178008 | https://jcenter.bintray.com/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar
+aff003f3a0afcfad1bc8b4cce81813ababc48680345f16a1a70adcd1adcb8ce2 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-embeddable…
+f7524cfffc9773ea75a9f7379139f00a57355e411009ea9529b7adf7ef93fde8 | https://jcenter.bintray.com/org/apache/maven/wagon/wagon-file/1.0-beta-6/wa…
+5909b396ca3a2be10d0eea32c74ef78d816e1b4ead21de1d78de1f890d033e04 | https://jcenter.bintray.com/javax/annotation/javax.annotation-api/1.2/javax…
+6895e368fa59168428c78cdf300bb29352073f397d8f260af3de82df2c8b2448 | https://maven.google.com/com/android/tools/analytics-library/tracker/26.0.1…
+0cc647963b74ad1d7a37c9868e9e5a8f474e49297e1863582253a08a4c719cb1 | https://jcenter.bintray.com/classworlds/classworlds/1.1-alpha-2/classworlds…
+0d25a88a1b1e44801f8912206a40ff249cb5702ee87cf3d243d5213f7bcf534f | https://jcenter.bintray.com/org/apache/maven/maven-settings/2.2.1/maven-set…
+a9d65daccc5afca97372936246ac49fb587423e005606e7981b0efc66b0e9385 | https://maven.google.com/com/android/tools/annotations/26.0.1/annotations-2…
+e51efb2ec140b2849b9880fb161cb6e30dd672368a534c1f47ab46d7f537d9ca | https://jcenter.bintray.com/net/sf/proguard/proguard-base/5.3.3/proguard-ba…
+d7d77326867e6d903156ebb18c244819b26aebe3aa82a1c57081081a0b6c4f63 | https://jcenter.bintray.com/org/robolectric/utils/3.5.1/utils-3.5.1.jar
+85ec8258fafc283f61647e6a11b404890821c11db6fcf550779ecf7a14151007 | https://jcenter.bintray.com/org/ow2/asm/asm-parent/5.1/asm-parent-5.1.pom
+f264dd9f79a1fde10ce5ecc53221eff24be4c9331c830b7d52f2f08a7b633de2 | https://jcenter.bintray.com/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.jar
+950c765f9ebfb7de187cf70ec5b61218568b993bc760cb341bdf142ac94e751b | https://jcenter.bintray.com/com/squareup/leakcanary/leakcanary-android/1.4-…
+a0700d84efe7cc3103557bd0522f9443681b96ba9559c4bb7f9dc9bf35243485 | https://jcenter.bintray.com/com/ibm/icu/icu4j/53.1/icu4j-53.1.pom
+e4c7afb8f0d7aa159318d42a011cc2c9b0525d820973cbca5318bec6c649cecc | https://jcenter.bintray.com/com/google/protobuf/protobuf-java/3.0.0/protobu…
+ed68ffe66e8fcc23fdeab4eab259a197a11f26325eae59c5afba3a273cd83d25 | https://maven.google.com/com/android/support/test/espresso/espresso-idling-…
+0a640f956f4cdde8b5d3458a67ca67599eeb6f47349167a3f1afce7d60978027 | https://maven.google.com/com/android/tools/build/gradle-core/3.0.1/gradle-c…
+963e1ee14f808ffb99897d848ddcdb28fa91ddda867eb18d303e82728f878349 | https://jcenter.bintray.com/org/bouncycastle/bcprov-jdk15on/1.56/bcprov-jdk…
+26c5856e954b5f864db76f13b86919b59c6eecf9fd930b96baa8884626baf2f5 | https://jcenter.bintray.com/net/sf/jopt-simple/jopt-simple/4.9/jopt-simple-…
+a32de739cfdf515774e696f91aa9697d2e7731e5cb5045ca8a4b657f8b1b4fb4 | https://jcenter.bintray.com/org/antlr/antlr4/4.5.3/antlr4-4.5.3.jar
+70cc10a9e0b028dd98ca870354afc45eb61eebbd5c6b247b9dd00b4af2b9279a | https://jcenter.bintray.com/org/simpleframework/simple-common/6.0.1/simple-…
+f16b5ea711dfe0323454b880180aa832420ec039936e4aa75fb978748634808a | https://jcenter.bintray.com/org/apache/maven/maven-ant-tasks/2.1.3/maven-an…
+2a0475c2625fc27f80d3c5021130509b4068e0f984f2511e7a77a097de48b41d | https://maven.google.com/com/android/tools/sdklib/26.0.1/sdklib-26.0.1.pom
+f5655d331af6afcd4dbaedaa739b889380c771a7e83f7aea5c8544a05074cf0b | https://jcenter.bintray.com/nekohtml/nekohtml/1.9.6.2/nekohtml-1.9.6.2.pom
+89fc0cd20db030033ba04bb00c2837efe1e530b00f86935d6a645717d15bb978 | https://jcenter.bintray.com/com/google/protobuf/protobuf-java/2.6.1/protobu…
+1933a6037439b389bda2feaccfc0113880fd8d88f7d240d2052b91108dd5ae89 | https://jcenter.bintray.com/org/apache/apache/5/apache-5.pom
+e30f1db6058f745f26112ef309f89becb27c617c7d9e4c6e02165a7620a92e6a | https://jcenter.bintray.com/com/android/tools/common/26.0.1/common-26.0.1.p…
+7298feeb36ff14dd933c38e62585fb9973fea32fb3c4bc5379428cb1aac5dd3c | https://jcenter.bintray.com/org/apache/maven/wagon/wagon-file/1.0-beta-6/wa…
+1ccea47240da2f0b75dbddb22718fd64cce42c20bf7983e35480b098ab62d26d | https://jcenter.bintray.com/com/squareup/leakcanary/leakcanary-android-no-o…
+42f0be9bf98c12dacdcb99dd141d83d4dc5bb7c37a6f26684cd3ff2287667fba | https://jcenter.bintray.com/org/hamcrest/hamcrest-integration/1.3/hamcrest-…
+55aa554843983f431df5616112cf688d38aa17c132357afd1c109435bfdac4e6 | https://jcenter.bintray.com/com/google/protobuf/protobuf-java/2.6.1/protobu…
+efa86e5cd922f17b472fdfcae57234d8d4ac3e148b6250737dfce454af7a7a44 | https://jcenter.bintray.com/com/google/jimfs/jimfs/1.1/jimfs-1.1.pom
+7846399b35c7cd642a9b3a000c3e2d62d04eb37a4547b6933cc8b18bcc2f086b | https://jcenter.bintray.com/com/googlecode/juniversalchardet/juniversalchar…
+62dd8e35a2c4432bb22f8250bbfe08639635599b4064d5d747bd24cf3c02fac5 | https://jcenter.bintray.com/org/apache/maven/maven-model/2.2.1/maven-model-…
+2643837251ebdff33a7731646abb563a6050dbb1307937a6e401ef25f3c59103 | https://jcenter.bintray.com/com/jayway/android/robotium/robotium/5.5.4/robo…
+9dad0f56523955b60a9903f4e8342891355d7a59c77f36a3b53cf6ff2e4df625 | https://jcenter.bintray.com/org/apache/maven/maven-repository-metadata/2.2.…
+f52619bf2f5c5117f0af1c23adff3a9c8f468647be47fefc59b81dcec7e480e6 | https://jcenter.bintray.com/org/apache/maven/maven-ant-tasks/2.1.3/maven-an…
+6b8361d8f44649e739343b77c644f1fef1f19d771734ed83785b0dc297198bd1 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-annotation-processi…
+7450c3330cf06c254db9f0dc5ef49eac15502311cf19e0208ba473076ee043d6 | https://jcenter.bintray.com/org/apache/maven/maven-parent/11/maven-parent-1…
+2c1542faf343185b7cab9c3d55c8ae5471d6d095d3887a4adefdbdf2984dc0b6 | https://jcenter.bintray.com/org/apache/commons/commons-compress/1.12/common…
+7b33cee43a87b390f2ea8084ed431b605016e2ff4c24db9a1fbdd8ffe97ef92d | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1…
+81f73f8b25b430f5a40a39727bbcef653a1d0868cc69233b44e4282ce5a94ff9 | https://jcenter.bintray.com/com/android/tools/ddms/ddmlib/26.0.1/ddmlib-26.…
+358700f7a5b932bce30ebb0010641a9cade4b8499a60845717b2e22a39697f92 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.1.60/kotli…
+9a9f556713a404e770c9dbdaed7eb086078014c989291960c76fdde6db4192f7 | https://jcenter.bintray.com/org/apache/maven/maven-settings/2.2.1/maven-set…
+c4828e28d7c0a930af9387510b3bada7daa5c04d7c25a75c7b8b081f1c257ddd | https://jcenter.bintray.com/com/google/jimfs/jimfs/1.1/jimfs-1.1.jar
+dec38b5e95eba8dbb0aefb0ea72fb777def93e75f60c247a143b0b81a5de3916 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1…
+fd9507feb858fa620d1b4aa4b7039fdea1a77e09d3fd28cfbddfff468d9d8c28 | https://jcenter.bintray.com/org/codehaus/plexus/plexus-interpolation/1.11/p…
+24465b2ba90dc5ed7e2c05f1c87fe4256c27df6d3cd69b6177f3cb447b05c021 | https://maven.google.com/com/android/support/recyclerview-v7/23.4.0/recycle…
+0c5a9770ae0271dc97bcc6cb0f2e809a40ba587cdce2556f9db59912c8e158fc | https://jcenter.bintray.com/org/apache/maven/maven-parent/19/maven-parent-1…
+c219d697fa9c8f243d8f6e347499b6d4e8af1d0cac4bbc7b3907d338a2024c13 | https://jcenter.bintray.com/nekohtml/xercesMinimal/1.9.6.2/xercesMinimal-1.…
+326ba49aa7a35e07b6cc592ad7a5b0f86f4667051a8e70e7639c54bc0c356dee | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.1.60/kotli…
+e116f32edcb77067289a3148143f2c0c97b27cf9a1342f8108ee37dec4868861 | https://jcenter.bintray.com/org/apache/maven/wagon/wagon-provider-api/1.0-b…
+cf251279505960889b6b281c26af0438656ebac3845e52791925cf7649cb15a6 | https://maven.google.com/com/android/tools/sdklib/26.0.1/sdklib-26.0.1.jar
+f5759b7fcdfc83a525a036deedcbd32e5b536b625ebc282426f16ca137eb5902 | https://jcenter.bintray.com/backport-util-concurrent/backport-util-concurre…
+30f5789efa39ddbf96095aada3fc1260c4561faf2f714686717cb2dc5049475a | https://jcenter.bintray.com/net/java/jvnet-parent/3/jvnet-parent-3.pom
+5dc327c690d031a11aa8f9f4cdc391fb938fbb7c7c143cc4bc60dd573d1fd1c9 | https://maven.google.com/com/android/tools/build/builder/3.0.1/builder-3.0.…
+7c75075badcb014443ee94c8c4cad2f4a9905be3ce9430fe7b220afc7fa3a80f | https://jcenter.bintray.com/org/codehaus/plexus/plexus-containers/1.0.3/ple…
+3c4fa807380179c24966309fe642eee19558948ebfd326f8f01c301629a50cb0 | https://jcenter.bintray.com/com/squareup/leakcanary/leakcanary-android/1.4-…
+c3fb02564ca173e45548d7a91aca1efe341db11da2656199d559773e7ae15edf | https://jcenter.bintray.com/org/ow2/asm/asm-commons/5.0.1/asm-commons-5.0.1…
+8b0aa8a74e990ca8d633ab7bd1938530e921548df13fd4020224a61065378876 | https://maven.google.com/com/android/tools/build/builder-test-api/3.0.1/bui…
+81120db4d5490c4f0e9789e1178d2bac231fcff2618bd80f8ef6ff03c550d59b | https://jcenter.bintray.com/org/ow2/asm/asm-analysis/5.1/asm-analysis-5.1.p…
+6d079b5abf39f323baaccc68463beef5cf2e9574f333dd749ae96753f00eb205 | https://jcenter.bintray.com/org/ow2/asm/asm/5.1/asm-5.1.pom
+332883794330d554c24cf311bf60481ad55bf773d5a4b71434d7f6c119ba9dbe | https://jcenter.bintray.com/com/squareup/leakcanary/leakcanary-analyzer/1.4…
+f658a628efd6e0efe416b977638ba144af660fe6413f3637a4d03feb6a1ce806 | https://jcenter.bintray.com/org/apache/maven/maven-artifact/2.2.1/maven-art…
+cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581 | https://jcenter.bintray.com/commons-io/commons-io/2.4/commons-io-2.4.jar
+66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9 | https://jcenter.bintray.com/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.…
+4946e60a547c8eda69f3bc23c5b6f0dadcf8469ea49b1d1da7de34aecfcf18dd | https://jcenter.bintray.com/org/apache/apache/9/apache-9.pom
+150021a89ae6f252415cbfff5c3111bf87433776b997b68e6e71f37e5b696799 | https://maven.google.com/com/android/support/support-vector-drawable/23.4.0…
+7043dee4e9e7175e93e0b36f45b1ec1ecb893c5f755667e8b916eb8dd201c6ca | https://jcenter.bintray.com/org/bouncycastle/bcpkix-jdk15on/1.56/bcpkix-jdk…
+cf7e3630e1929ddeffcb0315db2acb37182c92dd3af970111b6115592f64d077 | https://jcenter.bintray.com/org/jacoco/org.jacoco.core/0.7.4.201502262128/o…
+228367b7569fb1462a3eb1423bc2778e2fc7fbaee3d3767890c02b8924fa1889 | https://jcenter.bintray.com/org/apache/maven/maven-error-diagnostics/2.2.1/…
+025caec7c56a0cb4d86c45bc18ac3e23dba291e22ebceb76302a9a9b9b7183cc | https://jcenter.bintray.com/org/apache/maven/wagon/wagon/1.0-beta-6/wagon-1…
+cd6db17a11a31ede794ccbd1df0e4d9750f640234731f21cff885a9997277e81 | https://jcenter.bintray.com/com/google/google/1/google-1.pom
+932e6bab9a24a7bc958bbdb7e29e04d083b473d11c4ba3fab1e9b7149579f272 | https://jcenter.bintray.com/com/google/protobuf/protobuf-parent/3.0.0/proto…
+6ee434905eeb60a7c4d52b1f45288d5e53b68094f1cce6990bced2097c3dbec4 | https://maven.google.com/com/android/support/test/espresso/espresso-core/2.…
+1eaf9182e1977c1c50a70edbfbf70536398c68990bfaafc9f0e9899041201539 | https://jcenter.bintray.com/com/google/guava/guava-parent/22.0/guava-parent…
+91b9f17a54e6c340c8d3ea4b359401170706eb26a82d51909abe6ba80081aed8 | https://jcenter.bintray.com/com/google/code/gson/gson/2.8.2/gson-2.8.2.pom
+74fa208043740642f7e6eb09faba15965218ad2f50ce3020efb100136e4b591c | https://jcenter.bintray.com/it/unimi/dsi/fastutil/7.2.0/fastutil-7.2.0.jar
+e336a35a1e102c2f11ce1ea7f0872df14e332374b8eacc0877e50f85f84c3d09 | https://maven.google.com/com/android/support/animated-vector-drawable/23.4.…
+8d4006178fedef4255797b806167cf4a6774158eedabf96420693afbbd00fee3 | https://maven.google.com/com/android/tools/analytics-library/protos/26.0.1/…
+43edcc0fc3bd8520bf60066f54088f272e39aa856d25cdd6ca9ee4d8f5c32666 | https://maven.google.com/com/android/support/support-vector-drawable/23.4.0…
+97b3786e1f55e74bddf8ad102bf50e33bbcbc1f6b7fd7b36f0bbbb25cd4981be | https://jcenter.bintray.com/org/ow2/asm/asm-commons/5.1/asm-commons-5.1.jar
+803be394edb8dd7d1e678683ed85aee7f86a172c90f03e6198c8a49d4f342b99 | https://maven.google.com/com/android/tools/build/builder/3.0.1/builder-3.0.…
+8c38b967ee2d7ae4c0bb021717f58717c9a627a82f4af9963263367de078164e | https://maven.google.com/com/android/support/palette-v7/23.4.0/palette-v7-2…
+d0f2e16d054e8bb97add9ca26525eb2346f692809fcd2a28787da8ceb3c35ee8 | https://jcenter.bintray.com/commons-logging/commons-logging/1.1.1/commons-l…
+536c45e8804de01321c478cfb994377f81f1e32897636616fa21b877fd137c6f | https://jcenter.bintray.com/org/eclipse/jdt/core/compiler/ecj/4.6.1/ecj-4.6…
diff --git a/projects/firefox/mozconfig-android-armv7 b/projects/firefox/mozconfig-android-armv7
new file mode 100644
index 0000000..f34e228
--- /dev/null
+++ b/projects/firefox/mozconfig-android-armv7
@@ -0,0 +1,49 @@
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-arm-linux-androideabi
+mk_add_options MOZ_APP_DISPLAYNAME="Tor Browser"
+export MOZILLA_OFFICIAL=1
+
+ac_add_options --enable-optimize
+ac_add_options --enable-official-branding
+
+ac_add_options --enable-application=mobile/android
+ac_add_options --target=arm-linux-androideabi
+ac_add_options --with-android-ndk=/var/tmp/dist/android-toolchain/android-ndk
+ac_add_options --with-android-sdk=/var/tmp/dist/android-toolchain/android-sdk-linux
+ac_add_options --with-gradle=/var/tmp/dist/android-toolchain/gradle/gradle-4.1/bin/gradle
+ac_add_options --with-android-version=16
+ac_add_options --with-branding=mobile/android/branding/torbrowser
+
+# Android NDK does not contain llvm-config so set clang path in options
+ac_add_options --with-libclang-path=/var/tmp/dist/android-toolchain/android-ndk/arm/lib64
+ac_add_options --with-clang-path=/var/tmp/dist/android-toolchain/android-ndk/arm/bin/clang
+
+if [ -n "${TB_BUILD_WITH_DISTRIBUTION}" ]; then
+ ac_add_options --with-android-distribution-directory=@TOPSRCDIR@/mobile/android/torbrowser
+fi
+
+if [ -z "${TB_BUILD_WITH_UPDATER}" ]; then
+# Because Google Play will likely be the primary distribution medium,
+# we disable updating and rely on Google Play by default. The
+# Developer Policy explicitly prohibits in-app updating:
+# An app distributed via Google Play may not modify, replace, or
+# update itself using any method other than Google Plays update
+# mechanism.
+# https://play.google.com/about/privacy-security-deception/malicious-behavior/
+
+ ac_add_options --disable-tor-browser-update
+ ac_add_options --disable-signmar
+ ac_add_options --disable-verify-mar
+fi
+
+ac_add_options --enable-strip
+ac_add_options --disable-tests
+ac_add_options --disable-debug
+ac_add_options --disable-rust-debug
+ac_add_options --disable-maintenance-service
+ac_add_options --disable-crashreporter
+ac_add_options --disable-webrtc
+
+ac_add_options --without-google-play-services
+
+# Let's make sure no preference is enabling either Adobe's or Google's CDM.
+ac_add_options --disable-eme
1
0

[tor-browser-build/master] Bug 28467: Update hacking doc for working with submodules
by boklm@torproject.org 16 Nov '18
by boklm@torproject.org 16 Nov '18
16 Nov '18
commit f8d9731ad7dd2c3cf66d4aaa6b5d78ad0dcac671
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Nov 16 09:36:31 2018 +0000
Bug 28467: Update hacking doc for working with submodules
Additionally, minor clean-ups got done (like adding our 64bit Windows
target where needed).
---
README.HACKING | 29 ++++++++++++++++++++---------
1 file changed, 20 insertions(+), 9 deletions(-)
diff --git a/README.HACKING b/README.HACKING
index d9ebf63..9b846a7 100644
--- a/README.HACKING
+++ b/README.HACKING
@@ -44,15 +44,15 @@ In each of those places, an option can be defined:
The targets are usually used to select:
- the platform: torbrowser-linux-x86_64, torbrowser-linux-i686,
- torbrowser-windows-i686, torbrowser-osx-x86_64
+ torbrowser-windows-i686, torbrowser-windows-x86_64, torbrowser-osx-x86_64
- the channel: release, nightly, alpha
The targets torbrowser-linux-x86_64, torbrowser-linux-i686,
-torbrowser-windows-i686, torbrowser-osx-x86_64 are special cases. They
-do not contain options directly, instead they contain a list of other
-targets. For instance, the torbrowser-linux-x86_64 target is pointing
-to the linux-x86_64 and linux targets. You should define an option under
-the linux target if it applies to Linux on both architectures, or under
+torbrowser-windows-i686, torbrowser-windows-x86_64, torbrowser-osx-x86_64 are
+special cases. They do not contain options directly, instead they contain a
+list of other targets. For instance, the torbrowser-linux-x86_64 target is
+pointing to the linux-x86_64 and linux targets. You should define an option
+under the linux target if it applies to Linux on both architectures, or under
the linux-x86_64 if it only applies to the x86_64 architecture.
An option that is defined at the root of rbm.conf can be overridden by
@@ -148,6 +148,8 @@ $platform should be one of the following:
- torbrowser-windows-i686
+ - torbrowser-windows-x86_64
+
- torbrowser-osx-x86_64
For example, to see tor's build script for linux x86_64 on the alpha
@@ -242,6 +244,16 @@ Remember that the git_hash option has different definitions for alpha
and nightly builds, so you should modify the right one depending on
what type of build you are doing (see also the "Types of builds" section).
+The first alternative is not working in case patches contain binary diffs,
+which the patch command can't handle. However, working with submodules can
+make the git branch alternative tricky to use. In that case you can resort
+to a third option by installing git in the build container (via var/deps in
+the respective config file). Then you can change to the submodule directory
+in the build script and do a
+
+ git apply patch-for-XXXX.patch
+
+after adding the patch to the project's config file (see above).
The Firefox mozconfig files
---------------------------
@@ -298,8 +310,8 @@ For example, if you want to try a Linux x86_64 alpha build, you can run:
torbrowser-linux-x86_64
-Types of builds: nightly, alpha, release and testbuild
-------------------------------------------------------
+Types of builds: nightly, alpha, release, and testbuild
+-------------------------------------------------------
The testbuild makefile target allows you to do a build quickly in the
testbuild directory, skipping the generation of all the locales and the
@@ -313,4 +325,3 @@ builds in order to point to the master branch.
If you want your testbuild target to create builds based on nightly
rather than alpha, you can edit your rbm.local.conf file and uncomment
the targets/torbrowser-testbuild definition.
-
1
0

[tor-browser-build/master] Bug 28470: Add fetch gradle dependency script to common project
by gk@torproject.org 16 Nov '18
by gk@torproject.org 16 Nov '18
16 Nov '18
commit 873289e271fb88c47e1c5738b66a37b723e74ee2
Author: sisbell <shane.isbell(a)gmail.com>
Date: Fri Nov 16 11:12:30 2018 +0000
Bug 28470: Add fetch gradle dependency script to common project
The script got written by boklm.
---
projects/common/fetch-gradle-dependencies | 19 ++++++++++++++
.../how-to-create-gradle-dependencies-list.txt | 30 ++++++++++++++++++++++
2 files changed, 49 insertions(+)
diff --git a/projects/common/fetch-gradle-dependencies b/projects/common/fetch-gradle-dependencies
new file mode 100644
index 0000000..0acd38a
--- /dev/null
+++ b/projects/common/fetch-gradle-dependencies
@@ -0,0 +1,19 @@
+#!/bin/bash
+set -e
+# Bug 28117: setting LC_ALL=C is causing wget to fail downloading some URLs
+unset LC_ALL
+cd "[% dest_dir %]"
+m2dir="$(mktemp -d)"
+[% USE artifacts = datafile(c('basedir') _ '/projects/' _ project _ '/gradle-dependencies-list.txt', delim = '|') %]
+[% FOREACH artifact = artifacts %]
+ artifact_path=$(echo "[% artifact.url %]" | sed 's|^https://[^/]\+/||')
+ artifact_filename=$(basename "$artifact_path")
+ artifact_dirname=$(dirname "$artifact_path")
+ [% GET c("urlget", { filename => 'downloaded_file', URL => artifact.url}); %]
+ echo "[% artifact.sha256sum %] downloaded_file" | sha256sum -c
+ mkdir -p "$m2dir/$artifact_dirname"
+ mv -f downloaded_file "$m2dir/$artifact_dirname/$artifact_filename"
+[% END -%]
+echo "Finished downloading gradle dependencies"
+mkdir -p "[% dest_dir %]"
+mv -f "$m2dir" "[% dest_dir %]/gradle-dependencies-[% c("var/gradle_dependencies_version") %]"
diff --git a/projects/common/how-to-create-gradle-dependencies-list.txt b/projects/common/how-to-create-gradle-dependencies-list.txt
new file mode 100644
index 0000000..ef816d0
--- /dev/null
+++ b/projects/common/how-to-create-gradle-dependencies-list.txt
@@ -0,0 +1,30 @@
+### Updating Gradle Dependencies
+If additional Android dependencies are required by the project's build, then
+the Gradle build will fail due to missing dependencies. To find out what the
+missing dependencies are, comment out the following line in the project's build
+file:
+
+ export GRADLE_MAVEN_REPOSITORIES="file://$rootdir/[% c('input_files_by_name/gradle-dependencies') %]"
+
+and rerun the build.
+
+Dependent artifacts will show up as downloads in the logs. You can pull out
+these dependencies into a list with the following command (replacing
+"firefox-android-armv7.log" with the build log file name of the actual project):
+
+`cat logs/firefox-android-armv7.log | grep "Download http" | sed "s/^.*Download //g" > download-urls.txt`
+
+You will then need to add the new dependency URLs and SHA-256 values into the
+projects/$project/gradle-dependencies-list.txt file. The format of this file is
+pipe delimited
+ sha256sum | url
+
+Finally, in the project's config file increment the
+var/gradle_dependencies_version and make sure to restore the project's build
+file back to original.
+
+It may also be the case that you wish to clean up old versions of the artifacts.
+For this you will need to run the build with a
+gradle-dependencies-list.txt file containing only the headers. Make sure to also
+comment the GRADLE_MAVEN_REPOSITORIES line from the project's build file. You
+can now proceed to reconstruct the list as given above.
1
0

[tor-browser-build/master] Bug 28469: Fix unsupported libbacktrace in Rust 1.26
by gk@torproject.org 16 Nov '18
by gk@torproject.org 16 Nov '18
16 Nov '18
commit d4215cdbc472573bafe020532ebfcfb491e7615f
Author: sisbell <shane.isbell(a)gmail.com>
Date: Fri Nov 16 07:19:03 2018 +0000
Bug 28469: Fix unsupported libbacktrace in Rust 1.26
---
...e-dl_iterate_phdr-is-undefined-on-Android.patch | 34 +++++++++++++++++
projects/rust/build | 5 +++
projects/rust/config | 6 ++-
projects/rust/replace_pagesize_in_mmap.patch | 44 ++++++++++++++++++++++
4 files changed, 88 insertions(+), 1 deletion(-)
diff --git a/projects/rust/0001-Make-sure-dl_iterate_phdr-is-undefined-on-Android.patch b/projects/rust/0001-Make-sure-dl_iterate_phdr-is-undefined-on-Android.patch
new file mode 100644
index 0000000..75cd657
--- /dev/null
+++ b/projects/rust/0001-Make-sure-dl_iterate_phdr-is-undefined-on-Android.patch
@@ -0,0 +1,34 @@
+From 4fa67c8a014ac10558be71edec9048851ca7a02d Mon Sep 17 00:00:00 2001
+From: Georg Koppen <gk(a)torproject.org>
+Date: Thu, 15 Nov 2018 19:04:46 +0000
+Subject: [PATCH] Make sure `dl_iterate_phdr` is undefined on Android
+
+If we build with API < 21 we'll run into undefined reference errors.
+We follow the Rust people who ran into similar issues when
+upgrading libbacktrace for 1.28.0 in making sure `dl_iterate_phdr` is
+not defined for Android.
+
+diff --git a/src/libbacktrace/configure b/src/libbacktrace/configure
+index 8bdb29d256..8941fcd2b0 100755
+--- a/src/libbacktrace/configure
++++ b/src/libbacktrace/configure
+@@ -12397,7 +12397,15 @@ rm -f conftest*
+ have_dl_iterate_phdr=no ;;
+ esac
+ else
+- ac_fn_c_check_func "$LINENO" "dl_iterate_phdr" "ac_cv_func_dl_iterate_phdr"
++ case "${host}" in
++ *-*-androideabi*)
++ # Avoid dl_iterate_phdr on older Android API (which we use),
++ # as defining it causes undefined reference errors when
++ # compiling Firefox later on.
++ have_dl_iterate_phdr=no ;;
++ *) ac_fn_c_check_func "$LINENO" "dl_iterate_phdr" "ac_cv_func_dl_iterate_phdr" ;;
++ esac
++
+ if test "x$ac_cv_func_dl_iterate_phdr" = x""yes; then :
+ have_dl_iterate_phdr=yes
+ else
+--
+2.19.1
+
diff --git a/projects/rust/build b/projects/rust/build
index 7ae3073..12f012a 100644
--- a/projects/rust/build
+++ b/projects/rust/build
@@ -62,6 +62,11 @@ cd /var/tmp/build/rustc-[% c('version') %]-src
patch -p1 < $rootdir/unwind.patch
[% END %]
+[% IF c("var/android") %]
+ patch -p1 < $rootdir/0001-Make-sure-dl_iterate_phdr-is-undefined-on-Android.patch
+ patch -p1 < $rootdir/replace_pagesize_in_mmap.patch
+[% END %]
+
mkdir build
cd build
../configure --prefix=$distdir [% c("var/configure_opt") %]
diff --git a/projects/rust/config b/projects/rust/config
index 83ae690..99d1177 100644
--- a/projects/rust/config
+++ b/projects/rust/config
@@ -22,7 +22,7 @@ targets:
- libssl-dev
- pkg-config
- zlib1g-dev
- configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=armv7-linux-androideabi --set=target.armv7-linux-androideabi.ar=$ANDROID_NDK_HOME/arm/bin/arm-linux-androideabi-ar --set=target.armv7-linux-androideabi.linker=$ANDROID_NDK_HOME/arm/bin/arm-linux-androideabi-clang --set=target.armv7-linux-androideabi.cc=$ANDROID_NDK_HOME/arm/bin/arm-linux-androideabi-gcc
+ configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=armv7-linux-androideabi --set=target.armv7-linux-androideabi.cc=$ANDROID_NDK_HOME/arm/bin/arm-linux-androideabi-gcc
linux:
var:
@@ -90,3 +90,7 @@ input_files:
gpg_keyring: rust.gpg
- filename: unwind.patch
enable: '[% c("var/windows-i686") %]'
+ - filename: 0001-Make-sure-dl_iterate_phdr-is-undefined-on-Android.patch
+ enable: '[% c("var/android") %]'
+ - filename: replace_pagesize_in_mmap.patch
+ enable: '[% c("var/android") %]'
diff --git a/projects/rust/replace_pagesize_in_mmap.patch b/projects/rust/replace_pagesize_in_mmap.patch
new file mode 100644
index 0000000..598f190
--- /dev/null
+++ b/projects/rust/replace_pagesize_in_mmap.patch
@@ -0,0 +1,44 @@
+diff --git a/src/libbacktrace/mmap.c b/src/libbacktrace/mmap.c
+index 138ef70711..e3c4cd2643 100644
+--- a/src/libbacktrace/mmap.c
++++ b/src/libbacktrace/mmap.c
+@@ -140,7 +140,7 @@ backtrace_alloc (struct backtrace_state *state,
+ {
+ /* Allocate a new page. */
+
+- pagesize = getpagesize ();
++ pagesize = sysconf(_SC_PAGESIZE);
+ asksize = (size + pagesize - 1) & ~ (pagesize - 1);
+ page = mmap (NULL, asksize, PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+@@ -181,7 +181,7 @@ backtrace_free (struct backtrace_state *state, void *addr, size_t size,
+ {
+ size_t pagesize;
+
+- pagesize = getpagesize ();
++ pagesize = sysconf(_SC_PAGESIZE);
+ if (((uintptr_t) addr & (pagesize - 1)) == 0
+ && (size & (pagesize - 1)) == 0)
+ {
+@@ -226,7 +226,7 @@ backtrace_vector_grow (struct backtrace_state *state,size_t size,
+ size_t alc;
+ void *base;
+
+- pagesize = getpagesize ();
++ pagesize = sysconf(_SC_PAGESIZE);
+ alc = vec->size + size;
+ if (vec->size == 0)
+ alc = 16 * size;
+diff --git a/src/libbacktrace/mmapio.c b/src/libbacktrace/mmapio.c
+index dfdaf6fa52..5b23003090 100644
+--- a/src/libbacktrace/mmapio.c
++++ b/src/libbacktrace/mmapio.c
+@@ -60,7 +60,7 @@ backtrace_get_view (struct backtrace_state *state ATTRIBUTE_UNUSED,
+ off_t pageoff;
+ void *map;
+
+- pagesize = getpagesize ();
++ pagesize = sysconf(_SC_PAGESIZE);
+ inpage = offset % pagesize;
+ pageoff = offset - inpage;
+
1
0

[tor-browser/tor-browser-60.3.0esr-8.5-1] Bug 22343: Make 'Save Page As' obey first-party isolation
by gk@torproject.org 15 Nov '18
by gk@torproject.org 15 Nov '18
15 Nov '18
commit c2b7e89ecaf3ea6a14a650a0a71c6dc3ebb02c50
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Tue May 30 10:25:34 2017 -0700
Bug 22343: Make 'Save Page As' obey first-party isolation
Fixes:
* File menu:
- Save Page As
* Context menu in content pages:
- Save Page As
- Save Image As
- Save Video As
- Save Link As
- Save Frame As
* Page Info "Media" Panel:
- Save As
---
browser/base/content/browser.js | 2 +-
browser/base/content/nsContextMenu.js | 39 ++++++++++++++++++--------
browser/base/content/pageinfo/pageInfo.js | 5 ++--
browser/base/content/utilityOverlay.js | 6 ++--
dom/webbrowserpersist/nsIWebBrowserPersist.idl | 9 +++++-
dom/webbrowserpersist/nsWebBrowserPersist.cpp | 18 ++++++++++--
dom/webbrowserpersist/nsWebBrowserPersist.h | 2 ++
mobile/android/chrome/content/browser.js | 6 ++--
netwerk/base/LoadContextInfo.cpp | 18 ++++++++++--
toolkit/components/browser/nsWebBrowser.cpp | 12 ++++++++
toolkit/content/contentAreaUtils.js | 32 +++++++++++++++------
11 files changed, 115 insertions(+), 34 deletions(-)
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index 0fc6a72daf66..5eed34e08086 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -6175,7 +6175,7 @@ function handleLinkClick(event, href, linkNode) {
if (where == "save") {
saveURL(href, linkNode ? gatherTextUnder(linkNode) : "", null, true,
- true, doc.documentURIObject, doc);
+ true, doc.documentURIObject, doc, undefined, doc.nodePrincipal);
event.preventDefault();
return true;
}
diff --git a/browser/base/content/nsContextMenu.js b/browser/base/content/nsContextMenu.js
index 368d0475ac34..37ebde22ea07 100644
--- a/browser/base/content/nsContextMenu.js
+++ b/browser/base/content/nsContextMenu.js
@@ -989,9 +989,11 @@ nsContextMenu.prototype = {
let onMessage = (message) => {
mm.removeMessageListener("ContextMenu:SaveVideoFrameAsImage:Result", onMessage);
let dataURL = message.data.dataURL;
+ const principal = Services.scriptSecurityManager.createCodebasePrincipal(
+ makeURI(dataURL), this.principal.originAttributes);
saveImageURL(dataURL, name, "SaveImageTitle", true, false,
document.documentURIObject, null, null, null,
- isPrivate);
+ isPrivate, principal);
};
mm.addMessageListener("ContextMenu:SaveVideoFrameAsImage:Result", onMessage);
},
@@ -1063,7 +1065,7 @@ nsContextMenu.prototype = {
// Helper function to wait for appropriate MIME-type headers and
// then prompt the user with a file picker
saveHelper(linkURL, linkText, dialogTitle, bypassCache, doc, docURI,
- windowID, linkDownload, isContentWindowPrivate) {
+ windowID, linkDownload, isContentWindowPrivate, contentPrincipal) {
// canonical def in nsURILoader.h
const NS_ERROR_SAVE_LINK_AS_TIMEOUT = 0x805d0020;
@@ -1116,7 +1118,7 @@ nsContextMenu.prototype = {
// do it the old fashioned way, which will pick the best filename
// it can without waiting.
saveURL(linkURL, linkText, dialogTitle, bypassCache, false, docURI,
- doc, isContentWindowPrivate);
+ doc, isContentWindowPrivate, contentPrincipal);
}
if (this.extListener)
this.extListener.onStopRequest(aRequest, aContext, aStatusCode);
@@ -1156,10 +1158,13 @@ nsContextMenu.prototype = {
}
};
+ const principal = Services.scriptSecurityManager.createCodebasePrincipal(
+ makeURI(linkURL), this.principal.originAttributes);
+
// setting up a new channel for 'right click - save link as ...'
var channel = NetUtil.newChannel({
uri: makeURI(linkURL),
- loadingPrincipal: this.principal,
+ loadingPrincipal: principal,
contentPolicyType: Ci.nsIContentPolicy.TYPE_SAVEAS_DOWNLOAD,
securityFlags: Ci.nsILoadInfo.SEC_ALLOW_CROSS_ORIGIN_DATA_INHERITS,
});
@@ -1201,14 +1206,17 @@ nsContextMenu.prototype = {
// Save URL of clicked-on link.
saveLink() {
- urlSecurityCheck(this.linkURL, this.principal);
+ const principal = Services.scriptSecurityManager.createCodebasePrincipal(
+ makeURI(this.linkURL), this.principal.originAttributes);
+ urlSecurityCheck(this.linkURL, principal);
let isContentWindowPrivate = this.isRemote ? this.ownerDoc.isPrivate : undefined;
this.saveHelper(this.linkURL, this.linkTextStr, null, true, this.ownerDoc,
gContextMenuContentData.documentURIObject,
this.frameOuterWindowID,
this.linkDownload,
- isContentWindowPrivate);
+ isContentWindowPrivate,
+ principal);
},
// Backwards-compatibility wrapper
@@ -1223,23 +1231,32 @@ nsContextMenu.prototype = {
let isContentWindowPrivate = this.isRemote ? this.ownerDoc.isPrivate : undefined;
let referrerURI = gContextMenuContentData.documentURIObject;
let isPrivate = PrivateBrowsingUtils.isBrowserPrivate(this.browser);
+ let thisPrincipal = this.principal;
if (this.onCanvas) {
// Bypass cache, since it's a data: URL.
this._canvasToBlobURL(this.target).then(function(blobURL) {
+ const principal = Services.scriptSecurityManager.createCodebasePrincipal(
+ makeURI(blobURL), thisPrincipal.originAttributes);
saveImageURL(blobURL, "canvas.png", "SaveImageTitle",
true, false, referrerURI, null, null, null,
- isPrivate);
+ isPrivate, principal);
}, Cu.reportError);
} else if (this.onImage) {
- urlSecurityCheck(this.mediaURL, this.principal);
+ const principal = Services.scriptSecurityManager.createCodebasePrincipal(
+ makeURI(this.mediaURL), thisPrincipal.originAttributes);
+ urlSecurityCheck(this.mediaURL, principal);
saveImageURL(this.mediaURL, null, "SaveImageTitle", false,
false, referrerURI, null, gContextMenuContentData.contentType,
- gContextMenuContentData.contentDisposition, isPrivate);
+ gContextMenuContentData.contentDisposition, isPrivate,
+ principal);
} else if (this.onVideo || this.onAudio) {
- urlSecurityCheck(this.mediaURL, this.principal);
+ const principal = Services.scriptSecurityManager.createCodebasePrincipal(
+ makeURI(this.mediaURL), thisPrincipal.originAttributes);
+ urlSecurityCheck(this.mediaURL, principal);
var dialogTitle = this.onVideo ? "SaveVideoTitle" : "SaveAudioTitle";
this.saveHelper(this.mediaURL, null, dialogTitle, false, doc, referrerURI,
- this.frameOuterWindowID, "", isContentWindowPrivate);
+ this.frameOuterWindowID, "", isContentWindowPrivate,
+ principal);
}
},
diff --git a/browser/base/content/pageinfo/pageInfo.js b/browser/base/content/pageinfo/pageInfo.js
index 86f548c74494..efe24f7487d9 100644
--- a/browser/base/content/pageinfo/pageInfo.js
+++ b/browser/base/content/pageinfo/pageInfo.js
@@ -696,7 +696,7 @@ function saveMedia() {
titleKey = "SaveAudioTitle";
saveURL(url, null, titleKey, false, false, makeURI(item.baseURI),
- null, gDocInfo.isContentWindowPrivate);
+ null, gDocInfo.isContentWindowPrivate, gDocInfo.principal);
}
} else {
selectSaveFolder(function(aDirectory) {
@@ -704,7 +704,8 @@ function saveMedia() {
var saveAnImage = function(aURIString, aChosenData, aBaseURI) {
uniqueFile(aChosenData.file);
internalSave(aURIString, null, null, null, null, false, "SaveImageTitle",
- aChosenData, aBaseURI, null, false, null, gDocInfo.isContentWindowPrivate);
+ aChosenData, aBaseURI, null, false, null, gDocInfo.isContentWindowPrivate,
+ gDocInfo.principal);
};
for (var i = 0; i < rowArray.length; i++) {
diff --git a/browser/base/content/utilityOverlay.js b/browser/base/content/utilityOverlay.js
index b73a01a0b0f3..4cd7d91e4e9a 100644
--- a/browser/base/content/utilityOverlay.js
+++ b/browser/base/content/utilityOverlay.js
@@ -258,14 +258,16 @@ function openLinkIn(url, where, params) {
// ContentClick.jsm passes isContentWindowPrivate for saveURL instead of passing a CPOW initiatingDoc
if ("isContentWindowPrivate" in params) {
- saveURL(url, null, null, true, true, aNoReferrer ? null : aReferrerURI, null, params.isContentWindowPrivate);
+ saveURL(url, null, null, true, true, aNoReferrer ? null : aReferrerURI,
+ null, params.isContentWindowPrivate,
+ aPrincipal || aTriggeringPrincipal);
} else {
if (!aInitiatingDoc) {
Cu.reportError("openUILink/openLinkIn was called with " +
"where == 'save' but without initiatingDoc. See bug 814264.");
return;
}
- saveURL(url, null, null, true, true, aNoReferrer ? null : aReferrerURI, aInitiatingDoc);
+ saveURL(url, null, null, true, true, aNoReferrer ? null : aReferrerURI, aInitiatingDoc, params.isContentWindowPrivate, aPrincipal || aTriggeringPrincipal);
}
return;
}
diff --git a/dom/webbrowserpersist/nsIWebBrowserPersist.idl b/dom/webbrowserpersist/nsIWebBrowserPersist.idl
index 8de84f5e2904..62ac1c1cd7bd 100644
--- a/dom/webbrowserpersist/nsIWebBrowserPersist.idl
+++ b/dom/webbrowserpersist/nsIWebBrowserPersist.idl
@@ -13,11 +13,12 @@ interface nsIWebProgressListener;
interface nsIFile;
interface nsIChannel;
interface nsILoadContext;
+interface nsIPrincipal;
/**
* Interface for persisting DOM documents and URIs to local or remote storage.
*/
-[scriptable, uuid(8cd752a4-60b1-42c3-a819-65c7a1138a28)]
+[scriptable, uuid(ccdbc750-be09-4f11-bb01-4e0a4db76c41)]
interface nsIWebBrowserPersist : nsICancelable
{
/** No special persistence behaviour. */
@@ -112,6 +113,12 @@ interface nsIWebBrowserPersist : nsICancelable
attribute nsIWebProgressListener progressListener;
/**
+ * This attribute can be used to set the loading principal
+ * of the document or URI to be persisted.
+ */
+ attribute nsIPrincipal loadingPrincipal;
+
+ /**
* Save the specified URI to file.
*
* @param aURI URI to save to file. Some implementations of this interface
diff --git a/dom/webbrowserpersist/nsWebBrowserPersist.cpp b/dom/webbrowserpersist/nsWebBrowserPersist.cpp
index fd6d9d0d9315..4f49b63475f3 100644
--- a/dom/webbrowserpersist/nsWebBrowserPersist.cpp
+++ b/dom/webbrowserpersist/nsWebBrowserPersist.cpp
@@ -277,6 +277,7 @@ const char *kWebBrowserPersistStringBundle =
nsWebBrowserPersist::nsWebBrowserPersist() :
mCurrentDataPathIsRelative(false),
mCurrentThingsToPersist(0),
+ mLoadingPrincipal(nsContentUtils::GetSystemPrincipal()),
mFirstAndOnlyUse(true),
mSavingDocument(false),
mCancel(false),
@@ -413,6 +414,19 @@ NS_IMETHODIMP nsWebBrowserPersist::SetProgressListener(
return NS_OK;
}
+NS_IMETHODIMP nsWebBrowserPersist::GetLoadingPrincipal(nsIPrincipal** loadingPrincipal)
+{
+ *loadingPrincipal = mLoadingPrincipal;
+ return NS_OK;
+}
+
+NS_IMETHODIMP nsWebBrowserPersist::SetLoadingPrincipal(nsIPrincipal* loadingPrincipal)
+{
+ mLoadingPrincipal = loadingPrincipal ? loadingPrincipal :
+ nsContentUtils::GetSystemPrincipal();
+ return NS_OK;
+}
+
NS_IMETHODIMP nsWebBrowserPersist::SaveURI(
nsIURI *aURI, nsISupports *aCacheKey,
nsIURI *aReferrer, uint32_t aReferrerPolicy,
@@ -1385,7 +1399,7 @@ nsresult nsWebBrowserPersist::SaveURIInternal(
nsCOMPtr<nsIChannel> inputChannel;
rv = NS_NewChannel(getter_AddRefs(inputChannel),
aURI,
- nsContentUtils::GetSystemPrincipal(),
+ mLoadingPrincipal,
nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_DATA_IS_NULL,
nsIContentPolicy::TYPE_OTHER,
nullptr, // aPerformanceStorage
@@ -2756,7 +2770,7 @@ nsWebBrowserPersist::CreateChannelFromURI(nsIURI *aURI, nsIChannel **aChannel)
rv = NS_NewChannel(aChannel,
aURI,
- nsContentUtils::GetSystemPrincipal(),
+ mLoadingPrincipal,
nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_DATA_IS_NULL,
nsIContentPolicy::TYPE_OTHER);
NS_ENSURE_SUCCESS(rv, rv);
diff --git a/dom/webbrowserpersist/nsWebBrowserPersist.h b/dom/webbrowserpersist/nsWebBrowserPersist.h
index 17b570d783e7..f95300be12cb 100644
--- a/dom/webbrowserpersist/nsWebBrowserPersist.h
+++ b/dom/webbrowserpersist/nsWebBrowserPersist.h
@@ -147,6 +147,8 @@ private:
nsCOMPtr<nsIMIMEService> mMIMEService;
nsCOMPtr<nsIURI> mURI;
nsCOMPtr<nsIWebProgressListener> mProgressListener;
+ nsCOMPtr<nsIPrincipal> mLoadingPrincipal;
+
/**
* Progress listener for 64-bit values; this is the same object as
* mProgressListener, but is a member to avoid having to qi it for each
diff --git a/mobile/android/chrome/content/browser.js b/mobile/android/chrome/content/browser.js
index d081fde9b20e..51fe1422acc5 100644
--- a/mobile/android/chrome/content/browser.js
+++ b/mobile/android/chrome/content/browser.js
@@ -886,10 +886,10 @@ var BrowserApp = {
if (!permissionGranted) {
return;
}
-
+ let doc = aTarget.ownerDocument;
ContentAreaUtils.saveImageURL(aTarget.currentRequestFinalURI.spec, null, "SaveImageTitle",
- false, true, aTarget.ownerDocument.documentURIObject,
- aTarget.ownerDocument);
+ false, true, doc.documentURIObject,
+ null, null, null, doc.isPrivate, doc.nodePrincipal);
});
});
diff --git a/netwerk/base/LoadContextInfo.cpp b/netwerk/base/LoadContextInfo.cpp
index 79f870e8d20d..1218345b63ed 100644
--- a/netwerk/base/LoadContextInfo.cpp
+++ b/netwerk/base/LoadContextInfo.cpp
@@ -121,8 +121,6 @@ GetLoadContextInfo(nsIChannel * aChannel)
{
nsresult rv;
- DebugOnly<bool> pb = NS_UsePrivateBrowsing(aChannel);
-
bool anon = false;
nsLoadFlags loadFlags;
rv = aChannel->GetLoadFlags(&loadFlags);
@@ -132,7 +130,21 @@ GetLoadContextInfo(nsIChannel * aChannel)
OriginAttributes oa;
NS_GetOriginAttributes(aChannel, oa);
- MOZ_ASSERT(pb == (oa.mPrivateBrowsingId > 0));
+
+#ifdef DEBUG
+ nsCOMPtr<nsILoadInfo> loadInfo = aChannel->GetLoadInfo();
+ if (loadInfo) {
+ nsCOMPtr<nsIPrincipal> principal = loadInfo->LoadingPrincipal();
+ if (principal) {
+ bool chrome;
+ principal->GetIsSystemPrincipal(&chrome);
+ if (!chrome) {
+ bool pb = NS_UsePrivateBrowsing(aChannel);
+ MOZ_ASSERT(pb == (oa.mPrivateBrowsingId > 0));
+ }
+ }
+ }
+#endif
return new LoadContextInfo(anon, oa);
}
diff --git a/toolkit/components/browser/nsWebBrowser.cpp b/toolkit/components/browser/nsWebBrowser.cpp
index 40ac82210502..ff1e728243b4 100644
--- a/toolkit/components/browser/nsWebBrowser.cpp
+++ b/toolkit/components/browser/nsWebBrowser.cpp
@@ -997,6 +997,18 @@ nsWebBrowser::SetProgressListener(nsIWebProgressListener* aProgressListener)
}
NS_IMETHODIMP
+nsWebBrowser::GetLoadingPrincipal(nsIPrincipal** loadingPrincipal)
+{
+ return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+NS_IMETHODIMP
+nsWebBrowser::SetLoadingPrincipal(nsIPrincipal* loadingPrincipal)
+{
+ return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+NS_IMETHODIMP
nsWebBrowser::SaveURI(nsIURI* aURI,
nsISupports* aCacheKey,
nsIURI* aReferrer,
diff --git a/toolkit/content/contentAreaUtils.js b/toolkit/content/contentAreaUtils.js
index 48cf448798a5..e213a0e4333e 100644
--- a/toolkit/content/contentAreaUtils.js
+++ b/toolkit/content/contentAreaUtils.js
@@ -62,14 +62,14 @@ function forbidCPOW(arg, func, argname) {
// - A linked document using Alt-click Save Link As...
//
function saveURL(aURL, aFileName, aFilePickerTitleKey, aShouldBypassCache,
- aSkipPrompt, aReferrer, aSourceDocument, aIsContentWindowPrivate) {
+ aSkipPrompt, aReferrer, aSourceDocument, aIsContentWindowPrivate,
+ aContentPrincipal) {
forbidCPOW(aURL, "saveURL", "aURL");
forbidCPOW(aReferrer, "saveURL", "aReferrer");
// Allow aSourceDocument to be a CPOW.
-
internalSave(aURL, null, aFileName, null, null, aShouldBypassCache,
aFilePickerTitleKey, null, aReferrer, aSourceDocument,
- aSkipPrompt, null, aIsContentWindowPrivate);
+ aSkipPrompt, null, aIsContentWindowPrivate, aContentPrincipal);
}
// Just like saveURL, but will get some info off the image before
@@ -109,10 +109,12 @@ const nsISupportsCString = Ci.nsISupportsCString;
* @param aIsContentWindowPrivate (bool)
* Whether or not the containing window is in private browsing mode.
* Does not need to be provided is aDoc is passed.
+ * @param aContentPrincipal [optional]
+ * The principal to be used for fetching and saving the target URL.
*/
function saveImageURL(aURL, aFileName, aFilePickerTitleKey, aShouldBypassCache,
aSkipPrompt, aReferrer, aDoc, aContentType, aContentDisp,
- aIsContentWindowPrivate) {
+ aIsContentWindowPrivate, aContentPrincipal) {
forbidCPOW(aURL, "saveImageURL", "aURL");
forbidCPOW(aReferrer, "saveImageURL", "aReferrer");
@@ -156,7 +158,8 @@ function saveImageURL(aURL, aFileName, aFilePickerTitleKey, aShouldBypassCache,
internalSave(aURL, null, aFileName, aContentDisp, aContentType,
aShouldBypassCache, aFilePickerTitleKey, null, aReferrer,
- null, aSkipPrompt, null, aIsContentWindowPrivate);
+ null, aSkipPrompt, null, aIsContentWindowPrivate,
+ aContentPrincipal);
}
// This is like saveDocument, but takes any browser/frame-like element
@@ -170,7 +173,7 @@ function saveBrowser(aBrowser, aSkipPrompt, aOuterWindowID = 0) {
let stack = Components.stack.caller;
persistable.startPersistence(aOuterWindowID, {
onDocumentReady(document) {
- saveDocument(document, aSkipPrompt);
+ saveDocument(document, aSkipPrompt, aBrowser.contentPrincipal);
},
onError(status) {
throw new Components.Exception("saveBrowser failed asynchronously in startPersistence",
@@ -186,7 +189,9 @@ function saveBrowser(aBrowser, aSkipPrompt, aOuterWindowID = 0) {
// case "save as" modes that serialize the document's DOM are
// unavailable. This is a temporary measure for the "Save Frame As"
// command (bug 1141337) and pre-e10s add-ons.
-function saveDocument(aDocument, aSkipPrompt) {
+//
+// aContentPrincipal is the principal for downloading and saving the document.
+function saveDocument(aDocument, aSkipPrompt, aContentPrincipal) {
if (!aDocument)
throw "Must have a document when calling saveDocument";
@@ -241,7 +246,7 @@ function saveDocument(aDocument, aSkipPrompt) {
internalSave(aDocument.documentURI, aDocument, null, contentDisposition,
aDocument.contentType, false, null, null,
aDocument.referrer ? makeURI(aDocument.referrer) : null,
- aDocument, aSkipPrompt, cacheKey);
+ aDocument, aSkipPrompt, cacheKey, undefined, aContentPrincipal);
}
function DownloadListener(win, transfer) {
@@ -350,11 +355,13 @@ XPCOMUtils.defineConstant(this, "kSaveAsType_Text", kSaveAsType_Text);
* This parameter is provided when the aInitiatingDocument is not a
* real document object. Stores whether aInitiatingDocument.defaultView
* was private or not.
+ * @param aContentPrincipal [optional]
+ * The principal to be used for fetching and saving the target URL.
*/
function internalSave(aURL, aDocument, aDefaultFileName, aContentDisposition,
aContentType, aShouldBypassCache, aFilePickerTitleKey,
aChosenData, aReferrer, aInitiatingDocument, aSkipPrompt,
- aCacheKey, aIsContentWindowPrivate) {
+ aCacheKey, aIsContentWindowPrivate, aContentPrincipal) {
forbidCPOW(aURL, "internalSave", "aURL");
forbidCPOW(aReferrer, "internalSave", "aReferrer");
forbidCPOW(aCacheKey, "internalSave", "aCacheKey");
@@ -423,6 +430,7 @@ function internalSave(aURL, aDocument, aDefaultFileName, aContentDisposition,
let nonCPOWDocument =
aDocument && !Cu.isCrossProcessWrapper(aDocument);
+
let isPrivate = aIsContentWindowPrivate;
if (isPrivate === undefined) {
isPrivate = aInitiatingDocument instanceof Ci.nsIDOMDocument
@@ -440,6 +448,7 @@ function internalSave(aURL, aDocument, aDefaultFileName, aContentDisposition,
sourcePostData: nonCPOWDocument ? getPostData(aDocument) : null,
bypassCache: aShouldBypassCache,
isPrivate,
+ loadingPrincipal: aContentPrincipal,
};
// Start the actual save process
@@ -476,10 +485,15 @@ function internalSave(aURL, aDocument, aDefaultFileName, aContentDisposition,
* If true, the document will always be refetched from the server
* @param persistArgs.isPrivate
* Indicates whether this is taking place in a private browsing context.
+ * @param persistArgs.loadingPrincipal
+ * The principal assigned to the document being saved.
*/
function internalPersist(persistArgs) {
var persist = makeWebBrowserPersist();
+ if (["http", "https", "ftp"].includes(persistArgs.sourceURI.scheme)) {
+ persist.loadingPrincipal = persistArgs.loadingPrincipal;
+ }
// Calculate persist flags.
const nsIWBP = Ci.nsIWebBrowserPersist;
const flags = nsIWBP.PERSIST_FLAGS_REPLACE_EXISTING_FILES |
1
0

[tor-browser-build/master] Bug 28436: Update link to gn cross_compiles.md.
by boklm@torproject.org 14 Nov '18
by boklm@torproject.org 14 Nov '18
14 Nov '18
commit c50a316848b6efad58644a1c85594b8e92c9b2ff
Author: David Fifield <david(a)bamsoftware.com>
Date: Tue Nov 13 16:17:07 2018 -0700
Bug 28436: Update link to gn cross_compiles.md.
---
projects/webrtc/build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/projects/webrtc/build b/projects/webrtc/build
index d3975b3..5a6cece 100644
--- a/projects/webrtc/build
+++ b/projects/webrtc/build
@@ -92,7 +92,7 @@ EOF
export GN_ARGS=""
# For a list of all possible GN args, do "gn gen out/Release; gn args --list out/Release".
-# https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/cross…
+# https://gn.googlesource.com/gn/+/master/docs/cross_compiles.md
# Not debug.
GN_ARGS+=" is_debug=false"
# There are warnings from unused returns.
1
0
commit c4f92596551ae6651a25be34f330a14776d2e09e
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed Nov 14 15:11:31 2018 +0000
Translations update
---
src/chrome/locale/de/browserOnboarding.properties | 16 ++++++++--------
src/chrome/locale/ko/torbutton.dtd | 22 +++++++++++-----------
2 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/src/chrome/locale/de/browserOnboarding.properties b/src/chrome/locale/de/browserOnboarding.properties
index 1243128c..d57b3f15 100644
--- a/src/chrome/locale/de/browserOnboarding.properties
+++ b/src/chrome/locale/de/browserOnboarding.properties
@@ -15,11 +15,11 @@ onboarding.tour-tor-privacy.button=Öffne Tor-Netzwerk
onboarding.tour-tor-network=Tor-Netzwerk
onboarding.tour-tor-network.title=Bereise ein dezentrales Netzwerk.
onboarding.tour-tor-network.description=Der Tor Browser verbindet sich mit dem Tor-Netzwerk, das von tausenden Freiwilligen betrieben wird. Anders als bei einem VPN gibt es keinen zentralen Punkt, dem vertraut werden muss, um das Internet privat zu nutzen.
-onboarding.tour-tor-network.button=Circuit-Ansicht öffnen
+onboarding.tour-tor-network.button=Kanal-Ansicht öffnen
-onboarding.tour-tor-circuit-display=Circuit-Ansicht
+onboarding.tour-tor-circuit-display=Kanal-Ansicht
onboarding.tour-tor-circuit-display.title=Zeige deinen Pfad
-onboarding.tour-tor-circuit-display.description=Für jede Webseite wandern Anfragen und Antworten mehrfach verschlüsselt über drei Server (Relays) um die Welt. Keine Webseite weiß, woher die Verbindung ursprünglich kommt. Um eine Webseite über einen neuen Pfad erneut zu laden, klicke auf das Informations-Symbol in der Adressleiste und wähle "Neuer Pfad für diese Seite".
+onboarding.tour-tor-circuit-display.description=Für jede Webseite wandern Anfragen und Antworten mehrfach verschlüsselt über drei Server (Relays) um die Welt. Keine Webseite weiß, woher die Verbindung ursprünglich kommt. Um eine Webseite über einen neuen Kanal erneut zu laden, öffne die Kanal-Ansicht und klicke "Neuer Kanal für diese Seite".
onboarding.tour-tor-circuit-display.button=Meinen Pfad sehen
onboarding.tour-tor-security=Sicherheit
@@ -44,11 +44,11 @@ onboarding.tor-circuit-display.one-of-three=1 von 3
onboarding.tor-circuit-display.two-of-three=2 von 3
onboarding.tor-circuit-display.three-of-three=3 von 3
-onboarding.tor-circuit-display.intro.title=Wie funktionieren Circuits?
-onboarding.tor-circuit-display.intro.msg=Circuits bestehen aus zufällig zugeordneten Relays, d.h. Computern auf der ganzen Welt, die konfiguriert sind, um Torverkehr weiterzuleiten. Circuits ermöglichen es Ihnen, privat zu surfen und sich mit Onion-Diensten zu verbinden.\n
+onboarding.tor-circuit-display.intro.title=Wie funktionieren Kanäle?
+onboarding.tor-circuit-display.intro.msg=Kanäle bestehen aus zufällig zugeordneten Relays, d.h. Server auf der ganzen Welt, die konfiguriert sind, um Torverkehr weiterzuleiten. Kanäle ermöglichen es Ihnen, privat zu surfen und sich mit Onion-Diensten zu verbinden.\n
-onboarding.tor-circuit-display.diagram.title=Circuit-Ansicht
-onboarding.tor-circuit-display.diagram.msg=Dieses Diagramm zeigt die Relays, aus denen die Circuits für diese Website besteht. Um zu verhindern, dass Aktivitäten zwischen verschiedenen Standorten verlinkt werden, erhält jede Website einen anderen Circuit.
+onboarding.tor-circuit-display.diagram.title=Kanal-Ansicht
+onboarding.tor-circuit-display.diagram.msg=Dieses Diagramm zeigt die Relays, die den Kanal für diese Website bilden. Um zu verhindern, dass Aktivitäten zwischen verschiedenen Standorten verlinkt werden, nutzt Tor Browser für jede Website einen eigenen Kanal.
onboarding.tor-circuit-display.new-circuit.title=Brauchen Sie einen neuen Circuit?
-onboarding.tor-circuit-display.new-circuit.msg=Wenn Sie keine Verbindung zu der Website herstellen können, die Sie besuchen möchten, oder wenn sie nicht richtig geladen wird, können Sie diese Schaltfläche verwenden, um die Website über einen neuen Circuit zu laden.
+onboarding.tor-circuit-display.new-circuit.msg=Wenn Sie keine Verbindung zu der Website herstellen können, die Sie besuchen möchten, oder wenn sie nicht richtig geladen wird, können Sie diese Schaltfläche verwenden, um die Website über einen neuen Kanal zu laden.
diff --git a/src/chrome/locale/ko/torbutton.dtd b/src/chrome/locale/ko/torbutton.dtd
index 5daf9f14..b23701b2 100644
--- a/src/chrome/locale/ko/torbutton.dtd
+++ b/src/chrome/locale/ko/torbutton.dtd
@@ -34,18 +34,18 @@
<!ENTITY torbutton.prefs.sec_caption "보안 등급">
<!ENTITY torbutton.prefs.sec_caption_tooltip "보안 슬라이더를 사용하면 특정 브라우저 기능이 비활성화 되어 브라우저가 해킹 시도에 취약해질 수 있습니다.">
<!ENTITY torbutton.prefs.sec_standard_label "표준">
-<!ENTITY torbutton.prefs.sec_standard_description "All Tor Browser and website features are enabled.">
-<!ENTITY torbutton.prefs.sec_safer_label "Safer">
-<!ENTITY torbutton.prefs.sec_safer_description "Disables website features that are often dangerous, causing some sites to lose functionality.">
-<!ENTITY torbutton.prefs.sec_safer_list_label "At the safer setting:">
-<!ENTITY torbutton.prefs.sec_safest_label "Safest">
-<!ENTITY torbutton.prefs.sec_safest_description "Only allows website features required for static sites and basic services. These changes affect images, media, and scripts.">
-<!ENTITY torbutton.prefs.sec_safest_list_label "At the safest setting:">
+<!ENTITY torbutton.prefs.sec_standard_description "모든 Tor 브라우저와 웹사이트의 기능들이 활성화 됩니다.">
+<!ENTITY torbutton.prefs.sec_safer_label "더 안전합니다">
+<!ENTITY torbutton.prefs.sec_safer_description "이 설정으로 흔히 위험한 웹사이트의 기능이 비활성화하면 일부의 사이트의 기능들을 사용 할 수 없습니다.">
+<!ENTITY torbutton.prefs.sec_safer_list_label "더 안전한 설정을 선택하고 있습니다:">
+<!ENTITY torbutton.prefs.sec_safest_label "제일 안전합니다">
+<!ENTITY torbutton.prefs.sec_safest_description "정적 사이트와 기본 서비스에 필요한 기능이만 용남합니다. 그 변경들은 사진이며 메디아며 스크립트를 영향할 것입니다.">
+<!ENTITY torbutton.prefs.sec_safest_list_label "제일 안전한 설정을 선택하고 있습니다:">
<!ENTITY torbutton.prefs.sec_learn_more_label "더 알아보기">
-<!ENTITY torbutton.prefs.sec_js_on_https_sites_only "JavaScript is disabled on non-HTTPS sites.">
+<!ENTITY torbutton.prefs.sec_js_on_https_sites_only "JavaScript가 HTTPS을 적용되지 않은 사이트에서 비활성화 됩니다.">
<!ENTITY torbutton.prefs.sec_js_disabled "자바 스크립트는 기본 설정으로 모든 사이트에서 비활성화 되어 있습니다.">
-<!ENTITY torbutton.prefs.sec_limit_typography "Some fonts and math symbols are disabled.">
-<!ENTITY torbutton.prefs.sec_limit_graphics_and_typography "Some fonts, icons, math symbols, and images are disabled.">
+<!ENTITY torbutton.prefs.sec_limit_typography "일부 글꼴이며 수학기호가 비활성화 됩니다.">
+<!ENTITY torbutton.prefs.sec_limit_graphics_and_typography "일부 글꼴이며 상징이며 수학기호며 사진이 비활성화 됩니다.">
<!ENTITY torbutton.prefs.sec_click_to_play_media "오디오와 동영상(HTML5 media) 보려면 누르십시오.">
<!ENTITY torbutton.circuit_display.title "토르 서킷">
-<!ENTITY torbutton.circuit_display.new_circuit "New Circuit for this Site">
+<!ENTITY torbutton.circuit_display.new_circuit "이 사이트에서 새로운 서킷을 재구축">
1
0

[tor-browser/tor-browser-60.3.0esr-8.5-1] Bug 25013: Add torbutton as a tor-browser submodule
by gk@torproject.org 14 Nov '18
by gk@torproject.org 14 Nov '18
14 Nov '18
commit fbccad5b7b28a975f2e9de73f8362fcf937db6aa
Author: Igor Oliveira <igt0(a)torproject.org>
Date: Tue Nov 13 07:23:52 2018 -0200
Bug 25013: Add torbutton as a tor-browser submodule
Because of the non-restartless nature of Torbutton, it required
a two-stage installation process. On mobile, it was a problem,
because it was not loading when the user opened the browser for
the first time.
Moving it to tor-browser and making it a system extension allows it
to load when the user opens the browser for first time.
Additionally, this patch also fixes Bug 27611.
---
.gitmodules | 3 +++
mobile/android/installer/package-manifest.in | 4 ++++
toolkit/moz.build | 3 +++
toolkit/torproject/torbutton | 1 +
4 files changed, 11 insertions(+)
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 000000000000..2f03bd8e22df
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "toolkit/torproject/torbutton"]
+ path = toolkit/torproject/torbutton
+ url = https://git.torproject.org/torbutton.git
diff --git a/mobile/android/installer/package-manifest.in b/mobile/android/installer/package-manifest.in
index 8a2a356c151c..69714f9eca7c 100644
--- a/mobile/android/installer/package-manifest.in
+++ b/mobile/android/installer/package-manifest.in
@@ -426,6 +426,10 @@
@BINPATH@/chrome/devtools@JAREXT@
@BINPATH@/chrome/devtools.manifest
+; Torbutton
+@BINPATH@/chrome/torbutton@JAREXT@
+@BINPATH@/chrome/torbutton.manifest
+
; [Default Preferences]
; All the pref files must be part of base to prevent migration bugs
#ifdef MOZ_GECKOVIEW_JAR
diff --git a/toolkit/moz.build b/toolkit/moz.build
index df0b09d3bc0f..ba89c51efea1 100644
--- a/toolkit/moz.build
+++ b/toolkit/moz.build
@@ -28,6 +28,9 @@ if CONFIG['MOZ_MAINTENANCE_SERVICE'] or CONFIG['MOZ_UPDATER']:
'mozapps/update/common',
]
+if CONFIG['MOZ_BUILD_APP'] == 'mobile/android':
+ DIRS += ['torproject/torbutton']
+
if CONFIG['MOZ_MAINTENANCE_SERVICE']:
DIRS += [
'components/maintenanceservice'
diff --git a/toolkit/torproject/torbutton b/toolkit/torproject/torbutton
new file mode 160000
index 000000000000..ac8d92514940
--- /dev/null
+++ b/toolkit/torproject/torbutton
@@ -0,0 +1 @@
+Subproject commit ac8d9251494056e761bb2cf5c2a4795a888f38bd
1
0