diff --git a/CHANGELOG.md b/CHANGELOG.md index a291e79a..feb935de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ # 63.0.3239.15 * remove URL tracking from Google search results * disable webRTC by default +* use 64bit processes for WebView/Monochrome processes +* do not enable search engine geolocation by default # 63.0.3239.10 * attempt enabling API keys (didn't work) diff --git a/patches/performance/0012-use-64-bit-WebView-processes.patch b/patches/performance/0012-use-64-bit-WebView-processes.patch new file mode 100644 index 00000000..d2d5c34f --- /dev/null +++ b/patches/performance/0012-use-64-bit-WebView-processes.patch @@ -0,0 +1,26 @@ +From ee80624a6cad6e19a281a59cfea32f406e7ee03d Mon Sep 17 00:00:00 2001 +From: Daniel Micay +Date: Thu, 26 Jan 2017 01:30:12 -0500 +Subject: [PATCH 12/21] use 64-bit WebView processes + +--- + android_webview/apk/java/AndroidManifest.xml | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/android_webview/apk/java/AndroidManifest.xml b/android_webview/apk/java/AndroidManifest.xml +index 23b55ecb437a..3f7212fe2807 100644 +--- a/android_webview/apk/java/AndroidManifest.xml ++++ b/android_webview/apk/java/AndroidManifest.xml +@@ -20,8 +20,7 @@ + + ++ android:multiArch="true"> + {# This part is shared between stand-alone WebView and Monochrome #} + {% macro common(manifest_package, webview_lib) %} + +Date: Wed, 5 Jul 2017 00:22:37 -0400 +Subject: [PATCH 13/21] use 64-bit Monochrome processes + +--- + android_webview/BUILD.gn | 2 ++ + chrome/android/BUILD.gn | 22 ++++++---------------- + chrome/android/chrome_public_apk_tmpl.gni | 8 +------- + chrome/android/java/AndroidManifest_monochrome.xml | 1 - + ...monochrome_android_manifest_jinja_variables.gni | 1 - + 5 files changed, 9 insertions(+), 25 deletions(-) + +diff --git a/android_webview/BUILD.gn b/android_webview/BUILD.gn +index 6267dbe3aa99..8cee7e02559a 100644 +--- a/android_webview/BUILD.gn ++++ b/android_webview/BUILD.gn +@@ -404,7 +404,9 @@ if (android_64bit_target_cpu) { + "//v8($android_secondary_abi_toolchain)", + ] + } ++} + ++if (android_64bit_target_cpu && current_toolchain == android_secondary_abi_toolchain) { + shared_library("monochrome") { + deps = [ + ":webview_entry_point", +diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn +index ef704f883f2e..8648e853775b 100644 +--- a/chrome/android/BUILD.gn ++++ b/chrome/android/BUILD.gn +@@ -749,13 +749,7 @@ if (current_toolchain == default_toolchain) { + + if (enable_resource_whitelist_generation) { + generate_resource_whitelist("monochrome_resource_whitelist") { +- # Always use the 32-bit library's whitelist since the 64-bit one is +- # webview-only. +- if (!android_64bit_target_cpu) { +- _fat_lib_toolchain = current_toolchain +- } else { +- _fat_lib_toolchain = android_secondary_abi_toolchain +- } ++ _fat_lib_toolchain = current_toolchain + deps = [ + ":monochrome($_fat_lib_toolchain)", + ] +@@ -869,14 +863,8 @@ if (current_toolchain == default_toolchain) { + } + } # current_toolchain == host_toolchain + +-# +-# Only 32-bit //chrome/android/monochrome is needed, beside +-# being built with 32-bit default toolchain, it is also built +-# with secondary 32-bit toolchain in 64-bit platform because we +-# need 64-bit //android_webview/monochrome and 32-bit this target +-# for 64-bit APK. + if (!android_64bit_target_cpu || +- current_toolchain == android_secondary_abi_toolchain) { ++ current_toolchain != android_secondary_abi_toolchain) { + shared_library("monochrome") { + sources = [ + "../app/android/chrome_main_delegate_android_initializer.cc", +@@ -901,10 +889,12 @@ if (!android_64bit_target_cpu || + + public_configs = extra_chrome_shared_library_configs + } +-} else { ++} ++ ++if (android_64bit_target_cpu && current_toolchain != android_secondary_abi_toolchain) { + group("monochrome_secondary_abi_lib") { + public_deps = [ +- ":monochrome($android_secondary_abi_toolchain)", ++ "//android_webview:monochrome($android_secondary_abi_toolchain)", + ] + } + } +diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni +index 5a115915e7ef..7302ab2e15c8 100644 +--- a/chrome/android/chrome_public_apk_tmpl.gni ++++ b/chrome/android/chrome_public_apk_tmpl.gni +@@ -98,13 +98,7 @@ template("chrome_public_apk_tmpl") { + + template("monochrome_public_apk_tmpl") { + chrome_public_apk_tmpl(target_name) { +- # Always build 64-bit //android_webview:monochrome because Chrome runs +- # in 32-bit mode. +- if (android_64bit_target_cpu) { +- shared_libraries = [ "//android_webview:monochrome" ] +- } else { +- shared_libraries = [ "//chrome/android:monochrome" ] +- } ++ shared_libraries = [ "//chrome/android:monochrome" ] + if (android_64bit_target_cpu && build_apk_secondary_abi) { + secondary_abi_shared_libraries = + [ "//chrome/android:monochrome_secondary_abi_lib" ] +diff --git a/chrome/android/java/AndroidManifest_monochrome.xml b/chrome/android/java/AndroidManifest_monochrome.xml +index 5ae85dec51d1..934d13d806dc 100644 +--- a/chrome/android/java/AndroidManifest_monochrome.xml ++++ b/chrome/android/java/AndroidManifest_monochrome.xml +@@ -19,7 +19,6 @@ + {{ super() }} + android:multiArch="true" + android:extractNativeLibs="false" +-{{use32bitAbi|default('')}} + {% endblock %} + + {% block extra_keyset_definitions %} +diff --git a/chrome/android/monochrome_android_manifest_jinja_variables.gni b/chrome/android/monochrome_android_manifest_jinja_variables.gni +index dcbfa96764a1..8e6d7ccac9e2 100644 +--- a/chrome/android/monochrome_android_manifest_jinja_variables.gni ++++ b/chrome/android/monochrome_android_manifest_jinja_variables.gni +@@ -5,5 +5,4 @@ + monochrome_android_manifest_jinja_variables = [ + "min_sdk_version=24", + "sandboxed_service_exported=true", +- "use32bitAbi=android:use32bitAbi=\"true\"", + ] +-- +2.14.2 + diff --git a/patches/privacy/0019-stop-enabling-search-engine-geolocation-by-default.patch b/patches/privacy/0019-stop-enabling-search-engine-geolocation-by-default.patch new file mode 100644 index 00000000..c1dc60f9 --- /dev/null +++ b/patches/privacy/0019-stop-enabling-search-engine-geolocation-by-default.patch @@ -0,0 +1,69 @@ +From bc266421a13f4967a3d5b49830c338f59e4f2dd5 Mon Sep 17 00:00:00 2001 +From: Daniel Micay +Date: Tue, 1 Aug 2017 20:29:56 -0400 +Subject: [PATCH 19/21] stop enabling search engine geolocation by default + +--- + .../search_geolocation_service.cc | 25 ++++++++++------------ + 1 file changed, 11 insertions(+), 14 deletions(-) + +diff --git a/chrome/browser/android/search_geolocation/search_geolocation_service.cc b/chrome/browser/android/search_geolocation/search_geolocation_service.cc +index 0ed5540c3262..e5721d53c344 100644 +--- a/chrome/browser/android/search_geolocation/search_geolocation_service.cc ++++ b/chrome/browser/android/search_geolocation/search_geolocation_service.cc +@@ -208,7 +208,14 @@ void SearchGeolocationService::SetDSEGeolocationSetting(bool setting) { + pref.setting = setting; + SetDSEGeolocationPref(pref); + +- ResetContentSetting(); ++ url::Origin origin = delegate_->GetDSEOrigin(); ++ if (setting) { ++ host_content_settings_map_->SetContentSettingDefaultScope( ++ origin.GetURL(), origin.GetURL(), CONTENT_SETTINGS_TYPE_GEOLOCATION, ++ std::string(), CONTENT_SETTING_ALLOW); ++ } else { ++ ResetContentSetting(); ++ } + } + + url::Origin SearchGeolocationService::GetDSEOriginIfEnabled() { +@@ -232,11 +239,7 @@ void SearchGeolocationService::OnDSEChanged() { + // Remove any geolocation embargo on the URL. + PermissionDecisionAutoBlocker::GetForProfile(profile_)->RemoveEmbargoByUrl( + delegate_->GetDSEOrigin().GetURL(), CONTENT_SETTINGS_TYPE_GEOLOCATION); +- if (content_setting == CONTENT_SETTING_BLOCK && pref.setting) { +- pref.setting = false; +- } else if (content_setting == CONTENT_SETTING_ALLOW && !pref.setting) { +- ResetContentSetting(); +- } ++ pref.setting = content_setting == CONTENT_SETTING_ALLOW; + + if (new_dse_name != pref.dse_name && pref.setting) + SearchGeolocationDisclosureTabHelper::ResetDisclosure(profile_); +@@ -279,7 +282,7 @@ void SearchGeolocationService::InitializeDSEGeolocationSettingIfNeeded() { + + PrefValue pref; + pref.dse_name = delegate_->GetDSEName(); +- pref.setting = content_setting != CONTENT_SETTING_BLOCK; ++ pref.setting = content_setting == CONTENT_SETTING_ALLOW; + SetDSEGeolocationPref(pref); + + SearchGeolocationDisclosureTabHelper::ResetDisclosure(profile_); +@@ -289,13 +292,7 @@ void SearchGeolocationService::InitializeDSEGeolocationSettingIfNeeded() { + void SearchGeolocationService::EnsureDSEGeolocationSettingIsValid() { + PrefValue pref = GetDSEGeolocationPref(); + ContentSetting content_setting = GetCurrentContentSetting(); +- bool new_setting = pref.setting; +- +- if (pref.setting && content_setting == CONTENT_SETTING_BLOCK) { +- new_setting = false; +- } else if (!pref.setting && content_setting == CONTENT_SETTING_ALLOW) { +- new_setting = true; +- } ++ bool new_setting = content_setting == CONTENT_SETTING_ALLOW; + + if (pref.setting != new_setting) { + pref.setting = new_setting; +-- +2.14.2 +