Kaynağa Gözat

Adding some patches from CopperheadOS

csagan5 7 yıl önce
ebeveyn
işleme
cd354c6786

+ 2 - 0
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)

+ 26 - 0
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 <danielmicay@gmail.com>
+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 @@
+ 
+     <application android:label="Android System WebView"
+                  android:icon="@drawable/icon_webview"
+-                 android:multiArch="true"
+-                 android:use32bitAbi="true">
++                 android:multiArch="true">
+         {# This part is shared between stand-alone WebView and Monochrome #}
+         {% macro common(manifest_package, webview_lib) %}
+             <meta-data android:name="com.android.webview.WebViewLibrary"
+-- 
+2.14.2
+

+ 121 - 0
patches/performance/0013-use-64-bit-Monochrome-processes.patch

@@ -0,0 +1,121 @@
+From c2dd6249a583c31b2cee53685c1fa83492999533 Mon Sep 17 00:00:00 2001
+From: Daniel Micay <danielmicay@gmail.com>
+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
+

+ 69 - 0
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 <danielmicay@gmail.com>
+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
+