Patches for next release (v89)
This commit is contained in:
parent
9e1fa7d614
commit
fb90e00324
133 changed files with 18007 additions and 23793 deletions
|
@ -37,7 +37,6 @@ use_debug_fission=true
|
|||
use_errorprone_java_compiler=false
|
||||
use_gnome_keyring=false
|
||||
use_official_google_api_keys=false
|
||||
use_openh264=true
|
||||
use_rtti=false
|
||||
use_sysroot=false
|
||||
webview_includes_weblayer=false
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
Disable-third-party-cookies-by-default.patch
|
||||
Password-service-build-fixes.patch
|
||||
Restore-classic-new-tab-page.patch
|
||||
Always-use-new-tab-page-for-default-home-page.patch
|
||||
Always-allow-partner-customisation.patch
|
||||
|
@ -56,7 +55,6 @@ Disable-metrics-on-all-I-O-threads.patch
|
|||
Always-respect-async-dns-flag-regardless-of-SDK-version.patch
|
||||
Add-flag-to-configure-maximum-connections-per-host.patch
|
||||
Add-bookmark-import-export-actions.patch
|
||||
Disable-promos-displayed-in-bookmarks-manager.patch
|
||||
Add-an-always-incognito-mode.patch
|
||||
Add-custom-tab-intents-privacy-option.patch
|
||||
Add-option-to-not-persist-tabs-across-sessions.patch
|
||||
|
@ -74,17 +72,7 @@ kill-TOS-and-metrics-opt-out.patch
|
|||
kill-Vision.patch
|
||||
kill-Location-fall-back-to-system.patch
|
||||
kill-Auth.patch
|
||||
Remove-dependency-on-com.google.android.gms.auth.patch
|
||||
kill-GCM.patch
|
||||
Remove-dependency-on-com.google.android.gcm.patch
|
||||
Remove-dependency-on-com.google.android.gms.gcm.patch
|
||||
Remove-dependency-on-com.google.android.play.patch
|
||||
Remove-dependency-on-vision-clearcut-and-phenotype.patch
|
||||
Remove-dependency-on-flags-places-and-stats.patch
|
||||
Remove-dependency-on-fido-iid-instantapps-location.patch
|
||||
Remove-dependency-on-com.google.android.gms.cast.patch
|
||||
Remove-dependency-on-auth-signin-dynamic-and-tasks.patch
|
||||
Remove-google_services_gcm.patch
|
||||
Remove-binary-blob-integrations.patch
|
||||
Remove-SMS-integration.patch
|
||||
Do-not-compile-QR-code-sharing.patch
|
||||
Allow-website-sign-in-without-account-sign-in.patch
|
||||
|
@ -116,7 +104,6 @@ DoH-secure-mode-by-default.patch
|
|||
Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch
|
||||
Revert-flags-remove-disable-pull-to-refresh-effect.patch
|
||||
Use-dummy-DFM-installer.patch
|
||||
Disable-password-reuse-detection-on-android.patch
|
||||
Disable-feeds-support-by-default.patch
|
||||
Disable-autofill-assistant-by-default.patch
|
||||
Show-site-settings-for-cookies.patch
|
||||
|
@ -132,7 +119,6 @@ Add-menu-item-to-view-source.patch
|
|||
Enable-legacy-TLS-interstitital-warning.patch
|
||||
Block-gateway-attacks-via-websockets.patch
|
||||
Enable-prefetch-privacy-changes-by-default.patch
|
||||
Enable-reduced-referrer-granularity-by-default.patch
|
||||
Disable-support-for-RAR-files-inspection.patch
|
||||
Add-history-support-in-incognito-mode.patch
|
||||
Enable-darken-websites-checkbox-in-themes.patch
|
||||
|
@ -155,7 +141,6 @@ Disable-unified-autoplay-feature.patch
|
|||
Revert-flags-remove-num-raster-threads.patch
|
||||
webview-Hard-no-to-persistent-histograms.patch
|
||||
Ignore-enterprise-policies-for-secure-DNS.patch
|
||||
Fix-favicons-fallback-search.patch
|
||||
Enable-app-overflow-menu-icons-by-default.patch
|
||||
Add-menu-item-to-bookmark-all-tabs.patch
|
||||
Add-flag-for-save-data-header.patch
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
AV1-codec-support.patch
|
||||
Switch-to-fstack-protector-strong.patch
|
||||
Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch
|
||||
Disable-password-reuse-detection-on-android.patch
|
||||
Disable-feeds-support-by-default.patch
|
||||
Password-service-build-fixes.patch
|
||||
|
|
|
@ -83,15 +83,15 @@ diff --git a/base/android/android_image_reader_compat.h b/base/android/android_i
|
|||
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
|
||||
--- a/chrome/browser/flag-metadata.json
|
||||
+++ b/chrome/browser/flag-metadata.json
|
||||
@@ -1712,7 +1712,7 @@
|
||||
@@ -1724,7 +1724,7 @@
|
||||
{
|
||||
"name": "enable-image-reader",
|
||||
"owners": [ "vikassoni", "khushalsagar" ],
|
||||
"name": "enable-heavy-ad-intervention",
|
||||
"owners": [ "johnidel", "jkarlin" ],
|
||||
- "expiry_milestone": 90
|
||||
+ "expiry_milestone": -1
|
||||
},
|
||||
{
|
||||
"name": "enable-immersive-fullscreen-toolbar",
|
||||
"name": "enable-heuristic-stylus-palm-rejection",
|
||||
diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json
|
||||
--- a/gpu/config/gpu_driver_bug_list.json
|
||||
+++ b/gpu/config/gpu_driver_bug_list.json
|
||||
|
@ -132,7 +132,7 @@ diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
|
|||
+
|
||||
// Used to limit GL version to 2.0 for skia raster on Android.
|
||||
const base::Feature kUseGles2ForOopR{"UseGles2ForOopR",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
@@ -55,7 +60,11 @@ const base::FeatureParam<std::string> kAndroidSurfaceControlBlocklist{
|
||||
|
||||
// Use AImageReader for MediaCodec and MediaPlyer on android.
|
||||
|
@ -170,7 +170,7 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
|
|||
if (!gpu_preferences.enable_android_surface_control)
|
||||
return kGpuFeatureStatusDisabled;
|
||||
|
||||
@@ -327,6 +330,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) {
|
||||
@@ -316,6 +319,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) {
|
||||
gpu_feature_info->status_values[GPU_FEATURE_TYPE_ACCELERATED_WEBGL2] =
|
||||
kGpuFeatureStatusBlocklisted;
|
||||
}
|
||||
|
@ -190,13 +190,13 @@ diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list
|
|||
disable_2d_canvas_auto_flush
|
||||
disable_accelerated_av1_decode
|
||||
+disable_aimagereader
|
||||
disable_accelerated_av1_decode_d3d11
|
||||
disable_accelerated_vp8_decode
|
||||
disable_accelerated_vp8_encode
|
||||
disable_accelerated_vp9_decode
|
||||
diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
|
||||
--- a/gpu/ipc/service/gpu_init.cc
|
||||
+++ b/gpu/ipc/service/gpu_init.cc
|
||||
@@ -464,6 +464,11 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
|
||||
@@ -477,6 +477,11 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -219,7 +219,7 @@ diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_
|
|||
#include "base/android/scoped_hardware_buffer_fence_sync.h"
|
||||
#include "base/bind.h"
|
||||
#include "base/feature_list.h"
|
||||
@@ -47,7 +48,15 @@ std::unique_ptr<ui::ScopedMakeCurrent> MakeCurrent(
|
||||
@@ -48,7 +49,15 @@ std::unique_ptr<ui::ScopedMakeCurrent> MakeCurrent(
|
||||
}
|
||||
|
||||
TextureOwner::Mode GetTextureOwnerMode() {
|
||||
|
@ -239,7 +239,7 @@ diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_
|
|||
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
|
||||
--- a/media/base/media_switches.cc
|
||||
+++ b/media/base/media_switches.cc
|
||||
@@ -571,6 +571,10 @@ const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning",
|
||||
@@ -604,6 +604,10 @@ const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning",
|
||||
const base::Feature kMediaDrmPreprovisioningAtStartup{
|
||||
"MediaDrmPreprovisioningAtStartup", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
|
@ -253,7 +253,7 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
|
|||
diff --git a/media/base/media_switches.h b/media/base/media_switches.h
|
||||
--- a/media/base/media_switches.h
|
||||
+++ b/media/base/media_switches.h
|
||||
@@ -194,6 +194,7 @@ MEDIA_EXPORT extern const base::Feature kMediaControlsExpandGesture;
|
||||
@@ -206,6 +206,7 @@ MEDIA_EXPORT extern const base::Feature kMediaControlsExpandGesture;
|
||||
MEDIA_EXPORT extern const base::Feature kMediaDrmPersistentLicense;
|
||||
MEDIA_EXPORT extern const base::Feature kMediaDrmPreprovisioning;
|
||||
MEDIA_EXPORT extern const base::Feature kMediaDrmPreprovisioningAtStartup;
|
||||
|
|
|
@ -5,7 +5,6 @@ Subject: AV1 codec support
|
|||
libaom build fixes (requires -fPIC)
|
||||
Report AV1 as playable on Android
|
||||
---
|
||||
media/base/mime_util_internal.cc | 6 +++++-
|
||||
third_party/libaom/BUILD.gn | 6 ++++--
|
||||
third_party/libaom/libaom_srcs.gni | 5 +++++
|
||||
.../config/linux/arm-neon-cpu-detect/config/aom_config.asm | 2 +-
|
||||
|
@ -20,26 +19,8 @@ Report AV1 as playable on Android
|
|||
.../libaom/source/config/linux/generic/config/aom_config.h | 2 +-
|
||||
.../libaom/source/config/linux/x64/config/aom_config.asm | 2 +-
|
||||
.../libaom/source/config/linux/x64/config/aom_config.h | 2 +-
|
||||
15 files changed, 26 insertions(+), 15 deletions(-)
|
||||
14 files changed, 21 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/media/base/mime_util_internal.cc b/media/base/mime_util_internal.cc
|
||||
--- a/media/base/mime_util_internal.cc
|
||||
+++ b/media/base/mime_util_internal.cc
|
||||
@@ -565,9 +565,13 @@ bool MimeUtil::IsCodecSupportedOnAndroid(
|
||||
case THEORA:
|
||||
return false;
|
||||
|
||||
- // AV1 is not supported on Android yet.
|
||||
+ // AV1 is supported on Android.
|
||||
case AV1:
|
||||
+#if BUILDFLAG(ENABLE_AV1_DECODER)
|
||||
+ return true;
|
||||
+#else
|
||||
return false;
|
||||
+#endif
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// The remaining codecs may be supported depending on platform abilities.
|
||||
diff --git a/third_party/libaom/BUILD.gn b/third_party/libaom/BUILD.gn
|
||||
--- a/third_party/libaom/BUILD.gn
|
||||
+++ b/third_party/libaom/BUILD.gn
|
||||
|
@ -73,7 +54,7 @@ diff --git a/third_party/libaom/BUILD.gn b/third_party/libaom/BUILD.gn
|
|||
diff --git a/third_party/libaom/libaom_srcs.gni b/third_party/libaom/libaom_srcs.gni
|
||||
--- a/third_party/libaom/libaom_srcs.gni
|
||||
+++ b/third_party/libaom/libaom_srcs.gni
|
||||
@@ -672,6 +672,11 @@ aom_mem_sources = [
|
||||
@@ -616,6 +616,11 @@ aom_mem_sources = [
|
||||
|
||||
aom_ports_asm_x86 = [ "//third_party/libaom/source/libaom/aom_ports/emms.asm" ]
|
||||
|
||||
|
@ -95,7 +76,7 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/a
|
|||
-CONFIG_PIC equ 0
|
||||
+CONFIG_PIC equ 1
|
||||
CONFIG_RD_DEBUG equ 0
|
||||
CONFIG_REALTIME_ONLY equ 0
|
||||
CONFIG_REALTIME_ONLY equ 1
|
||||
CONFIG_RUNTIME_CPU_DETECT equ 1
|
||||
diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h
|
||||
--- a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h
|
||||
|
@ -107,7 +88,7 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/a
|
|||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
#define CONFIG_REALTIME_ONLY 0
|
||||
#define CONFIG_REALTIME_ONLY 1
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm
|
||||
--- a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm
|
||||
|
@ -119,7 +100,7 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.a
|
|||
-CONFIG_PIC equ 0
|
||||
+CONFIG_PIC equ 1
|
||||
CONFIG_RD_DEBUG equ 0
|
||||
CONFIG_REALTIME_ONLY equ 0
|
||||
CONFIG_REALTIME_ONLY equ 1
|
||||
CONFIG_RUNTIME_CPU_DETECT equ 0
|
||||
diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
|
||||
--- a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
|
||||
|
@ -131,7 +112,7 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
|
|||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
#define CONFIG_REALTIME_ONLY 0
|
||||
#define CONFIG_REALTIME_ONLY 1
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 0
|
||||
diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.asm b/third_party/libaom/source/config/linux/arm/config/aom_config.asm
|
||||
--- a/third_party/libaom/source/config/linux/arm/config/aom_config.asm
|
||||
|
@ -143,7 +124,7 @@ diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.asm b/
|
|||
-CONFIG_PIC equ 0
|
||||
+CONFIG_PIC equ 1
|
||||
CONFIG_RD_DEBUG equ 0
|
||||
CONFIG_REALTIME_ONLY equ 0
|
||||
CONFIG_REALTIME_ONLY equ 1
|
||||
CONFIG_RUNTIME_CPU_DETECT equ 0
|
||||
diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.h b/third_party/libaom/source/config/linux/arm/config/aom_config.h
|
||||
--- a/third_party/libaom/source/config/linux/arm/config/aom_config.h
|
||||
|
@ -155,7 +136,7 @@ diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.h b/th
|
|||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
#define CONFIG_REALTIME_ONLY 0
|
||||
#define CONFIG_REALTIME_ONLY 1
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 0
|
||||
diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.asm b/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
|
||||
--- a/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
|
||||
|
@ -167,7 +148,7 @@ diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
|
|||
-CONFIG_PIC equ 0
|
||||
+CONFIG_PIC equ 1
|
||||
CONFIG_RD_DEBUG equ 0
|
||||
CONFIG_REALTIME_ONLY equ 0
|
||||
CONFIG_REALTIME_ONLY equ 1
|
||||
CONFIG_RUNTIME_CPU_DETECT equ 0
|
||||
diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.h b/third_party/libaom/source/config/linux/arm64/config/aom_config.h
|
||||
--- a/third_party/libaom/source/config/linux/arm64/config/aom_config.h
|
||||
|
@ -179,7 +160,7 @@ diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.h b/
|
|||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
#define CONFIG_REALTIME_ONLY 0
|
||||
#define CONFIG_REALTIME_ONLY 1
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 0
|
||||
diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.asm b/third_party/libaom/source/config/linux/generic/config/aom_config.asm
|
||||
--- a/third_party/libaom/source/config/linux/generic/config/aom_config.asm
|
||||
|
@ -191,7 +172,7 @@ diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.as
|
|||
-CONFIG_PIC equ 0
|
||||
+CONFIG_PIC equ 1
|
||||
CONFIG_RD_DEBUG equ 0
|
||||
CONFIG_REALTIME_ONLY equ 0
|
||||
CONFIG_REALTIME_ONLY equ 1
|
||||
CONFIG_RUNTIME_CPU_DETECT equ 1
|
||||
diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.h b/third_party/libaom/source/config/linux/generic/config/aom_config.h
|
||||
--- a/third_party/libaom/source/config/linux/generic/config/aom_config.h
|
||||
|
@ -203,7 +184,7 @@ diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.h
|
|||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
#define CONFIG_REALTIME_ONLY 0
|
||||
#define CONFIG_REALTIME_ONLY 1
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.asm b/third_party/libaom/source/config/linux/x64/config/aom_config.asm
|
||||
--- a/third_party/libaom/source/config/linux/x64/config/aom_config.asm
|
||||
|
@ -215,7 +196,7 @@ diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.asm b/
|
|||
-%define CONFIG_PIC 0
|
||||
+%define CONFIG_PIC 1
|
||||
%define CONFIG_RD_DEBUG 0
|
||||
%define CONFIG_REALTIME_ONLY 0
|
||||
%define CONFIG_REALTIME_ONLY 1
|
||||
%define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.h b/third_party/libaom/source/config/linux/x64/config/aom_config.h
|
||||
--- a/third_party/libaom/source/config/linux/x64/config/aom_config.h
|
||||
|
@ -227,7 +208,7 @@ diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.h b/th
|
|||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
#define CONFIG_REALTIME_ONLY 0
|
||||
#define CONFIG_REALTIME_ONLY 1
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
--
|
||||
2.17.1
|
||||
|
|
|
@ -17,7 +17,7 @@ See also:
|
|||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -5188,6 +5188,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -5387,6 +5387,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
SINGLE_VALUE_TYPE(switches::kEnableGPUServiceLogging)},
|
||||
|
||||
#if !defined(OS_ANDROID)
|
||||
|
@ -33,7 +33,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -522,6 +522,11 @@ const char kEnableAutofillCreditCardAuthenticationDescription[] =
|
||||
@@ -533,6 +533,11 @@ const char kEnableAutofillCreditCardAuthenticationDescription[] =
|
||||
"authenticator (if available) to verify card ownership when retrieving "
|
||||
"credit cards from Google Payments.";
|
||||
|
||||
|
@ -48,7 +48,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
|
|||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -321,6 +321,9 @@ extern const char kEnableAutofillCacheServerCardInfoDescription[];
|
||||
@@ -329,6 +329,9 @@ extern const char kEnableAutofillAccountWalletStorageDescription[];
|
||||
|
||||
extern const char kEnableAutofillCreditCardAblationExperimentDisplayName[];
|
||||
extern const char kEnableAutofillCreditCardAblationExperimentDescription[];
|
||||
|
@ -61,7 +61,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
|
|||
diff --git a/chrome/browser/flags/android/java_templates/ChromeSwitches.java.tmpl b/chrome/browser/flags/android/java_templates/ChromeSwitches.java.tmpl
|
||||
--- a/chrome/browser/flags/android/java_templates/ChromeSwitches.java.tmpl
|
||||
+++ b/chrome/browser/flags/android/java_templates/ChromeSwitches.java.tmpl
|
||||
@@ -144,10 +144,6 @@ public abstract class ChromeSwitches {{
|
||||
@@ -147,10 +147,6 @@ public abstract class ChromeSwitches {{
|
||||
/** Switch for enabling the Chrome Survey. */
|
||||
public static final String CHROME_FORCE_ENABLE_SURVEY = "force-enable-chrome-survey";
|
||||
|
||||
|
@ -75,7 +75,7 @@ diff --git a/chrome/browser/flags/android/java_templates/ChromeSwitches.java.tmp
|
|||
diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc
|
||||
--- a/chrome/common/chrome_switches.cc
|
||||
+++ b/chrome/common/chrome_switches.cc
|
||||
@@ -324,6 +324,9 @@ const char kHomePage[] = "homepage";
|
||||
@@ -334,6 +334,9 @@ const char kHomePage[] = "homepage";
|
||||
// Causes the browser to launch directly in incognito mode.
|
||||
const char kIncognito[] = "incognito";
|
||||
|
||||
|
@ -88,14 +88,14 @@ diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc
|
|||
diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h
|
||||
--- a/chrome/common/chrome_switches.h
|
||||
+++ b/chrome/common/chrome_switches.h
|
||||
@@ -108,6 +108,7 @@ extern const char kForceFirstRun[];
|
||||
@@ -113,6 +113,7 @@ extern const char kForceFirstRun[];
|
||||
extern const char kForceStackedTabStripLayout[];
|
||||
extern const char kHomePage[];
|
||||
extern const char kIncognito[];
|
||||
+extern const char kEnableIncognitoSnapshotsInAndroidRecents[];
|
||||
extern const char kInstallAutogeneratedTheme[];
|
||||
extern const char kInstallChromeApp[];
|
||||
extern const char kInstallSupervisedUserAllowlists[];
|
||||
extern const char kInstantProcess[];
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ for SimpleURLLoaders as well.
|
|||
---
|
||||
chrome/android/java/res/values/values.xml | 3 +
|
||||
.../java/res/xml/privacy_preferences.xml | 4 +
|
||||
.../privacy/settings/PrivacySettings.java | 5 +-
|
||||
.../privacy/settings/PrivacySettings.java | 6 +-
|
||||
.../chrome_autocomplete_provider_client.cc | 2 +
|
||||
chrome/browser/browser_resources.grd | 6 +
|
||||
chrome/browser/net/proxy_service_factory.cc | 23 +-
|
||||
|
@ -33,7 +33,7 @@ for SimpleURLLoaders as well.
|
|||
.../proxy_config/proxy_config_dictionary.h | 7 +-
|
||||
net/proxy_resolution/proxy_config.cc | 52 ++-
|
||||
net/proxy_resolution/proxy_config.h | 3 +
|
||||
24 files changed, 997 insertions(+), 15 deletions(-)
|
||||
24 files changed, 998 insertions(+), 15 deletions(-)
|
||||
create mode 100644 chrome/browser/resources/proxy_config.css
|
||||
create mode 100644 chrome/browser/resources/proxy_config.html
|
||||
create mode 100644 chrome/browser/resources/proxy_config.js
|
||||
|
@ -70,27 +70,30 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
@@ -51,12 +51,15 @@ public class PrivacySettings
|
||||
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
|
||||
private static final String PREF_ALWAYS_INCOGNITO = "always_incognito";
|
||||
public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
|
||||
+ private static final String PREF_PROXY_OPTIONS = "proxy";
|
||||
+
|
||||
private static final String[] NEW_PRIVACY_PREFERENCE_ORDER = {PREF_CLEAR_BROWSING_DATA,
|
||||
@@ -54,7 +54,9 @@ public class PrivacySettings
|
||||
PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS,
|
||||
PREF_SECURE_DNS, PREF_DO_NOT_TRACK,
|
||||
PREF_ALWAYS_INCOGNITO,
|
||||
PREF_ALLOW_CUSTOM_TAB_INTENTS,
|
||||
- PREF_CLOSE_TABS_ON_EXIT
|
||||
+ PREF_CLOSE_TABS_ON_EXIT,
|
||||
PREF_CLOSE_TABS_ON_EXIT,
|
||||
PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX,
|
||||
- PREF_ALLOW_CUSTOM_TAB_INTENTS};
|
||||
+ PREF_ALLOW_CUSTOM_TAB_INTENTS,
|
||||
+ PREF_PROXY_OPTIONS
|
||||
};
|
||||
+ };
|
||||
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
|
||||
@@ -62,6 +64,8 @@ public class PrivacySettings
|
||||
|
||||
private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
|
||||
|
||||
+ private static final String PREF_PROXY_OPTIONS = "proxy";
|
||||
+
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
PrivacyPreferencesManagerImpl privacyPrefManager =
|
||||
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||
@@ -331,6 +331,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
|
||||
@@ -332,6 +332,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
|
||||
std::vector<base::string16> builtins_to_provide;
|
||||
builtins_to_provide.push_back(
|
||||
base::ASCIIToUTF16(chrome::kChromeUIFlagsURL));
|
||||
|
@ -102,7 +105,7 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
|||
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
|
||||
--- a/chrome/browser/browser_resources.grd
|
||||
+++ b/chrome/browser/browser_resources.grd
|
||||
@@ -128,6 +128,12 @@
|
||||
@@ -136,6 +136,12 @@
|
||||
<include name="IDR_VIDEO_PLAYER_JS" file="resources\video_tutorials\video_player.js" type="BINDATA" />
|
||||
</if>
|
||||
|
||||
|
@ -118,7 +121,7 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou
|
|||
diff --git a/chrome/browser/net/proxy_service_factory.cc b/chrome/browser/net/proxy_service_factory.cc
|
||||
--- a/chrome/browser/net/proxy_service_factory.cc
|
||||
+++ b/chrome/browser/net/proxy_service_factory.cc
|
||||
@@ -14,6 +14,9 @@
|
||||
@@ -15,6 +15,9 @@
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "net/proxy_resolution/configured_proxy_resolution_service.h"
|
||||
#include "net/proxy_resolution/proxy_config_service.h"
|
||||
|
@ -126,9 +129,9 @@ diff --git a/chrome/browser/net/proxy_service_factory.cc b/chrome/browser/net/pr
|
|||
+#include "components/prefs/pref_service.h"
|
||||
+#include "components/prefs/pref_registry_simple.h"
|
||||
|
||||
#if defined(OS_CHROMEOS)
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
#include "chromeos/network/proxy/proxy_config_service_impl.h"
|
||||
@@ -58,7 +61,20 @@ ProxyServiceFactory::CreatePrefProxyConfigTrackerOfProfile(
|
||||
@@ -59,7 +62,20 @@ ProxyServiceFactory::CreatePrefProxyConfigTrackerOfProfile(
|
||||
return std::make_unique<chromeos::ProxyConfigServiceImpl>(
|
||||
profile_prefs, local_state_prefs, nullptr);
|
||||
#else
|
||||
|
@ -147,19 +150,18 @@ diff --git a/chrome/browser/net/proxy_service_factory.cc b/chrome/browser/net/pr
|
|||
+ local_state_prefs->CommitPendingWrite();
|
||||
+ }
|
||||
+ return std::make_unique<PrefProxyConfigTrackerImpl>(local_state_prefs, nullptr);
|
||||
#endif // defined(OS_CHROMEOS)
|
||||
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
}
|
||||
|
||||
@@ -74,3 +90,8 @@ ProxyServiceFactory::CreatePrefProxyConfigTrackerOfLocalState(
|
||||
@@ -75,3 +91,8 @@ ProxyServiceFactory::CreatePrefProxyConfigTrackerOfLocalState(
|
||||
nullptr);
|
||||
#endif // defined(OS_CHROMEOS)
|
||||
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
}
|
||||
+
|
||||
+// static
|
||||
+void ProxyServiceFactory::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
+ registry->RegisterBooleanPref("proxy_migrated", false);
|
||||
+}
|
||||
\ No newline at end of file
|
||||
diff --git a/chrome/browser/net/proxy_service_factory.h b/chrome/browser/net/proxy_service_factory.h
|
||||
--- a/chrome/browser/net/proxy_service_factory.h
|
||||
+++ b/chrome/browser/net/proxy_service_factory.h
|
||||
|
@ -183,16 +185,16 @@ diff --git a/chrome/browser/net/proxy_service_factory.h b/chrome/browser/net/pro
|
|||
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
|
||||
--- a/chrome/browser/prefs/browser_prefs.cc
|
||||
+++ b/chrome/browser/prefs/browser_prefs.cc
|
||||
@@ -401,6 +401,8 @@
|
||||
#include "chrome/browser/media/kaleidoscope/kaleidoscope_prefs.h"
|
||||
@@ -410,6 +410,8 @@
|
||||
#include "chrome/browser/media/feeds/media_feeds_service.h"
|
||||
#endif
|
||||
|
||||
+#include "chrome/browser/net/proxy_service_factory.h"
|
||||
+
|
||||
namespace {
|
||||
|
||||
// Deprecated 9/2019
|
||||
@@ -642,6 +644,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
@@ -697,6 +699,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
|
||||
PluginsResourceService::RegisterPrefs(registry);
|
||||
#endif
|
||||
|
||||
|
@ -204,7 +206,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
|
|||
diff --git a/chrome/browser/prefs/chrome_command_line_pref_store.cc b/chrome/browser/prefs/chrome_command_line_pref_store.cc
|
||||
--- a/chrome/browser/prefs/chrome_command_line_pref_store.cc
|
||||
+++ b/chrome/browser/prefs/chrome_command_line_pref_store.cc
|
||||
@@ -155,7 +155,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() {
|
||||
@@ -156,7 +156,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() {
|
||||
SetValue(
|
||||
proxy_config::prefs::kProxy,
|
||||
std::make_unique<base::Value>(ProxyConfigDictionary::CreateFixedServers(
|
||||
|
@ -635,7 +637,7 @@ new file mode 100644
|
|||
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
|
||||
--- a/chrome/browser/ui/BUILD.gn
|
||||
+++ b/chrome/browser/ui/BUILD.gn
|
||||
@@ -250,6 +250,8 @@ static_library("ui") {
|
||||
@@ -254,6 +254,8 @@ static_library("ui") {
|
||||
"webui/metrics_handler.h",
|
||||
"webui/net_export_ui.cc",
|
||||
"webui/net_export_ui.h",
|
||||
|
@ -647,15 +649,15 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
|
|||
diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
|
||||
--- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
|
||||
+++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
|
||||
@@ -63,6 +63,7 @@
|
||||
@@ -62,6 +62,7 @@
|
||||
#include "chrome/browser/ui/webui/omnibox/omnibox_ui.h"
|
||||
#include "chrome/browser/ui/webui/policy_ui.h"
|
||||
#include "chrome/browser/ui/webui/policy/policy_ui.h"
|
||||
#include "chrome/browser/ui/webui/predictors/predictors_ui.h"
|
||||
+#include "chrome/browser/ui/webui/proxy_config_ui.h"
|
||||
#include "chrome/browser/ui/webui/quota_internals/quota_internals_ui.h"
|
||||
#include "chrome/browser/ui/webui/settings/settings_ui.h"
|
||||
#include "chrome/browser/ui/webui/settings_utils.h"
|
||||
@@ -555,6 +556,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
|
||||
#include "chrome/browser/ui/webui/settings/settings_utils.h"
|
||||
@@ -545,6 +546,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
|
||||
return &NewWebUI<MemoryInternalsUI>;
|
||||
if (url.host_piece() == chrome::kChromeUINetExportHost)
|
||||
return &NewWebUI<NetExportUI>;
|
||||
|
@ -1127,7 +1129,7 @@ new file mode 100644
|
|||
diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc
|
||||
--- a/chrome/common/webui_url_constants.cc
|
||||
+++ b/chrome/common/webui_url_constants.cc
|
||||
@@ -32,6 +32,8 @@ const char kChromeUICertificateViewerHost[] = "view-cert";
|
||||
@@ -33,6 +33,8 @@ const char kChromeUICertificateViewerHost[] = "view-cert";
|
||||
const char kChromeUICertificateViewerURL[] = "chrome://view-cert/";
|
||||
const char kChromeUIChromeSigninHost[] = "chrome-signin";
|
||||
const char kChromeUIChromeSigninURL[] = "chrome://chrome-signin/";
|
||||
|
@ -1136,7 +1138,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
|
|||
const char kChromeUIChromeURLsHost[] = "chrome-urls";
|
||||
const char kChromeUIChromeURLsURL[] = "chrome://chrome-urls/";
|
||||
const char kChromeUIComponentsHost[] = "components";
|
||||
@@ -322,6 +324,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
|
||||
@@ -325,6 +327,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
|
||||
kChromeUIMobileSetupHost,
|
||||
kChromeUIMultiDeviceSetupHost,
|
||||
kChromeUINetworkHost,
|
||||
|
@ -1144,9 +1146,9 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
|
|||
kChromeUIOobeHost,
|
||||
kChromeUIOSCreditsHost,
|
||||
kChromeUIOSSettingsHost,
|
||||
@@ -518,6 +521,7 @@ const char* const kChromeHostURLs[] = {
|
||||
@@ -523,6 +526,7 @@ const char* const kChromeHostURLs[] = {
|
||||
#if !defined(OS_ANDROID)
|
||||
#if !defined(OS_CHROMEOS)
|
||||
#if !BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
kChromeUIAppLauncherPageHost,
|
||||
+ kChromeUIProxyConfigHost,
|
||||
#endif
|
||||
|
|
|
@ -9,20 +9,20 @@ Enable incognito custom tabs and fix crashes for incognito/custom tab intents (c
|
|||
---
|
||||
chrome/android/chrome_java_sources.gni | 1 +
|
||||
.../java/res/xml/privacy_preferences.xml | 5 ++
|
||||
.../AlwaysIncognitoLinkInterceptor.java | 74 +++++++++++++++++++
|
||||
.../AlwaysIncognitoLinkInterceptor.java | 80 +++++++++++++++++++
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 6 +-
|
||||
.../chrome/browser/app/ChromeActivity.java | 4 +
|
||||
.../AppMenuPropertiesDelegateImpl.java | 6 ++
|
||||
.../ChromeContextMenuPopulator.java | 9 ++-
|
||||
.../CustomTabIntentDataProvider.java | 5 +-
|
||||
.../browser/init/StartupTabPreloader.java | 11 ++-
|
||||
.../privacy/settings/PrivacySettings.java | 4 +-
|
||||
.../browser/init/StartupTabPreloader.java | 14 +++-
|
||||
.../privacy/settings/PrivacySettings.java | 2 +
|
||||
.../browser/tabmodel/ChromeTabCreator.java | 16 +++-
|
||||
.../browser/tabmodel/TabPersistentStore.java | 10 +++
|
||||
.../webapps/WebappIntentDataProvider.java | 14 ++++
|
||||
.../flags/android/chrome_feature_list.cc | 2 +-
|
||||
.../strings/android_chrome_strings.grd | 7 ++
|
||||
15 files changed, 164 insertions(+), 10 deletions(-)
|
||||
15 files changed, 172 insertions(+), 9 deletions(-)
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
|
||||
|
||||
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
|
||||
|
@ -55,7 +55,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognito
|
|||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
|
||||
@@ -0,0 +1,74 @@
|
||||
@@ -0,0 +1,80 @@
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
@ -71,6 +71,7 @@ new file mode 100644
|
|||
+import org.chromium.chrome.browser.tab.TabLaunchType;
|
||||
+import org.chromium.chrome.browser.tabmodel.TabModel;
|
||||
+import org.chromium.content_public.browser.LoadUrlParams;
|
||||
+import org.chromium.url.GURL;
|
||||
+
|
||||
+import java.util.HashMap;
|
||||
+import java.util.HashSet;
|
||||
|
@ -105,14 +106,17 @@ new file mode 100644
|
|||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void onUpdateUrl(final Tab tab, final String url) {
|
||||
+ public void onUpdateUrl(Tab tab, GURL gurl) {
|
||||
+
|
||||
+ if (tab == null) return;
|
||||
+ if (url == null) return;
|
||||
+ if (gurl == null) return;
|
||||
+ if (tab.isIncognito()) return;
|
||||
+ if (alwaysIncognitoContainer == null) return;
|
||||
+
|
||||
+ final String lastUrl = lastUrls.put(tab, url);
|
||||
+ String spec = gurl.getValidSpecOrEmpty();
|
||||
+ if (spec == null) return;
|
||||
+
|
||||
+ final String lastUrl = lastUrls.put(tab, spec);
|
||||
+
|
||||
+ if (!alwaysIncognitoContainer.getBoolean(PREF_ALWAYS_INCOGNITO, false)) return;
|
||||
+ if (revertingTabs.contains(tab)) {
|
||||
|
@ -120,9 +124,11 @@ new file mode 100644
|
|||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ ((ChromeTabbedActivity)tab.getWindowAndroid().getActivity().get()).getTabCreator(true).createNewTab(new LoadUrlParams(url), TabLaunchType.FROM_LINK, tab);
|
||||
+ ((ChromeTabbedActivity)tab.getWindowAndroid().getActivity().get())
|
||||
+ .getTabCreator(true)
|
||||
+ .createNewTab(new LoadUrlParams(spec), TabLaunchType.FROM_LINK, tab);
|
||||
+
|
||||
+ if ((url.equals(lastUrl)) || (!tab.canGoBack())) {
|
||||
+ if ((spec.equals(lastUrl)) || (!tab.canGoBack())) {
|
||||
+ // this call was triggered by a reload
|
||||
+ } else {
|
||||
+ revertingTabs.add(tab);
|
||||
|
@ -133,15 +139,15 @@ new file mode 100644
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
@@ -49,6 +49,7 @@ import org.chromium.base.supplier.OneshotSupplierImpl;
|
||||
import org.chromium.base.supplier.Supplier;
|
||||
@@ -54,6 +54,7 @@ import org.chromium.base.supplier.Supplier;
|
||||
import org.chromium.base.task.PostTask;
|
||||
import org.chromium.cc.input.BrowserControlsState;
|
||||
import org.chromium.chrome.R;
|
||||
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
||||
import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate;
|
||||
import org.chromium.chrome.browser.IntentHandler.TabOpenType;
|
||||
import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout;
|
||||
@@ -1602,8 +1603,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@@ -1639,8 +1640,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
Bundle savedInstanceState = getSavedInstanceState();
|
||||
|
||||
// We determine the model as soon as possible so every systems get initialized coherently.
|
||||
|
@ -156,7 +162,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
@@ -85,6 +85,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchFieldTrial;
|
||||
@@ -88,6 +88,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchFieldTrial;
|
||||
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager;
|
||||
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager.ContextualSearchTabPromotionDelegate;
|
||||
import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsModule;
|
||||
|
@ -164,7 +170,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
import org.chromium.chrome.browser.dependency_injection.ChromeActivityComponent;
|
||||
import org.chromium.chrome.browser.dependency_injection.ModuleFactoryOverrides;
|
||||
import org.chromium.chrome.browser.device.DeviceClassManager;
|
||||
@@ -1569,6 +1570,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -1596,6 +1597,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
throw new IllegalStateException(
|
||||
"Attempting to access TabCreator before initialization");
|
||||
}
|
||||
|
@ -177,7 +183,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
|
||||
@@ -523,6 +523,12 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
@@ -539,6 +539,12 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
}
|
||||
|
||||
private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) {
|
||||
|
@ -203,9 +209,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
|
|||
import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator;
|
||||
import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item;
|
||||
import org.chromium.chrome.browser.contextmenu.ChromeContextMenuPopulator.ContextMenuUma.Action;
|
||||
@@ -376,7 +378,12 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
@@ -372,7 +374,12 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
if (FirstRunStatus.getFirstRunFlowComplete() && !isEmptyUrl(mParams.getUrl())
|
||||
&& UrlUtilities.isAcceptedScheme(mParams.getUrl())) {
|
||||
&& UrlUtilities.isAcceptedScheme(mParams.getUrl().getSpec())) {
|
||||
if (mMode == ContextMenuMode.NORMAL) {
|
||||
- linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB));
|
||||
+ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)
|
||||
|
@ -230,7 +236,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
|
|||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.ArrayList;
|
||||
@@ -796,7 +799,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
|
||||
@@ -781,7 +784,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
|
||||
|
||||
@Override
|
||||
public boolean isIncognito() {
|
||||
|
@ -252,21 +258,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTab
|
|||
/**
|
||||
* This class attempts to preload the tab if the url is known from the intent when the profile
|
||||
* is created. This is done to improve startup latency.
|
||||
@@ -195,9 +198,11 @@ public class StartupTabPreloader implements ProfileManager.Observer, Destroyable
|
||||
@@ -195,10 +198,15 @@ public class StartupTabPreloader implements ProfileManager.Observer, Destroyable
|
||||
Intent intent = mIntentSupplier.get();
|
||||
GURL url = UrlFormatter.fixupUrl(getUrlFromIntent(intent));
|
||||
|
||||
+ boolean isIncognito = ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false);
|
||||
+
|
||||
+ Profile profile = Profile.getLastUsedRegularProfile();
|
||||
ChromeTabCreator chromeTabCreator =
|
||||
- (ChromeTabCreator) mTabCreatorManager.getTabCreator(false);
|
||||
- WebContents webContents = WebContentsFactory.createWebContents(false, false);
|
||||
+ (ChromeTabCreator) mTabCreatorManager.getTabCreator(isIncognito);
|
||||
+ WebContents webContents = WebContentsFactory.createWebContents(isIncognito, false);
|
||||
WebContents webContents =
|
||||
- WebContentsFactory.createWebContents(Profile.getLastUsedRegularProfile(), false);
|
||||
+ WebContentsFactory.createWebContents(
|
||||
+ isIncognito ? profile.getPrimaryOTRProfile() : profile,
|
||||
+ false);
|
||||
|
||||
mLoadUrlParams = new LoadUrlParams(url.getValidSpecOrEmpty());
|
||||
String referrer = IntentHandler.getReferrerUrlIncludingExtraHeaders(intent);
|
||||
@@ -211,7 +216,7 @@ public class StartupTabPreloader implements ProfileManager.Observer, Destroyable
|
||||
@@ -212,7 +220,7 @@ public class StartupTabPreloader implements ProfileManager.Observer, Destroyable
|
||||
// Create a detached tab, but don't add it to the tab model yet. We'll do that
|
||||
// later if the loadUrlParams etc... match.
|
||||
mTab = TabBuilder.createLiveTab(false)
|
||||
|
@ -278,23 +288,26 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTab
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
@@ -46,9 +46,11 @@ public class PrivacySettings
|
||||
private static final String PREF_SECURE_DNS = "secure_dns";
|
||||
private static final String PREF_DO_NOT_TRACK = "do_not_track";
|
||||
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
|
||||
@@ -39,6 +39,7 @@ import org.chromium.ui.text.SpanApplier;
|
||||
*/
|
||||
public class PrivacySettings
|
||||
extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener {
|
||||
+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito";
|
||||
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
|
||||
private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
|
||||
private static final String PREF_SECURE_DNS = "secure_dns";
|
||||
@@ -46,6 +47,7 @@ public class PrivacySettings
|
||||
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
|
||||
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
|
||||
private static final String[] NEW_PRIVACY_PREFERENCE_ORDER = {PREF_CLEAR_BROWSING_DATA,
|
||||
+ PREF_ALWAYS_INCOGNITO,
|
||||
PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS,
|
||||
- PREF_SECURE_DNS, PREF_DO_NOT_TRACK
|
||||
+ PREF_SECURE_DNS, PREF_DO_NOT_TRACK,
|
||||
+ PREF_ALWAYS_INCOGNITO
|
||||
};
|
||||
PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX};
|
||||
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
|
||||
@@ -39,6 +39,10 @@ import org.chromium.ui.base.PageTransition;
|
||||
@@ -40,6 +40,10 @@ import org.chromium.ui.base.PageTransition;
|
||||
import org.chromium.ui.base.WindowAndroid;
|
||||
import org.chromium.url.GURL;
|
||||
|
||||
|
@ -305,7 +318,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
|||
/**
|
||||
* This class creates various kinds of new tabs and adds them to the right {@link TabModel}.
|
||||
*/
|
||||
@@ -60,6 +64,7 @@ public class ChromeTabCreator extends TabCreator {
|
||||
@@ -61,6 +65,7 @@ public class ChromeTabCreator extends TabCreator {
|
||||
private final ChromeActivity mActivity;
|
||||
private final StartupTabPreloader mStartupTabPreloader;
|
||||
private final boolean mIncognito;
|
||||
|
@ -313,7 +326,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
|||
|
||||
private WindowAndroid mNativeWindow;
|
||||
private TabModel mTabModel;
|
||||
@@ -78,6 +83,10 @@ public class ChromeTabCreator extends TabCreator {
|
||||
@@ -79,6 +84,10 @@ public class ChromeTabCreator extends TabCreator {
|
||||
mNativeWindow = nativeWindow;
|
||||
mTabDelegateFactorySupplier = tabDelegateFactory;
|
||||
mIncognito = incognito;
|
||||
|
@ -324,7 +337,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
|||
mOverviewNTPCreator = overviewNTPCreator;
|
||||
mAsyncTabParamsManager = asyncTabParamsManager;
|
||||
}
|
||||
@@ -231,6 +240,8 @@ public class ChromeTabCreator extends TabCreator {
|
||||
@@ -232,6 +241,8 @@ public class ChromeTabCreator extends TabCreator {
|
||||
if (creationState == TabCreationState.LIVE_IN_FOREGROUND && !openInForeground) {
|
||||
creationState = TabCreationState.LIVE_IN_BACKGROUND;
|
||||
}
|
||||
|
@ -333,7 +346,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
|||
mTabModel.addTab(tab, position, type, creationState);
|
||||
return tab;
|
||||
} finally {
|
||||
@@ -265,6 +276,8 @@ public class ChromeTabCreator extends TabCreator {
|
||||
@@ -266,6 +277,8 @@ public class ChromeTabCreator extends TabCreator {
|
||||
@TabCreationState
|
||||
int creationState = openInForeground ? TabCreationState.LIVE_IN_FOREGROUND
|
||||
: TabCreationState.LIVE_IN_BACKGROUND;
|
||||
|
@ -342,7 +355,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
|||
mTabModel.addTab(tab, position, type, creationState);
|
||||
return true;
|
||||
}
|
||||
@@ -308,7 +321,6 @@ public class ChromeTabCreator extends TabCreator {
|
||||
@@ -309,7 +322,6 @@ public class ChromeTabCreator extends TabCreator {
|
||||
// TODO(crbug.com/1081924): Clean up the launches from SearchActivity/Chrome.
|
||||
public Tab launchUrlFromExternalApp(String url, String referer, String headers, String appId,
|
||||
boolean forceNewTab, Intent intent, long intentTimestamp) {
|
||||
|
@ -350,27 +363,27 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
|||
boolean isLaunchedFromChrome = TextUtils.equals(appId, mActivity.getPackageName());
|
||||
|
||||
if (forceNewTab && !isLaunchedFromChrome) {
|
||||
@@ -417,6 +429,8 @@ public class ChromeTabCreator extends TabCreator {
|
||||
@@ -423,6 +435,8 @@ public class ChromeTabCreator extends TabCreator {
|
||||
.setSerializedCriticalPersistedTabData(serializedCriticalPersistedTabData)
|
||||
.build();
|
||||
}
|
||||
+ if (mExtraLogic != null)
|
||||
+ tab.addObserver(mExtraLogic);
|
||||
|
||||
if (state.isIncognito() != mIncognito) {
|
||||
if (isIncognito != mIncognito) {
|
||||
throw new IllegalStateException("Incognito state mismatch. TabState: "
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
|
||||
@@ -16,6 +16,7 @@ import androidx.annotation.VisibleForTesting;
|
||||
import androidx.core.util.AtomicFile;
|
||||
@@ -17,6 +17,7 @@ import androidx.core.util.AtomicFile;
|
||||
|
||||
import org.chromium.base.Callback;
|
||||
import org.chromium.base.CallbackController;
|
||||
+import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.base.ObserverList;
|
||||
import org.chromium.base.StreamUtil;
|
||||
@@ -49,6 +50,8 @@ import org.chromium.components.embedder_support.util.UrlUtilities;
|
||||
@@ -51,6 +52,8 @@ import org.chromium.components.embedder_support.util.UrlUtilities;
|
||||
import org.chromium.content_public.browser.LoadUrlParams;
|
||||
import org.chromium.content_public.browser.UiThreadTaskTraits;
|
||||
|
||||
|
@ -379,10 +392,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer
|
|||
import java.io.BufferedInputStream;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
@@ -595,6 +598,13 @@ public class TabPersistentStore extends TabPersister {
|
||||
@@ -615,6 +618,13 @@ public class TabPersistentStore extends TabPersister {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)) {
|
||||
+ if (!isIncognito) {
|
||||
+ Log.w(TAG, "Failed to restore tab: not in incognito mode.");
|
||||
|
@ -441,19 +454,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI
|
|||
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
--- a/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
@@ -377,7 +377,7 @@ const base::Feature kCCTExternalLinkHandling{"CCTExternalLinkHandling",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
@@ -394,7 +394,7 @@ const base::Feature kCCTIncognito{"CCTIncognito",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kCCTIncognito{"CCTIncognito",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
const base::Feature kCCTIncognitoAvailableToThirdParty{
|
||||
- "CCTIncognitoAvailableToThirdParty", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+ "CCTIncognitoAvailableToThirdParty", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kCCTPostMessageAPI{"CCTPostMessageAPI",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -832,6 +832,13 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
@@ -844,6 +844,13 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
<message name="IDS_CLEAR_BROWSING_HISTORY_SUMMARY" desc="A text for the basic tab explaining browsing history.">
|
||||
Clears history and autocompletions in the address bar.
|
||||
</message>
|
||||
|
|
|
@ -17,7 +17,7 @@ Completely remove contacts picker permission from the file dialog
|
|||
.../native_page/NativePageFactory.java | 3 +-
|
||||
chrome/browser/BUILD.gn | 6 +-
|
||||
.../android/bookmarks/bookmark_bridge.cc | 242 ++++++++++++++++++
|
||||
.../android/bookmarks/bookmark_bridge.h | 23 +-
|
||||
.../android/bookmarks/bookmark_bridge.h | 24 +-
|
||||
chrome/browser/importer/profile_writer.cc | 12 +
|
||||
chrome/browser/importer/profile_writer.h | 6 +
|
||||
.../strings/android_chrome_strings.grd | 6 +
|
||||
|
@ -29,12 +29,12 @@ Completely remove contacts picker permission from the file dialog
|
|||
ui/shell_dialogs/select_file_dialog.h | 2 +
|
||||
.../select_file_dialog_android.cc | 6 +
|
||||
ui/shell_dialogs/select_file_dialog_android.h | 2 +
|
||||
23 files changed, 504 insertions(+), 14 deletions(-)
|
||||
23 files changed, 505 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
|
||||
--- a/chrome/android/java/AndroidManifest.xml
|
||||
+++ b/chrome/android/java/AndroidManifest.xml
|
||||
@@ -38,7 +38,6 @@ by a child template that "extends" this file.
|
||||
@@ -39,7 +39,6 @@ by a child template that "extends" this file.
|
||||
{% endif %}
|
||||
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH"/>
|
||||
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_ADMIN"/>
|
||||
|
@ -187,9 +187,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
import android.text.TextUtils;
|
||||
import android.util.Pair;
|
||||
|
||||
@@ -26,6 +32,11 @@ import org.chromium.components.url_formatter.SchemeDisplay;
|
||||
import org.chromium.components.url_formatter.UrlFormatter;
|
||||
@@ -27,6 +33,11 @@ import org.chromium.components.url_formatter.UrlFormatter;
|
||||
import org.chromium.content_public.browser.WebContents;
|
||||
import org.chromium.url.GURL;
|
||||
|
||||
+import org.chromium.chrome.browser.document.ChromeLauncherActivity;
|
||||
+import org.chromium.chrome.browser.IntentHandler;
|
||||
|
@ -199,7 +199,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -584,6 +595,38 @@ public class BookmarkBridge {
|
||||
@@ -585,6 +596,38 @@ public class BookmarkBridge {
|
||||
mNativeBookmarkBridge, BookmarkBridge.this, id.getId(), id.getType());
|
||||
}
|
||||
|
||||
|
@ -238,7 +238,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
/**
|
||||
* Synchronously gets a list of bookmarks that match the specified search query.
|
||||
* @param query Keyword used for searching bookmarks.
|
||||
@@ -1006,6 +1049,24 @@ public class BookmarkBridge {
|
||||
@@ -1016,6 +1059,24 @@ public class BookmarkBridge {
|
||||
depthList.add(depth);
|
||||
}
|
||||
|
||||
|
@ -263,7 +263,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
private static List<Pair<Integer, Integer>> createPairsList(int[] left, int[] right) {
|
||||
List<Pair<Integer, Integer>> pairList = new ArrayList<Pair<Integer, Integer>>();
|
||||
for (int i = 0; i < left.length; i++) {
|
||||
@@ -1073,6 +1134,8 @@ public class BookmarkBridge {
|
||||
@@ -1083,6 +1144,8 @@ public class BookmarkBridge {
|
||||
int getChildCount(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type);
|
||||
void getChildIDs(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type,
|
||||
List<BookmarkId> bookmarksList);
|
||||
|
@ -295,7 +295,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
|
||||
@@ -32,6 +32,7 @@ import org.chromium.components.browser_ui.util.ConversionUtils;
|
||||
@@ -33,6 +33,7 @@ import org.chromium.components.browser_ui.util.ConversionUtils;
|
||||
import org.chromium.components.browser_ui.widget.dragreorder.DragStateDelegate;
|
||||
import org.chromium.components.browser_ui.widget.selectable_list.SelectableListLayout;
|
||||
import org.chromium.components.browser_ui.widget.selectable_list.SelectableListToolbar.SearchDelegate;
|
||||
|
@ -303,7 +303,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate;
|
||||
import org.chromium.components.favicon.LargeIconBridge;
|
||||
import org.chromium.url.GURL;
|
||||
@@ -54,6 +55,7 @@ public class BookmarkManager
|
||||
@@ -55,6 +56,7 @@ public class BookmarkManager
|
||||
private ComponentName mOpenBookmarkComponentName;
|
||||
private ViewGroup mMainView;
|
||||
private BookmarkModel mBookmarkModel;
|
||||
|
@ -311,7 +311,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
private BookmarkUndoController mUndoController;
|
||||
private final ObserverList<BookmarkUIObserver> mUIObservers = new ObserverList<>();
|
||||
private BasicNativePage mNativePage;
|
||||
@@ -327,6 +329,13 @@ public class BookmarkManager
|
||||
@@ -328,6 +330,13 @@ public class BookmarkManager
|
||||
mNativePage = nativePage;
|
||||
}
|
||||
|
||||
|
@ -325,7 +325,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
/**
|
||||
* @return Current URL representing the UI state of bookmark manager. If no state has been shown
|
||||
* yet in this session, on phone return last used state stored in preference; on tablet
|
||||
@@ -500,6 +509,16 @@ public class BookmarkManager
|
||||
@@ -506,6 +515,16 @@ public class BookmarkManager
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -384,7 +384,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
|
|||
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
--- a/chrome/browser/BUILD.gn
|
||||
+++ b/chrome/browser/BUILD.gn
|
||||
@@ -190,6 +190,8 @@ static_library("browser") {
|
||||
@@ -203,6 +203,8 @@ static_library("browser") {
|
||||
"bitmap_fetcher/bitmap_fetcher_service.h",
|
||||
"bitmap_fetcher/bitmap_fetcher_service_factory.cc",
|
||||
"bitmap_fetcher/bitmap_fetcher_service_factory.h",
|
||||
|
@ -393,8 +393,8 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
|||
"bluetooth/bluetooth_chooser_context.cc",
|
||||
"bluetooth/bluetooth_chooser_context.h",
|
||||
"bluetooth/bluetooth_chooser_context_factory.cc",
|
||||
@@ -1847,6 +1849,8 @@ static_library("browser") {
|
||||
"web_data_service_factory.h",
|
||||
@@ -1895,6 +1897,8 @@ static_library("browser") {
|
||||
"webapps/chrome_webapps_client.h",
|
||||
"window_placement/window_placement_permission_context.cc",
|
||||
"window_placement/window_placement_permission_context.h",
|
||||
+ "importer/profile_writer.cc",
|
||||
|
@ -402,7 +402,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
|||
]
|
||||
|
||||
configs += [
|
||||
@@ -3373,8 +3377,6 @@ static_library("browser") {
|
||||
@@ -3446,8 +3450,6 @@ static_library("browser") {
|
||||
"badging/badge_manager_factory.h",
|
||||
"banners/app_banner_manager_desktop.cc",
|
||||
"banners/app_banner_manager_desktop.h",
|
||||
|
@ -515,7 +515,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
|||
}
|
||||
|
||||
void BookmarkBridge::Destroy(JNIEnv*, const JavaParamRef<jobject>&) {
|
||||
@@ -541,6 +614,175 @@ jint BookmarkBridge::GetTotalBookmarkCount(
|
||||
@@ -540,6 +613,175 @@ jint BookmarkBridge::GetTotalBookmarkCount(
|
||||
return count;
|
||||
}
|
||||
|
||||
|
@ -694,16 +694,17 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
|||
diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser/android/bookmarks/bookmark_bridge.h
|
||||
--- a/chrome/browser/android/bookmarks/bookmark_bridge.h
|
||||
+++ b/chrome/browser/android/bookmarks/bookmark_bridge.h
|
||||
@@ -23,6 +23,8 @@
|
||||
#include "components/bookmarks/browser/base_bookmark_model_observer.h"
|
||||
#include "components/bookmarks/common/android/bookmark_id.h"
|
||||
@@ -25,6 +25,9 @@
|
||||
#include "components/prefs/pref_change_registrar.h"
|
||||
#include "url/android/gurl_android.h"
|
||||
|
||||
+#include "components/search_engines/template_url.h"
|
||||
+#include "ui/shell_dialogs/select_file_dialog.h"
|
||||
|
||||
+
|
||||
namespace bookmarks {
|
||||
class BookmarkModel;
|
||||
@@ -38,7 +40,8 @@ class Profile;
|
||||
class ManagedBookmarkService;
|
||||
@@ -39,7 +42,8 @@ class Profile;
|
||||
class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
public PartnerBookmarksShim::Observer,
|
||||
public ReadingListManager::Observer,
|
||||
|
@ -713,7 +714,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser
|
|||
public:
|
||||
BookmarkBridge(JNIEnv* env,
|
||||
const base::android::JavaRef<jobject>& obj,
|
||||
@@ -54,6 +57,12 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
@@ -55,6 +59,12 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
bool IsDoingExtensiveChanges(JNIEnv* env,
|
||||
const base::android::JavaParamRef<jobject>& obj);
|
||||
|
||||
|
@ -726,7 +727,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser
|
|||
jboolean IsEditBookmarksEnabled(JNIEnv* env);
|
||||
|
||||
void LoadEmptyPartnerBookmarkShimForTesting(
|
||||
@@ -141,6 +150,13 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
@@ -142,6 +152,13 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
jlong id,
|
||||
jint type);
|
||||
|
||||
|
@ -740,7 +741,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser
|
|||
void SetBookmarkTitle(JNIEnv* env,
|
||||
const base::android::JavaParamRef<jobject>& obj,
|
||||
jlong id,
|
||||
@@ -311,12 +327,14 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
@@ -315,12 +332,14 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
void DestroyJavaObject();
|
||||
|
||||
Profile* profile_;
|
||||
|
@ -755,7 +756,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser
|
|||
|
||||
// Information about the Partner bookmarks (must check for IsLoaded()).
|
||||
// This is owned by profile.
|
||||
@@ -328,6 +346,9 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
@@ -332,6 +351,9 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
// Observes the profile destruction and creation.
|
||||
ScopedObserver<Profile, ProfileObserver> profile_observer_{this};
|
||||
|
||||
|
@ -842,7 +843,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
|||
diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
|
||||
--- a/chrome/common/BUILD.gn
|
||||
+++ b/chrome/common/BUILD.gn
|
||||
@@ -400,6 +400,9 @@ static_library("common") {
|
||||
@@ -402,6 +402,9 @@ static_library("common") {
|
||||
sources += [
|
||||
"media/chrome_media_drm_bridge_client.cc",
|
||||
"media/chrome_media_drm_bridge_client.h",
|
||||
|
@ -855,7 +856,7 @@ diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
|
|||
diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
|
||||
--- a/chrome/utility/BUILD.gn
|
||||
+++ b/chrome/utility/BUILD.gn
|
||||
@@ -71,8 +71,6 @@ static_library("utility") {
|
||||
@@ -73,8 +73,6 @@ static_library("utility") {
|
||||
|
||||
if (!is_android) {
|
||||
sources += [
|
||||
|
@ -864,7 +865,7 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
|
|||
"importer/bookmarks_file_importer.cc",
|
||||
"importer/bookmarks_file_importer.h",
|
||||
"importer/external_process_importer_bridge.cc",
|
||||
@@ -187,6 +185,11 @@ static_library("utility") {
|
||||
@@ -191,6 +189,11 @@ static_library("utility") {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,11 +3,11 @@ Date: Wed, 29 Aug 2018 11:03:44 +0200
|
|||
Subject: Add custom tab intents privacy option
|
||||
|
||||
---
|
||||
chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++
|
||||
.../chrome/browser/LaunchIntentDispatcher.java | 4 ++++
|
||||
.../browser/privacy/settings/PrivacySettings.java | 13 ++++++++++++-
|
||||
.../ui/android/strings/android_chrome_strings.grd | 7 +++++++
|
||||
4 files changed, 28 insertions(+), 1 deletion(-)
|
||||
.../android/java/res/xml/privacy_preferences.xml | 5 +++++
|
||||
.../chrome/browser/LaunchIntentDispatcher.java | 4 ++++
|
||||
.../browser/privacy/settings/PrivacySettings.java | 14 +++++++++++++-
|
||||
.../ui/android/strings/android_chrome_strings.grd | 7 +++++++
|
||||
4 files changed, 29 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
|
@ -27,7 +27,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
|
||||
@@ -55,6 +55,8 @@ import org.chromium.url.Origin;
|
||||
@@ -53,6 +53,8 @@ import org.chromium.url.Origin;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
|
||||
|
@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
|
|||
/**
|
||||
* Dispatches incoming intents to the appropriate activity based on the current configuration and
|
||||
* Intent fired.
|
||||
@@ -271,6 +273,8 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
|
||||
@@ -269,6 +271,8 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
|
||||
*/
|
||||
public static boolean isCustomTabIntent(Intent intent) {
|
||||
if (intent == null) return false;
|
||||
|
@ -48,24 +48,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
@@ -47,10 +47,12 @@ public class PrivacySettings
|
||||
private static final String PREF_DO_NOT_TRACK = "do_not_track";
|
||||
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
|
||||
private static final String PREF_ALWAYS_INCOGNITO = "always_incognito";
|
||||
+ public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
|
||||
@@ -49,10 +49,13 @@ public class PrivacySettings
|
||||
private static final String[] NEW_PRIVACY_PREFERENCE_ORDER = {PREF_CLEAR_BROWSING_DATA,
|
||||
PREF_ALWAYS_INCOGNITO,
|
||||
PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS,
|
||||
PREF_SECURE_DNS, PREF_DO_NOT_TRACK,
|
||||
- PREF_ALWAYS_INCOGNITO
|
||||
+ PREF_ALWAYS_INCOGNITO,
|
||||
+ PREF_ALLOW_CUSTOM_TAB_INTENTS
|
||||
};
|
||||
- PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX};
|
||||
+ PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX,
|
||||
+ PREF_ALLOW_CUSTOM_TAB_INTENTS};
|
||||
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
@@ -101,6 +103,10 @@ public class PrivacySettings
|
||||
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
||||
|
||||
+ public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
|
||||
+
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
PrivacyPreferencesManagerImpl privacyPrefManager =
|
||||
@@ -105,6 +108,10 @@ public class PrivacySettings
|
||||
} else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
|
||||
PrivacyPreferencesManager.getInstance().setNetworkPredictionEnabled((boolean) newValue);
|
||||
PrivacyPreferencesManagerImpl.getInstance().setNetworkPredictionEnabled(
|
||||
(boolean) newValue);
|
||||
+ } else if (PREF_ALLOW_CUSTOM_TAB_INTENTS.equals(key)) {
|
||||
+ SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
|
||||
+ sharedPreferencesEditor.putBoolean(PREF_ALLOW_CUSTOM_TAB_INTENTS, (boolean)newValue);
|
||||
|
@ -73,7 +74,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
}
|
||||
|
||||
return true;
|
||||
@@ -124,6 +130,11 @@ public class PrivacySettings
|
||||
@@ -128,6 +135,11 @@ public class PrivacySettings
|
||||
canMakePaymentPref.setChecked(prefService.getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
|
||||
}
|
||||
|
||||
|
@ -88,7 +89,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -3956,6 +3956,13 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
|
||||
@@ -3974,6 +3974,13 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
|
||||
<message name="IDS_NEAR_OOM_REDUCTION_DECLINE" desc="The text of the button letting the user decline the browser's intervention, so that the page can be reloaded.">
|
||||
Show original
|
||||
</message>
|
||||
|
|
|
@ -25,7 +25,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
|
|||
</group>
|
||||
|
||||
<!-- Items shown only in the tab switcher -->
|
||||
@@ -153,6 +156,8 @@
|
||||
@@ -145,6 +148,8 @@
|
||||
<item android:id="@id/preferences_id"
|
||||
android:title="@string/menu_settings"
|
||||
android:icon="@drawable/settings_cog" />
|
||||
|
@ -50,7 +50,7 @@ diff --git a/chrome/android/java/res/menu/main_menu_regroup.xml b/chrome/android
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
@@ -53,6 +53,7 @@ import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate;
|
||||
@@ -58,6 +58,7 @@ import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate;
|
||||
import org.chromium.chrome.browser.IntentHandler.TabOpenType;
|
||||
import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout;
|
||||
import org.chromium.chrome.browser.app.ChromeActivity;
|
||||
|
@ -58,7 +58,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||
import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton;
|
||||
import org.chromium.chrome.browser.app.tabmodel.ChromeNextTabPolicySupplier;
|
||||
import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
|
||||
@@ -1785,6 +1786,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@@ -1827,6 +1828,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
} else if (id == R.id.close_tab) {
|
||||
getCurrentTabModel().closeTab(currentTab, true, false, true);
|
||||
RecordUserAction.record("MobileTabClosed");
|
||||
|
@ -70,7 +70,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
@@ -54,6 +54,7 @@ import org.chromium.base.supplier.OneshotSupplierImpl;
|
||||
@@ -56,6 +56,7 @@ import org.chromium.base.supplier.OneshotSupplierImpl;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.ActivityTabProvider;
|
||||
import org.chromium.chrome.browser.AppHooks;
|
||||
|
@ -78,7 +78,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
import org.chromium.chrome.browser.ChromeActivitySessionTracker;
|
||||
import org.chromium.chrome.browser.ChromeApplication;
|
||||
import org.chromium.chrome.browser.ChromeWindow;
|
||||
@@ -1950,6 +1951,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -1984,6 +1985,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
RecordUserAction.record("MobileMenuSettings");
|
||||
}
|
||||
|
||||
|
@ -109,7 +109,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife
|
|||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -2901,6 +2901,9 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
|
||||
@@ -2916,6 +2916,9 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
|
||||
<message name="IDS_MENU_SETTINGS" desc="Menu item for opening browser settings. [CHAR-LIMIT=27]">
|
||||
Settings
|
||||
</message>
|
||||
|
|
|
@ -15,20 +15,20 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -4302,6 +4302,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kDisableKeepaliveFetchDescription, kOsAll,
|
||||
FEATURE_VALUE_TYPE(network::features::kDisableKeepaliveFetch)},
|
||||
|
||||
kOmniboxRichAutocompletionPromisingVariations,
|
||||
"OmniboxBundledExperimentV1")},
|
||||
{"omnibox-bookmark-paths", flag_descriptions::kOmniboxBookmarkPathsName,
|
||||
+ {"enable-save-data-header", flag_descriptions::kEnableSaveDataHeaderName,
|
||||
+ flag_descriptions::kEnableSaveDataHeaderDescription, kOsAndroid,
|
||||
+ FEATURE_VALUE_TYPE(network::features::kEnableSaveDataHeader)},
|
||||
+
|
||||
{"delay-async-script-execution",
|
||||
flag_descriptions::kDelayAsyncScriptExecutionName,
|
||||
flag_descriptions::kDelayAsyncScriptExecutionDescription, kOsAll,
|
||||
flag_descriptions::kOmniboxBookmarkPathsDescription, kOsDesktop,
|
||||
FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kBookmarkPaths,
|
||||
kOmniboxBookmarkPathsVariations,
|
||||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -904,6 +904,10 @@ const char kDisableKeepaliveFetchDescription[] =
|
||||
@@ -913,6 +913,10 @@ const char kDisableKeepaliveFetchDescription[] =
|
||||
"Disable fetch with keepalive set "
|
||||
"(https://fetch.spec.whatwg.org/#request-keepalive-flag).";
|
||||
|
||||
|
@ -42,7 +42,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
|
|||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -510,6 +510,9 @@ extern const char kDiagnosticsAppDescription[];
|
||||
@@ -518,6 +518,9 @@ extern const char kDiagnosticsAppDescription[];
|
||||
extern const char kDisableKeepaliveFetchName[];
|
||||
extern const char kDisableKeepaliveFetchDescription[];
|
||||
|
||||
|
@ -79,9 +79,9 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c
|
|||
+const base::Feature kEnableSaveDataHeader{"EnableSaveDataHeader",
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+
|
||||
// Attach the origin of the destination URL to the "origin" header
|
||||
const base::Feature
|
||||
kDeriveOriginFromUrlForNeitherGetNorHeadRequestWhenHavingSpecialAccess{
|
||||
// Controls whether a |request_initiator| that mismatches
|
||||
// |request_initiator_origin_lock| leads to 1) failing the HTTP request and 2)
|
||||
// calling mojo::ReportBadMessage (on desktop platforms, where NetworkService
|
||||
diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h
|
||||
--- a/services/network/public/cpp/features.h
|
||||
+++ b/services/network/public/cpp/features.h
|
||||
|
@ -91,9 +91,9 @@ diff --git a/services/network/public/cpp/features.h b/services/network/public/cp
|
|||
COMPONENT_EXPORT(NETWORK_CPP)
|
||||
+extern const base::Feature kEnableSaveDataHeader;
|
||||
+COMPONENT_EXPORT(NETWORK_CPP)
|
||||
extern const base::Feature
|
||||
kDeriveOriginFromUrlForNeitherGetNorHeadRequestWhenHavingSpecialAccess;
|
||||
extern const base::Feature kRequestInitiatorSiteLockEnfocement;
|
||||
COMPONENT_EXPORT(NETWORK_CPP)
|
||||
extern const base::Feature kCertVerifierService;
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ with limited CPU/memory resources and it is disabled by default.
|
|||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -784,6 +784,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
|
||||
@@ -816,6 +816,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
|
||||
net::kEffectiveConnectionType4G},
|
||||
};
|
||||
|
||||
|
@ -31,7 +31,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
// Ensure that all effective connection types returned by Network Quality
|
||||
// Estimator (NQE) are also exposed via flags.
|
||||
static_assert(net::EFFECTIVE_CONNECTION_TYPE_LAST + 2 ==
|
||||
@@ -3499,6 +3504,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -3656,6 +3661,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kAndroidPictureInPictureAPIName,
|
||||
flag_descriptions::kAndroidPictureInPictureAPIDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(media::kPictureInPictureAPI)},
|
||||
|
@ -44,7 +44,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -1397,6 +1397,10 @@ const char kMediaHistoryDescription[] =
|
||||
@@ -1404,6 +1404,10 @@ const char kMediaHistoryDescription[] =
|
||||
"Enables Media History which records data around media playbacks on "
|
||||
"websites.";
|
||||
|
||||
|
@ -58,7 +58,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
|
|||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -832,6 +832,9 @@ extern const char kMarkHttpAsWarningAndDangerousOnFormEdits[];
|
||||
@@ -832,6 +832,9 @@ extern const char kLogJsConsoleMessagesDescription[];
|
||||
extern const char kMediaHistoryName[];
|
||||
extern const char kMediaHistoryDescription[];
|
||||
|
||||
|
|
|
@ -14,20 +14,20 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -2635,6 +2635,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
kOsAura,
|
||||
FEATURE_VALUE_TYPE(features::kOverlayScrollbarFlashAfterAnyScrollUpdate)},
|
||||
#endif // USE_AURA
|
||||
flag_descriptions::kWebRtcRemoteEventLogName,
|
||||
flag_descriptions::kWebRtcRemoteEventLogDescription, kOsDesktop,
|
||||
FEATURE_VALUE_TYPE(features::kWebRtcRemoteEventLog)},
|
||||
+ {"resume-background-video",
|
||||
+ flag_descriptions::kResumeBackgroundVideoName,
|
||||
+ flag_descriptions::kResumeBackgroundVideoDescription, kOsAll,
|
||||
+ FEATURE_VALUE_TYPE(media::kResumeBackgroundVideo)},
|
||||
{"enable-quic", flag_descriptions::kQuicName,
|
||||
flag_descriptions::kQuicDescription, kOsAll,
|
||||
ENABLE_DISABLE_VALUE_TYPE(switches::kEnableQuic, switches::kDisableQuic)},
|
||||
#endif
|
||||
{"enable-webrtc-srtp-aes-gcm", flag_descriptions::kWebrtcSrtpAesGcmName,
|
||||
flag_descriptions::kWebrtcSrtpAesGcmDescription, kOsAll,
|
||||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -955,6 +955,11 @@ const char kEnableLoginDetectionName[] = "Enable login detection";
|
||||
@@ -972,6 +972,11 @@ const char kEnableLoginDetectionName[] = "Enable login detection";
|
||||
const char kEnableLoginDetectionDescription[] =
|
||||
"Allow user sign-in to be detected based on heuristics.";
|
||||
|
||||
|
@ -42,7 +42,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
|
|||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -547,6 +547,9 @@ extern const char kEnablePortalsDescription[];
|
||||
@@ -558,6 +558,9 @@ extern const char kEnablePortalsDescription[];
|
||||
extern const char kEnablePortalsCrossOriginName[];
|
||||
extern const char kEnablePortalsCrossOriginDescription[];
|
||||
|
||||
|
@ -55,7 +55,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
|
|||
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
|
||||
--- a/media/base/media_switches.cc
|
||||
+++ b/media/base/media_switches.cc
|
||||
@@ -237,11 +237,7 @@ const base::Feature kPreloadMetadataLazyLoad{"PreloadMetadataLazyLoad",
|
||||
@@ -246,11 +246,7 @@ const base::Feature kPreloadMetadataLazyLoad{"PreloadMetadataLazyLoad",
|
||||
// when in background.
|
||||
const base::Feature kResumeBackgroundVideo {
|
||||
"resume-background-video",
|
||||
|
|
|
@ -16,7 +16,7 @@ Subject: Add flag to disable IPv6 probes
|
|||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -4385,6 +4385,11 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -4604,6 +4604,11 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) ||
|
||||
// defined(OS_CHROMEOS)
|
||||
|
||||
|
@ -26,12 +26,12 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
+ FEATURE_VALUE_TYPE(network::features::kIPv6Probing)},
|
||||
+
|
||||
#if !defined(OS_ANDROID)
|
||||
{"ntp-iframe-one-google-bar", flag_descriptions::kNtpIframeOneGoogleBarName,
|
||||
flag_descriptions::kNtpIframeOneGoogleBarDescription, kOsDesktop,
|
||||
{"ntp-cache-one-google-bar", flag_descriptions::kNtpCacheOneGoogleBarName,
|
||||
flag_descriptions::kNtpCacheOneGoogleBarDescription, kOsDesktop,
|
||||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -2723,6 +2723,10 @@ const char kContextualSearchRankerQueryDescription[] =
|
||||
@@ -2805,6 +2805,10 @@ const char kContextualSearchRankerQueryDescription[] =
|
||||
|
||||
const char kContextualSearchSecondTapName[] =
|
||||
"Contextual Search second tap triggering";
|
||||
|
@ -45,7 +45,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
|
|||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -616,6 +616,9 @@ extern const char kEnableWasmThreadsName[];
|
||||
@@ -625,6 +625,9 @@ extern const char kEnableWasmThreadsName[];
|
||||
extern const char kEnableWasmThreadsDescription[];
|
||||
|
||||
extern const char kEnableWasmTieringName[];
|
||||
|
@ -101,7 +101,7 @@ diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/compon
|
|||
diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
|
||||
--- a/net/dns/host_resolver_manager.cc
|
||||
+++ b/net/dns/host_resolver_manager.cc
|
||||
@@ -93,6 +93,7 @@
|
||||
@@ -94,6 +94,7 @@
|
||||
#include "net/log/net_log_event_type.h"
|
||||
#include "net/log/net_log_source.h"
|
||||
#include "net/log/net_log_source_type.h"
|
||||
|
@ -109,7 +109,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
|
|||
#include "net/log/net_log_with_source.h"
|
||||
#include "net/socket/client_socket_factory.h"
|
||||
#include "net/socket/datagram_client_socket.h"
|
||||
@@ -3707,8 +3708,14 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) {
|
||||
@@ -3369,8 +3370,14 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) {
|
||||
if (last_ipv6_probe_time_.is_null() ||
|
||||
(tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() >
|
||||
kIPv6ProbePeriodMs) {
|
||||
|
|
|
@ -11,7 +11,7 @@ Subject: Add flag to disable WebGL
|
|||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -2465,6 +2465,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -2588,6 +2588,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kAccelerated2dCanvasName,
|
||||
flag_descriptions::kAccelerated2dCanvasDescription, kOsAll,
|
||||
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAccelerated2dCanvas)},
|
||||
|
@ -24,7 +24,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -494,6 +494,10 @@ const char kEnableAudioFocusEnforcementName[] = "Audio Focus Enforcement";
|
||||
@@ -511,6 +511,10 @@ const char kEnableAudioFocusEnforcementName[] = "Audio Focus Enforcement";
|
||||
const char kEnableAudioFocusEnforcementDescription[] =
|
||||
"Enables enforcement of a single media session having audio focus at "
|
||||
"any one time. Requires #enable-media-session-service to be enabled too.";
|
||||
|
@ -38,7 +38,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
|
|||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -306,6 +306,9 @@ extern const char kDisallowDocWrittenScriptsUiDescription[];
|
||||
@@ -317,6 +317,9 @@ extern const char kDisallowDocWrittenScriptsUiDescription[];
|
||||
|
||||
extern const char kEnableAccessibilityObjectModelName[];
|
||||
extern const char kEnableAccessibilityObjectModelDescription[];
|
||||
|
|
|
@ -20,7 +20,7 @@ legacy acceleration events.
|
|||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -2688,6 +2688,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -2799,6 +2799,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
{"enable-gpu-rasterization", flag_descriptions::kGpuRasterizationName,
|
||||
flag_descriptions::kGpuRasterizationDescription, kOsAll,
|
||||
MULTI_VALUE_TYPE(kEnableGpuRasterizationChoices)},
|
||||
|
@ -36,7 +36,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -735,6 +735,14 @@ const char kWinrtSensorsImplementationDescription[] =
|
||||
@@ -755,6 +755,14 @@ const char kWinrtSensorsImplementationDescription[] =
|
||||
"Enables usage of the Windows.Devices.Sensors WinRT APIs on Windows for "
|
||||
"sensors";
|
||||
|
||||
|
@ -54,7 +54,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
|
|||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -444,6 +444,12 @@ extern const char kWinrtGeolocationImplementationDescription[];
|
||||
@@ -455,6 +455,12 @@ extern const char kWinrtGeolocationImplementationDescription[];
|
||||
extern const char kWinrtSensorsImplementationName[];
|
||||
extern const char kWinrtSensorsImplementationDescription[];
|
||||
|
||||
|
@ -83,7 +83,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
|
|||
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
|
||||
--- a/content/public/common/content_features.cc
|
||||
+++ b/content/public/common/content_features.cc
|
||||
@@ -835,6 +835,16 @@ const base::Feature kWebOtpBackend{"kWebOtpBackend",
|
||||
@@ -837,6 +837,16 @@ const base::Feature kWebOtpBackendAuto{"WebOtpBackendAuto",
|
||||
// The JavaScript API for payments on the web.
|
||||
const base::Feature kWebPayments{"WebPayments",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
@ -103,7 +103,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c
|
|||
diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h
|
||||
--- a/content/public/common/content_features.h
|
||||
+++ b/content/public/common/content_features.h
|
||||
@@ -182,6 +182,8 @@ CONTENT_EXPORT extern const base::Feature kWebXrArModule;
|
||||
@@ -197,6 +197,8 @@ CONTENT_EXPORT extern const base::Feature kWebXrArModule;
|
||||
CONTENT_EXPORT extern const base::Feature kWebXrHitTest;
|
||||
CONTENT_EXPORT extern const base::Feature kWebXrIncubations;
|
||||
|
||||
|
@ -115,7 +115,7 @@ diff --git a/content/public/common/content_features.h b/content/public/common/co
|
|||
diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_party/blink/public/platform/web_runtime_features.h
|
||||
--- a/third_party/blink/public/platform/web_runtime_features.h
|
||||
+++ b/third_party/blink/public/platform/web_runtime_features.h
|
||||
@@ -96,6 +96,8 @@ class WebRuntimeFeatures {
|
||||
@@ -97,6 +97,8 @@ class WebRuntimeFeatures {
|
||||
BLINK_PLATFORM_EXPORT static void EnableCSSHexAlphaColor(bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableSameSiteByDefaultCookies(bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableScrollTopLeftInterop(bool);
|
||||
|
@ -127,7 +127,7 @@ diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_pa
|
|||
diff --git a/third_party/blink/renderer/modules/modules_initializer.cc b/third_party/blink/renderer/modules/modules_initializer.cc
|
||||
--- a/third_party/blink/renderer/modules/modules_initializer.cc
|
||||
+++ b/third_party/blink/renderer/modules/modules_initializer.cc
|
||||
@@ -220,9 +220,13 @@ void ModulesInitializer::OnClearWindowObjectInMainWorld(
|
||||
@@ -222,9 +222,13 @@ void ModulesInitializer::OnClearWindowObjectInMainWorld(
|
||||
Document& document,
|
||||
const Settings& settings) const {
|
||||
LocalDOMWindow& window = *document.domWindow();
|
||||
|
@ -147,7 +147,7 @@ diff --git a/third_party/blink/renderer/modules/modules_initializer.cc b/third_p
|
|||
diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.cc b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
|
||||
--- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc
|
||||
+++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
|
||||
@@ -171,6 +171,14 @@ void WebRuntimeFeatures::EnableScrollTopLeftInterop(bool enable) {
|
||||
@@ -175,6 +175,14 @@ void WebRuntimeFeatures::EnableScrollTopLeftInterop(bool enable) {
|
||||
RuntimeEnabledFeatures::SetScrollTopLeftInteropEnabled(enable);
|
||||
}
|
||||
|
||||
|
@ -165,7 +165,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c
|
|||
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
@@ -1360,6 +1360,14 @@
|
||||
@@ -1385,6 +1385,14 @@
|
||||
name: "OffscreenCanvasCommit",
|
||||
status: "experimental",
|
||||
},
|
||||
|
|
|
@ -31,7 +31,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
@@ -38,6 +38,8 @@ import org.chromium.components.user_prefs.UserPrefs;
|
||||
@@ -37,12 +37,15 @@ import org.chromium.components.user_prefs.UserPrefs;
|
||||
import org.chromium.ui.text.NoUnderlineClickableSpan;
|
||||
import org.chromium.ui.text.SpanApplier;
|
||||
|
||||
|
@ -40,21 +40,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
/**
|
||||
* Fragment to keep track of the all the privacy related preferences.
|
||||
*/
|
||||
@@ -52,11 +54,13 @@ public class PrivacySettings
|
||||
public class PrivacySettings
|
||||
extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener {
|
||||
private static final String PREF_ALWAYS_INCOGNITO = "always_incognito";
|
||||
public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
|
||||
private static final String PREF_PROXY_OPTIONS = "proxy";
|
||||
+ public static final String PREF_INCOGNITO_TAB_HISTORY_ENABLED = "incognito_history_enabled";
|
||||
|
||||
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
|
||||
private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
|
||||
private static final String PREF_SECURE_DNS = "secure_dns";
|
||||
@@ -51,6 +54,7 @@ public class PrivacySettings
|
||||
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
|
||||
private static final String[] NEW_PRIVACY_PREFERENCE_ORDER = {PREF_CLEAR_BROWSING_DATA,
|
||||
PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS,
|
||||
PREF_SECURE_DNS, PREF_DO_NOT_TRACK,
|
||||
PREF_ALWAYS_INCOGNITO,
|
||||
+ PREF_INCOGNITO_TAB_HISTORY_ENABLED,
|
||||
PREF_ALLOW_CUSTOM_TAB_INTENTS,
|
||||
PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS,
|
||||
PREF_CLOSE_TABS_ON_EXIT,
|
||||
PREF_PROXY_OPTIONS
|
||||
@@ -99,6 +103,11 @@ public class PrivacySettings
|
||||
PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX,
|
||||
@@ -106,6 +110,11 @@ public class PrivacySettings
|
||||
Preference secureDnsPref = findPreference(PREF_SECURE_DNS);
|
||||
secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled());
|
||||
|
||||
|
@ -66,7 +67,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
updateSummaries();
|
||||
}
|
||||
|
||||
@@ -118,6 +127,9 @@ public class PrivacySettings
|
||||
@@ -126,6 +135,9 @@ public class PrivacySettings
|
||||
SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
|
||||
sharedPreferencesEditor.putBoolean(PREF_ALLOW_CUSTOM_TAB_INTENTS, (boolean)newValue);
|
||||
sharedPreferencesEditor.apply();
|
||||
|
@ -76,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
}
|
||||
|
||||
return true;
|
||||
@@ -162,6 +174,13 @@ public class PrivacySettings
|
||||
@@ -170,6 +182,13 @@ public class PrivacySettings
|
||||
(ChromeSwitchPreference) findPreference(PREF_CLOSE_TABS_ON_EXIT);
|
||||
closeTabsOnExitPref.setOnPreferenceChangeListener(this);
|
||||
closeTabsOnExitPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
|
@ -103,7 +104,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
|
|||
#else
|
||||
#include "chrome/browser/ui/browser.h"
|
||||
#include "chrome/browser/ui/browser_finder.h"
|
||||
@@ -255,6 +258,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
|
||||
@@ -258,6 +261,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
|
||||
history::HistoryService* HistoryTabHelper::GetHistoryService() {
|
||||
Profile* profile =
|
||||
Profile::FromBrowserContext(web_contents()->GetBrowserContext());
|
||||
|
@ -117,7 +118,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
|
|||
if (profile->IsOffTheRecord())
|
||||
return NULL;
|
||||
|
||||
@@ -262,6 +272,12 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
|
||||
@@ -265,6 +275,12 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
|
||||
profile, ServiceAccessType::IMPLICIT_ACCESS);
|
||||
}
|
||||
|
||||
|
@ -154,7 +155,7 @@ diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/histor
|
|||
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
|
||||
--- a/chrome/browser/prefs/browser_prefs.cc
|
||||
+++ b/chrome/browser/prefs/browser_prefs.cc
|
||||
@@ -205,6 +205,8 @@
|
||||
@@ -208,6 +208,8 @@
|
||||
#endif
|
||||
|
||||
#if defined(OS_ANDROID)
|
||||
|
@ -163,7 +164,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
|
|||
#include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h"
|
||||
#include "chrome/browser/android/explore_sites/history_statistics_reporter.h"
|
||||
#include "chrome/browser/android/ntp/recent_tabs_page_prefs.h"
|
||||
@@ -908,6 +910,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
|
||||
@@ -969,6 +971,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
|
||||
variations::VariationsService::RegisterProfilePrefs(registry);
|
||||
video_tutorials::RegisterPrefs(registry);
|
||||
feed::prefs::RegisterFeedSharedProfilePrefs(registry);
|
||||
|
@ -174,7 +175,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
|
|||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -856,6 +856,12 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
@@ -868,6 +868,12 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
<message name="IDS_ALWAYS_INCOGNITO_SUMMARY" desc="Summary for always incognito mode">
|
||||
Opens links in incognito tabs when you click on new tab or on a link
|
||||
</message>
|
||||
|
@ -190,21 +191,23 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
|||
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
|
||||
--- a/chrome/common/pref_names.cc
|
||||
+++ b/chrome/common/pref_names.cc
|
||||
@@ -3116,4 +3116,9 @@ const char kSecurityTokenSessionNotificationSeconds[] =
|
||||
"security_token_session_notification_seconds";
|
||||
#endif // defined(OS_CHROMEOS)
|
||||
@@ -3152,6 +3152,11 @@ const char kShowCaretBrowsingDialog[] =
|
||||
const char kLacrosAllowed[] = "lacros_allowed";
|
||||
#endif
|
||||
|
||||
+#if defined(OS_ANDROID)
|
||||
+const char kIncognitoTabHistoryEnabled[] =
|
||||
+ "incognito_tab_history_enabled";
|
||||
+#endif
|
||||
+
|
||||
} // namespace prefs
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
// String enum pref determining what should happen when a user who authenticates
|
||||
// via a security token is removing this token. "IGNORE" - nothing happens
|
||||
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
|
||||
--- a/chrome/common/pref_names.h
|
||||
+++ b/chrome/common/pref_names.h
|
||||
@@ -1092,6 +1092,10 @@ extern const char kSecurityTokenSessionBehavior[];
|
||||
extern const char kSecurityTokenSessionNotificationSeconds[];
|
||||
@@ -1115,6 +1115,10 @@ extern const char kCartModuleRemoved[];
|
||||
extern const char kCartModuleWelcomeSurfaceShownTimes[];
|
||||
#endif
|
||||
|
||||
+#if defined(OS_ANDROID)
|
||||
|
|
|
@ -3,7 +3,6 @@ Date: Thu, 18 Feb 2021 21:22:52 +0100
|
|||
Subject: Add menu item to bookmark all tabs
|
||||
|
||||
---
|
||||
chrome/android/java/res/menu/main_menu.xml | 6 ++
|
||||
.../java/res/menu/main_menu_regroup.xml | 3 +
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 23 +++++++
|
||||
.../browser/bookmarks/BookmarkBridge.java | 62 +++++++++++++++++++
|
||||
|
@ -19,31 +18,8 @@ Subject: Add menu item to bookmark all tabs
|
|||
components/bookmarks/browser/bookmark_model.h | 7 +++
|
||||
components/bookmarks/browser/bookmark_node.cc | 13 ++++
|
||||
components/bookmarks/browser/bookmark_node.h | 5 ++
|
||||
16 files changed, 163 insertions(+), 1 deletion(-)
|
||||
15 files changed, 157 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
|
||||
--- a/chrome/android/java/res/menu/main_menu.xml
|
||||
+++ b/chrome/android/java/res/menu/main_menu.xml
|
||||
@@ -57,6 +57,9 @@
|
||||
<item android:id="@+id/all_bookmarks_menu_id"
|
||||
android:title="@string/menu_bookmarks"
|
||||
android:icon="@drawable/btn_star_filled" />
|
||||
+ <item android:id="@+id/bookmark_all_tabs_menu_id"
|
||||
+ android:title="@string/menu_bookmark_all_tabs"
|
||||
+ android:icon="@drawable/ic_folder_blue_24dp" />
|
||||
<item android:id="@+id/recent_tabs_menu_id"
|
||||
android:title="@string/menu_recent_tabs"
|
||||
android:icon="@drawable/devices_black_24dp" />
|
||||
@@ -154,6 +157,9 @@
|
||||
android:checkable="true" />
|
||||
</menu>
|
||||
</item>
|
||||
+ <item android:id="@+id/bookmark_all_tabs_menu_id"
|
||||
+ android:title="@string/menu_bookmark_all_tabs"
|
||||
+ android:icon="@drawable/ic_folder_blue_24dp" />
|
||||
<item android:id="@id/preferences_id"
|
||||
android:title="@string/menu_settings"
|
||||
android:icon="@drawable/settings_cog" />
|
||||
diff --git a/chrome/android/java/res/menu/main_menu_regroup.xml b/chrome/android/java/res/menu/main_menu_regroup.xml
|
||||
--- a/chrome/android/java/res/menu/main_menu_regroup.xml
|
||||
+++ b/chrome/android/java/res/menu/main_menu_regroup.xml
|
||||
|
@ -60,7 +36,7 @@ diff --git a/chrome/android/java/res/menu/main_menu_regroup.xml b/chrome/android
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
@@ -58,6 +58,8 @@ import org.chromium.chrome.browser.ApplicationLifetime;
|
||||
@@ -63,6 +63,8 @@ import org.chromium.chrome.browser.ApplicationLifetime;
|
||||
import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton;
|
||||
import org.chromium.chrome.browser.app.tabmodel.ChromeNextTabPolicySupplier;
|
||||
import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
|
||||
|
@ -69,7 +45,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||
import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
|
||||
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
|
||||
import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator;
|
||||
@@ -1796,6 +1798,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@@ -1838,6 +1840,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
// Close both incognito and normal tabs
|
||||
getTabModelSelector().closeAllTabs();
|
||||
RecordUserAction.record("MobileMenuCloseAllTabs");
|
||||
|
@ -78,7 +54,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||
} else if (id == R.id.close_all_incognito_tabs_menu_id) {
|
||||
// Close only incognito tabs
|
||||
getTabModelSelector().getModel(true).closeAllTabs();
|
||||
@@ -1832,6 +1836,25 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@@ -1874,6 +1878,25 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
mTabModalHandler.onOmniboxFocusChanged(hasFocus);
|
||||
}
|
||||
|
||||
|
@ -134,7 +110,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
import org.chromium.components.bookmarks.BookmarkId;
|
||||
import org.chromium.components.bookmarks.BookmarkType;
|
||||
import org.chromium.components.url_formatter.SchemeDisplay;
|
||||
@@ -45,6 +51,7 @@ import java.util.List;
|
||||
@@ -46,6 +52,7 @@ import java.util.List;
|
||||
* bookmark model stored in native.
|
||||
*/
|
||||
public class BookmarkBridge {
|
||||
|
@ -142,7 +118,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
private final Profile mProfile;
|
||||
private boolean mIsDoingExtensiveChanges;
|
||||
private long mNativeBookmarkBridge;
|
||||
@@ -526,6 +533,16 @@ public class BookmarkBridge {
|
||||
@@ -527,6 +534,16 @@ public class BookmarkBridge {
|
||||
mNativeBookmarkBridge, BookmarkBridge.this);
|
||||
}
|
||||
|
||||
|
@ -159,7 +135,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
/**
|
||||
* @return Id representing the special "other" folder from bookmark model.
|
||||
*/
|
||||
@@ -895,6 +912,50 @@ public class BookmarkBridge {
|
||||
@@ -896,6 +913,50 @@ public class BookmarkBridge {
|
||||
mNativeBookmarkBridge, BookmarkBridge.this, title, url);
|
||||
}
|
||||
|
||||
|
@ -210,7 +186,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
/**
|
||||
* @param url The URL of the reading list item.
|
||||
* @return The reading list item with the URL, or null if no such reading list item.
|
||||
@@ -1127,6 +1188,7 @@ public class BookmarkBridge {
|
||||
@@ -1137,6 +1198,7 @@ public class BookmarkBridge {
|
||||
void getAllFoldersWithDepths(long nativeBookmarkBridge, BookmarkBridge caller,
|
||||
List<BookmarkId> folderList, List<Integer> depthList);
|
||||
BookmarkId getRootFolderId(long nativeBookmarkBridge, BookmarkBridge caller);
|
||||
|
@ -221,7 +197,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
|
||||
@@ -439,6 +439,7 @@ public class BookmarkUtils {
|
||||
@@ -472,6 +472,7 @@ public class BookmarkUtils {
|
||||
List<BookmarkId> topLevelFolders = new ArrayList<>();
|
||||
BookmarkId desktopNodeId = bookmarkModel.getDesktopFolderId();
|
||||
BookmarkId mobileNodeId = bookmarkModel.getMobileFolderId();
|
||||
|
@ -229,7 +205,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
BookmarkId othersNodeId = bookmarkModel.getOtherFolderId();
|
||||
|
||||
List<BookmarkId> specialFoldersIds =
|
||||
@@ -464,6 +465,9 @@ public class BookmarkUtils {
|
||||
@@ -497,6 +498,9 @@ public class BookmarkUtils {
|
||||
if (bookmarkModel.isFolderVisible(mobileNodeId)) {
|
||||
topLevelFolders.add(mobileNodeId);
|
||||
}
|
||||
|
@ -242,7 +218,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browser/android/bookmarks/bookmark_bridge.cc
|
||||
--- a/chrome/browser/android/bookmarks/bookmark_bridge.cc
|
||||
+++ b/chrome/browser/android/bookmarks/bookmark_bridge.cc
|
||||
@@ -388,6 +388,11 @@ void BookmarkBridge::GetTopLevelFolderIDs(
|
||||
@@ -387,6 +387,11 @@ void BookmarkBridge::GetTopLevelFolderIDs(
|
||||
top_level_folders.push_back(node.get());
|
||||
}
|
||||
|
||||
|
@ -254,7 +230,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
|||
for (const auto& node : bookmark_model_->bookmark_bar_node()->children()) {
|
||||
if (node->is_folder())
|
||||
top_level_folders.push_back(node.get());
|
||||
@@ -426,6 +431,7 @@ void BookmarkBridge::GetAllFoldersWithDepths(
|
||||
@@ -425,6 +430,7 @@ void BookmarkBridge::GetAllFoldersWithDepths(
|
||||
// Vector to temporarily contain all child bookmarks at same level for sorting
|
||||
std::vector<const BookmarkNode*> bookmarks = {
|
||||
bookmark_model_->mobile_node(),
|
||||
|
@ -262,7 +238,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
|||
bookmark_model_->bookmark_bar_node(),
|
||||
bookmark_model_->other_node(),
|
||||
};
|
||||
@@ -480,6 +486,17 @@ ScopedJavaLocalRef<jobject> BookmarkBridge::GetMobileFolderId(
|
||||
@@ -479,6 +485,17 @@ ScopedJavaLocalRef<jobject> BookmarkBridge::GetMobileFolderId(
|
||||
return folder_id_obj;
|
||||
}
|
||||
|
||||
|
@ -283,7 +259,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
|||
diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser/android/bookmarks/bookmark_bridge.h
|
||||
--- a/chrome/browser/android/bookmarks/bookmark_bridge.h
|
||||
+++ b/chrome/browser/android/bookmarks/bookmark_bridge.h
|
||||
@@ -107,6 +107,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
@@ -109,6 +109,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
JNIEnv* env,
|
||||
const base::android::JavaParamRef<jobject>& obj);
|
||||
|
||||
|
@ -309,7 +285,7 @@ diff --git a/chrome/browser/bookmarks/chrome_bookmark_client.cc b/chrome/browser
|
|||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -2987,6 +2987,9 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
|
||||
@@ -3002,6 +3002,9 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
|
||||
<message name="IDS_MENU_TRACK_PRICES" desc="Menu item for tracking prices on tabs. [CHAR-LIMIT=27]">
|
||||
Track prices
|
||||
</message>
|
||||
|
@ -345,7 +321,7 @@ diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_stri
|
|||
diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/bookmarks/browser/bookmark_load_details.cc
|
||||
--- a/components/bookmarks/browser/bookmark_load_details.cc
|
||||
+++ b/components/bookmarks/browser/bookmark_load_details.cc
|
||||
@@ -34,6 +34,10 @@ BookmarkLoadDetails::BookmarkLoadDetails(BookmarkClient* client)
|
||||
@@ -36,6 +36,10 @@ BookmarkLoadDetails::BookmarkLoadDetails(BookmarkClient* client)
|
||||
root_node_->Add(BookmarkPermanentNode::CreateMobileBookmarks(
|
||||
max_id_++,
|
||||
client->IsPermanentNodeVisibleWhenEmpty(BookmarkNode::MOBILE))));
|
||||
|
@ -378,7 +354,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/b
|
|||
diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc
|
||||
--- a/components/bookmarks/browser/bookmark_model.cc
|
||||
+++ b/components/bookmarks/browser/bookmark_model.cc
|
||||
@@ -559,7 +559,7 @@ bool BookmarkModel::HasBookmarks() {
|
||||
@@ -560,7 +560,7 @@ bool BookmarkModel::HasBookmarks() {
|
||||
bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() {
|
||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
return bookmark_bar_node_->children().empty() &&
|
||||
|
@ -387,7 +363,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar
|
|||
}
|
||||
|
||||
bool BookmarkModel::IsBookmarked(const GURL& url) {
|
||||
@@ -800,6 +800,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
|
||||
@@ -795,6 +795,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
|
||||
bookmark_bar_node_ = details->bb_node();
|
||||
other_node_ = details->other_folder_node();
|
||||
mobile_node_ = details->mobile_folder_node();
|
||||
|
@ -398,7 +374,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar
|
|||
diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmarks/browser/bookmark_model.h
|
||||
--- a/components/bookmarks/browser/bookmark_model.h
|
||||
+++ b/components/bookmarks/browser/bookmark_model.h
|
||||
@@ -116,6 +116,12 @@ class BookmarkModel : public BookmarkUndoProvider,
|
||||
@@ -117,6 +117,12 @@ class BookmarkModel : public BookmarkUndoProvider,
|
||||
return mobile_node_;
|
||||
}
|
||||
|
||||
|
@ -411,7 +387,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark
|
|||
bool is_root_node(const BookmarkNode* node) const {
|
||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
return node == root_;
|
||||
@@ -389,6 +395,7 @@ class BookmarkModel : public BookmarkUndoProvider,
|
||||
@@ -390,6 +396,7 @@ class BookmarkModel : public BookmarkUndoProvider,
|
||||
BookmarkPermanentNode* bookmark_bar_node_ = nullptr;
|
||||
BookmarkPermanentNode* other_node_ = nullptr;
|
||||
BookmarkPermanentNode* mobile_node_ = nullptr;
|
||||
|
@ -422,7 +398,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark
|
|||
diff --git a/components/bookmarks/browser/bookmark_node.cc b/components/bookmarks/browser/bookmark_node.cc
|
||||
--- a/components/bookmarks/browser/bookmark_node.cc
|
||||
+++ b/components/bookmarks/browser/bookmark_node.cc
|
||||
@@ -40,6 +40,8 @@ const char BookmarkNode::kOtherBookmarksNodeGuid[] =
|
||||
@@ -42,6 +42,8 @@ const char BookmarkNode::kOtherBookmarksNodeGuid[] =
|
||||
"00000000-0000-4000-a000-000000000003";
|
||||
const char BookmarkNode::kMobileBookmarksNodeGuid[] =
|
||||
"00000000-0000-4000-a000-000000000004";
|
||||
|
@ -431,7 +407,7 @@ diff --git a/components/bookmarks/browser/bookmark_node.cc b/components/bookmark
|
|||
const char BookmarkNode::kManagedNodeGuid[] =
|
||||
"00000000-0000-4000-a000-000000000005";
|
||||
|
||||
@@ -198,6 +200,17 @@ BookmarkPermanentNode::CreateMobileBookmarks(int64_t id,
|
||||
@@ -201,6 +203,17 @@ BookmarkPermanentNode::CreateMobileBookmarks(int64_t id,
|
||||
visible_when_empty));
|
||||
}
|
||||
|
||||
|
@ -441,18 +417,18 @@ diff --git a/components/bookmarks/browser/bookmark_node.cc b/components/bookmark
|
|||
+ bool visible_when_empty) {
|
||||
+ // base::WrapUnique() used because the constructor is private.
|
||||
+ return base::WrapUnique(new BookmarkPermanentNode(
|
||||
+ id, TABS_COLLECTION, kTabsCollectionBookmarksNodeGuid,
|
||||
+ id, TABS_COLLECTION, base::GUID::ParseLowercase(kTabsCollectionBookmarksNodeGuid),
|
||||
+ l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_TABS_COLLECTION_FOLDER_NAME),
|
||||
+ visible_when_empty));
|
||||
+}
|
||||
+
|
||||
BookmarkPermanentNode::BookmarkPermanentNode(int64_t id,
|
||||
Type type,
|
||||
const std::string& guid,
|
||||
const base::GUID& guid,
|
||||
diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks/browser/bookmark_node.h
|
||||
--- a/components/bookmarks/browser/bookmark_node.h
|
||||
+++ b/components/bookmarks/browser/bookmark_node.h
|
||||
@@ -35,6 +35,7 @@ class BookmarkNode : public ui::TreeNode<BookmarkNode>, public TitledUrlNode {
|
||||
@@ -36,6 +36,7 @@ class BookmarkNode : public ui::TreeNode<BookmarkNode>, public TitledUrlNode {
|
||||
FOLDER,
|
||||
BOOKMARK_BAR,
|
||||
OTHER_NODE,
|
||||
|
@ -460,7 +436,7 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks
|
|||
MOBILE
|
||||
};
|
||||
|
||||
@@ -50,6 +51,7 @@ class BookmarkNode : public ui::TreeNode<BookmarkNode>, public TitledUrlNode {
|
||||
@@ -53,6 +54,7 @@ class BookmarkNode : public ui::TreeNode<BookmarkNode>, public TitledUrlNode {
|
||||
static const char kBookmarkBarNodeGuid[];
|
||||
static const char kOtherBookmarksNodeGuid[];
|
||||
static const char kMobileBookmarksNodeGuid[];
|
||||
|
@ -468,7 +444,7 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks
|
|||
static const char kManagedNodeGuid[];
|
||||
|
||||
// Creates a new node with |id|, |guid| and |url|.
|
||||
@@ -241,6 +243,9 @@ class BookmarkPermanentNode : public BookmarkNode {
|
||||
@@ -244,6 +246,9 @@ class BookmarkPermanentNode : public BookmarkNode {
|
||||
static std::unique_ptr<BookmarkPermanentNode> CreateMobileBookmarks(
|
||||
int64_t id,
|
||||
bool visible_when_empty);
|
||||
|
|
|
@ -35,7 +35,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
|
|||
android:icon="@drawable/ic_add_to_home_screen" />
|
||||
+ <item android:id="@+id/view_source_id"
|
||||
+ android:title="@string/view_source"
|
||||
+ android:icon="@drawable/default_favicon" />
|
||||
+ android:icon="@drawable/ic_drive_document_24dp" />
|
||||
<item android:id="@+id/open_webapk_id"
|
||||
android:title="@string/menu_open_webapk"
|
||||
android:icon="@drawable/ic_add_to_home_screen" />
|
||||
|
@ -48,14 +48,14 @@ diff --git a/chrome/android/java/res/menu/main_menu_regroup.xml b/chrome/android
|
|||
android:icon="@drawable/ic_add_to_home_screen" />
|
||||
+ <item android:id="@+id/view_source_id"
|
||||
+ android:title="@string/view_source"
|
||||
+ android:icon="@drawable/default_favicon" />
|
||||
+ android:icon="@drawable/ic_drive_document_24dp" />
|
||||
<item android:id="@+id/open_webapk_id"
|
||||
android:title="@string/menu_open_webapk"
|
||||
android:icon="@drawable/ic_add_to_home_screen" />
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
@@ -1814,6 +1814,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@@ -1856,6 +1856,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
|
||||
}
|
||||
RecordUserAction.record("MobileMenuDownloadManager");
|
||||
|
@ -67,7 +67,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
@@ -2075,6 +2075,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -2109,6 +2109,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
} catch (ActivityNotFoundException e) {
|
||||
Toast.makeText(context, R.string.open_webapk_failed, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
@ -79,7 +79,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
|
||||
@@ -503,6 +503,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
@@ -519,6 +519,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
}
|
||||
|
||||
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */);
|
||||
|
@ -87,7 +87,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
|
|||
|
||||
// Only display reader mode settings menu option if the current page is in reader mode.
|
||||
menu.findItem(R.id.reader_mode_prefs_id).setVisible(shouldShowReaderModePrefs(currentTab));
|
||||
@@ -920,6 +921,19 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
@@ -932,6 +933,19 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -110,7 +110,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
|
||||
@@ -233,6 +233,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
||||
@@ -225,6 +225,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
||||
updateRequestDesktopSiteMenuItem(menu, currentTab, requestDesktopSiteVisible);
|
||||
MenuItem homescreenItem = menu.findItem(R.id.add_to_homescreen_id);
|
||||
MenuItem openWebApkItem = menu.findItem(R.id.open_webapk_id);
|
||||
|
@ -121,7 +121,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
|
|||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -329,6 +329,9 @@ CHAR-LIMIT guidelines:
|
||||
@@ -332,6 +332,9 @@ CHAR-LIMIT guidelines:
|
||||
<message name="IDS_SERVICES_CATEGORY_TITLE" desc="Title for the group of preferences that control non-personalized Google services. This group contains preferences for data that is not tied to user's Google Account.">
|
||||
Other Google services
|
||||
</message>
|
||||
|
|
|
@ -66,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
|
||||
@@ -110,7 +110,7 @@ public class ToolbarControlContainer extends OptimizedFrameLayout implements Con
|
||||
@@ -107,7 +107,7 @@ public class ToolbarControlContainer extends OptimizedFrameLayout implements Con
|
||||
// On tablet, draw a fake tab strip and toolbar until the compositor is
|
||||
// ready to draw the real tab strip. (On phone, the toolbar is made entirely
|
||||
// of Android views, which are already initialized.)
|
||||
|
@ -78,7 +78,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/Too
|
|||
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
|
||||
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
|
||||
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
|
||||
@@ -441,6 +441,7 @@ public final class ChromePreferenceKeys {
|
||||
@@ -442,6 +442,7 @@ public final class ChromePreferenceKeys {
|
||||
public static final String FONT_USER_SET_FORCE_ENABLE_ZOOM = "user_set_force_enable_zoom";
|
||||
|
||||
public static final String HISTORY_SHOW_HISTORY_INFO = "history_home_show_info";
|
||||
|
@ -100,7 +100,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
|
|||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -1140,6 +1140,12 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
@@ -1152,6 +1152,12 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
<message name="IDS_SAFE_BROWSING_NO_PROTECTION_CONFIRMATION_DIALOG_CONFIRM" desc="Message for Safe Browsing no protection confirmation button.">
|
||||
Turn off
|
||||
</message>
|
||||
|
@ -116,28 +116,28 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
|||
diff --git a/components/BUILD.gn b/components/BUILD.gn
|
||||
--- a/components/BUILD.gn
|
||||
+++ b/components/BUILD.gn
|
||||
@@ -475,7 +475,7 @@ test("components_unittests") {
|
||||
@@ -488,7 +488,7 @@ test("components_unittests") {
|
||||
|
||||
# On LaCrOS, tests use ash-chrome as a window manager, thus the dependency.
|
||||
# On other platforms, no components should depend on Chrome.
|
||||
- if (!chromeos_is_browser_only) {
|
||||
+ if (!chromeos_is_browser_only && !is_android) {
|
||||
- if (!is_chromeos_lacros) {
|
||||
+ if (!is_chromeos_lacros && !is_android) {
|
||||
assert_no_deps = [ "//chrome/*" ]
|
||||
}
|
||||
|
||||
@@ -719,7 +719,7 @@ if (!is_ios && !is_fuchsia) {
|
||||
@@ -730,7 +730,7 @@ if (!is_ios && !is_fuchsia) {
|
||||
|
||||
# On LaCrOS, tests use ash-chrome as a window manager, thus the dependency.
|
||||
# On other platforms, no components should depend on Chrome.
|
||||
- if (!chromeos_is_browser_only) {
|
||||
+ if (!chromeos_is_browser_only && !is_android) {
|
||||
- if (!is_chromeos_lacros) {
|
||||
+ if (!is_chromeos_lacros && !is_android) {
|
||||
assert_no_deps = [ "//chrome/*" ]
|
||||
}
|
||||
}
|
||||
diff --git a/ui/android/BUILD.gn b/ui/android/BUILD.gn
|
||||
--- a/ui/android/BUILD.gn
|
||||
+++ b/ui/android/BUILD.gn
|
||||
@@ -359,6 +359,7 @@ android_library("ui_no_recycler_view_java") {
|
||||
@@ -362,6 +362,7 @@ android_library("ui_no_recycler_view_java") {
|
||||
":ui_utils_java",
|
||||
"//base:base_java",
|
||||
"//base:jni_java",
|
||||
|
|
|
@ -5,9 +5,9 @@ Subject: Add option to not persist tabs across sessions
|
|||
---
|
||||
.../java/res/xml/privacy_preferences.xml | 5 +++++
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 4 +++-
|
||||
.../privacy/settings/PrivacySettings.java | 17 +++++++++++++++--
|
||||
.../privacy/settings/PrivacySettings.java | 17 ++++++++++++++++-
|
||||
.../android/strings/android_chrome_strings.grd | 6 ++++++
|
||||
4 files changed, 29 insertions(+), 3 deletions(-)
|
||||
4 files changed, 30 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
|
@ -27,7 +27,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
@@ -1078,8 +1078,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@@ -1118,8 +1118,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
boolean hadCipherData =
|
||||
CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
|
||||
|
||||
|
@ -42,41 +42,41 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
package org.chromium.chrome.browser.privacy.settings;
|
||||
|
||||
import android.os.Build;
|
||||
+import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.text.SpannableString;
|
||||
import android.view.Menu;
|
||||
@@ -14,6 +15,7 @@ import androidx.preference.Preference;
|
||||
@@ -15,6 +16,8 @@ import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat;
|
||||
|
||||
+import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.BuildInfo;
|
||||
+import org.chromium.base.BuildInfo;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl;
|
||||
@@ -41,6 +43,7 @@ import org.chromium.ui.text.SpanApplier;
|
||||
*/
|
||||
public class PrivacySettings
|
||||
extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener {
|
||||
+ private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
|
||||
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
|
||||
private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
|
||||
private static final String PREF_SECURE_DNS = "secure_dns";
|
||||
@@ -52,7 +55,8 @@ public class PrivacySettings
|
||||
PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS,
|
||||
PREF_SECURE_DNS, PREF_DO_NOT_TRACK,
|
||||
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
@@ -49,6 +52,7 @@ public class PrivacySettings
|
||||
private static final String[] NEW_PRIVACY_PREFERENCE_ORDER = {PREF_CLEAR_BROWSING_DATA,
|
||||
PREF_ALWAYS_INCOGNITO,
|
||||
- PREF_ALLOW_CUSTOM_TAB_INTENTS
|
||||
+ PREF_ALLOW_CUSTOM_TAB_INTENTS,
|
||||
+ PREF_CLOSE_TABS_ON_EXIT
|
||||
};
|
||||
PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS,
|
||||
+ PREF_CLOSE_TABS_ON_EXIT,
|
||||
PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX,
|
||||
PREF_ALLOW_CUSTOM_TAB_INTENTS};
|
||||
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
@@ -98,7 +102,11 @@ public class PrivacySettings
|
||||
@@ -56,6 +60,8 @@ public class PrivacySettings
|
||||
|
||||
public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
|
||||
|
||||
+ private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
|
||||
+
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
PrivacyPreferencesManagerImpl privacyPrefManager =
|
||||
@@ -102,7 +108,11 @@ public class PrivacySettings
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
String key = preference.getKey();
|
||||
|
@ -89,7 +89,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
UserPrefs.get(Profile.getLastUsedRegularProfile())
|
||||
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
||||
} else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
|
||||
@@ -146,6 +154,11 @@ public class PrivacySettings
|
||||
@@ -151,6 +161,11 @@ public class PrivacySettings
|
||||
if (secureDnsPref != null && secureDnsPref.isVisible()) {
|
||||
secureDnsPref.setSummary(SecureDnsSettings.getSummary(getContext()));
|
||||
}
|
||||
|
@ -104,7 +104,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -3706,6 +3706,12 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
|
||||
@@ -3724,6 +3724,12 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
|
||||
<message name="IDS_CONTEXTMENU_IMAGE_TITLE" desc="The title of a context menu tab when the item pressed contains more than one type. This indicates that all the actions are related to the image.">
|
||||
IMAGE
|
||||
</message>
|
||||
|
|
|
@ -10,7 +10,7 @@ Subject: Allow playing audio in background
|
|||
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc
|
||||
--- a/media/blink/webmediaplayer_impl.cc
|
||||
+++ b/media/blink/webmediaplayer_impl.cc
|
||||
@@ -1096,6 +1096,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
|
||||
@@ -1105,6 +1105,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
|
||||
return pipeline_metadata_.has_audio;
|
||||
}
|
||||
|
||||
|
@ -23,7 +23,7 @@ diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_imp
|
|||
void WebMediaPlayerImpl::EnabledAudioTracksChanged(
|
||||
const blink::WebVector<blink::WebMediaPlayer::TrackId>& enabledTrackIds) {
|
||||
DCHECK(main_task_runner_->BelongsToCurrentThread());
|
||||
@@ -3548,7 +3554,11 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
|
||||
@@ -3528,7 +3534,11 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
|
||||
// Audio only stream is allowed to play when in background.
|
||||
// TODO: We should check IsBackgroundOptimizationCandidate here. But we need
|
||||
// to move the logic of checking video frames out of that function.
|
||||
|
@ -39,7 +39,7 @@ diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_imp
|
|||
diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl.h
|
||||
--- a/media/blink/webmediaplayer_impl.h
|
||||
+++ b/media/blink/webmediaplayer_impl.h
|
||||
@@ -155,6 +155,8 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
|
||||
@@ -157,6 +157,8 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
|
||||
// True if the loaded media has a playable video/audio track.
|
||||
bool HasVideo() const override;
|
||||
bool HasAudio() const override;
|
||||
|
|
|
@ -10,7 +10,7 @@ Disable prefs::kSigninAllowedOnNextStartup by default. The setting can be found
|
|||
diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/browser/signin/account_consistency_mode_manager.cc
|
||||
--- a/chrome/browser/signin/account_consistency_mode_manager.cc
|
||||
+++ b/chrome/browser/signin/account_consistency_mode_manager.cc
|
||||
@@ -118,7 +118,7 @@ void AccountConsistencyModeManager::RegisterProfilePrefs(
|
||||
@@ -119,7 +119,7 @@ void AccountConsistencyModeManager::RegisterProfilePrefs(
|
||||
#if BUILDFLAG(ENABLE_DICE_SUPPORT)
|
||||
registry->RegisterBooleanPref(kDiceMigrationCompletePref, false);
|
||||
#endif
|
||||
|
|
|
@ -11,7 +11,7 @@ Do not read experiment value for cronet async DNS configuration
|
|||
diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc
|
||||
--- a/chrome/browser/net/system_network_context_manager.cc
|
||||
+++ b/chrome/browser/net/system_network_context_manager.cc
|
||||
@@ -152,7 +152,7 @@ network::mojom::HttpAuthDynamicParamsPtr CreateHttpAuthDynamicParams(
|
||||
@@ -156,7 +156,7 @@ network::mojom::HttpAuthDynamicParamsPtr CreateHttpAuthDynamicParams(
|
||||
local_state->GetBoolean(prefs::kNtlmV2Enabled);
|
||||
#endif // defined(OS_POSIX)
|
||||
|
||||
|
@ -23,7 +23,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
|
|||
diff --git a/components/cronet/url_request_context_config.cc b/components/cronet/url_request_context_config.cc
|
||||
--- a/components/cronet/url_request_context_config.cc
|
||||
+++ b/components/cronet/url_request_context_config.cc
|
||||
@@ -562,7 +562,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions(
|
||||
@@ -561,7 +561,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions(
|
||||
effective_experimental_options->Remove(it.key(), nullptr);
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ Ignore any partner-provided home page.
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
|
||||
@@ -152,9 +152,6 @@ public class HomepageManager implements HomepagePolicyManager.HomepagePolicyStat
|
||||
@@ -146,9 +146,6 @@ public class HomepageManager implements HomepagePolicyManager.HomepagePolicyStat
|
||||
* if the homepage button is force enabled via flag.
|
||||
*/
|
||||
public static String getDefaultHomepageUri() {
|
||||
|
|
|
@ -46,7 +46,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.idl b/thir
|
|||
diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc
|
||||
--- a/third_party/blink/renderer/modules/webaudio/audio_context.cc
|
||||
+++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc
|
||||
@@ -398,7 +398,9 @@ double AudioContext::baseLatency() const {
|
||||
@@ -406,7 +406,9 @@ double AudioContext::baseLatency() const {
|
||||
DCHECK(IsMainThread());
|
||||
DCHECK(destination());
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -10,7 +10,7 @@ Include @thestinger's fix for correct charging/unknown values
|
|||
diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/third_party/blink/renderer/modules/battery/battery_manager.cc
|
||||
--- a/third_party/blink/renderer/modules/battery/battery_manager.cc
|
||||
+++ b/third_party/blink/renderer/modules/battery/battery_manager.cc
|
||||
@@ -45,46 +45,28 @@ ScriptPromise BatteryManager::StartRequest(ScriptState* script_state) {
|
||||
@@ -69,46 +69,28 @@ ScriptPromise BatteryManager::StartRequest(ScriptState* script_state) {
|
||||
}
|
||||
|
||||
bool BatteryManager::charging() {
|
||||
|
@ -37,7 +37,7 @@ diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/thi
|
|||
DCHECK(battery_property_);
|
||||
|
||||
- BatteryStatus old_status = battery_status_;
|
||||
- battery_status_ = *BatteryDispatcher::Instance().LatestData();
|
||||
- battery_status_ = *battery_dispatcher_->LatestData();
|
||||
-
|
||||
if (battery_property_->GetState() == BatteryProperty::kPending) {
|
||||
battery_property_->Resolve(this);
|
||||
|
|
|
@ -62,7 +62,7 @@ diff --git a/chrome/browser/ui/singleton_tabs.cc b/chrome/browser/ui/singleton_t
|
|||
diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnibox/browser/autocomplete_input.cc
|
||||
--- a/components/omnibox/browser/autocomplete_input.cc
|
||||
+++ b/components/omnibox/browser/autocomplete_input.cc
|
||||
@@ -486,7 +486,8 @@ void AutocompleteInput::ParseForEmphasizeComponents(
|
||||
@@ -526,7 +526,8 @@ void AutocompleteInput::ParseForEmphasizeComponents(
|
||||
// For the view-source and blob schemes, we should emphasize the host of the
|
||||
// URL qualified by the view-source or blob prefix.
|
||||
if ((base::LowerCaseEqualsASCII(scheme_str, kViewSourceScheme) ||
|
||||
|
@ -72,7 +72,7 @@ diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnib
|
|||
(static_cast<int>(text.length()) > after_scheme_and_colon)) {
|
||||
// Obtain the URL prefixed by view-source or blob and parse it.
|
||||
base::string16 real_url(text.substr(after_scheme_and_colon));
|
||||
@@ -559,7 +560,9 @@ int AutocompleteInput::NumNonHostComponents(const url::Parsed& parts) {
|
||||
@@ -599,7 +600,9 @@ int AutocompleteInput::NumNonHostComponents(const url::Parsed& parts) {
|
||||
bool AutocompleteInput::HasHTTPScheme(const base::string16& input) {
|
||||
std::string utf8_input(base::UTF16ToUTF8(input));
|
||||
url::Component scheme;
|
||||
|
@ -100,7 +100,7 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur
|
|||
diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc
|
||||
--- a/content/browser/child_process_security_policy_impl.cc
|
||||
+++ b/content/browser/child_process_security_policy_impl.cc
|
||||
@@ -767,6 +767,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() {
|
||||
@@ -762,6 +762,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() {
|
||||
#endif // BUILDFLAG(ENABLE_WEBSOCKETS)
|
||||
RegisterWebSafeScheme(url::kFtpScheme);
|
||||
RegisterWebSafeScheme(url::kDataScheme);
|
||||
|
@ -111,7 +111,7 @@ diff --git a/content/browser/child_process_security_policy_impl.cc b/content/bro
|
|||
diff --git a/net/BUILD.gn b/net/BUILD.gn
|
||||
--- a/net/BUILD.gn
|
||||
+++ b/net/BUILD.gn
|
||||
@@ -1083,6 +1083,8 @@ component("net") {
|
||||
@@ -1086,6 +1086,8 @@ component("net") {
|
||||
"url_request/report_sender.h",
|
||||
"url_request/static_http_user_agent_settings.cc",
|
||||
"url_request/static_http_user_agent_settings.h",
|
||||
|
@ -205,7 +205,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
|
|||
|
||||
using base::Time;
|
||||
using std::string;
|
||||
@@ -566,6 +568,12 @@ URLRequest::URLRequest(const GURL& url,
|
||||
@@ -575,6 +577,12 @@ URLRequest::URLRequest(const GURL& url,
|
||||
// Sanity check out environment.
|
||||
DCHECK(base::ThreadTaskRunnerHandle::IsSet());
|
||||
|
||||
|
@ -229,7 +229,7 @@ diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/ur
|
|||
#include "net/url_request/url_request_context.h"
|
||||
#include "net/url_request/url_request_context_storage.h"
|
||||
#include "net/url_request/url_request_job_factory.h"
|
||||
@@ -614,6 +615,8 @@ std::unique_ptr<URLRequestContext> URLRequestContextBuilder::Build() {
|
||||
@@ -605,6 +606,8 @@ std::unique_ptr<URLRequestContext> URLRequestContextBuilder::Build() {
|
||||
job_factory->SetProtocolHandler(scheme_handler.first,
|
||||
std::move(scheme_handler.second));
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ Subject: Block gateway attacks via websockets
|
|||
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
|
||||
--- a/content/public/common/content_features.cc
|
||||
+++ b/content/public/common/content_features.cc
|
||||
@@ -96,7 +96,7 @@ const base::Feature kBlockCredentialedSubresources{
|
||||
@@ -92,7 +92,7 @@ const base::Feature kBlockCredentialedSubresources{
|
||||
//
|
||||
// https://wicg.github.io/cors-rfc1918/#integration-fetch
|
||||
const base::Feature kBlockInsecurePrivateNetworkRequests{
|
||||
|
@ -26,13 +26,13 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c
|
|||
+ "BlockInsecurePrivateNetworkRequests", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
// Use ThreadPriority::DISPLAY for browser UI and IO threads.
|
||||
#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
|
||||
#if defined(OS_ANDROID) || BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third_party/blink/renderer/core/loader/base_fetch_context.h
|
||||
--- a/third_party/blink/renderer/core/loader/base_fetch_context.h
|
||||
+++ b/third_party/blink/renderer/core/loader/base_fetch_context.h
|
||||
@@ -67,6 +67,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext {
|
||||
virtual PreviewsResourceLoadingHints* GetPreviewsResourceLoadingHints()
|
||||
const = 0;
|
||||
@@ -81,6 +81,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext {
|
||||
|
||||
virtual SubresourceFilter* GetSubresourceFilter() const = 0;
|
||||
virtual bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const = 0;
|
||||
+ virtual bool ShouldBlockGateWayAttacks(network::mojom::IPAddressSpace requestor_space, const KURL&) const = 0;
|
||||
virtual std::unique_ptr<WebSocketHandshakeThrottle>
|
||||
|
@ -41,7 +41,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third
|
|||
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
|
||||
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc
|
||||
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
|
||||
@@ -750,6 +750,24 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
|
||||
@@ -556,6 +556,24 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
|
||||
return should_block_request;
|
||||
}
|
||||
|
||||
|
@ -69,7 +69,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi
|
|||
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/third_party/blink/renderer/core/loader/frame_fetch_context.h
|
||||
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.h
|
||||
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.h
|
||||
@@ -163,6 +163,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext,
|
||||
@@ -162,6 +162,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext,
|
||||
bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override;
|
||||
std::unique_ptr<WebSocketHandshakeThrottle> CreateWebSocketHandshakeThrottle()
|
||||
override;
|
||||
|
@ -88,7 +88,7 @@ diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.cc b/th
|
|||
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
|
||||
#include "third_party/blink/renderer/platform/supplementable.h"
|
||||
#include "third_party/blink/renderer/platform/weborigin/security_policy.h"
|
||||
@@ -97,6 +98,24 @@ bool WorkerFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
|
||||
@@ -92,6 +93,24 @@ bool WorkerFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
|
||||
return should_block_request;
|
||||
}
|
||||
|
||||
|
@ -116,7 +116,7 @@ diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.cc b/th
|
|||
diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.h b/third_party/blink/renderer/core/loader/worker_fetch_context.h
|
||||
--- a/third_party/blink/renderer/core/loader/worker_fetch_context.h
|
||||
+++ b/third_party/blink/renderer/core/loader/worker_fetch_context.h
|
||||
@@ -64,6 +64,7 @@ class WorkerFetchContext final : public BaseFetchContext {
|
||||
@@ -62,6 +62,7 @@ class WorkerFetchContext final : public BaseFetchContext {
|
||||
bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override;
|
||||
std::unique_ptr<WebSocketHandshakeThrottle> CreateWebSocketHandshakeThrottle()
|
||||
override;
|
||||
|
|
|
@ -22,11 +22,11 @@ Fix RestoreForeignSessionTab by recreating the tab (issue #681)
|
|||
chrome/app/generated_resources.grd | 46 +++
|
||||
chrome/browser/after_startup_task_utils.cc | 5 +
|
||||
chrome/browser/browser_process.h | 7 +
|
||||
chrome/browser/browser_process_impl.cc | 29 ++
|
||||
chrome/browser/browser_process_impl.cc | 28 ++
|
||||
chrome/browser/browser_process_impl.h | 3 +
|
||||
chrome/browser/chrome_browser_main.cc | 2 +
|
||||
.../browser/chrome_content_browser_client.cc | 16 -
|
||||
chrome/browser/flags/BUILD.gn | 14 +-
|
||||
chrome/browser/flags/BUILD.gn | 12 +
|
||||
.../flags/android/adblock_updater_bridge.cc | 101 ++++++
|
||||
.../flags/android/adblock_updater_bridge.h | 33 ++
|
||||
.../flags/android/cached_feature_flags.h | 2 +
|
||||
|
@ -50,7 +50,7 @@ Fix RestoreForeignSessionTab by recreating the tab (issue #681)
|
|||
.../browser/subresource_filter_features.cc | 113 +-----
|
||||
.../core/common/common_features.cc | 2 +-
|
||||
.../navigation_throttle_runner.cc | 5 -
|
||||
41 files changed, 1675 insertions(+), 141 deletions(-)
|
||||
41 files changed, 1673 insertions(+), 140 deletions(-)
|
||||
create mode 100644 chrome/android/java/res/layout/adblock_editor.xml
|
||||
create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
|
||||
|
@ -66,15 +66,15 @@ Fix RestoreForeignSessionTab by recreating the tab (issue #681)
|
|||
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
|
||||
--- a/chrome/android/chrome_java_resources.gni
|
||||
+++ b/chrome/android/chrome_java_resources.gni
|
||||
@@ -781,6 +781,7 @@ chrome_java_resources = [
|
||||
"java/res/layout/account_picker_new_account_row_legacy.xml",
|
||||
"java/res/layout/account_picker_row.xml",
|
||||
"java/res/layout/account_picker_row_legacy.xml",
|
||||
@@ -589,6 +589,7 @@ chrome_java_resources = [
|
||||
"java/res/drawable-xxxhdpi/verify_checkmark.png",
|
||||
"java/res/drawable/accessibility_tab_switcher_divider.xml",
|
||||
"java/res/drawable/account_picker_background.xml",
|
||||
+ "java/res/layout/adblock_editor.xml",
|
||||
"java/res/layout/add_languages_main.xml",
|
||||
"java/res/layout/add_to_homescreen_dialog.xml",
|
||||
"java/res/layout/add_to_menu_dialog.xml",
|
||||
@@ -1046,6 +1047,7 @@ chrome_java_resources = [
|
||||
"java/res/drawable/bg_white_dialog.xml",
|
||||
"java/res/drawable/bookmark_title_bar_shadow.xml",
|
||||
"java/res/drawable/bookmark_widget_list_selector.xml",
|
||||
@@ -973,6 +974,7 @@ chrome_java_resources = [
|
||||
"java/res/xml/about_chrome_preferences.xml",
|
||||
"java/res/xml/accessibility_preferences.xml",
|
||||
"java/res/xml/account_management_preferences.xml",
|
||||
|
@ -85,7 +85,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
|
|||
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
|
||||
--- a/chrome/android/chrome_java_sources.gni
|
||||
+++ b/chrome/android/chrome_java_sources.gni
|
||||
@@ -1301,6 +1301,8 @@ chrome_java_sources = [
|
||||
@@ -1173,6 +1173,8 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/payments/ui/ShoppingCart.java",
|
||||
"java/src/org/chromium/chrome/browser/permissions/PermissionSettingsBridge.java",
|
||||
"java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java",
|
||||
|
@ -244,7 +244,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
@@ -59,6 +59,10 @@ import org.chromium.chrome.browser.ChromeActivitySessionTracker;
|
||||
@@ -61,6 +61,10 @@ import org.chromium.chrome.browser.ChromeActivitySessionTracker;
|
||||
import org.chromium.chrome.browser.ChromeApplication;
|
||||
import org.chromium.chrome.browser.ChromeWindow;
|
||||
import org.chromium.chrome.browser.DeferredStartupHandler;
|
||||
|
@ -255,7 +255,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
import org.chromium.chrome.browser.IntentHandler;
|
||||
import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate;
|
||||
import org.chromium.chrome.browser.IntentHandler.TabOpenType;
|
||||
@@ -106,6 +110,7 @@ import org.chromium.chrome.browser.gsa.ContextReporter;
|
||||
@@ -109,6 +113,7 @@ import org.chromium.chrome.browser.gsa.ContextReporter;
|
||||
import org.chromium.chrome.browser.gsa.GSAAccountChangeListener;
|
||||
import org.chromium.chrome.browser.gsa.GSAState;
|
||||
import org.chromium.chrome.browser.history.HistoryManagerUtils;
|
||||
|
@ -263,15 +263,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
import org.chromium.chrome.browser.init.AsyncInitializationActivity;
|
||||
import org.chromium.chrome.browser.init.ProcessInitializationHandler;
|
||||
import org.chromium.chrome.browser.init.StartupTabPreloader;
|
||||
@@ -133,6 +138,7 @@ import org.chromium.chrome.browser.printing.TabPrinter;
|
||||
@@ -135,6 +140,7 @@ import org.chromium.chrome.browser.preferences.Pref;
|
||||
import org.chromium.chrome.browser.printing.TabPrinter;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.settings.SettingsLauncher;
|
||||
import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
|
||||
+import org.chromium.chrome.browser.settings.AdBlockPreferences;
|
||||
import org.chromium.chrome.browser.share.ShareDelegate;
|
||||
import org.chromium.chrome.browser.share.ShareDelegateImpl;
|
||||
import org.chromium.chrome.browser.tab.AccessibilityVisibilityHandler;
|
||||
@@ -159,6 +165,7 @@ import org.chromium.chrome.browser.ui.TabObscuringHandler;
|
||||
@@ -161,6 +167,7 @@ import org.chromium.chrome.browser.ui.TabObscuringHandler;
|
||||
import org.chromium.chrome.browser.ui.appmenu.AppMenuBlocker;
|
||||
import org.chromium.chrome.browser.ui.appmenu.AppMenuDelegate;
|
||||
import org.chromium.chrome.browser.ui.appmenu.AppMenuPropertiesDelegate;
|
||||
|
@ -279,7 +279,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
|
||||
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable;
|
||||
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManagerProvider;
|
||||
@@ -1018,6 +1025,20 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -1035,6 +1042,20 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
*/
|
||||
@CallSuper
|
||||
protected void initDeferredStartupForActivity() {
|
||||
|
@ -591,7 +591,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod
|
|||
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
|
||||
--- a/chrome/app/generated_resources.grd
|
||||
+++ b/chrome/app/generated_resources.grd
|
||||
@@ -10242,6 +10242,52 @@ Please help our engineers fix this problem. Tell us what happened right before y
|
||||
@@ -10337,6 +10337,52 @@ Please help our engineers fix this problem. Tell us what happened right before y
|
||||
Never show this again.
|
||||
</message>
|
||||
|
||||
|
@ -647,7 +647,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources
|
|||
diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_startup_task_utils.cc
|
||||
--- a/chrome/browser/after_startup_task_utils.cc
|
||||
+++ b/chrome/browser/after_startup_task_utils.cc
|
||||
@@ -36,6 +36,8 @@
|
||||
@@ -39,6 +39,8 @@
|
||||
#include "ui/views/linux_ui/linux_ui.h"
|
||||
#endif
|
||||
|
||||
|
@ -656,29 +656,29 @@ diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_s
|
|||
using content::BrowserThread;
|
||||
using content::WebContents;
|
||||
using content::WebContentsObserver;
|
||||
@@ -138,6 +140,9 @@ void SetBrowserStartupIsComplete() {
|
||||
@@ -141,6 +143,9 @@ void SetBrowserStartupIsComplete() {
|
||||
g_after_startup_tasks.Get().clear();
|
||||
g_after_startup_tasks.Get().shrink_to_fit();
|
||||
|
||||
+ // initialize scheduled updates for the AdBlock updater
|
||||
+ g_browser_process->adblock_updater()->Start();
|
||||
+
|
||||
#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
|
||||
// Make sure we complete the startup notification sequence, or launchers will
|
||||
// get confused by not receiving the expected message from the main process.
|
||||
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
|
||||
// of lacros-chrome is complete.
|
||||
#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
|
||||
diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
|
||||
--- a/chrome/browser/browser_process.h
|
||||
+++ b/chrome/browser/browser_process.h
|
||||
@@ -21,6 +21,7 @@
|
||||
#include "build/build_config.h"
|
||||
@@ -22,6 +22,7 @@
|
||||
#include "build/chromeos_buildflags.h"
|
||||
#include "chrome/common/buildflags.h"
|
||||
#include "media/media_buildflags.h"
|
||||
+#include "components/component_updater/adblock_updater_service.h"
|
||||
|
||||
class BackgroundModeManager;
|
||||
class BrowserProcessPlatformPart;
|
||||
@@ -66,6 +67,10 @@ class ComponentUpdateService;
|
||||
class SupervisedUserWhitelistInstaller;
|
||||
@@ -66,6 +67,10 @@ namespace component_updater {
|
||||
class ComponentUpdateService;
|
||||
}
|
||||
|
||||
+namespace adblock_updater {
|
||||
|
@ -688,24 +688,23 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
|
|||
namespace extensions {
|
||||
class EventRouterForwarder;
|
||||
}
|
||||
@@ -244,6 +249,8 @@ class BrowserProcess {
|
||||
|
||||
virtual component_updater::ComponentUpdateService* component_updater() = 0;
|
||||
@@ -235,6 +240,8 @@ class BrowserProcess {
|
||||
virtual void StartAutoupdateTimer() = 0;
|
||||
#endif
|
||||
|
||||
+ virtual adblock_updater::AdBlockUpdaterService* adblock_updater() = 0;
|
||||
+
|
||||
#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
|
||||
virtual component_updater::SupervisedUserWhitelistInstaller*
|
||||
supervised_user_whitelist_installer() = 0;
|
||||
virtual component_updater::ComponentUpdateService* component_updater() = 0;
|
||||
|
||||
virtual MediaFileSystemRegistry* media_file_system_registry() = 0;
|
||||
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
|
||||
--- a/chrome/browser/browser_process_impl.cc
|
||||
+++ b/chrome/browser/browser_process_impl.cc
|
||||
@@ -1047,6 +1047,35 @@ BrowserProcessImpl::component_updater() {
|
||||
return component_updater_.get();
|
||||
@@ -1010,6 +1010,34 @@ void BrowserProcessImpl::StartAutoupdateTimer() {
|
||||
}
|
||||
#endif
|
||||
|
||||
+adblock_updater::AdBlockUpdaterService*
|
||||
+BrowserProcessImpl::adblock_updater() {
|
||||
+adblock_updater::AdBlockUpdaterService* BrowserProcessImpl::adblock_updater() {
|
||||
+ if (adblock_updater_)
|
||||
+ return adblock_updater_.get();
|
||||
+
|
||||
|
@ -733,33 +732,33 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
|
|||
+ return adblock_updater_.get();
|
||||
+}
|
||||
+
|
||||
#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
|
||||
component_updater::SupervisedUserWhitelistInstaller*
|
||||
BrowserProcessImpl::supervised_user_whitelist_installer() {
|
||||
component_updater::ComponentUpdateService*
|
||||
BrowserProcessImpl::component_updater() {
|
||||
if (component_updater_)
|
||||
diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h
|
||||
--- a/chrome/browser/browser_process_impl.h
|
||||
+++ b/chrome/browser/browser_process_impl.h
|
||||
@@ -183,6 +183,7 @@ class BrowserProcessImpl : public BrowserProcess,
|
||||
@@ -184,6 +184,7 @@ class BrowserProcessImpl : public BrowserProcess,
|
||||
#endif
|
||||
|
||||
component_updater::ComponentUpdateService* component_updater() override;
|
||||
+ adblock_updater::AdBlockUpdaterService* adblock_updater() override;
|
||||
#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
|
||||
component_updater::SupervisedUserWhitelistInstaller*
|
||||
supervised_user_whitelist_installer() override;
|
||||
@@ -367,6 +368,8 @@ class BrowserProcessImpl : public BrowserProcess,
|
||||
MediaFileSystemRegistry* media_file_system_registry() override;
|
||||
WebRtcLogUploader* webrtc_log_uploader() override;
|
||||
network_time::NetworkTimeTracker* network_time_tracker() override;
|
||||
@@ -365,6 +366,8 @@ class BrowserProcessImpl : public BrowserProcess,
|
||||
// but some users of component updater only install per-user.
|
||||
std::unique_ptr<component_updater::ComponentUpdateService> component_updater_;
|
||||
|
||||
+ std::unique_ptr<adblock_updater::AdBlockUpdaterService> adblock_updater_;
|
||||
+
|
||||
#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
|
||||
std::unique_ptr<component_updater::SupervisedUserWhitelistInstaller>
|
||||
supervised_user_whitelist_installer_;
|
||||
#if BUILDFLAG(ENABLE_PLUGINS)
|
||||
std::unique_ptr<PluginsResourceService> plugins_resource_service_;
|
||||
#endif
|
||||
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
|
||||
--- a/chrome/browser/chrome_browser_main.cc
|
||||
+++ b/chrome/browser/chrome_browser_main.cc
|
||||
@@ -1594,6 +1594,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
|
||||
@@ -1605,6 +1605,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
|
||||
if (!parsed_command_line().HasSwitch(switches::kDisableComponentUpdate)) {
|
||||
component_updater::RegisterComponentsForUpdate(profile_->IsOffTheRecord(),
|
||||
profile_->GetPrefs());
|
||||
|
@ -771,7 +770,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows
|
|||
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
|
||||
--- a/chrome/browser/chrome_content_browser_client.cc
|
||||
+++ b/chrome/browser/chrome_content_browser_client.cc
|
||||
@@ -68,7 +68,6 @@
|
||||
@@ -72,7 +72,6 @@
|
||||
#include "chrome/browser/hid/chrome_hid_delegate.h"
|
||||
#include "chrome/browser/interstitials/enterprise_util.h"
|
||||
#include "chrome/browser/lifetime/browser_shutdown.h"
|
||||
|
@ -779,15 +778,15 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
|
|||
#include "chrome/browser/media/audio_service_util.h"
|
||||
#include "chrome/browser/media/router/media_router_feature.h"
|
||||
#include "chrome/browser/media/webrtc/audio_debug_recordings_handler.h"
|
||||
@@ -231,7 +230,6 @@
|
||||
#include "components/no_state_prefetch/common/prerender_types.mojom.h"
|
||||
@@ -242,7 +241,6 @@
|
||||
#include "components/no_state_prefetch/common/prerender_url_loader_throttle.h"
|
||||
#include "components/no_state_prefetch/common/prerender_util.h"
|
||||
#include "components/omnibox/common/omnibox_features.h"
|
||||
-#include "components/page_load_metrics/browser/metrics_navigation_throttle.h"
|
||||
#include "components/page_load_metrics/browser/metrics_web_contents_observer.h"
|
||||
#include "components/payments/content/payment_handler_navigation_throttle.h"
|
||||
#include "components/payments/content/payment_request_display_manager.h"
|
||||
#include "components/performance_manager/embedder/performance_manager_registry.h"
|
||||
@@ -3919,16 +3917,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
|
||||
@@ -3985,16 +3983,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
|
||||
content::NavigationHandle* handle) {
|
||||
std::vector<std::unique_ptr<content::NavigationThrottle>> throttles;
|
||||
|
||||
|
@ -801,10 +800,10 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
|
|||
- page_load_metrics::MetricsNavigationThrottle::Create(handle));
|
||||
- }
|
||||
-
|
||||
#if defined(OS_CHROMEOS)
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
MaybeAddThrottle(
|
||||
chromeos::WebTimeLimitNavigationThrottle::MaybeCreateThrottleFor(handle),
|
||||
@@ -4037,10 +4025,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
|
||||
@@ -4101,10 +4089,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
|
||||
&throttles);
|
||||
#endif
|
||||
|
||||
|
@ -818,7 +817,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
|
|||
diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
|
||||
--- a/chrome/browser/flags/BUILD.gn
|
||||
+++ b/chrome/browser/flags/BUILD.gn
|
||||
@@ -14,6 +14,7 @@ android_library("java") {
|
||||
@@ -15,6 +15,7 @@ android_library("java") {
|
||||
"android/java/src/org/chromium/chrome/browser/flags/FeatureParamUtils.java",
|
||||
"android/java/src/org/chromium/chrome/browser/flags/IntCachedFieldTrialParameter.java",
|
||||
"android/java/src/org/chromium/chrome/browser/flags/StringCachedFieldTrialParameter.java",
|
||||
|
@ -826,34 +825,32 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
|
|||
]
|
||||
deps = [
|
||||
"//base:base_java",
|
||||
@@ -21,7 +22,8 @@ android_library("java") {
|
||||
"//chrome/browser/preferences:java",
|
||||
"//third_party/android_deps:androidx_annotation_annotation_java",
|
||||
@@ -26,6 +27,7 @@ android_library("java") {
|
||||
srcjar_deps = [
|
||||
":chrome_android_java_switches_srcjar",
|
||||
":chrome_browser_flags_enums_srcjar",
|
||||
+ ":adblock_enums_javagen"
|
||||
]
|
||||
- srcjar_deps = [ ":chrome_android_java_switches_srcjar" ]
|
||||
+ srcjar_deps = [ ":chrome_android_java_switches_srcjar",
|
||||
+ ":adblock_enums_javagen" ]
|
||||
annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
|
||||
}
|
||||
|
||||
@@ -29,6 +31,7 @@ generate_jni("jni_headers") {
|
||||
sources = [
|
||||
@@ -35,6 +37,7 @@ generate_jni("jni_headers") {
|
||||
"android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java",
|
||||
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java",
|
||||
"android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java",
|
||||
+ "android/java/src/org/chromium/chrome/browser/flags/AdblockUpdaterBridge.java",
|
||||
]
|
||||
}
|
||||
|
||||
@@ -36,6 +39,8 @@ static_library("flags_android") {
|
||||
sources = [
|
||||
"android/cached_feature_flags.cc",
|
||||
@@ -44,6 +47,8 @@ static_library("flags_android") {
|
||||
"android/cached_feature_flags.h",
|
||||
"android/chrome_session_state.cc",
|
||||
"android/chrome_session_state.h",
|
||||
+ "android/adblock_updater_bridge.cc",
|
||||
+ "android/adblock_updater_bridge.h",
|
||||
]
|
||||
deps = [
|
||||
":jni_headers",
|
||||
@@ -44,6 +49,13 @@ static_library("flags_android") {
|
||||
@@ -52,6 +57,13 @@ static_library("flags_android") {
|
||||
]
|
||||
}
|
||||
|
||||
|
@ -1136,9 +1133,9 @@ new file mode 100644
|
|||
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
|
||||
--- a/chrome/browser/prefs/browser_prefs.cc
|
||||
+++ b/chrome/browser/prefs/browser_prefs.cc
|
||||
@@ -615,6 +615,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
|
||||
syncer::InvalidatorRegistrarWithMemory::RegisterPrefs(registry);
|
||||
syncer::PerUserTopicSubscriptionManager::RegisterPrefs(registry);
|
||||
@@ -670,6 +670,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
|
||||
SSLConfigServiceManager::RegisterPrefs(registry);
|
||||
subresource_filter::IndexedRulesetVersion::RegisterPrefs(registry);
|
||||
SystemNetworkContextManager::RegisterPrefs(registry);
|
||||
+ adblock_updater::AdBlockUpdaterService::RegisterPrefs(registry);
|
||||
update_client::RegisterPrefs(registry);
|
||||
|
@ -1147,7 +1144,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
|
|||
diff --git a/chrome/browser/sessions/session_restore_android.cc b/chrome/browser/sessions/session_restore_android.cc
|
||||
--- a/chrome/browser/sessions/session_restore_android.cc
|
||||
+++ b/chrome/browser/sessions/session_restore_android.cc
|
||||
@@ -43,7 +43,9 @@ content::WebContents* SessionRestore::RestoreForeignSessionTab(
|
||||
@@ -42,7 +42,9 @@ content::WebContents* SessionRestore::RestoreForeignSessionTab(
|
||||
TabAndroid* current_tab = TabAndroid::FromWebContents(web_contents);
|
||||
DCHECK(current_tab);
|
||||
if (disposition == WindowOpenDisposition::CURRENT_TAB) {
|
||||
|
@ -2048,7 +2045,7 @@ new file mode 100644
|
|||
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
|
||||
--- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
|
||||
+++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
|
||||
@@ -551,6 +551,17 @@ ContentSubresourceFilterThrottleManager::
|
||||
@@ -529,6 +529,17 @@ ContentSubresourceFilterThrottleManager::
|
||||
throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(),
|
||||
ad_tagging_state);
|
||||
}
|
||||
|
@ -2451,10 +2448,10 @@ diff --git a/components/subresource_filter/core/common/common_features.cc b/comp
|
|||
diff --git a/content/browser/renderer_host/navigation_throttle_runner.cc b/content/browser/renderer_host/navigation_throttle_runner.cc
|
||||
--- a/content/browser/renderer_host/navigation_throttle_runner.cc
|
||||
+++ b/content/browser/renderer_host/navigation_throttle_runner.cc
|
||||
@@ -131,11 +131,6 @@ void NavigationThrottleRunner::RegisterNavigationThrottles() {
|
||||
// than other throttles that might care about those navigations, e.g.
|
||||
// throttles handling pages with 407 errors that require extra authentication.
|
||||
@@ -134,11 +134,6 @@ void NavigationThrottleRunner::RegisterNavigationThrottles() {
|
||||
AddThrottle(HttpErrorNavigationThrottle::MaybeCreateThrottleFor(*request));
|
||||
|
||||
AddThrottle(BackForwardCacheThrottle::MaybeCreateThrottleFor(request));
|
||||
-
|
||||
- // Insert all testing NavigationThrottles last.
|
||||
- throttles_.insert(throttles_.end(),
|
||||
|
|
|
@ -12,7 +12,7 @@ See also: https://github.com/bromite/bromite/issues/553
|
|||
diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
|
||||
--- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
|
||||
+++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
|
||||
@@ -423,12 +423,13 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
|
||||
@@ -461,12 +461,13 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
|
||||
port_config.enable_nonproxied_udp = false;
|
||||
break;
|
||||
case DEFAULT:
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: Disable DRM media origin IDs preprovisioning
|
|||
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
|
||||
--- a/media/base/media_switches.cc
|
||||
+++ b/media/base/media_switches.cc
|
||||
@@ -562,7 +562,7 @@ const base::Feature kMediaDrmPersistentLicense{
|
||||
@@ -595,7 +595,7 @@ const base::Feature kMediaDrmPersistentLicense{
|
||||
// MediaDrmBridge. If disabled, MediaDrmBridge will get unprovisioned origin IDs
|
||||
// which will trigger provisioning process after MediaDrmBridge is created.
|
||||
const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning",
|
||||
|
|
|
@ -9,16 +9,16 @@ Subject: Disable all promo dialogs
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
||||
@@ -475,7 +475,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
|
||||
@@ -491,7 +491,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
|
||||
* displayed.
|
||||
*/
|
||||
private boolean triggerPromo(boolean intentWithEffect) {
|
||||
- try (TraceEvent e = TraceEvent.scoped("TabbedRootUiCoordinator.triggerPromo")) {
|
||||
+ /*try (TraceEvent e = TraceEvent.scoped("TabbedRootUiCoordinator.triggerPromo")) {
|
||||
SharedPreferencesManager preferenceManager = SharedPreferencesManager.getInstance();
|
||||
// Promos can only be shown when we start with ACTION_MAIN intent and
|
||||
// after FRE is complete. Native initialization can finish before the FRE flow is
|
||||
@@ -506,8 +506,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
|
||||
if (CommandLine.getInstance().hasSwitch(ChromeSwitches.DISABLE_STARTUP_PROMOS)) {
|
||||
return false;
|
||||
}
|
||||
@@ -526,8 +526,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
|
||||
preferenceManager.writeBoolean(
|
||||
ChromePreferenceKeys.PROMOS_SKIPPED_ON_FIRST_START, true);
|
||||
}
|
||||
|
|
|
@ -60,7 +60,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
|
|||
diff --git a/components/variations/service/variations_service.cc b/components/variations/service/variations_service.cc
|
||||
--- a/components/variations/service/variations_service.cc
|
||||
+++ b/components/variations/service/variations_service.cc
|
||||
@@ -236,17 +236,7 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers,
|
||||
@@ -239,17 +239,7 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers,
|
||||
// Variations seed fetching is only enabled in official Chrome builds, if a URL
|
||||
// is specified on the command line, and for testing.
|
||||
bool IsFetchingEnabled() {
|
||||
|
|
|
@ -3,44 +3,26 @@ Date: Thu, 4 Jul 2019 19:08:52 -0400
|
|||
Subject: Disable media router and remoting by default
|
||||
|
||||
---
|
||||
.../media/router/media_router_feature.cc | 17 ++++++++---------
|
||||
chrome/browser/profiles/profile.cc | 2 +-
|
||||
chrome/browser/profiles/profile_impl.cc | 2 +-
|
||||
3 files changed, 10 insertions(+), 11 deletions(-)
|
||||
chrome/browser/media/router/media_router_feature.cc | 1 +
|
||||
chrome/browser/profiles/profile.cc | 2 +-
|
||||
chrome/browser/profiles/profile_impl.cc | 2 +-
|
||||
3 files changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browser/media/router/media_router_feature.cc
|
||||
--- a/chrome/browser/media/router/media_router_feature.cc
|
||||
+++ b/chrome/browser/media/router/media_router_feature.cc
|
||||
@@ -66,17 +66,16 @@ bool MediaRouterEnabled(content::BrowserContext* context) {
|
||||
#endif // !defined(OFFICIAL_BUILD) && !defined(OS_ANDROID)
|
||||
|
||||
#if defined(OS_ANDROID) || BUILDFLAG(ENABLE_EXTENSIONS)
|
||||
- const PrefService::Preference* pref = GetMediaRouterPref(context);
|
||||
- // Only use the pref value if it set from a mandatory policy.
|
||||
- if (pref->IsManaged() && !pref->IsDefaultValue()) {
|
||||
- bool allowed = false;
|
||||
- CHECK(pref->GetValue()->GetAsBoolean(&allowed));
|
||||
- return allowed;
|
||||
- }
|
||||
-
|
||||
// The component extension cannot be loaded in guest sessions.
|
||||
// TODO(crbug.com/756243): Figure out why.
|
||||
- return !Profile::FromBrowserContext(context)->IsGuestSession();
|
||||
+ if (Profile::FromBrowserContext(context)->IsGuestSession()) {
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ const PrefService::Preference* pref = GetMediaRouterPref(context);
|
||||
+ bool allowed = false;
|
||||
+ pref->GetValue()->GetAsBoolean(&allowed);
|
||||
+ return allowed;
|
||||
#else // !(defined(OS_ANDROID) || BUILDFLAG(ENABLE_EXTENSIONS))
|
||||
return false;
|
||||
@@ -64,6 +64,7 @@ const PrefService::Preference* GetMediaRouterPref(
|
||||
#endif // defined(OS_ANDROID) || BUILDFLAG(ENABLE_EXTENSIONS)
|
||||
|
||||
bool MediaRouterEnabled(content::BrowserContext* context) {
|
||||
+ return false;
|
||||
#if !defined(OFFICIAL_BUILD) && !defined(OS_ANDROID)
|
||||
if (!base::FeatureList::IsEnabled(kMediaRouter))
|
||||
return false;
|
||||
diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc
|
||||
--- a/chrome/browser/profiles/profile.cc
|
||||
+++ b/chrome/browser/profiles/profile.cc
|
||||
@@ -356,7 +356,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
@@ -327,7 +327,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
media_router::prefs::kMediaRouterEnableCloudServices, false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
registry->RegisterBooleanPref(
|
||||
|
@ -52,15 +34,15 @@ diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profil
|
|||
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
|
||||
--- a/chrome/browser/profiles/profile_impl.cc
|
||||
+++ b/chrome/browser/profiles/profile_impl.cc
|
||||
@@ -409,7 +409,7 @@ void ProfileImpl::RegisterProfilePrefs(
|
||||
@@ -455,7 +455,7 @@ void ProfileImpl::RegisterProfilePrefs(
|
||||
#endif
|
||||
|
||||
registry->RegisterBooleanPref(prefs::kForceEphemeralProfiles, false);
|
||||
- registry->RegisterBooleanPref(prefs::kEnableMediaRouter, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kEnableMediaRouter, false);
|
||||
#if defined(OS_CHROMEOS)
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kOobeMarketingOptInScreenFinished, false,
|
||||
#if !defined(OS_ANDROID)
|
||||
registry->RegisterBooleanPref(prefs::kShowCastIconInToolbar, false);
|
||||
#endif // !defined(OS_ANDROID)
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
@ -9,8 +9,8 @@ Subject: Disable metrics on all I/O threads
|
|||
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
|
||||
--- a/chrome/browser/browser_process_impl.cc
|
||||
+++ b/chrome/browser/browser_process_impl.cc
|
||||
@@ -944,7 +944,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
#endif // defined(OS_CHROMEOS)
|
||||
@@ -942,7 +942,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
|
||||
registry->RegisterBooleanPref(metrics::prefs::kMetricsReportingEnabled,
|
||||
- GoogleUpdateSettings::GetCollectStatsConsent());
|
||||
|
|
|
@ -10,7 +10,7 @@ Subject: Disable offline pages in the downloads home to be opened in CCT by
|
|||
diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/offline_pages/core/offline_page_feature.cc
|
||||
--- a/components/offline_pages/core/offline_page_feature.cc
|
||||
+++ b/components/offline_pages/core/offline_page_feature.cc
|
||||
@@ -51,7 +51,7 @@ const base::Feature kOfflinePagesDescriptivePendingStatusFeature{
|
||||
@@ -42,7 +42,7 @@ const base::Feature kOfflinePagesDescriptivePendingStatusFeature{
|
||||
"OfflinePagesDescriptivePendingStatus", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kOfflinePagesInDownloadHomeOpenInCctFeature{
|
||||
|
|
|
@ -11,7 +11,7 @@ a corresponding user option to individually disable their usage.
|
|||
diff --git a/components/url_formatter/url_formatter.cc b/components/url_formatter/url_formatter.cc
|
||||
--- a/components/url_formatter/url_formatter.cc
|
||||
+++ b/components/url_formatter/url_formatter.cc
|
||||
@@ -469,13 +469,13 @@ ComponentResult IDNToUnicodeOneComponent(
|
||||
@@ -471,13 +471,13 @@ ComponentResult IDNToUnicodeOneComponent(
|
||||
} // namespace
|
||||
|
||||
const FormatUrlType kFormatUrlOmitNothing = 0;
|
||||
|
|
|
@ -1,117 +0,0 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 15 Dec 2019 22:39:56 +0100
|
||||
Subject: Disable password reuse detection on android
|
||||
|
||||
---
|
||||
.../android/password_reuse_controller_android.cc | 12 ++++++++++++
|
||||
.../password_reuse_dialog_view_android.cc | 11 +++++++++--
|
||||
components/password_manager/core/browser/BUILD.gn | 6 +++---
|
||||
3 files changed, 24 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/safe_browsing/android/password_reuse_controller_android.cc b/chrome/browser/safe_browsing/android/password_reuse_controller_android.cc
|
||||
--- a/chrome/browser/safe_browsing/android/password_reuse_controller_android.cc
|
||||
+++ b/chrome/browser/safe_browsing/android/password_reuse_controller_android.cc
|
||||
@@ -17,17 +17,25 @@ PasswordReuseControllerAndroid::PasswordReuseControllerAndroid(
|
||||
ChromePasswordProtectionService* service,
|
||||
ReusedPasswordAccountType password_type,
|
||||
OnWarningDone done_callback)
|
||||
+#if defined(SYNC_PASSWORD_REUSE_WARNING_ENABLED)
|
||||
: service_(service),
|
||||
+#else
|
||||
+ :
|
||||
+#endif
|
||||
url_(web_contents->GetLastCommittedURL()),
|
||||
password_type_(password_type),
|
||||
window_android_(web_contents->GetTopLevelNativeWindow()),
|
||||
done_callback_(std::move(done_callback)) {
|
||||
modal_construction_start_time_ = base::TimeTicks::Now();
|
||||
+#if defined(SYNC_PASSWORD_REUSE_WARNING_ENABLED)
|
||||
service_->AddObserver(this);
|
||||
+#endif
|
||||
}
|
||||
|
||||
PasswordReuseControllerAndroid::~PasswordReuseControllerAndroid() {
|
||||
+#if defined(SYNC_PASSWORD_REUSE_WARNING_ENABLED)
|
||||
service_->RemoveObserver(this);
|
||||
+#endif
|
||||
dialog_view_.reset();
|
||||
LogModalWarningDialogLifetime(modal_construction_start_time_);
|
||||
}
|
||||
@@ -48,20 +56,24 @@ base::string16 PasswordReuseControllerAndroid::GetButtonText() const {
|
||||
return l10n_util::GetStringUTF16(IDS_CLOSE);
|
||||
}
|
||||
|
||||
+#if defined(SYNC_PASSWORD_REUSE_WARNING_ENABLED)
|
||||
base::string16 PasswordReuseControllerAndroid::GetWarningDetailText(
|
||||
std::vector<size_t>* placeholder_offsets) const {
|
||||
return service_->GetWarningDetailText(password_type_, placeholder_offsets);
|
||||
}
|
||||
+#endif
|
||||
|
||||
base::string16 PasswordReuseControllerAndroid::GetTitle() const {
|
||||
return l10n_util::GetStringUTF16(IDS_PAGE_INFO_CHANGE_PASSWORD_SUMMARY);
|
||||
}
|
||||
|
||||
+#if defined(SYNC_PASSWORD_REUSE_WARNING_ENABLED)
|
||||
const std::vector<base::string16>
|
||||
PasswordReuseControllerAndroid::GetPlaceholdersForSavedPasswordWarningText()
|
||||
const {
|
||||
return service_->GetPlaceholdersForSavedPasswordWarningText();
|
||||
}
|
||||
+#endif
|
||||
|
||||
void PasswordReuseControllerAndroid::OnGaiaPasswordChanged() {
|
||||
delete this;
|
||||
diff --git a/chrome/browser/ui/android/safe_browsing/password_reuse_dialog_view_android.cc b/chrome/browser/ui/android/safe_browsing/password_reuse_dialog_view_android.cc
|
||||
--- a/chrome/browser/ui/android/safe_browsing/password_reuse_dialog_view_android.cc
|
||||
+++ b/chrome/browser/ui/android/safe_browsing/password_reuse_dialog_view_android.cc
|
||||
@@ -29,6 +29,7 @@ void PasswordReuseDialogViewAndroid::Show(ui::WindowAndroid* window_android) {
|
||||
java_object_.Reset(Java_SafeBrowsingPasswordReuseDialogBridge_create(
|
||||
env, window_android->GetJavaObject(), reinterpret_cast<intptr_t>(this)));
|
||||
|
||||
+#if defined(SYNC_PASSWORD_REUSE_WARNING_ENABLED)
|
||||
std::vector<size_t> placeholder_offsets;
|
||||
base::string16 warning_detail_text =
|
||||
controller_->GetWarningDetailText(&placeholder_offsets);
|
||||
@@ -50,14 +51,20 @@ void PasswordReuseDialogViewAndroid::Show(ui::WindowAndroid* window_android) {
|
||||
base::android::ToJavaIntArray(env, start_ranges, len);
|
||||
base::android::ScopedJavaLocalRef<jintArray> j_end_ranges =
|
||||
base::android::ToJavaIntArray(env, end_ranges, len);
|
||||
-
|
||||
+#else
|
||||
+ int start_ranges[0], end_ranges[0];
|
||||
+ base::android::ScopedJavaLocalRef<jintArray> j_start_ranges =
|
||||
+ base::android::ToJavaIntArray(env, start_ranges, 0);
|
||||
+ base::android::ScopedJavaLocalRef<jintArray> j_end_ranges =
|
||||
+ base::android::ToJavaIntArray(env, end_ranges, 0);
|
||||
Java_SafeBrowsingPasswordReuseDialogBridge_showDialog(
|
||||
env, java_object_,
|
||||
base::android::ConvertUTF16ToJavaString(env, controller_->GetTitle()),
|
||||
- base::android::ConvertUTF16ToJavaString(env, warning_detail_text),
|
||||
+ base::android::ConvertUTF16ToJavaString(env, controller_->GetTitle()),
|
||||
base::android::ConvertUTF16ToJavaString(env,
|
||||
controller_->GetButtonText()),
|
||||
j_start_ranges, j_end_ranges);
|
||||
+#endif
|
||||
}
|
||||
|
||||
void PasswordReuseDialogViewAndroid::Close(
|
||||
diff --git a/components/password_manager/core/browser/BUILD.gn b/components/password_manager/core/browser/BUILD.gn
|
||||
--- a/components/password_manager/core/browser/BUILD.gn
|
||||
+++ b/components/password_manager/core/browser/BUILD.gn
|
||||
@@ -11,9 +11,9 @@ if (is_android) {
|
||||
|
||||
# TODO(crbug.com/1006430): Fix password reuse detection not fully functional on
|
||||
# Android.
|
||||
-password_reuse_detection_support = !is_ios
|
||||
-password_reuse_warning_support = !is_ios
|
||||
-password_on_focus_ping_support = !is_ios
|
||||
+password_reuse_detection_support = !is_ios && !is_android
|
||||
+password_reuse_warning_support = !is_ios && !is_android
|
||||
+password_on_focus_ping_support = !is_ios && !is_android
|
||||
|
||||
config("password_reuse_detection_config") {
|
||||
defines = []
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -9,11 +9,11 @@ Subject: Disable plugins enumeration
|
|||
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
--- a/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
@@ -1782,10 +1782,8 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
|
||||
@@ -1864,10 +1864,8 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
|
||||
}
|
||||
|
||||
PluginData* LocalFrame::GetPluginData() const {
|
||||
- if (!Loader().AllowPlugins(kNotAboutToInstantiatePlugin))
|
||||
- if (!Loader().AllowPlugins())
|
||||
- return nullptr;
|
||||
- return GetPage()->GetPluginData(
|
||||
- Tree().Top().GetSecurityContext()->GetSecurityOrigin());
|
||||
|
|
|
@ -21,7 +21,7 @@ diff --git a/components/previews/core/previews_features.cc b/components/previews
|
|||
-#endif // defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS)
|
||||
};
|
||||
|
||||
// Enables the Offline previews on android slow connections.
|
||||
// Provides slow page triggering parameters.
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
@ -1,391 +0,0 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 10 Nov 2018 17:20:21 +0100
|
||||
Subject: Disable promos displayed in bookmarks manager
|
||||
|
||||
Remove personalized signin promo view from
|
||||
bookmarks, never reach signin thresholds.
|
||||
---
|
||||
chrome/android/chrome_java_resources.gni | 1 -
|
||||
...rsonalized_signin_promo_view_bookmarks.xml | 30 -----
|
||||
.../bookmarks/BookmarkItemsAdapter.java | 30 +----
|
||||
.../bookmarks/BookmarkPromoHeader.java | 121 +-----------------
|
||||
.../browser/signin/SigninPromoController.java | 23 +---
|
||||
5 files changed, 5 insertions(+), 200 deletions(-)
|
||||
delete mode 100644 chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml
|
||||
|
||||
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
|
||||
--- a/chrome/android/chrome_java_resources.gni
|
||||
+++ b/chrome/android/chrome_java_resources.gni
|
||||
@@ -934,7 +934,6 @@ chrome_java_resources = [
|
||||
"java/res/layout/passwords_error_dialog.xml",
|
||||
"java/res/layout/passwords_progress_dialog.xml",
|
||||
"java/res/layout/personalized_signin_promo_view_body.xml",
|
||||
- "java/res/layout/personalized_signin_promo_view_bookmarks.xml",
|
||||
"java/res/layout/personalized_signin_promo_view_header.xml",
|
||||
"java/res/layout/personalized_signin_promo_view_modern_content_suggestions.xml",
|
||||
"java/res/layout/personalized_signin_promo_view_recent_tabs.xml",
|
||||
diff --git a/chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml b/chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml
|
||||
deleted file mode 100644
|
||||
--- a/chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml
|
||||
+++ /dev/null
|
||||
@@ -1,30 +0,0 @@
|
||||
-<?xml version="1.0" encoding="utf-8"?>
|
||||
-<!-- Copyright 2017 The Chromium Authors. All rights reserved.
|
||||
- Use of this source code is governed by a BSD-style license that can be
|
||||
- found in the LICENSE file. -->
|
||||
-
|
||||
-<org.chromium.chrome.browser.signin.PersonalizedSigninPromoView
|
||||
- xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
- android:id="@+id/signin_promo_view_container"
|
||||
- android:layout_width="match_parent"
|
||||
- android:layout_height="wrap_content"
|
||||
- android:layout_margin="16dp"
|
||||
- android:background="@drawable/hairline_border_card_background"
|
||||
- android:gravity="center_horizontal"
|
||||
- android:orientation="vertical"
|
||||
- android:paddingBottom="12dp"
|
||||
- android:paddingTop="14dp"
|
||||
- android:paddingStart="16dp"
|
||||
- android:paddingEnd="16dp">
|
||||
-
|
||||
- <FrameLayout
|
||||
- android:layout_width="match_parent"
|
||||
- android:layout_height="wrap_content"
|
||||
- android:layout_marginBottom="12dp">
|
||||
-
|
||||
- <include layout="@layout/personalized_signin_promo_view_header"/>
|
||||
- </FrameLayout>
|
||||
-
|
||||
- <include layout="@layout/personalized_signin_promo_view_body"/>
|
||||
-
|
||||
-</org.chromium.chrome.browser.signin.PersonalizedSigninPromoView>
|
||||
\ No newline at end of file
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
|
||||
@@ -25,7 +25,6 @@ import org.chromium.chrome.browser.bookmarks.BookmarkListEntry.ViewType;
|
||||
import org.chromium.chrome.browser.bookmarks.BookmarkRow.Location;
|
||||
import org.chromium.chrome.browser.feature_engagement.TrackerFactory;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
-import org.chromium.chrome.browser.signin.PersonalizedSigninPromoView;
|
||||
import org.chromium.chrome.browser.sync.ProfileSyncService;
|
||||
import org.chromium.components.bookmarks.BookmarkId;
|
||||
import org.chromium.components.bookmarks.BookmarkType;
|
||||
@@ -51,7 +50,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
|
||||
@ViewType
|
||||
private int mPromoHeaderType = ViewType.INVALID;
|
||||
private BookmarkDelegate mDelegate;
|
||||
- private BookmarkPromoHeader mPromoHeaderManager;
|
||||
private String mSearchText;
|
||||
private BookmarkId mCurrentFolder;
|
||||
private ProfileSyncService mProfileSyncService;
|
||||
@@ -183,9 +181,9 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
|
||||
case ViewType.PERSONALIZED_SIGNIN_PROMO:
|
||||
// fall through
|
||||
case ViewType.PERSONALIZED_SYNC_PROMO:
|
||||
- return mPromoHeaderManager.createPersonalizedSigninAndSyncPromoHolder(parent);
|
||||
+ return null;
|
||||
case ViewType.SYNC_PROMO:
|
||||
- return mPromoHeaderManager.createSyncPromoHolder(parent);
|
||||
+ return null;
|
||||
case ViewType.SECTION_HEADER:
|
||||
return createSectionHeaderViewHolder(parent, viewType);
|
||||
case ViewType.FOLDER:
|
||||
@@ -205,11 +203,7 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
|
||||
@Override
|
||||
public void onBindViewHolder(ViewHolder holder, int position) {
|
||||
if (holder.getItemViewType() == ViewType.PERSONALIZED_SIGNIN_PROMO) {
|
||||
- PersonalizedSigninPromoView view = (PersonalizedSigninPromoView) holder.itemView;
|
||||
- mPromoHeaderManager.setupPersonalizedSigninPromo(view);
|
||||
} else if (holder.getItemViewType() == ViewType.PERSONALIZED_SYNC_PROMO) {
|
||||
- PersonalizedSigninPromoView view = (PersonalizedSigninPromoView) holder.itemView;
|
||||
- mPromoHeaderManager.setupPersonalizedSyncPromo(view);
|
||||
} else if (holder.getItemViewType() == ViewType.SECTION_HEADER) {
|
||||
bindSectionHeaderViewHolder(holder.itemView, getItemByPosition(position));
|
||||
} else if (BookmarkListEntry.isBookmarkEntry(holder.getItemViewType())) {
|
||||
@@ -257,7 +251,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
|
||||
case ViewType.PERSONALIZED_SIGNIN_PROMO:
|
||||
// fall through
|
||||
case ViewType.PERSONALIZED_SYNC_PROMO:
|
||||
- mPromoHeaderManager.detachPersonalizePromoView();
|
||||
break;
|
||||
default:
|
||||
// Other view holders don't have special recycling code.
|
||||
@@ -283,7 +276,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
|
||||
updateHeader(!topLevelFoldersShowing());
|
||||
};
|
||||
|
||||
- mPromoHeaderManager = new BookmarkPromoHeader(mContext, promoHeaderChangeAction);
|
||||
populateTopLevelFoldersList();
|
||||
|
||||
mElements = new ArrayList<>();
|
||||
@@ -298,7 +290,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
|
||||
mDelegate.getModel().removeObserver(mBookmarkModelObserver);
|
||||
mDelegate.getSelectionDelegate().removeObserver(this);
|
||||
mDelegate = null;
|
||||
- mPromoHeaderManager.destroy();
|
||||
mProfileSyncService.removeSyncStateChangedListener(this);
|
||||
}
|
||||
|
||||
@@ -421,23 +412,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
|
||||
return;
|
||||
} else if (currentUIState == BookmarkUIState.STATE_SEARCHING) {
|
||||
mPromoHeaderType = ViewType.INVALID;
|
||||
- } else {
|
||||
- switch (mPromoHeaderManager.getPromoState()) {
|
||||
- case BookmarkPromoHeader.PromoState.PROMO_NONE:
|
||||
- mPromoHeaderType = ViewType.INVALID;
|
||||
- break;
|
||||
- case BookmarkPromoHeader.PromoState.PROMO_SIGNIN_PERSONALIZED:
|
||||
- mPromoHeaderType = ViewType.PERSONALIZED_SIGNIN_PROMO;
|
||||
- break;
|
||||
- case BookmarkPromoHeader.PromoState.PROMO_SYNC_PERSONALIZED:
|
||||
- mPromoHeaderType = ViewType.PERSONALIZED_SYNC_PROMO;
|
||||
- break;
|
||||
- case BookmarkPromoHeader.PromoState.PROMO_SYNC:
|
||||
- mPromoHeaderType = ViewType.SYNC_PROMO;
|
||||
- break;
|
||||
- default:
|
||||
- assert false : "Unexpected value for promo state!";
|
||||
- }
|
||||
}
|
||||
|
||||
boolean willShowPromo = hasPromoHeader();
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java
|
||||
@@ -21,15 +21,9 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
||||
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.signin.IdentityServicesProvider;
|
||||
-import org.chromium.chrome.browser.signin.PersonalizedSigninPromoView;
|
||||
import org.chromium.chrome.browser.signin.ProfileDataCache;
|
||||
-import org.chromium.chrome.browser.signin.SigninManager;
|
||||
-import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver;
|
||||
import org.chromium.chrome.browser.signin.SigninPromoController;
|
||||
-import org.chromium.chrome.browser.signin.SigninPromoUtil;
|
||||
import org.chromium.chrome.browser.signin.SyncPromoView;
|
||||
-import org.chromium.chrome.browser.sync.AndroidSyncSettings;
|
||||
-import org.chromium.chrome.browser.sync.AndroidSyncSettings.AndroidSyncSettingsObserver;
|
||||
import org.chromium.components.signin.AccountManagerFacade;
|
||||
import org.chromium.components.signin.AccountManagerFacadeProvider;
|
||||
import org.chromium.components.signin.AccountsChangeObserver;
|
||||
@@ -44,7 +38,7 @@ import java.lang.annotation.RetentionPolicy;
|
||||
* Class that manages all the logic and UI behind the signin promo header in the bookmark
|
||||
* content UI. The header is shown only on certain situations, (e.g., not signed in).
|
||||
*/
|
||||
-class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObserver,
|
||||
+class BookmarkPromoHeader implements
|
||||
ProfileDataCache.Observer, AccountsChangeObserver {
|
||||
/**
|
||||
* Specifies the various states in which the Bookmarks promo can be.
|
||||
@@ -65,7 +59,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
private static @Nullable @PromoState Integer sPromoStateForTests;
|
||||
|
||||
private final Context mContext;
|
||||
- private final SigninManager mSignInManager;
|
||||
private final AccountManagerFacade mAccountManagerFacade;
|
||||
private final Runnable mPromoHeaderChangeAction;
|
||||
|
||||
@@ -81,12 +74,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
mContext = context;
|
||||
mPromoHeaderChangeAction = promoHeaderChangeAction;
|
||||
|
||||
- AndroidSyncSettings.get().registerObserver(this);
|
||||
-
|
||||
- mSignInManager = IdentityServicesProvider.get().getSigninManager(
|
||||
- Profile.getLastUsedRegularProfile());
|
||||
- mSignInManager.addSignInStateObserver(this);
|
||||
-
|
||||
mAccountManagerFacade = AccountManagerFacadeProvider.getInstance();
|
||||
|
||||
mPromoState = calculatePromoState();
|
||||
@@ -111,15 +98,11 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
* Clean ups the class. Must be called once done using this class.
|
||||
*/
|
||||
void destroy() {
|
||||
- AndroidSyncSettings.get().unregisterObserver(this);
|
||||
-
|
||||
if (mSigninPromoController != null) {
|
||||
mAccountManagerFacade.removeObserver(this);
|
||||
mProfileDataCache.removeObserver(this);
|
||||
mSigninPromoController.onPromoDestroyed();
|
||||
}
|
||||
-
|
||||
- mSignInManager.removeSignInStateObserver(this);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -130,18 +113,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
return mPromoState;
|
||||
}
|
||||
|
||||
- /**
|
||||
- * @return Personalized signin promo header {@link ViewHolder} instance that can be used with
|
||||
- * {@link RecyclerView}.
|
||||
- */
|
||||
- ViewHolder createPersonalizedSigninAndSyncPromoHolder(ViewGroup parent) {
|
||||
- View view = LayoutInflater.from(mContext).inflate(
|
||||
- R.layout.personalized_signin_promo_view_bookmarks, parent, false);
|
||||
-
|
||||
- // ViewHolder is abstract and it cannot be instantiated directly.
|
||||
- return new ViewHolder(view) {};
|
||||
- }
|
||||
-
|
||||
/**
|
||||
* @return Sync promo header {@link ViewHolder} instance that can be used with
|
||||
* {@link RecyclerView}.
|
||||
@@ -153,54 +124,11 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
return new ViewHolder(view) {};
|
||||
}
|
||||
|
||||
- /**
|
||||
- * Configures the personalized signin promo and records promo impressions.
|
||||
- * @param view The view to be configured.
|
||||
- */
|
||||
- void setupPersonalizedSigninPromo(PersonalizedSigninPromoView view) {
|
||||
- SigninPromoUtil.setupSigninPromoViewFromCache(mSigninPromoController, mProfileDataCache,
|
||||
- view, this::setPersonalizedSigninPromoDeclined);
|
||||
- }
|
||||
-
|
||||
- void setupPersonalizedSyncPromo(PersonalizedSigninPromoView view) {
|
||||
- SigninPromoUtil.setupSyncPromoViewFromCache(mSigninPromoController, mProfileDataCache, view,
|
||||
- this::setPersonalizedSigninPromoDeclined);
|
||||
- }
|
||||
-
|
||||
- /**
|
||||
- * Detaches the previously configured {@link PersonalizedSigninPromoView}.
|
||||
- */
|
||||
- void detachPersonalizePromoView() {
|
||||
- if (mSigninPromoController != null) mSigninPromoController.detach();
|
||||
- }
|
||||
-
|
||||
- /**
|
||||
- * Saves that the personalized signin promo was declined and updates the UI.
|
||||
- */
|
||||
- private void setPersonalizedSigninPromoDeclined() {
|
||||
- SharedPreferencesManager.getInstance().writeBoolean(
|
||||
- ChromePreferenceKeys.SIGNIN_PROMO_PERSONALIZED_DECLINED, true);
|
||||
- mPromoState = calculatePromoState();
|
||||
- triggerPromoUpdate();
|
||||
- }
|
||||
-
|
||||
- /**
|
||||
- * @return Whether the user declined the personalized signin promo.
|
||||
- */
|
||||
- @VisibleForTesting
|
||||
- static boolean wasPersonalizedSigninPromoDeclined() {
|
||||
- return SharedPreferencesManager.getInstance().readBoolean(
|
||||
- ChromePreferenceKeys.SIGNIN_PROMO_PERSONALIZED_DECLINED, false);
|
||||
- }
|
||||
-
|
||||
/**
|
||||
* @return Whether the personalized signin promo should be shown to user.
|
||||
*/
|
||||
private boolean shouldShowBookmarkSigninPromo() {
|
||||
- return mSignInManager.isSignInAllowed()
|
||||
- && SigninPromoController.hasNotReachedImpressionLimit(
|
||||
- SigninAccessPoint.BOOKMARK_MANAGER)
|
||||
- && !wasPersonalizedSigninPromoDeclined();
|
||||
+ return false;
|
||||
}
|
||||
|
||||
private @PromoState int calculatePromoState() {
|
||||
@@ -208,53 +136,9 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
return sPromoStateForTests;
|
||||
}
|
||||
|
||||
- if (!AndroidSyncSettings.get().doesMasterSyncSettingAllowChromeSync()) {
|
||||
- return PromoState.PROMO_NONE;
|
||||
- }
|
||||
-
|
||||
- if (!mSignInManager.getIdentityManager().hasPrimaryAccount()) {
|
||||
- if (ChromeFeatureList.isEnabled(ChromeFeatureList.MOBILE_IDENTITY_CONSISTENCY)) {
|
||||
- CoreAccountInfo primaryAccount =
|
||||
- mSignInManager.getIdentityManager().getPrimaryAccountInfo(
|
||||
- ConsentLevel.NOT_REQUIRED);
|
||||
- if (primaryAccount != null && !wasPersonalizedSigninPromoDeclined()) {
|
||||
- return PromoState.PROMO_SYNC_PERSONALIZED;
|
||||
- }
|
||||
- }
|
||||
- return shouldShowBookmarkSigninPromo() ? PromoState.PROMO_SIGNIN_PERSONALIZED
|
||||
- : PromoState.PROMO_NONE;
|
||||
- }
|
||||
-
|
||||
- boolean impressionLimitNotReached =
|
||||
- SharedPreferencesManager.getInstance().readInt(
|
||||
- ChromePreferenceKeys.SIGNIN_AND_SYNC_PROMO_SHOW_COUNT)
|
||||
- < MAX_SIGNIN_AND_SYNC_PROMO_SHOW_COUNT;
|
||||
- if (!AndroidSyncSettings.get().isChromeSyncEnabled() && impressionLimitNotReached) {
|
||||
- return PromoState.PROMO_SYNC;
|
||||
- }
|
||||
return PromoState.PROMO_NONE;
|
||||
}
|
||||
|
||||
- // AndroidSyncSettingsObserver implementation.
|
||||
- @Override
|
||||
- public void androidSyncSettingsChanged() {
|
||||
- mPromoState = calculatePromoState();
|
||||
- triggerPromoUpdate();
|
||||
- }
|
||||
-
|
||||
- // SignInStateObserver implementation.
|
||||
- @Override
|
||||
- public void onSignedIn() {
|
||||
- mPromoState = calculatePromoState();
|
||||
- triggerPromoUpdate();
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public void onSignedOut() {
|
||||
- mPromoState = calculatePromoState();
|
||||
- triggerPromoUpdate();
|
||||
- }
|
||||
-
|
||||
// ProfileDataCache.Observer implementation.
|
||||
@Override
|
||||
public void onProfileDataUpdated(String accountId) {
|
||||
@@ -268,7 +152,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
}
|
||||
|
||||
private void triggerPromoUpdate() {
|
||||
- detachPersonalizePromoView();
|
||||
mPromoHeaderChangeAction.run();
|
||||
}
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java
|
||||
@@ -70,28 +70,7 @@ public class SigninPromoController {
|
||||
* @param accessPoint The access point for which the impression limit is being checked.
|
||||
*/
|
||||
public static boolean hasNotReachedImpressionLimit(@AccessPoint int accessPoint) {
|
||||
- SharedPreferencesManager preferencesManager = SharedPreferencesManager.getInstance();
|
||||
- switch (accessPoint) {
|
||||
- case SigninAccessPoint.BOOKMARK_MANAGER:
|
||||
- return getSigninPromoImpressionsCountBookmarks() < MAX_IMPRESSIONS_BOOKMARKS;
|
||||
- case SigninAccessPoint.NTP_CONTENT_SUGGESTIONS:
|
||||
- int maxImpressions = ChromeFeatureList.getFieldTrialParamByFeatureAsInt(
|
||||
- ChromeFeatureList.ENHANCED_PROTECTION_PROMO_CARD,
|
||||
- "MaxSigninPromoImpressions", Integer.MAX_VALUE);
|
||||
- return SharedPreferencesManager.getInstance().readInt(
|
||||
- ChromePreferenceKeys.SIGNIN_PROMO_IMPRESSIONS_COUNT_NTP)
|
||||
- < maxImpressions;
|
||||
- case SigninAccessPoint.RECENT_TABS:
|
||||
- // There is no impression limit for Recent Tabs.
|
||||
- return true;
|
||||
- case SigninAccessPoint.SETTINGS:
|
||||
- return preferencesManager.readInt(
|
||||
- ChromePreferenceKeys.SIGNIN_PROMO_IMPRESSIONS_COUNT_SETTINGS)
|
||||
- < MAX_IMPRESSIONS_SETTINGS;
|
||||
- default:
|
||||
- assert false : "Unexpected value for access point: " + accessPoint;
|
||||
- return false;
|
||||
- }
|
||||
+ return false;
|
||||
}
|
||||
|
||||
/**
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -12,7 +12,7 @@ Subject: Disable references to fonts.googleapis.com
|
|||
diff --git a/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc b/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
|
||||
--- a/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
|
||||
+++ b/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
|
||||
@@ -292,7 +292,7 @@ bool DomDistillerViewerSource::ShouldServiceRequest(
|
||||
@@ -295,7 +295,7 @@ bool DomDistillerViewerSource::ShouldServiceRequest(
|
||||
std::string DomDistillerViewerSource::GetContentSecurityPolicy(
|
||||
network::mojom::CSPDirectiveName directive) {
|
||||
if (directive == network::mojom::CSPDirectiveName::StyleSrc) {
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -9,7 +9,7 @@ Subject: Disable seed-based field trials
|
|||
diff --git a/components/variations/service/variations_field_trial_creator.cc b/components/variations/service/variations_field_trial_creator.cc
|
||||
--- a/components/variations/service/variations_field_trial_creator.cc
|
||||
+++ b/components/variations/service/variations_field_trial_creator.cc
|
||||
@@ -523,8 +523,10 @@ bool VariationsFieldTrialCreator::SetupFieldTrials(
|
||||
@@ -524,8 +524,10 @@ bool VariationsFieldTrialCreator::SetupFieldTrials(
|
||||
#endif // BUILDFLAG(FIELDTRIAL_TESTING_ENABLED)
|
||||
bool used_seed = false;
|
||||
if (!used_testing_config) {
|
||||
|
|
|
@ -15,7 +15,7 @@ leak information through the TextClassifier set by OEM, if any
|
|||
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
--- a/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
@@ -479,7 +479,7 @@ const base::Feature kDownloadProgressInfoBar{"DownloadProgressInfoBar",
|
||||
@@ -502,7 +502,7 @@ const base::Feature kDownloadProgressInfoBar{"DownloadProgressInfoBar",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kDownloadFileProvider{"DownloadFileProvider",
|
||||
|
@ -27,7 +27,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
|
|||
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
|
||||
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
|
||||
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
|
||||
@@ -831,7 +831,7 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
|
||||
@@ -833,7 +833,7 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
|
||||
menu.removeItem(R.id.select_action_menu_share);
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: Disable some signed exchange features
|
|||
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
|
||||
--- a/content/public/common/content_features.cc
|
||||
+++ b/content/public/common/content_features.cc
|
||||
@@ -615,7 +615,7 @@ const base::Feature kSignedExchangePrefetchCacheForNavigations{
|
||||
@@ -626,7 +626,7 @@ const base::Feature kSignedExchangePrefetchCacheForNavigations{
|
||||
// Signed Exchange Reporting for distributors
|
||||
// https://www.chromestatus.com/features/5687904902840320
|
||||
const base::Feature kSignedExchangeReportingForDistributors{
|
||||
|
@ -18,7 +18,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c
|
|||
|
||||
// Subresource prefetching+loading via Signed HTTP Exchange
|
||||
// https://www.chromestatus.com/features/5126805474246656
|
||||
@@ -625,7 +625,7 @@ const base::Feature kSignedExchangeSubresourcePrefetch{
|
||||
@@ -636,7 +636,7 @@ const base::Feature kSignedExchangeSubresourcePrefetch{
|
||||
// Origin-Signed HTTP Exchanges (for WebPackage Loading)
|
||||
// https://www.chromestatus.com/features/5745285984681984
|
||||
const base::Feature kSignedHTTPExchange{"SignedHTTPExchange",
|
||||
|
|
|
@ -3,10 +3,10 @@ Date: Mon, 11 Nov 2019 23:09:48 +0100
|
|||
Subject: Disable sync services menu entry
|
||||
|
||||
---
|
||||
.../android/java/res/xml/main_preferences.xml | 11 ++---------
|
||||
.../java/res/xml/privacy_preferences.xml | 5 -----
|
||||
.../sync/settings/SyncSettingsUtils.java | 17 -----------------
|
||||
3 files changed, 2 insertions(+), 31 deletions(-)
|
||||
chrome/android/java/res/xml/main_preferences.xml | 11 ++---------
|
||||
chrome/android/java/res/xml/privacy_preferences.xml | 5 -----
|
||||
.../browser/sync/settings/SyncSettingsUtils.java | 3 +++
|
||||
3 files changed, 5 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/main_preferences.xml
|
||||
|
@ -39,43 +39,29 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
|
|||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -34,9 +34,4 @@
|
||||
android:summary="@string/clear_browsing_data_summary"
|
||||
android:fragment="org.chromium.chrome.browser.browsing_data.ClearBrowsingDataTabsFragment"
|
||||
android:order="5"/>
|
||||
@@ -39,9 +39,4 @@
|
||||
android:title="@string/prefs_privacy_sandbox"
|
||||
android:fragment="org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsFragment"
|
||||
android:order="7"/>
|
||||
- <org.chromium.components.browser_ui.settings.TextMessagePreference
|
||||
- android:key="sync_and_services_link"
|
||||
- android:summary="@string/privacy_sync_and_services_link_legacy"
|
||||
- app:allowDividerBelow="false"
|
||||
- android:order="7"/>
|
||||
- android:order="8"/>
|
||||
</PreferenceScreen>
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncSettingsUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncSettingsUtils.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncSettingsUtils.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncSettingsUtils.java
|
||||
@@ -257,23 +257,6 @@ public class SyncSettingsUtils {
|
||||
}
|
||||
|
||||
boolean syncEnabled = AndroidSyncSettings.get().isSyncEnabled();
|
||||
- if (syncEnabled) {
|
||||
- if (!profileSyncService.isSyncActive()) {
|
||||
- return res.getString(R.string.sync_setup_progress);
|
||||
- }
|
||||
-
|
||||
- if (profileSyncService.isPassphraseRequiredForPreferredDataTypes()) {
|
||||
- return res.getString(R.string.sync_need_passphrase);
|
||||
- }
|
||||
-
|
||||
- if (profileSyncService.isTrustedVaultKeyRequiredForPreferredDataTypes()) {
|
||||
- return profileSyncService.isEncryptEverythingEnabled()
|
||||
- ? context.getString(R.string.sync_error_card_title)
|
||||
- : context.getString(R.string.sync_passwords_error_card_title);
|
||||
- }
|
||||
-
|
||||
- return context.getString(R.string.sync_and_services_summary_sync_on);
|
||||
- }
|
||||
return context.getString(R.string.sync_is_disabled);
|
||||
}
|
||||
@@ -208,6 +208,9 @@ public class SyncSettingsUtils {
|
||||
*/
|
||||
public static String getSyncStatusSummary(Context context) {
|
||||
Resources res = context.getResources();
|
||||
+ if (true) {
|
||||
+ res.getString(R.string.sync_is_disabled);
|
||||
+ }
|
||||
|
||||
if (!IdentityServicesProvider.get()
|
||||
.getIdentityManager(Profile.getLastUsedRegularProfile())
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
@ -18,32 +18,32 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -5164,6 +5164,7 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kEnableImplicitRootScrollerDescription, kOsAll,
|
||||
FEATURE_VALUE_TYPE(blink::features::kImplicitRootScroller)},
|
||||
|
||||
kHappinessTrackingSurveysForDesktopDevToolsIssuesCookiesSameSiteDescription,
|
||||
kOsDesktop,
|
||||
FEATURE_VALUE_TYPE(
|
||||
+ // will override runtime text fragment identifiers setting too
|
||||
{"enable-text-fragment-anchor",
|
||||
flag_descriptions::kEnableTextFragmentAnchorName,
|
||||
flag_descriptions::kEnableTextFragmentAnchorDescription, kOsAll,
|
||||
features::
|
||||
kHappinessTrackingSurveysForDesktopDevToolsIssuesCookiesSameSite)},
|
||||
|
||||
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
|
||||
--- a/chrome/browser/flag-metadata.json
|
||||
+++ b/chrome/browser/flag-metadata.json
|
||||
@@ -2267,7 +2267,7 @@
|
||||
@@ -2586,7 +2586,7 @@
|
||||
{
|
||||
"name": "enable-text-fragment-anchor",
|
||||
"owners": [ "bokan", "input-dev" ],
|
||||
"name": "ev-details-in-page-info",
|
||||
"owners": [ "cthomp" ],
|
||||
- "expiry_milestone": 83
|
||||
+ "expiry_milestone": -1
|
||||
},
|
||||
{
|
||||
"name": "enable-tls13-early-data",
|
||||
"name": "exo-gamepad-vibration",
|
||||
diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/prefs/prefs_tab_helper.cc
|
||||
--- a/chrome/browser/ui/prefs/prefs_tab_helper.cc
|
||||
+++ b/chrome/browser/ui/prefs/prefs_tab_helper.cc
|
||||
@@ -357,7 +357,7 @@ void PrefsTabHelper::RegisterProfilePrefs(
|
||||
prefs::kEnableReferrers,
|
||||
@@ -360,7 +360,7 @@ void PrefsTabHelper::RegisterProfilePrefs(
|
||||
!base::FeatureList::IsEnabled(features::kNoReferrers));
|
||||
registry->RegisterBooleanPref(prefs::kEnableEncryptedMedia, true);
|
||||
registry->RegisterBooleanPref(prefs::kEnableDRM, true);
|
||||
- registry->RegisterBooleanPref(prefs::kScrollToTextFragmentEnabled, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kScrollToTextFragmentEnabled, false);
|
||||
#if defined(OS_ANDROID)
|
||||
|
@ -52,7 +52,7 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre
|
|||
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
|
||||
--- a/content/child/runtime_features.cc
|
||||
+++ b/content/child/runtime_features.cc
|
||||
@@ -269,6 +269,7 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
|
||||
@@ -273,6 +273,7 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
|
||||
{wf::EnableBackgroundFetch, features::kBackgroundFetch},
|
||||
{wf::EnableForcedColors, features::kForcedColors},
|
||||
{wf::EnableFractionalScrollOffsets, features::kFractionalScrollOffsets},
|
||||
|
@ -63,7 +63,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
|
|||
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
|
||||
--- a/third_party/blink/common/features.cc
|
||||
+++ b/third_party/blink/common/features.cc
|
||||
@@ -289,7 +289,7 @@ const base::Feature kStorageAccessAPI{"StorageAccessAPI",
|
||||
@@ -301,7 +301,7 @@ const base::Feature kStorageAccessAPI{"StorageAccessAPI",
|
||||
|
||||
// Enable text snippets in URL fragments. https://crbug.com/919204.
|
||||
const base::Feature kTextFragmentAnchor{"TextFragmentAnchor",
|
||||
|
@ -75,7 +75,7 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea
|
|||
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
|
||||
--- a/third_party/blink/renderer/core/dom/document.cc
|
||||
+++ b/third_party/blink/renderer/core/dom/document.cc
|
||||
@@ -4462,6 +4462,10 @@ void Document::SetURL(const KURL& url) {
|
||||
@@ -4383,6 +4383,10 @@ void Document::SetURL(const KURL& url) {
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -86,7 +86,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
|
|||
// Strip the fragment directive from the URL fragment. E.g. "#id:~:text=a"
|
||||
// --> "#id". See https://github.com/WICG/scroll-to-text-fragment.
|
||||
String fragment = new_url.FragmentIdentifier();
|
||||
@@ -4475,6 +4479,7 @@ void Document::SetURL(const KURL& url) {
|
||||
@@ -4396,6 +4400,7 @@ void Document::SetURL(const KURL& url) {
|
||||
else
|
||||
new_url.SetFragmentIdentifier(fragment.Substring(0, start_pos));
|
||||
}
|
||||
|
@ -97,7 +97,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
|
|||
diff --git a/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc b/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc
|
||||
--- a/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc
|
||||
+++ b/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc
|
||||
@@ -1164,34 +1164,25 @@ TEST_P(TextFragmentRelatedMetricTest, ElementIdSuccessFailureCounts) {
|
||||
@@ -1254,34 +1254,25 @@ TEST_P(TextFragmentRelatedMetricTest, ElementIdSuccessFailureCounts) {
|
||||
// result of the element-id fragment if a text directive is successfully
|
||||
// parsed. If the feature is off we treat the text directive as an element-id
|
||||
// and should count the result.
|
||||
|
@ -145,7 +145,7 @@ diff --git a/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor
|
|||
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
@@ -1926,8 +1926,7 @@
|
||||
@@ -1973,8 +1973,7 @@
|
||||
},
|
||||
{
|
||||
name: "TextFragmentIdentifiers",
|
||||
|
|
|
@ -10,7 +10,7 @@ author: Chad Miller <chad.miller@canonical.com>
|
|||
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
|
||||
--- a/chrome/browser/prefs/browser_prefs.cc
|
||||
+++ b/chrome/browser/prefs/browser_prefs.cc
|
||||
@@ -549,7 +549,7 @@ void RegisterProfilePrefsForMigration(
|
||||
@@ -591,7 +591,7 @@ void RegisterProfilePrefsForMigration(
|
||||
|
||||
registry->RegisterDictionaryPref(kObservedSessionTime);
|
||||
|
||||
|
|
|
@ -9,15 +9,15 @@ Subject: Disable unified autoplay feature
|
|||
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
|
||||
--- a/media/base/media_switches.cc
|
||||
+++ b/media/base/media_switches.cc
|
||||
@@ -422,7 +422,7 @@ const base::Feature kUseR16Texture{"use-r16-texture",
|
||||
@@ -448,7 +448,7 @@ const base::Feature kUseR16Texture{"use-r16-texture",
|
||||
// Enables the Unified Autoplay policy by overriding the platform's default
|
||||
// autoplay policy.
|
||||
const base::Feature kUnifiedAutoplay{"UnifiedAutoplay",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
// Enable VA-API hardware decode acceleration for AV1.
|
||||
const base::Feature kVaapiAV1Decoder{"VaapiAV1Decoder",
|
||||
#if (defined(OS_LINUX) || defined(OS_FREEBSD)) && !defined(OS_CHROMEOS)
|
||||
// Enable vaapi video decoding on linux. This is already enabled by default on
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
@ -10,15 +10,15 @@ Subject: Do not compile QR code sharing
|
|||
diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/share_sheet/ChromeProvidedSharingOptionsProvider.java b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/share_sheet/ChromeProvidedSharingOptionsProvider.java
|
||||
--- a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/share_sheet/ChromeProvidedSharingOptionsProvider.java
|
||||
+++ b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/share_sheet/ChromeProvidedSharingOptionsProvider.java
|
||||
@@ -24,7 +24,6 @@ import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.settings.SettingsLauncher;
|
||||
@@ -25,7 +25,6 @@ import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.share.ChromeShareExtras;
|
||||
import org.chromium.chrome.browser.share.link_to_text.LinkToTextCoordinator;
|
||||
import org.chromium.chrome.browser.share.long_screenshots.LongScreenshotsCoordinator;
|
||||
-import org.chromium.chrome.browser.share.qrcode.QrCodeCoordinator;
|
||||
import org.chromium.chrome.browser.share.screenshot.ScreenshotCoordinator;
|
||||
import org.chromium.chrome.browser.share.send_tab_to_self.SendTabToSelfCoordinator;
|
||||
import org.chromium.chrome.browser.share.share_sheet.ShareSheetPropertyModelBuilder.ContentType;
|
||||
@@ -229,10 +228,6 @@ class ChromeProvidedSharingOptionsProvider {
|
||||
@@ -240,10 +239,6 @@ class ChromeProvidedSharingOptionsProvider {
|
||||
&& ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_SHARE_HIGHLIGHTS_ANDROID)) {
|
||||
mOrderedFirstPartyOptions.add(createHighlightsFirstPartyOption());
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/s
|
|||
if (UserPrefs.get(Profile.getLastUsedRegularProfile()).getBoolean(Pref.PRINTING_ENABLED)) {
|
||||
mOrderedFirstPartyOptions.add(createPrintingFirstPartyOption());
|
||||
}
|
||||
@@ -352,18 +347,6 @@ class ChromeProvidedSharingOptionsProvider {
|
||||
@@ -390,18 +385,6 @@ class ChromeProvidedSharingOptionsProvider {
|
||||
.build();
|
||||
}
|
||||
|
||||
|
@ -51,10 +51,10 @@ diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/s
|
|||
diff --git a/chrome/browser/share/android/java_sources.gni b/chrome/browser/share/android/java_sources.gni
|
||||
--- a/chrome/browser/share/android/java_sources.gni
|
||||
+++ b/chrome/browser/share/android/java_sources.gni
|
||||
@@ -9,24 +9,6 @@ share_java_sources = [
|
||||
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/clipboard/ClipboardImageFileProvider.java",
|
||||
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/link_to_text/LinkToTextCoordinator.java",
|
||||
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/link_to_text/LinkToTextMetricsBridge.java",
|
||||
@@ -16,24 +16,6 @@ share_java_sources = [
|
||||
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/LongScreenshotsEntry.java",
|
||||
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/LongScreenshotsTabService.java",
|
||||
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/LongScreenshotsTabServiceFactory.java",
|
||||
- "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/QRCodeGenerationRequest.java",
|
||||
- "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/QrCodeCoordinator.java",
|
||||
- "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/QrCodeDialog.java",
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: Do not hide component extensions
|
|||
diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc
|
||||
--- a/extensions/common/extension.cc
|
||||
+++ b/extensions/common/extension.cc
|
||||
@@ -378,9 +378,8 @@ bool Extension::ShouldDisplayInNewTabPage() const {
|
||||
@@ -380,9 +380,8 @@ bool Extension::ShouldDisplayInNewTabPage() const {
|
||||
}
|
||||
|
||||
bool Extension::ShouldExposeViaManagementAPI() const {
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: DoH secure mode by default
|
|||
diff --git a/chrome/browser/net/stub_resolver_config_reader.cc b/chrome/browser/net/stub_resolver_config_reader.cc
|
||||
--- a/chrome/browser/net/stub_resolver_config_reader.cc
|
||||
+++ b/chrome/browser/net/stub_resolver_config_reader.cc
|
||||
@@ -153,7 +153,7 @@ StubResolverConfigReader::StubResolverConfigReader(PrefService* local_state,
|
||||
@@ -154,7 +154,7 @@ StubResolverConfigReader::StubResolverConfigReader(PrefService* local_state,
|
||||
if (entries.count("dns-over-https@1")) {
|
||||
// The user has "Enabled" selected.
|
||||
local_state_->SetString(prefs::kDnsOverHttpsMode,
|
||||
|
@ -18,7 +18,7 @@ diff --git a/chrome/browser/net/stub_resolver_config_reader.cc b/chrome/browser/
|
|||
} else if (entries.count("dns-over-https@2")) {
|
||||
// The user has "Disabled" selected.
|
||||
local_state_->SetString(prefs::kDnsOverHttpsMode,
|
||||
@@ -327,22 +327,7 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration(
|
||||
@@ -328,22 +328,7 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration(
|
||||
check_parental_controls = false;
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ Subject: Enable SPPI for devices with enough memory
|
|||
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
|
||||
--- a/chrome/common/chrome_features.cc
|
||||
+++ b/chrome/common/chrome_features.cc
|
||||
@@ -752,11 +752,7 @@ const base::Feature kShow10_10ObsoleteInfobar{
|
||||
@@ -817,11 +817,7 @@ const base::Feature kShow10_10ObsoleteInfobar{
|
||||
// browser_features, as they are only used on the browser side.
|
||||
const base::Feature kSitePerProcess {
|
||||
"site-per-process",
|
||||
|
@ -21,7 +21,7 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
|
|||
-#endif
|
||||
};
|
||||
|
||||
#if defined(OS_CHROMEOS)
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
diff --git a/components/site_isolation/features.cc b/components/site_isolation/features.cc
|
||||
--- a/components/site_isolation/features.cc
|
||||
+++ b/components/site_isolation/features.cc
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: Enable app overflow menu icons by default
|
|||
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
--- a/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
@@ -640,7 +640,7 @@ const base::Feature kTabToGTSAnimation{"TabToGTSAnimation",
|
||||
@@ -647,7 +647,7 @@ const base::Feature kTabToGTSAnimation{"TabToGTSAnimation",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kTabbedAppOverflowMenuIcons{
|
||||
|
|
|
@ -11,7 +11,7 @@ Unexpire #darken-websites-checkbox-in-themes-setting
|
|||
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
|
||||
--- a/chrome/browser/flag-metadata.json
|
||||
+++ b/chrome/browser/flag-metadata.json
|
||||
@@ -952,7 +952,7 @@
|
||||
@@ -976,7 +976,7 @@
|
||||
{
|
||||
"name": "disable-keepalive-fetch",
|
||||
"owners": [ "yhirano" ],
|
||||
|
@ -23,7 +23,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
|
|||
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
--- a/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
@@ -467,7 +467,7 @@ const base::Feature kContextualSearchTranslations{
|
||||
@@ -490,7 +490,7 @@ const base::Feature kContextualSearchTranslations{
|
||||
"ContextualSearchTranslations", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kDarkenWebsitesCheckboxInThemesSetting{
|
||||
|
|
|
@ -42,7 +42,7 @@ Excerpt from https://github.com/bromite/bromite/issues/226
|
|||
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
|
||||
--- a/build/config/compiler/BUILD.gn
|
||||
+++ b/build/config/compiler/BUILD.gn
|
||||
@@ -286,6 +286,10 @@ config("compiler") {
|
||||
@@ -311,6 +311,10 @@ config("compiler") {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -7,15 +7,14 @@ Expose show-legacy-tls-warnings flag on Android as well
|
|||
chrome/browser/about_flags.cc | 2 --
|
||||
chrome/browser/ssl/tls_deprecation_config.cc | 22 +------------------
|
||||
components/security_state/core/features.cc | 2 +-
|
||||
net/base/features.cc | 2 +-
|
||||
.../network/legacy_tls_config_distributor.cc | 21 +-----------------
|
||||
services/network/ssl_config_service_mojo.cc | 7 ++----
|
||||
6 files changed, 6 insertions(+), 50 deletions(-)
|
||||
5 files changed, 5 insertions(+), 49 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -5956,11 +5956,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -6167,11 +6167,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
FEATURE_VALUE_TYPE(features::kElasticOverscrollWin)},
|
||||
#endif
|
||||
|
||||
|
@ -25,7 +24,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
FEATURE_VALUE_TYPE(security_state::features::kLegacyTLSWarnings)},
|
||||
-#endif
|
||||
|
||||
#if defined(OS_CHROMEOS)
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
{"enable-assistant-aec", flag_descriptions::kEnableGoogleAssistantAecName,
|
||||
diff --git a/chrome/browser/ssl/tls_deprecation_config.cc b/chrome/browser/ssl/tls_deprecation_config.cc
|
||||
--- a/chrome/browser/ssl/tls_deprecation_config.cc
|
||||
|
@ -62,27 +61,15 @@ diff --git a/chrome/browser/ssl/tls_deprecation_config.cc b/chrome/browser/ssl/t
|
|||
diff --git a/components/security_state/core/features.cc b/components/security_state/core/features.cc
|
||||
--- a/components/security_state/core/features.cc
|
||||
+++ b/components/security_state/core/features.cc
|
||||
@@ -16,7 +16,7 @@ const char kMarkHttpAsParameterWarningAndDangerousOnFormEdits[] =
|
||||
const char kMarkHttpAsParameterDangerWarning[] = "danger-warning";
|
||||
@@ -8,7 +8,7 @@ namespace security_state {
|
||||
namespace features {
|
||||
|
||||
const base::Feature kLegacyTLSWarnings{"LegacyTLSWarnings",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kSafetyTipUI{"SafetyTip",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
diff --git a/net/base/features.cc b/net/base/features.cc
|
||||
--- a/net/base/features.cc
|
||||
+++ b/net/base/features.cc
|
||||
@@ -150,7 +150,7 @@ const base::Feature kTurnOffStreamingMediaCachingAlways{
|
||||
"TurnOffStreamingMediaCachingAlways", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
const base::Feature kSafetyTipUI{"SafetyTip", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kLegacyTLSEnforced{"LegacyTLSEnforced",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kSchemefulSameSite{"SchemefulSameSite",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
diff --git a/services/network/legacy_tls_config_distributor.cc b/services/network/legacy_tls_config_distributor.cc
|
||||
--- a/services/network/legacy_tls_config_distributor.cc
|
||||
+++ b/services/network/legacy_tls_config_distributor.cc
|
||||
|
|
|
@ -9,15 +9,15 @@ Subject: Enable prefetch-privacy-changes by default
|
|||
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
|
||||
--- a/third_party/blink/common/features.cc
|
||||
+++ b/third_party/blink/common/features.cc
|
||||
@@ -310,7 +310,7 @@ const base::Feature kFontAccessChooser{"FontAccessChooser",
|
||||
@@ -322,7 +322,7 @@ const base::Feature kFontAccessChooser{"FontAccessChooser",
|
||||
// Prefetch request properties are updated to be privacy-preserving. See
|
||||
// crbug.com/988956.
|
||||
const base::Feature kPrefetchPrivacyChanges{"PrefetchPrivacyChanges",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
const char kMixedContentAutoupgradeModeParamName[] = "mode";
|
||||
const char kMixedContentAutoupgradeModeAllPassive[] = "all-passive";
|
||||
// Decodes jpeg 4:2:0 formatted images to YUV instead of RGBX and stores in this
|
||||
// format in the image decode cache. See crbug.com/919627 for details on the
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Fri, 31 Jul 2020 08:28:35 +0200
|
||||
Subject: Enable reduced-referrer-granularity by default
|
||||
|
||||
---
|
||||
third_party/blink/common/features.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
|
||||
--- a/third_party/blink/common/features.cc
|
||||
+++ b/third_party/blink/common/features.cc
|
||||
@@ -748,7 +748,7 @@ const base::Feature kCompositingOptimizations{
|
||||
// Reduce the amount of information in the default 'referer' header for
|
||||
// cross-origin requests.
|
||||
const base::Feature kReducedReferrerGranularity{
|
||||
- "ReducedReferrerGranularity", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+ "ReducedReferrerGranularity", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
// Enables the constant streaming in the ContentCapture task.
|
||||
const base::Feature kContentCaptureConstantStreaming = {
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -16,8 +16,8 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea
|
|||
- base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
// Enables support for FTP URLs. When disabled FTP URLs will behave the same as
|
||||
// any other URL scheme that's unknown to the UA. See https://crbug.com/333943
|
||||
// Enables the frequency capping for detecting overlay popups. Overlay-popups
|
||||
// are the interstitials that pop up and block the main content of the page.
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Sat, 13 Feb 2021 10:34:06 +0000
|
||||
Subject: Fix favicons fallback search
|
||||
|
||||
---
|
||||
components/favicon/core/favicon_database.cc | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/components/favicon/core/favicon_database.cc b/components/favicon/core/favicon_database.cc
|
||||
--- a/components/favicon/core/favicon_database.cc
|
||||
+++ b/components/favicon/core/favicon_database.cc
|
||||
@@ -782,7 +782,9 @@ base::Optional<GURL> FaviconDatabase::FindFirstPageURLForHost(
|
||||
|
||||
// Bind the host with a prefix of "://" and suffix of "/" to ensure the entire
|
||||
// host name is matched.
|
||||
- statement.BindString(0, base::StringPrintf("%%://%s/%%", url.host().c_str()));
|
||||
+ statement.BindString(0, base::StringPrintf("%s://%s/%%",
|
||||
+ std::string(url.scheme_piece()).c_str(),
|
||||
+ url.host().c_str()));
|
||||
|
||||
while (statement.Step()) {
|
||||
favicon_base::IconType icon_type =
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -16,8 +16,8 @@ diff --git a/chrome/android/java/res/layout/fre_tosanduma.xml b/chrome/android/j
|
|||
- android:textAppearance="@style/TextAppearance.TextMedium.Primary" />
|
||||
+ android:textAppearance="@style/TextAppearance.TextMedium.Primary" android:visibility="gone" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<include
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ Patch from https://github.com/Eloston/ungoogled-chromium/issues/814#issuecomment
|
|||
diff --git a/components/omnibox/browser/autocomplete_result.cc b/components/omnibox/browser/autocomplete_result.cc
|
||||
--- a/components/omnibox/browser/autocomplete_result.cc
|
||||
+++ b/components/omnibox/browser/autocomplete_result.cc
|
||||
@@ -67,7 +67,8 @@ struct MatchGURLHash {
|
||||
@@ -68,7 +68,8 @@ struct MatchGURLHash {
|
||||
// static
|
||||
size_t AutocompleteResult::GetMaxMatches(bool is_zero_suggest) {
|
||||
#if (defined(OS_ANDROID))
|
||||
|
@ -24,21 +24,19 @@ diff --git a/components/omnibox/browser/autocomplete_result.cc b/components/omni
|
|||
diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omnibox/browser/omnibox_field_trial.cc
|
||||
--- a/components/omnibox/browser/omnibox_field_trial.cc
|
||||
+++ b/components/omnibox/browser/omnibox_field_trial.cc
|
||||
@@ -335,11 +335,11 @@ void OmniboxFieldTrial::GetDemotionsByType(
|
||||
@@ -330,9 +330,9 @@ void OmniboxFieldTrial::GetDemotionsByType(
|
||||
|
||||
size_t OmniboxFieldTrial::GetProviderMaxMatches(
|
||||
AutocompleteProvider::Type provider) {
|
||||
- size_t default_max_matches_per_provider = 3;
|
||||
+ size_t default_max_matches_per_provider = 5; // was 3; this needs to be half the value of kDefaultMaxAutocompleteMatches from components/omnibox/browser/autocomplete_result.cc
|
||||
|
||||
// If new search features are disabled, ignore the parameter and use the
|
||||
// default value.
|
||||
- if (!base::FeatureList::IsEnabled(omnibox::kNewSearchFeatures))
|
||||
+ /*if (!base::FeatureList::IsEnabled(omnibox::kNewSearchFeatures))
|
||||
return default_max_matches_per_provider;
|
||||
- std::string param_value = base::GetFieldTrialParamValueByFeature(
|
||||
+/* std::string param_value = base::GetFieldTrialParamValueByFeature(
|
||||
omnibox::kUIExperimentMaxAutocompleteMatches,
|
||||
OmniboxFieldTrial::kUIMaxAutocompleteMatchesByProviderParam);
|
||||
|
||||
std::string param_value = base::GetFieldTrialParamValueByFeature(
|
||||
@@ -366,7 +366,7 @@ size_t OmniboxFieldTrial::GetProviderMaxMatches(
|
||||
@@ -356,7 +356,7 @@ size_t OmniboxFieldTrial::GetProviderMaxMatches(
|
||||
else if (k == provider)
|
||||
return v;
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ Send a random key press to circumvent idle status detection
|
|||
diff --git a/third_party/blink/renderer/core/dom/build.gni b/third_party/blink/renderer/core/dom/build.gni
|
||||
--- a/third_party/blink/renderer/core/dom/build.gni
|
||||
+++ b/third_party/blink/renderer/core/dom/build.gni
|
||||
@@ -167,6 +167,8 @@ blink_core_sources_dom = [
|
||||
@@ -165,6 +165,8 @@ blink_core_sources_dom = [
|
||||
"global_event_handlers.h",
|
||||
"icon_url.cc",
|
||||
"icon_url.h",
|
||||
|
@ -33,7 +33,7 @@ diff --git a/third_party/blink/renderer/core/dom/build.gni b/third_party/blink/r
|
|||
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
|
||||
--- a/third_party/blink/renderer/core/dom/document.cc
|
||||
+++ b/third_party/blink/renderer/core/dom/document.cc
|
||||
@@ -274,6 +274,7 @@
|
||||
@@ -272,6 +272,7 @@
|
||||
#include "third_party/blink/renderer/core/page/scrolling/root_scroller_controller.h"
|
||||
#include "third_party/blink/renderer/core/page/scrolling/scroll_state_callback.h"
|
||||
#include "third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h"
|
||||
|
@ -41,7 +41,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
|
|||
#include "third_party/blink/renderer/core/page/scrolling/snap_coordinator.h"
|
||||
#include "third_party/blink/renderer/core/page/scrolling/text_fragment_anchor.h"
|
||||
#include "third_party/blink/renderer/core/page/scrolling/text_fragment_selector_generator.h"
|
||||
@@ -339,6 +340,8 @@
|
||||
@@ -337,6 +338,8 @@
|
||||
#include "third_party/blink/renderer/platform/wtf/text/string_buffer.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/text/text_encoding_registry.h"
|
||||
|
||||
|
@ -50,7 +50,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
|
|||
#ifndef NDEBUG
|
||||
using WeakDocumentSet = blink::HeapHashSet<blink::WeakMember<blink::Document>>;
|
||||
static WeakDocumentSet& liveDocumentSet();
|
||||
@@ -6972,6 +6975,61 @@ void Document::setAllowDeclarativeShadowRoot(bool val) {
|
||||
@@ -6894,6 +6897,61 @@ void Document::setAllowDeclarativeShadowRoots(bool val) {
|
||||
val ? AllowState::kAllow : AllowState::kDeny;
|
||||
}
|
||||
|
||||
|
@ -112,7 +112,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
|
|||
void Document::FinishedParsing() {
|
||||
DCHECK(!GetScriptableDocumentParser() || !parser_->IsParsing());
|
||||
DCHECK(!GetScriptableDocumentParser() || ready_state_ != kLoading);
|
||||
@@ -7024,6 +7082,10 @@ void Document::FinishedParsing() {
|
||||
@@ -6946,6 +7004,10 @@ void Document::FinishedParsing() {
|
||||
|
||||
frame->Loader().FinishedParsing();
|
||||
|
||||
|
@ -126,7 +126,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
|
|||
diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h
|
||||
--- a/third_party/blink/renderer/core/dom/document.h
|
||||
+++ b/third_party/blink/renderer/core/dom/document.h
|
||||
@@ -1707,6 +1707,9 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
@@ -1695,6 +1695,9 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
void AddAXContext(AXContext*);
|
||||
void RemoveAXContext(AXContext*);
|
||||
|
||||
|
@ -161,7 +161,7 @@ new file mode 100644
|
|||
diff --git a/third_party/blink/renderer/core/html/html_script_element.cc b/third_party/blink/renderer/core/html/html_script_element.cc
|
||||
--- a/third_party/blink/renderer/core/html/html_script_element.cc
|
||||
+++ b/third_party/blink/renderer/core/html/html_script_element.cc
|
||||
@@ -167,6 +167,11 @@ void HTMLScriptElement::setTextContent(
|
||||
@@ -168,6 +168,11 @@ void HTMLScriptElement::setTextContent(
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ Subject: Modify default preferences
|
|||
diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/browser/background/background_mode_manager.cc
|
||||
--- a/chrome/browser/background/background_mode_manager.cc
|
||||
+++ b/chrome/browser/background/background_mode_manager.cc
|
||||
@@ -340,7 +340,7 @@ void BackgroundModeManager::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
@@ -360,7 +360,7 @@ void BackgroundModeManager::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
registry->RegisterBooleanPref(prefs::kChromeCreatedLoginItem, false);
|
||||
registry->RegisterBooleanPref(prefs::kMigratedLoginItemPref, false);
|
||||
#endif
|
||||
|
@ -32,7 +32,7 @@ diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/brows
|
|||
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
|
||||
--- a/chrome/browser/chrome_content_browser_client.cc
|
||||
+++ b/chrome/browser/chrome_content_browser_client.cc
|
||||
@@ -1328,7 +1328,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
|
||||
@@ -1363,7 +1363,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
|
||||
void ChromeContentBrowserClient::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false);
|
||||
|
@ -68,7 +68,7 @@ diff --git a/chrome/browser/net/prediction_options.h b/chrome/browser/net/predic
|
|||
diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc
|
||||
--- a/chrome/browser/profiles/profile.cc
|
||||
+++ b/chrome/browser/profiles/profile.cc
|
||||
@@ -277,7 +277,7 @@ const char Profile::kProfileKey[] = "__PROFILE__";
|
||||
@@ -248,7 +248,7 @@ const char Profile::kProfileKey[] = "__PROFILE__";
|
||||
void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kSearchSuggestEnabled,
|
||||
|
@ -121,7 +121,7 @@ diff --git a/chrome/service/cloud_print/connector_settings.cc b/chrome/service/c
|
|||
diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc
|
||||
--- a/components/autofill/core/browser/autofill_manager.cc
|
||||
+++ b/components/autofill/core/browser/autofill_manager.cc
|
||||
@@ -964,10 +964,7 @@ void AutofillManager::OnQueryFormFieldAutofillImpl(
|
||||
@@ -990,10 +990,7 @@ void AutofillManager::OnQueryFormFieldAutofillImpl(
|
||||
// suggestions available.
|
||||
// TODO(mathp): Differentiate between number of suggestions available
|
||||
// (current metric) and number shown to the user.
|
||||
|
@ -133,9 +133,9 @@ diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/a
|
|||
}
|
||||
}
|
||||
|
||||
@@ -1600,8 +1597,8 @@ void AutofillManager::Reset() {
|
||||
credit_card_access_manager_.reset(new CreditCardAccessManager(
|
||||
driver(), client_, personal_data_, credit_card_form_event_logger_.get()));
|
||||
@@ -1576,8 +1573,8 @@ void AutofillManager::Reset() {
|
||||
credit_card_access_manager_ = std::make_unique<CreditCardAccessManager>(
|
||||
driver(), client_, personal_data_, credit_card_form_event_logger_.get());
|
||||
|
||||
- has_logged_autofill_enabled_ = false;
|
||||
- has_logged_address_suggestions_count_ = false;
|
||||
|
@ -177,7 +177,7 @@ diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmar
|
|||
diff --git a/components/safe_browsing/core/common/safe_browsing_prefs.cc b/components/safe_browsing/core/common/safe_browsing_prefs.cc
|
||||
--- a/components/safe_browsing/core/common/safe_browsing_prefs.cc
|
||||
+++ b/components/safe_browsing/core/common/safe_browsing_prefs.cc
|
||||
@@ -190,9 +190,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||
@@ -192,9 +192,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kSafeBrowsingSawInterstitialScoutReporting, false);
|
||||
registry->RegisterBooleanPref(
|
||||
|
|
|
@ -4,17 +4,17 @@ Subject: Move some account settings back to privacy settings
|
|||
|
||||
Search suggestions, autofill assistant and contextual search
|
||||
---
|
||||
.../java/res/xml/privacy_preferences.xml | 19 ++++++
|
||||
.../privacy/settings/PrivacySettings.java | 63 ++++++++++++++++++-
|
||||
2 files changed, 79 insertions(+), 3 deletions(-)
|
||||
.../java/res/xml/privacy_preferences.xml | 20 ++++++
|
||||
.../privacy/settings/PrivacySettings.java | 62 ++++++++++++++++++-
|
||||
2 files changed, 80 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -58,4 +58,23 @@
|
||||
android:summary="@string/clear_browsing_data_summary"
|
||||
android:fragment="org.chromium.chrome.browser.browsing_data.ClearBrowsingDataTabsFragment"
|
||||
android:order="5"/>
|
||||
@@ -63,4 +63,24 @@
|
||||
android:title="@string/prefs_privacy_sandbox"
|
||||
android:fragment="org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsFragment"
|
||||
android:order="7"/>
|
||||
+
|
||||
+ <PreferenceCategory
|
||||
+ android:key="services_category"
|
||||
|
@ -34,19 +34,12 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
|||
+ android:title="@string/contextual_search_title"
|
||||
+ android:fragment="org.chromium.chrome.browser.contextualsearch.ContextualSearchPreferenceFragment"/>
|
||||
+ </PreferenceCategory>
|
||||
+
|
||||
</PreferenceScreen>
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
@@ -24,7 +24,6 @@ import org.chromium.chrome.browser.preferences.Pref;
|
||||
import org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.safe_browsing.metrics.SettingsAccessPoint;
|
||||
-import org.chromium.chrome.browser.safe_browsing.settings.SafeBrowsingSettingsFragment;
|
||||
import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate;
|
||||
import org.chromium.chrome.browser.settings.SettingsLauncher;
|
||||
import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
|
||||
@@ -40,6 +39,13 @@ import org.chromium.ui.text.SpanApplier;
|
||||
@@ -39,6 +39,13 @@ import org.chromium.ui.text.SpanApplier;
|
||||
|
||||
import org.chromium.base.Log;
|
||||
|
||||
|
@ -60,9 +53,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
/**
|
||||
* Fragment to keep track of the all the privacy related preferences.
|
||||
*/
|
||||
@@ -56,6 +62,18 @@ public class PrivacySettings
|
||||
@@ -59,7 +66,8 @@ public class PrivacySettings
|
||||
PREF_CLOSE_TABS_ON_EXIT,
|
||||
PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX,
|
||||
PREF_ALLOW_CUSTOM_TAB_INTENTS,
|
||||
- PREF_PROXY_OPTIONS
|
||||
+ PREF_PROXY_OPTIONS,
|
||||
+ PREF_SERVICES_CATEGORY
|
||||
};
|
||||
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
@@ -70,6 +78,18 @@ public class PrivacySettings
|
||||
|
||||
private static final String PREF_PROXY_OPTIONS = "proxy";
|
||||
public static final String PREF_INCOGNITO_TAB_HISTORY_ENABLED = "incognito_history_enabled";
|
||||
|
||||
+ // moved from SyncAndServicesSettings.java
|
||||
+ private static final String PREF_SERVICES_CATEGORY = "services_category";
|
||||
|
@ -76,20 +79,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
+ SharedPreferencesManager.getInstance();
|
||||
+ private final PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
|
||||
+
|
||||
private static final String[] NEW_PRIVACY_PREFERENCE_ORDER = {PREF_CLEAR_BROWSING_DATA,
|
||||
PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS,
|
||||
PREF_SECURE_DNS, PREF_DO_NOT_TRACK,
|
||||
@@ -63,7 +81,8 @@ public class PrivacySettings
|
||||
PREF_INCOGNITO_TAB_HISTORY_ENABLED,
|
||||
PREF_ALLOW_CUSTOM_TAB_INTENTS,
|
||||
PREF_CLOSE_TABS_ON_EXIT,
|
||||
- PREF_PROXY_OPTIONS
|
||||
+ PREF_PROXY_OPTIONS,
|
||||
+ PREF_SERVICES_CATEGORY
|
||||
};
|
||||
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
@@ -89,6 +108,29 @@ public class PrivacySettings
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
PrivacyPreferencesManagerImpl privacyPrefManager =
|
||||
@@ -96,6 +116,29 @@ public class PrivacySettings
|
||||
|
||||
mManagedPreferenceDelegate = createManagedPreferenceDelegate();
|
||||
|
||||
|
@ -119,7 +112,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
ChromeSwitchPreference canMakePaymentPref =
|
||||
(ChromeSwitchPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
|
||||
canMakePaymentPref.setOnPreferenceChangeListener(this);
|
||||
@@ -121,6 +163,11 @@ public class PrivacySettings
|
||||
@@ -128,6 +171,11 @@ public class PrivacySettings
|
||||
} else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
|
||||
UserPrefs.get(Profile.getLastUsedRegularProfile())
|
||||
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
||||
|
@ -129,9 +122,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
+ mSharedPreferencesManager.writeBoolean(
|
||||
+ ChromePreferenceKeys.AUTOFILL_ASSISTANT_ENABLED, (boolean) newValue);
|
||||
} else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
|
||||
PrivacyPreferencesManager.getInstance().setNetworkPredictionEnabled((boolean) newValue);
|
||||
} else if (PREF_ALLOW_CUSTOM_TAB_INTENTS.equals(key)) {
|
||||
@@ -135,6 +182,16 @@ public class PrivacySettings
|
||||
PrivacyPreferencesManagerImpl.getInstance().setNetworkPredictionEnabled(
|
||||
(boolean) newValue);
|
||||
@@ -143,6 +191,16 @@ public class PrivacySettings
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -148,7 +141,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
@@ -145,7 +202,7 @@ public class PrivacySettings
|
||||
@@ -153,7 +211,7 @@ public class PrivacySettings
|
||||
* Updates the summaries for several preferences.
|
||||
*/
|
||||
public void updateSummaries() {
|
||||
|
|
|
@ -37,17 +37,18 @@ Added flag --fingerprinting-canvas-image-data-noise to disable Canvas image data
|
|||
third_party/blink/renderer/core/dom/range.cc | 12 +-
|
||||
.../renderer/core/html/canvas/text_metrics.cc | 18 ++
|
||||
.../renderer/core/html/canvas/text_metrics.h | 2 +
|
||||
.../canvas2d/base_rendering_context_2d.cc | 7 +
|
||||
.../canvas2d/canvas_rendering_context_2d.cc | 8 +-
|
||||
third_party/blink/renderer/platform/BUILD.gn | 5 +-
|
||||
.../platform/exported/web_runtime_features.cc | 12 ++
|
||||
.../platform/graphics/image_data_buffer.cc | 7 +
|
||||
.../platform/graphics/static_bitmap_image.cc | 160 ++++++++++++++++++
|
||||
.../platform/graphics/static_bitmap_image.cc | 155 ++++++++++++++++++
|
||||
.../platform/graphics/static_bitmap_image.h | 2 +
|
||||
.../platform/runtime_enabled_features.json5 | 9 +
|
||||
third_party/ungoogled/BUILD.gn | 10 ++
|
||||
third_party/ungoogled/ungoogled_switches.cc | 18 ++
|
||||
third_party/ungoogled/ungoogled_switches.h | 18 ++
|
||||
23 files changed, 343 insertions(+), 3 deletions(-)
|
||||
24 files changed, 345 insertions(+), 3 deletions(-)
|
||||
create mode 100644 third_party/ungoogled/BUILD.gn
|
||||
create mode 100644 third_party/ungoogled/ungoogled_switches.cc
|
||||
create mode 100644 third_party/ungoogled/ungoogled_switches.h
|
||||
|
@ -55,7 +56,7 @@ Added flag --fingerprinting-canvas-image-data-noise to disable Canvas image data
|
|||
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
--- a/chrome/browser/BUILD.gn
|
||||
+++ b/chrome/browser/BUILD.gn
|
||||
@@ -2244,6 +2244,7 @@ static_library("browser") {
|
||||
@@ -2302,6 +2302,7 @@ static_library("browser") {
|
||||
"//services/device/public/cpp:device_features",
|
||||
"//services/device/public/cpp/serial:switches",
|
||||
"//services/device/public/cpp/usb",
|
||||
|
@ -66,7 +67,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
|||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -168,6 +168,7 @@
|
||||
@@ -171,6 +171,7 @@
|
||||
#include "services/media_session/public/cpp/features.h"
|
||||
#include "services/network/public/cpp/features.h"
|
||||
#include "services/network/public/cpp/network_switches.h"
|
||||
|
@ -74,7 +75,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
#include "storage/browser/quota/quota_features.h"
|
||||
#include "third_party/blink/public/common/experiments/memory_ablation_experiment.h"
|
||||
#include "third_party/blink/public/common/features.h"
|
||||
@@ -2516,6 +2517,18 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -2643,6 +2644,18 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
{"enable-webrtc-srtp-aes-gcm", flag_descriptions::kWebrtcSrtpAesGcmName,
|
||||
flag_descriptions::kWebrtcSrtpAesGcmDescription, kOsAll,
|
||||
SINGLE_VALUE_TYPE(switches::kEnableWebRtcSrtpAesGcm)},
|
||||
|
@ -96,7 +97,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
|
||||
--- a/content/browser/BUILD.gn
|
||||
+++ b/content/browser/BUILD.gn
|
||||
@@ -217,6 +217,7 @@ source_set("browser") {
|
||||
@@ -219,6 +219,7 @@ source_set("browser") {
|
||||
"//third_party/libyuv",
|
||||
"//third_party/re2",
|
||||
"//third_party/sqlite",
|
||||
|
@ -107,7 +108,7 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
|
|||
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
|
||||
--- a/content/browser/renderer_host/render_process_host_impl.cc
|
||||
+++ b/content/browser/renderer_host/render_process_host_impl.cc
|
||||
@@ -219,6 +219,7 @@
|
||||
@@ -214,6 +214,7 @@
|
||||
#include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
|
||||
#include "third_party/blink/public/mojom/disk_allocator.mojom.h"
|
||||
#include "third_party/blink/public/public_buildflags.h"
|
||||
|
@ -115,7 +116,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content
|
|||
#include "third_party/skia/include/core/SkBitmap.h"
|
||||
#include "ui/accessibility/accessibility_switches.h"
|
||||
#include "ui/base/ui_base_switches.h"
|
||||
@@ -3280,6 +3281,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
|
||||
@@ -3184,6 +3185,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
|
||||
switches::kDisableBreakpad,
|
||||
switches::kDisableDatabases,
|
||||
switches::kDisableFileSystem,
|
||||
|
@ -148,7 +149,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
|
|||
#if defined(OS_ANDROID)
|
||||
#include "base/android/build_info.h"
|
||||
#endif
|
||||
@@ -530,6 +532,13 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs(
|
||||
@@ -540,6 +542,13 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs(
|
||||
// They're moved here to distinguish them from actual base checks
|
||||
WebRuntimeFeatures::EnableOverlayScrollbars(ui::IsOverlayScrollbarEnabled());
|
||||
|
||||
|
@ -165,16 +166,16 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
|
|||
diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_party/blink/public/platform/web_runtime_features.h
|
||||
--- a/third_party/blink/public/platform/web_runtime_features.h
|
||||
+++ b/third_party/blink/public/platform/web_runtime_features.h
|
||||
@@ -200,6 +200,9 @@ class WebRuntimeFeatures {
|
||||
@@ -199,6 +199,9 @@ class WebRuntimeFeatures {
|
||||
BLINK_PLATFORM_EXPORT static void EnableGetDisplayMedia(bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableGetCurrentBrowsingContextMedia(bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableAllowSyncXHRInPageDismissal(bool);
|
||||
+ BLINK_PLATFORM_EXPORT static void EnableFingerprintingClientRectsNoise(bool);
|
||||
+ BLINK_PLATFORM_EXPORT static void EnableFingerprintingCanvasMeasureTextNoise(bool);
|
||||
+ BLINK_PLATFORM_EXPORT static void EnableFingerprintingCanvasImageDataNoise(bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableShadowDOMV0(bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableCustomElementsV0(bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableHTMLImports(bool);
|
||||
BLINK_PLATFORM_EXPORT static void
|
||||
EnableSignedExchangePrefetchCacheForNavigations(bool);
|
||||
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
|
||||
--- a/third_party/blink/renderer/core/dom/document.cc
|
||||
+++ b/third_party/blink/renderer/core/dom/document.cc
|
||||
|
@ -186,7 +187,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
|
|||
#include "base/time/time.h"
|
||||
#include "cc/input/overscroll_behavior.h"
|
||||
#include "cc/input/scroll_snap_data.h"
|
||||
@@ -2513,6 +2514,23 @@ void Document::UpdateStyleAndLayoutTree() {
|
||||
@@ -2432,6 +2433,23 @@ void Document::UpdateStyleAndLayoutTree() {
|
||||
#if DCHECK_IS_ON()
|
||||
AssertLayoutTreeUpdated(*this);
|
||||
#endif
|
||||
|
@ -213,7 +214,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
|
|||
diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h
|
||||
--- a/third_party/blink/renderer/core/dom/document.h
|
||||
+++ b/third_party/blink/renderer/core/dom/document.h
|
||||
@@ -448,6 +448,10 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
@@ -442,6 +442,10 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
has_xml_declaration_ = has_xml_declaration ? 1 : 0;
|
||||
}
|
||||
|
||||
|
@ -224,7 +225,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/
|
|||
AtomicString visibilityState() const;
|
||||
bool IsPageVisible() const;
|
||||
bool hidden() const;
|
||||
@@ -1984,6 +1988,9 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
@@ -1970,6 +1974,9 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
|
||||
base::ElapsedTimer start_time_;
|
||||
|
||||
|
@ -237,7 +238,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/
|
|||
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc
|
||||
--- a/third_party/blink/renderer/core/dom/element.cc
|
||||
+++ b/third_party/blink/renderer/core/dom/element.cc
|
||||
@@ -2062,6 +2062,11 @@ DOMRectList* Element::getClientRects() {
|
||||
@@ -2057,6 +2057,11 @@ DOMRectList* Element::getClientRects() {
|
||||
DCHECK(element_layout_object);
|
||||
GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom(
|
||||
quads, *element_layout_object);
|
||||
|
@ -249,7 +250,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/
|
|||
return MakeGarbageCollected<DOMRectList>(quads);
|
||||
}
|
||||
|
||||
@@ -2079,6 +2084,9 @@ DOMRect* Element::getBoundingClientRect() {
|
||||
@@ -2074,6 +2079,9 @@ DOMRect* Element::getBoundingClientRect() {
|
||||
DCHECK(element_layout_object);
|
||||
GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result,
|
||||
*element_layout_object);
|
||||
|
@ -328,10 +329,34 @@ diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.h b/third_
|
|||
private:
|
||||
void Update(const Font&,
|
||||
const TextDirection&,
|
||||
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
|
||||
--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
|
||||
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
|
||||
@@ -26,6 +26,7 @@
|
||||
#include "third_party/blink/renderer/platform/graphics/skia/skia_utils.h"
|
||||
#include "third_party/blink/renderer/platform/graphics/stroke_data.h"
|
||||
#include "third_party/blink/renderer/platform/heap/heap.h"
|
||||
+#include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
|
||||
|
||||
namespace blink {
|
||||
|
||||
@@ -1772,6 +1773,12 @@ ImageData* BaseRenderingContext2D::getImageDataInternal(
|
||||
snapshot->PaintImageForCurrentFrame().GetSkImageInfo().bounds();
|
||||
DCHECK(!bounds.intersect(SkIRect::MakeXYWH(sx, sy, sw, sh)));
|
||||
}
|
||||
+
|
||||
+ if (read_pixels_successful && RuntimeEnabledFeatures::FingerprintingCanvasImageDataNoiseEnabled()) {
|
||||
+ base::span<uint8_t> dst = base::span<uint8_t>(reinterpret_cast<uint8_t*>(contents.Data()),
|
||||
+ contents.DataLength());
|
||||
+ StaticBitmapImage::ShuffleSubchannelColorData(dst.data(), image_info, sx, sy);
|
||||
+ }
|
||||
}
|
||||
|
||||
// Wrap |contents| in an ImageData.
|
||||
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
|
||||
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
|
||||
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
|
||||
@@ -947,9 +947,15 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
|
||||
@@ -974,9 +974,15 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
|
||||
else
|
||||
direction = ToTextDirection(GetState().GetDirection(), canvas());
|
||||
|
||||
|
@ -351,7 +376,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering
|
|||
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
|
||||
--- a/third_party/blink/renderer/platform/BUILD.gn
|
||||
+++ b/third_party/blink/renderer/platform/BUILD.gn
|
||||
@@ -1584,7 +1584,9 @@ component("platform") {
|
||||
@@ -1602,7 +1602,9 @@ component("platform") {
|
||||
"//third_party/blink/renderer:non_test_config",
|
||||
]
|
||||
|
||||
|
@ -362,9 +387,9 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re
|
|||
|
||||
allow_circular_includes_from = [
|
||||
"//third_party/blink/renderer/platform/blob",
|
||||
@@ -1647,6 +1649,7 @@ component("platform") {
|
||||
"//third_party/blink/public/strings",
|
||||
@@ -1666,6 +1668,7 @@ component("platform") {
|
||||
"//third_party/blink/renderer/platform/wtf",
|
||||
"//third_party/blink/renderer/platform/wtf:buildflags",
|
||||
"//third_party/ced",
|
||||
+ "//third_party/ungoogled:switches",
|
||||
"//third_party/emoji-segmenter",
|
||||
|
@ -373,8 +398,8 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re
|
|||
diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.cc b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
|
||||
--- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc
|
||||
+++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
|
||||
@@ -647,4 +647,16 @@ void WebRuntimeFeatures::EnableTargetBlankImpliesNoOpener(bool enable) {
|
||||
RuntimeEnabledFeatures::SetTargetBlankImpliesNoOpenerEnabled(enable);
|
||||
@@ -643,4 +643,16 @@ void WebRuntimeFeatures::EnableCSSColorSchemeUARendering(bool enable) {
|
||||
RuntimeEnabledFeatures::SetCSSColorSchemeUARenderingEnabled(enable);
|
||||
}
|
||||
|
||||
+void WebRuntimeFeatures::EnableFingerprintingClientRectsNoise(bool enable) {
|
||||
|
@ -421,8 +446,8 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
|
|||
|
||||
#include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
|
||||
|
||||
+#include "base/rand_util.h"
|
||||
+#include "base/logging.h"
|
||||
+#include "base/rand_util.h"
|
||||
#include "base/numerics/checked_math.h"
|
||||
#include "gpu/command_buffer/client/gles2_interface.h"
|
||||
#include "third_party/blink/renderer/platform/graphics/accelerated_static_bitmap_image.h"
|
||||
|
@ -436,16 +461,8 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
|
|||
namespace blink {
|
||||
|
||||
scoped_refptr<StaticBitmapImage> StaticBitmapImage::Create(
|
||||
@@ -128,7 +133,162 @@ bool StaticBitmapImage::CopyToByteArray(
|
||||
.bounds()
|
||||
.intersect(SkIRect::MakeXYWH(rect.X(), rect.Y(), info.width(),
|
||||
info.height())));
|
||||
+
|
||||
+ if (read_pixels_successful && RuntimeEnabledFeatures::FingerprintingCanvasImageDataNoiseEnabled()) {
|
||||
+ ShuffleSubchannelColorData(dst.data(), info, rect.X(), rect.Y());
|
||||
+ }
|
||||
+
|
||||
return true;
|
||||
@@ -79,4 +84,154 @@ void StaticBitmapImage::DrawHelper(
|
||||
WebCoreClampingModeToSkiaRectConstraint(clamp_mode));
|
||||
}
|
||||
|
||||
+// set the component to maximum-delta if it is >= maximum, or add to existing color component (color + delta)
|
||||
|
@ -614,8 +631,8 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h
|
|||
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
@@ -850,6 +850,15 @@
|
||||
origin_trial_feature_name: "FeaturePolicyReporting",
|
||||
@@ -863,6 +863,15 @@
|
||||
name: "FeaturePolicyReporting",
|
||||
status: "experimental"
|
||||
},
|
||||
+ {
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: Never send any crash upload data
|
|||
diff --git a/chrome/browser/tracing/crash_service_uploader.cc b/chrome/browser/tracing/crash_service_uploader.cc
|
||||
--- a/chrome/browser/tracing/crash_service_uploader.cc
|
||||
+++ b/chrome/browser/tracing/crash_service_uploader.cc
|
||||
@@ -126,14 +126,16 @@ void TraceCrashServiceUploader::DoUpload(
|
||||
@@ -127,14 +127,16 @@ void TraceCrashServiceUploader::DoUpload(
|
||||
UploadDoneCallback done_callback) {
|
||||
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: Offer builtin autocomplete for chrome://flags
|
|||
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||
@@ -329,6 +329,8 @@ std::vector<base::string16> ChromeAutocompleteProviderClient::GetBuiltinURLs() {
|
||||
@@ -330,6 +330,8 @@ std::vector<base::string16> ChromeAutocompleteProviderClient::GetBuiltinURLs() {
|
||||
std::vector<base::string16>
|
||||
ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
|
||||
std::vector<base::string16> builtins_to_provide;
|
||||
|
|
|
@ -9,23 +9,23 @@ Subject: Open YouTube links in Bromite
|
|||
diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
|
||||
--- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
|
||||
+++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
|
||||
@@ -499,6 +499,7 @@ public class ExternalNavigationHandler {
|
||||
@@ -571,6 +571,7 @@ public class ExternalNavigationHandler {
|
||||
startActivity(intent, false, mDelegate);
|
||||
return OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT;
|
||||
return OverrideUrlLoadingResult.forExternalIntent();
|
||||
}
|
||||
+
|
||||
}
|
||||
|
||||
private static void loadUrlWithReferrer(
|
||||
@@ -1153,6 +1154,13 @@ public class ExternalNavigationHandler {
|
||||
return OverrideUrlLoadingResult.OVERRIDE_WITH_ASYNC_ACTION;
|
||||
@@ -1229,6 +1230,13 @@ public class ExternalNavigationHandler {
|
||||
OverrideUrlLoadingAsyncActionType.UI_GATING_BROWSER_NAVIGATION);
|
||||
}
|
||||
|
||||
+ // force to open YouTube urls in Bromite
|
||||
+ // force to open YouTube URLs in Bromite
|
||||
+ String intentPackageName = targetIntent.getPackage();
|
||||
+ if (intentPackageName != null && intentPackageName.equals("com.google.android.youtube")) {
|
||||
+ if (DEBUG) Log.i(TAG, "NO_OVERRIDE: YouTube URL for YouTube app");
|
||||
+ return OverrideUrlLoadingResult.NO_OVERRIDE;
|
||||
+ return OverrideUrlLoadingResult.forNoOverride();
|
||||
+ }
|
||||
+
|
||||
// This should come after file intents, but before any returns of
|
||||
|
|
|
@ -1,103 +0,0 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 23 Sep 2020 14:47:44 +0200
|
||||
Subject: Password service build fixes
|
||||
|
||||
---
|
||||
.../password_manager/chrome_password_manager_client.cc | 2 ++
|
||||
.../safe_browsing/chrome_password_protection_service.h | 2 --
|
||||
.../password_manager/core/browser/password_manager_client.h | 2 ++
|
||||
.../core/browser/password_reuse_detection_manager.cc | 2 ++
|
||||
.../password_protection/password_protection_request.cc | 2 --
|
||||
.../password_protection/password_protection_service.h | 5 -----
|
||||
6 files changed, 6 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc
|
||||
--- a/chrome/browser/password_manager/chrome_password_manager_client.cc
|
||||
+++ b/chrome/browser/password_manager/chrome_password_manager_client.cc
|
||||
@@ -462,7 +462,9 @@ void ChromePasswordManagerClient::ShowTouchToFill(
|
||||
#if defined(OS_ANDROID)
|
||||
void ChromePasswordManagerClient::OnPasswordSelected(
|
||||
const base::string16& text) {
|
||||
+#if defined(PASSWORD_REUSE_DETECTION_ENABLED)
|
||||
password_reuse_detection_manager_.OnPaste(text);
|
||||
+#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
diff --git a/chrome/browser/safe_browsing/chrome_password_protection_service.h b/chrome/browser/safe_browsing/chrome_password_protection_service.h
|
||||
--- a/chrome/browser/safe_browsing/chrome_password_protection_service.h
|
||||
+++ b/chrome/browser/safe_browsing/chrome_password_protection_service.h
|
||||
@@ -255,8 +255,6 @@ class ChromePasswordProtectionService : public PasswordProtectionService {
|
||||
// |NOT_SIGNED_IN|.
|
||||
LoginReputationClientRequest::PasswordReuseEvent::SyncAccountType
|
||||
GetSyncAccountType() const override;
|
||||
- safe_browsing::LoginReputationClientRequest::UrlDisplayExperiment
|
||||
- GetUrlDisplayExperiment() const override;
|
||||
|
||||
// Stores |verdict| in the cache based on its |trigger_type|, |url|,
|
||||
// reused |password_type|, |verdict| and |receive_time|.
|
||||
diff --git a/components/password_manager/core/browser/password_manager_client.h b/components/password_manager/core/browser/password_manager_client.h
|
||||
--- a/components/password_manager/core/browser/password_manager_client.h
|
||||
+++ b/components/password_manager/core/browser/password_manager_client.h
|
||||
@@ -325,6 +325,7 @@ class PasswordManagerClient {
|
||||
// Returns the current best guess as to the page's display language.
|
||||
virtual std::string GetPageLanguage() const;
|
||||
|
||||
+#if defined(PASSWORD_REUSE_DETECTION_ENABLED)
|
||||
// Return the PasswordProtectionService associated with this instance.
|
||||
virtual safe_browsing::PasswordProtectionService*
|
||||
GetPasswordProtectionService() const = 0;
|
||||
@@ -349,6 +350,7 @@ class PasswordManagerClient {
|
||||
const std::string& username,
|
||||
const std::vector<MatchingReusedCredential>& matching_reused_credentials,
|
||||
bool password_field_exists) = 0;
|
||||
+#endif
|
||||
|
||||
#if defined(PASSWORD_REUSE_WARNING_ENABLED)
|
||||
// Records a Chrome Sync event that GAIA password reuse was detected.
|
||||
diff --git a/components/password_manager/core/browser/password_reuse_detection_manager.cc b/components/password_manager/core/browser/password_reuse_detection_manager.cc
|
||||
--- a/components/password_manager/core/browser/password_reuse_detection_manager.cc
|
||||
+++ b/components/password_manager/core/browser/password_reuse_detection_manager.cc
|
||||
@@ -172,10 +172,12 @@ void PasswordReuseDetectionManager::OnReuseCheckDone(
|
||||
? reused_protected_password_hash->username
|
||||
: "";
|
||||
|
||||
+#if defined(PASSWORD_REUSE_DETECTION_ENABLED)
|
||||
client_->CheckProtectedPasswordEntry(
|
||||
reused_password_type, username,
|
||||
std::move(all_matching_reused_credentials_).extract(),
|
||||
password_field_detected);
|
||||
+#endif
|
||||
|
||||
all_matching_reused_credentials_.clear();
|
||||
}
|
||||
diff --git a/components/safe_browsing/content/password_protection/password_protection_request.cc b/components/safe_browsing/content/password_protection/password_protection_request.cc
|
||||
--- a/components/safe_browsing/content/password_protection/password_protection_request.cc
|
||||
+++ b/components/safe_browsing/content/password_protection/password_protection_request.cc
|
||||
@@ -133,8 +133,6 @@ PasswordProtectionRequest::PasswordProtectionRequest(
|
||||
password_type_ != PasswordType::SAVED_PASSWORD ||
|
||||
!matching_reused_credentials_.empty());
|
||||
request_proto_->set_trigger_type(trigger_type_);
|
||||
- *request_proto_->mutable_url_display_experiment() =
|
||||
- pps->GetUrlDisplayExperiment();
|
||||
}
|
||||
|
||||
PasswordProtectionRequest::~PasswordProtectionRequest() {
|
||||
diff --git a/components/safe_browsing/content/password_protection/password_protection_service.h b/components/safe_browsing/content/password_protection/password_protection_service.h
|
||||
--- a/components/safe_browsing/content/password_protection/password_protection_service.h
|
||||
+++ b/components/safe_browsing/content/password_protection/password_protection_service.h
|
||||
@@ -423,11 +423,6 @@ class PasswordProtectionService : public history::HistoryServiceObserver {
|
||||
virtual LoginReputationClientRequest::PasswordReuseEvent::SyncAccountType
|
||||
GetSyncAccountType() const = 0;
|
||||
|
||||
- // Get information about Delayed Warnings and Omnibox URL display experiments.
|
||||
- // This information is sent in PhishGuard pings.
|
||||
- virtual LoginReputationClientRequest::UrlDisplayExperiment
|
||||
- GetUrlDisplayExperiment() const = 0;
|
||||
-
|
||||
// Returns the reason why a ping is not sent based on the |trigger_type|,
|
||||
// |url| and |password_type|. Crash if |CanSendPing| is true.
|
||||
virtual RequestOutcome GetPingNotSentReason(
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -27,7 +27,7 @@ diff --git a/net/base/load_flags_list.h b/net/base/load_flags_list.h
|
|||
diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
|
||||
--- a/net/dns/dns_transaction.cc
|
||||
+++ b/net/dns/dns_transaction.cc
|
||||
@@ -406,7 +406,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
|
||||
@@ -411,7 +411,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
|
||||
// Disable secure DNS for any DoH server hostname lookups to avoid deadlock.
|
||||
request_->SetDisableSecureDns(true);
|
||||
request_->SetLoadFlags(request_->load_flags() | LOAD_DISABLE_CACHE |
|
||||
|
@ -39,7 +39,7 @@ diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
|
|||
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
|
||||
--- a/net/url_request/url_request_http_job.cc
|
||||
+++ b/net/url_request/url_request_http_job.cc
|
||||
@@ -326,6 +326,7 @@ void URLRequestHttpJob::Start() {
|
||||
@@ -286,6 +286,7 @@ void URLRequestHttpJob::Start() {
|
||||
// plugin could set a referrer although sending the referrer is inhibited.
|
||||
request_info_.extra_headers.RemoveHeader(HttpRequestHeaders::kReferer);
|
||||
|
||||
|
@ -47,7 +47,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
|
|||
// Our consumer should have made sure that this is a safe referrer (e.g. via
|
||||
// URLRequestJob::ComputeReferrerForPolicy).
|
||||
if (referrer.is_valid()) {
|
||||
@@ -333,11 +334,14 @@ void URLRequestHttpJob::Start() {
|
||||
@@ -293,11 +294,14 @@ void URLRequestHttpJob::Start() {
|
||||
request_info_.extra_headers.SetHeader(HttpRequestHeaders::kReferer,
|
||||
referer_value);
|
||||
}
|
||||
|
@ -62,7 +62,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
|
|||
|
||||
AddExtraHeaders();
|
||||
AddCookieHeaderAndStart();
|
||||
@@ -534,10 +538,12 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
@@ -499,10 +503,12 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
} else {
|
||||
// Advertise "br" encoding only if transferred data is opaque to proxy.
|
||||
bool advertise_brotli = false;
|
||||
|
@ -79,7 +79,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
|
|||
}
|
||||
}
|
||||
|
||||
@@ -555,7 +561,7 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
@@ -520,7 +526,7 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,14 +5,14 @@ Subject: Remove SMS integration
|
|||
---
|
||||
.../content/browser/sms/SmsProviderGms.java | 9 +---
|
||||
.../browser/sms/SmsUserConsentReceiver.java | 46 ++-----------------
|
||||
.../browser/sms/SmsVerificationReceiver.java | 43 +++--------------
|
||||
.../browser/sms/SmsVerificationReceiver.java | 41 ++++-------------
|
||||
.../content/browser/sms/Wrappers.java | 28 +----------
|
||||
4 files changed, 12 insertions(+), 114 deletions(-)
|
||||
4 files changed, 14 insertions(+), 110 deletions(-)
|
||||
|
||||
diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/SmsProviderGms.java b/content/public/android/java/src/org/chromium/content/browser/sms/SmsProviderGms.java
|
||||
--- a/content/public/android/java/src/org/chromium/content/browser/sms/SmsProviderGms.java
|
||||
+++ b/content/public/android/java/src/org/chromium/content/browser/sms/SmsProviderGms.java
|
||||
@@ -126,13 +126,6 @@ public class SmsProviderGms {
|
||||
@@ -123,13 +123,6 @@ public class SmsProviderGms {
|
||||
}
|
||||
|
||||
public Wrappers.SmsRetrieverClientWrapper getClient() {
|
||||
|
@ -26,9 +26,9 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm
|
|||
return mClient;
|
||||
}
|
||||
|
||||
@@ -153,4 +146,4 @@ public class SmsProviderGms {
|
||||
void onTimeout(long nativeSmsProviderGms);
|
||||
@@ -151,4 +144,4 @@ public class SmsProviderGms {
|
||||
void onCancel(long nativeSmsProviderGms);
|
||||
void onNotAvailable(long nativeSmsProviderGms);
|
||||
}
|
||||
-}
|
||||
\ No newline at end of file
|
||||
|
@ -99,7 +99,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm
|
|||
void onConsentResult(int resultCode, Intent data) {
|
||||
- if (resultCode == Activity.RESULT_OK) {
|
||||
- String message = data.getStringExtra(SmsRetriever.EXTRA_SMS_MESSAGE);
|
||||
- mProvider.onReceive(message);
|
||||
- mProvider.onReceive(message, GmsBackend.USER_CONSENT);
|
||||
- } else if (resultCode == Activity.RESULT_CANCELED) {
|
||||
- if (DEBUG) Log.d(TAG, "Activity result cancelled.");
|
||||
- mProvider.onCancel();
|
||||
|
@ -138,9 +138,9 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm
|
|||
-import com.google.android.gms.tasks.Task;
|
||||
-
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.base.metrics.RecordHistogram;
|
||||
import org.chromium.ui.base.WindowAndroid;
|
||||
|
||||
@@ -46,35 +36,18 @@ public class SmsVerificationReceiver extends BroadcastReceiver {
|
||||
@@ -54,35 +44,18 @@ public class SmsVerificationReceiver extends BroadcastReceiver {
|
||||
mDestroyed = false;
|
||||
mProvider = provider;
|
||||
mContext = context;
|
||||
|
@ -177,7 +177,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm
|
|||
return;
|
||||
}
|
||||
|
||||
@@ -105,7 +78,7 @@ public class SmsVerificationReceiver extends BroadcastReceiver {
|
||||
@@ -113,7 +86,7 @@ public class SmsVerificationReceiver extends BroadcastReceiver {
|
||||
if (DEBUG) Log.d(TAG, "Timeout");
|
||||
mProvider.onTimeout();
|
||||
break;
|
||||
|
@ -186,34 +186,39 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm
|
|||
}
|
||||
|
||||
public void onPermissionDone(WindowAndroid window, int resultCode) {
|
||||
@@ -125,7 +98,7 @@ public class SmsVerificationReceiver extends BroadcastReceiver {
|
||||
@@ -133,7 +106,7 @@ public class SmsVerificationReceiver extends BroadcastReceiver {
|
||||
* task.
|
||||
*/
|
||||
public void onRetrieverTaskFailure(WindowAndroid window, Exception e) {
|
||||
- if (DEBUG) Log.d(TAG, "Task failed. Attempting recovery.", e);
|
||||
+/* if (DEBUG) Log.d(TAG, "Task failed. Attempting recovery.", e);
|
||||
+ /*if (DEBUG) Log.d(TAG, "Task failed. Attempting recovery.", e);
|
||||
BackendAvailability availability = BackendAvailability.AVAILABLE;
|
||||
ApiException exception = (ApiException) e;
|
||||
if (exception.getStatusCode() == SmsRetrieverStatusCodes.API_NOT_CONNECTED) {
|
||||
mProvider.onMethodNotAvailable();
|
||||
@@ -162,15 +135,11 @@ public class SmsVerificationReceiver extends BroadcastReceiver {
|
||||
}
|
||||
@@ -175,18 +148,20 @@ public class SmsVerificationReceiver extends BroadcastReceiver {
|
||||
} else {
|
||||
Log.w(TAG, "Unexpected exception", e);
|
||||
- }
|
||||
+ }*/
|
||||
}
|
||||
- reportBackendAvailability(availability);
|
||||
+ reportBackendAvailability(availability);*/
|
||||
+ Log.w(TAG, "Unexpected exception", e);
|
||||
}
|
||||
|
||||
public void listen(WindowAndroid window) {
|
||||
- Wrappers.SmsRetrieverClientWrapper client = mProvider.getClient();
|
||||
- Task<Void> task = client.startSmsCodeBrowserRetriever();
|
||||
-
|
||||
- task.addOnFailureListener((Exception e) -> { this.onRetrieverTaskFailure(window, e); });
|
||||
-
|
||||
+ /*Wrappers.SmsRetrieverClientWrapper client = mProvider.getClient();
|
||||
Task<Void> task = client.startSmsCodeBrowserRetriever();
|
||||
|
||||
task.addOnSuccessListener(
|
||||
unused -> { this.reportBackendAvailability(BackendAvailability.AVAILABLE); });
|
||||
task.addOnFailureListener((Exception e) -> { this.onRetrieverTaskFailure(window, e); });
|
||||
|
||||
- if (DEBUG) Log.d(TAG, "Installed task");
|
||||
+ if (DEBUG) Log.d(TAG, "Installed task"); */
|
||||
+ if (DEBUG) Log.d(TAG, "Ignored task");
|
||||
}
|
||||
}
|
||||
|
||||
public void reportBackendAvailability(BackendAvailability availability) {
|
||||
diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Wrappers.java b/content/public/android/java/src/org/chromium/content/browser/sms/Wrappers.java
|
||||
--- a/content/public/android/java/src/org/chromium/content/browser/sms/Wrappers.java
|
||||
+++ b/content/public/android/java/src/org/chromium/content/browser/sms/Wrappers.java
|
||||
|
|
4968
build/patches/Remove-binary-blob-integrations.patch
Normal file
4968
build/patches/Remove-binary-blob-integrations.patch
Normal file
File diff suppressed because it is too large
Load diff
|
@ -9,7 +9,7 @@ Subject: Remove blocklisted URLs upon bookmark creation
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
@@ -141,6 +141,8 @@ import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
|
||||
@@ -143,6 +143,8 @@ import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
|
||||
import org.chromium.chrome.browser.settings.AdBlockPreferences;
|
||||
import org.chromium.chrome.browser.share.ShareDelegate;
|
||||
import org.chromium.chrome.browser.share.ShareDelegateImpl;
|
||||
|
@ -18,7 +18,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
import org.chromium.chrome.browser.tab.AccessibilityVisibilityHandler;
|
||||
import org.chromium.chrome.browser.tab.Tab;
|
||||
import org.chromium.chrome.browser.tab.TabHidingType;
|
||||
@@ -212,6 +214,8 @@ import org.chromium.ui.widget.Toast;
|
||||
@@ -216,6 +218,8 @@ import org.chromium.url.GURL;
|
||||
import org.chromium.url.Origin;
|
||||
import org.chromium.webapk.lib.client.WebApkNavigationClient;
|
||||
|
||||
|
@ -27,7 +27,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
@@ -256,6 +260,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -260,6 +264,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
|
||||
private UmaSessionStats mUmaSessionStats;
|
||||
private ContextReporter mContextReporter;
|
||||
|
@ -35,7 +35,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
|
||||
private boolean mPartnerBrowserRefreshNeeded;
|
||||
|
||||
@@ -1255,6 +1260,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -1270,6 +1275,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
mCompositorViewHolder = null;
|
||||
}
|
||||
|
||||
|
@ -47,7 +47,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
onDestroyInternal();
|
||||
|
||||
if (mDidAddPolicyChangeListener) {
|
||||
@@ -1491,6 +1501,13 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -1518,6 +1528,13 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
|
||||
// Defense in depth against the UI being erroneously enabled.
|
||||
BookmarkBridge bridge = mBookmarkBridgeSupplier.get();
|
||||
|
|
|
@ -1,763 +0,0 @@
|
|||
From: Wengling Chen <feiyu2817@gmail.com>
|
||||
Date: Sat, 2 Nov 2019 08:58:19 +0100
|
||||
Subject: Remove dependency on auth, signin, dynamic and tasks
|
||||
|
||||
---
|
||||
chrome/android/BUILD.gn | 8 --
|
||||
chrome/android/java/AndroidManifest.xml | 9 --
|
||||
.../org/chromium/chrome/browser/AppHooks.java | 14 +---
|
||||
.../browser/PlayServicesVersionInfo.java | 12 +--
|
||||
.../component_updater/UpdateScheduler.java | 1 -
|
||||
.../externalauth/ExternalAuthUtils.java | 18 +---
|
||||
.../UserRecoverableErrorHandler.java | 7 --
|
||||
.../gcore/ChromeGoogleApiClientImpl.java | 25 +-----
|
||||
.../browser/gcore/GoogleApiClientHelper.java | 82 +------------------
|
||||
.../browser/omaha/UpdateStatusProvider.java | 10 +--
|
||||
chrome/test/android/BUILD.gn | 2 -
|
||||
components/background_task_scheduler/BUILD.gn | 4 -
|
||||
.../internal/BUILD.gn | 6 --
|
||||
.../media_router/BrowserMediaRouter.java | 18 +---
|
||||
.../signin/core/browser/android/BUILD.gn | 2 -
|
||||
.../signin/GmsAvailabilityException.java | 4 +-
|
||||
content/public/android/BUILD.gn | 3 -
|
||||
content/test/BUILD.gn | 3 -
|
||||
device/BUILD.gn | 2 -
|
||||
remoting/android/client_java_tmpl.gni | 3 -
|
||||
services/BUILD.gn | 2 -
|
||||
services/device/geolocation/BUILD.gn | 2 -
|
||||
services/shape_detection/BUILD.gn | 2 -
|
||||
third_party/android_deps/BUILD.gn | 46 -----------
|
||||
24 files changed, 15 insertions(+), 270 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
+++ b/chrome/android/BUILD.gn
|
||||
@@ -278,9 +278,6 @@ android_library("chrome_java") {
|
||||
":partner_location_descriptor_proto_java",
|
||||
":update_proto_java",
|
||||
":usage_stats_proto_java",
|
||||
- "$google_play_services_package:google_play_services_base_java",
|
||||
- "$google_play_services_package:google_play_services_basement_java",
|
||||
- "$google_play_services_package:google_play_services_tasks_java",
|
||||
"//base:base_java",
|
||||
"//base:jni_java",
|
||||
"//chrome/android/features/keyboard_accessory:public_java",
|
||||
@@ -765,8 +762,6 @@ junit_binary("chrome_junit_tests") {
|
||||
":chrome_app_java_resources",
|
||||
":chrome_java",
|
||||
":partner_location_descriptor_proto_java",
|
||||
- "$google_play_services_package:google_play_services_base_java",
|
||||
- "$google_play_services_package:google_play_services_basement_java",
|
||||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
"//base:base_junit_test_support",
|
||||
@@ -980,9 +975,6 @@ android_library("chrome_test_java") {
|
||||
":chrome_app_java_resources",
|
||||
":chrome_test_util_java",
|
||||
":partner_location_descriptor_proto_java",
|
||||
- "$google_play_services_package:google_play_services_base_java",
|
||||
- "$google_play_services_package:google_play_services_basement_java",
|
||||
- "$google_play_services_package:google_play_services_tasks_java",
|
||||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
"//base:jni_java",
|
||||
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
|
||||
--- a/chrome/android/java/AndroidManifest.xml
|
||||
+++ b/chrome/android/java/AndroidManifest.xml
|
||||
@@ -774,15 +774,6 @@ by a child template that "extends" this file.
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
- <!-- Activity for dispatching intents to Instant Apps. -->
|
||||
- <activity
|
||||
- android:name="org.chromium.chrome.browser.instantapps.AuthenticatedProxyActivity"
|
||||
- android:exported="false"
|
||||
- android:theme="@android:style/Theme.NoDisplay"
|
||||
- android:noHistory="true"
|
||||
- android:excludeFromRecents="true">
|
||||
- </activity>
|
||||
-
|
||||
<activity
|
||||
android:name="org.chromium.chrome.browser.vr.VrCancelAnimationActivity"
|
||||
android:exported="false"
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java b/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java
|
||||
@@ -10,9 +10,6 @@ import android.content.pm.PackageManager;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
|
||||
-import com.google.android.gms.common.ConnectionResult;
|
||||
-import com.google.android.gms.common.GoogleApiAvailability;
|
||||
-
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.annotations.CalledByNative;
|
||||
import org.chromium.chrome.browser.banners.AppDetailsDelegate;
|
||||
@@ -327,16 +324,7 @@ public abstract class AppHooks {
|
||||
* same as {@link GoogleApiAvailability#isGooglePlayServicesAvailable()}.
|
||||
*/
|
||||
public int isGoogleApiAvailableWithMinApkVersion(int minApkVersion) {
|
||||
- try {
|
||||
- PackageInfo gmsPackageInfo =
|
||||
- ContextUtils.getApplicationContext().getPackageManager().getPackageInfo(
|
||||
- GoogleApiAvailability.GOOGLE_PLAY_SERVICES_PACKAGE, /* flags= */ 0);
|
||||
- int apkVersion = gmsPackageInfo.versionCode;
|
||||
- if (apkVersion >= minApkVersion) return ConnectionResult.SUCCESS;
|
||||
- } catch (PackageManager.NameNotFoundException e) {
|
||||
- return ConnectionResult.SERVICE_MISSING;
|
||||
- }
|
||||
- return ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED;
|
||||
+ return 1; /* SERVICE_MISSING*/
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVersionInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVersionInfo.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVersionInfo.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVersionInfo.java
|
||||
@@ -7,8 +7,6 @@ package org.chromium.chrome.browser;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
|
||||
-import com.google.android.gms.common.GoogleApiAvailability;
|
||||
-
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.annotations.CalledByNative;
|
||||
import org.chromium.chrome.browser.externalauth.ExternalAuthUtils;
|
||||
@@ -29,7 +27,7 @@ public class PlayServicesVersionInfo {
|
||||
public static String getGmsInfo() {
|
||||
Context context = ContextUtils.getApplicationContext();
|
||||
|
||||
- final long sdkVersion = GoogleApiAvailability.GOOGLE_PLAY_SERVICES_VERSION_CODE;
|
||||
+ final long sdkVersion = 12600000;
|
||||
final long installedGmsVersion = getApkVersionNumber(context);
|
||||
|
||||
final String accessType;
|
||||
@@ -53,12 +51,6 @@ public class PlayServicesVersionInfo {
|
||||
* package is not found.
|
||||
*/
|
||||
public static int getApkVersionNumber(Context context) {
|
||||
- try {
|
||||
- return context.getPackageManager()
|
||||
- .getPackageInfo(GoogleApiAvailability.GOOGLE_PLAY_SERVICES_PACKAGE, 0)
|
||||
- .versionCode;
|
||||
- } catch (PackageManager.NameNotFoundException e) {
|
||||
- return 0;
|
||||
- }
|
||||
+ return 0;
|
||||
}
|
||||
}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/component_updater/UpdateScheduler.java b/chrome/android/java/src/org/chromium/chrome/browser/component_updater/UpdateScheduler.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/component_updater/UpdateScheduler.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/component_updater/UpdateScheduler.java
|
||||
@@ -14,7 +14,6 @@ import org.chromium.components.background_task_scheduler.BackgroundTask.TaskFini
|
||||
import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory;
|
||||
import org.chromium.components.background_task_scheduler.TaskIds;
|
||||
import org.chromium.components.background_task_scheduler.TaskInfo;
|
||||
-import org.chromium.gms.ChromiumPlayServicesAvailability;
|
||||
|
||||
/** Java-side implementation of the component update scheduler using the BackgroundTaskScheduler. */
|
||||
@JNINamespace("component_updater")
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtils.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtils.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtils.java
|
||||
@@ -15,16 +15,12 @@ import android.text.TextUtils;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.annotation.WorkerThread;
|
||||
|
||||
-import com.google.android.gms.common.ConnectionResult;
|
||||
-import com.google.android.gms.common.GoogleApiAvailability;
|
||||
-
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.base.StrictModeContext;
|
||||
import org.chromium.base.task.PostTask;
|
||||
import org.chromium.components.embedder_support.util.Origin;
|
||||
import org.chromium.content_public.browser.UiThreadTaskTraits;
|
||||
-import org.chromium.gms.ChromiumPlayServicesAvailability;
|
||||
|
||||
/**
|
||||
* Utility class for external authentication tools.
|
||||
@@ -157,9 +153,7 @@ public class ExternalAuthUtils {
|
||||
* when it is updating.
|
||||
*/
|
||||
public boolean isGooglePlayServicesMissing(final Context context) {
|
||||
- final int resultCode = checkGooglePlayServicesAvailable(context);
|
||||
- return (resultCode == ConnectionResult.SERVICE_MISSING
|
||||
- || resultCode == ConnectionResult.SERVICE_INVALID);
|
||||
+ return true;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -176,7 +170,6 @@ public class ExternalAuthUtils {
|
||||
public boolean canUseGooglePlayServices(final UserRecoverableErrorHandler errorHandler) {
|
||||
Context context = ContextUtils.getApplicationContext();
|
||||
final int resultCode = checkGooglePlayServicesAvailable(context);
|
||||
- if (resultCode == ConnectionResult.SUCCESS) return true;
|
||||
// resultCode is some kind of error.
|
||||
Log.v(TAG, "Unable to use Google Play Services: %s", describeError(resultCode));
|
||||
if (isUserRecoverableError(resultCode)) {
|
||||
@@ -239,10 +232,7 @@ public class ExternalAuthUtils {
|
||||
* @return The code produced by calling the external code
|
||||
*/
|
||||
protected int checkGooglePlayServicesAvailable(final Context context) {
|
||||
- // TODO(crbug.com/577190): Temporarily allowing disk access until more permanent fix is in.
|
||||
- try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) {
|
||||
- return ChromiumPlayServicesAvailability.getGooglePlayServicesConnectionResult(context);
|
||||
- }
|
||||
+ return 1; /*SERVICE_MISSING*/
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -253,7 +243,7 @@ public class ExternalAuthUtils {
|
||||
* @return true If the code represents a user-recoverable error
|
||||
*/
|
||||
protected boolean isUserRecoverableError(final int errorCode) {
|
||||
- return GoogleApiAvailability.getInstance().isUserResolvableError(errorCode);
|
||||
+ return false;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -263,6 +253,6 @@ public class ExternalAuthUtils {
|
||||
* @return a textual description of the error code
|
||||
*/
|
||||
protected String describeError(final int errorCode) {
|
||||
- return GoogleApiAvailability.getInstance().getErrorString(errorCode);
|
||||
+ return "";
|
||||
}
|
||||
}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/UserRecoverableErrorHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/externalauth/UserRecoverableErrorHandler.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/UserRecoverableErrorHandler.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/externalauth/UserRecoverableErrorHandler.java
|
||||
@@ -9,8 +9,6 @@ import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
|
||||
-import com.google.android.gms.common.GoogleApiAvailability;
|
||||
-
|
||||
import org.chromium.base.ThreadUtils;
|
||||
import org.chromium.base.metrics.RecordUserAction;
|
||||
|
||||
@@ -90,7 +88,6 @@ public abstract class UserRecoverableErrorHandler {
|
||||
if (!sNotificationShown.getAndSet(true)) {
|
||||
return;
|
||||
}
|
||||
- GoogleApiAvailability.getInstance().showErrorNotification(context, errorCode);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -183,11 +180,7 @@ public abstract class UserRecoverableErrorHandler {
|
||||
cancelDialog();
|
||||
}
|
||||
if (mDialog == null) {
|
||||
- mDialog = GoogleApiAvailability.getInstance().getErrorDialog(
|
||||
- mActivity, errorCode, NO_RESPONSE_REQUIRED);
|
||||
mErrorCode = errorCode;
|
||||
-
|
||||
- DialogUserActionRecorder.createAndAttachToDialog(mDialog);
|
||||
}
|
||||
// This can happen if |errorCode| is ConnectionResult.SERVICE_INVALID.
|
||||
if (mDialog != null && !mDialog.isShowing()) {
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClientImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClientImpl.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClientImpl.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClientImpl.java
|
||||
@@ -6,9 +6,6 @@ package org.chromium.chrome.browser.gcore;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
-import com.google.android.gms.common.ConnectionResult;
|
||||
-import com.google.android.gms.common.api.GoogleApiClient;
|
||||
-
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.base.TraceEvent;
|
||||
import org.chromium.chrome.browser.AppHooks;
|
||||
@@ -23,7 +20,6 @@ public class ChromeGoogleApiClientImpl implements ChromeGoogleApiClient {
|
||||
private static final String TAG = "Icing";
|
||||
|
||||
private final Context mApplicationContext;
|
||||
- private final GoogleApiClient mClient;
|
||||
private final ExternalAuthUtils mExternalAuthUtils;
|
||||
|
||||
/**
|
||||
@@ -33,10 +29,9 @@ public class ChromeGoogleApiClientImpl implements ChromeGoogleApiClient {
|
||||
* @param requireFirstPartyBuild true if the given client can only be used in a first-party
|
||||
* build.
|
||||
*/
|
||||
- public ChromeGoogleApiClientImpl(Context context, GoogleApiClient client,
|
||||
+ public ChromeGoogleApiClientImpl(Context context,
|
||||
boolean requireFirstPartyBuild) {
|
||||
mApplicationContext = context.getApplicationContext();
|
||||
- mClient = client;
|
||||
mExternalAuthUtils = AppHooks.get().getExternalAuthUtils();
|
||||
if (requireFirstPartyBuild && !mExternalAuthUtils.isChromeGoogleSigned()) {
|
||||
throw new IllegalStateException("GoogleApiClient requires first-party build");
|
||||
@@ -45,7 +40,6 @@ public class ChromeGoogleApiClientImpl implements ChromeGoogleApiClient {
|
||||
|
||||
@Override
|
||||
public void disconnect() {
|
||||
- mClient.disconnect();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -61,24 +55,11 @@ public class ChromeGoogleApiClientImpl implements ChromeGoogleApiClient {
|
||||
@Override
|
||||
public boolean connectWithTimeout(long timeout) {
|
||||
TraceEvent.begin("ChromeGoogleApiClientImpl:connectWithTimeout");
|
||||
- try {
|
||||
- ConnectionResult result = mClient.blockingConnect(timeout, TimeUnit.MILLISECONDS);
|
||||
- if (!result.isSuccess()) {
|
||||
- Log.e(TAG, "Connection to GmsCore unsuccessful. Error %d", result.getErrorCode());
|
||||
- } else {
|
||||
- Log.d(TAG, "Connection to GmsCore successful.");
|
||||
- }
|
||||
- return result.isSuccess();
|
||||
- } finally {
|
||||
- TraceEvent.end("ChromeGoogleApiClientImpl:connectWithTimeout");
|
||||
- }
|
||||
+ TraceEvent.end("ChromeGoogleApiClientImpl:connectWithTimeout");
|
||||
+ return false;
|
||||
}
|
||||
|
||||
public Context getApplicationContext() {
|
||||
return mApplicationContext;
|
||||
}
|
||||
-
|
||||
- public GoogleApiClient getApiClient() {
|
||||
- return mClient;
|
||||
- }
|
||||
}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelper.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelper.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelper.java
|
||||
@@ -7,11 +7,6 @@ package org.chromium.chrome.browser.gcore;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
|
||||
-import com.google.android.gms.common.ConnectionResult;
|
||||
-import com.google.android.gms.common.api.GoogleApiClient;
|
||||
-import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks;
|
||||
-import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;
|
||||
-
|
||||
import org.chromium.base.ApplicationStatus;
|
||||
import org.chromium.base.ApplicationStatus.ApplicationStateListener;
|
||||
import org.chromium.base.Log;
|
||||
@@ -67,29 +62,15 @@ import org.chromium.base.ThreadUtils;
|
||||
* }
|
||||
* </pre>
|
||||
*/
|
||||
-public class GoogleApiClientHelper
|
||||
- implements OnConnectionFailedListener, ConnectionCallbacks {
|
||||
+public class GoogleApiClientHelper {
|
||||
private static final String TAG = "GCore";
|
||||
|
||||
private int mResolutionAttempts;
|
||||
private boolean mWasConnectedBefore;
|
||||
private final Handler mHandler = new Handler(ThreadUtils.getUiThreadLooper());
|
||||
- private final GoogleApiClient mClient;
|
||||
private long mDisconnectionDelayMs;
|
||||
private Runnable mPendingDisconnect;
|
||||
|
||||
- /**
|
||||
- * Creates a helper and enrolls it in the various connection management features.
|
||||
- * See the class documentation for {@link GoogleApiClientHelper} for more information.
|
||||
- *
|
||||
- * @param client The client to wrap.
|
||||
- */
|
||||
- public GoogleApiClientHelper(GoogleApiClient client) {
|
||||
- mClient = client;
|
||||
- enableConnectionRetrying(true);
|
||||
- enableLifecycleManagement(true);
|
||||
- }
|
||||
-
|
||||
/**
|
||||
* Opts in or out of lifecycle management. The client's connection will be closed and reopened
|
||||
* when Chrome goes in and out of background.
|
||||
@@ -116,13 +97,6 @@ public class GoogleApiClientHelper
|
||||
* Enabling or disabling it while it is already enabled or disabled has no effect.
|
||||
*/
|
||||
public void enableConnectionRetrying(boolean enabled) {
|
||||
- if (enabled) {
|
||||
- mClient.registerConnectionCallbacks(this);
|
||||
- mClient.registerConnectionFailedListener(this);
|
||||
- } else {
|
||||
- mClient.unregisterConnectionCallbacks(this);
|
||||
- mClient.unregisterConnectionFailedListener(this);
|
||||
- }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -155,21 +129,11 @@ public class GoogleApiClientHelper
|
||||
// Cancel and reschedule the disconnection if we are in the background. We do it early to
|
||||
// avoid race conditions between a disconnect on the UI thread and the connect below.
|
||||
if (!ApplicationStatus.hasVisibleActivities()) scheduleDisconnection();
|
||||
-
|
||||
- // The client might be disconnected if we were idle in the background for too long.
|
||||
- if (!mClient.isConnected() && !mClient.isConnecting()) {
|
||||
- Log.d(TAG, "Reconnecting the client.");
|
||||
- mClient.connect();
|
||||
- }
|
||||
}
|
||||
|
||||
void restoreConnectedState() {
|
||||
// If we go back to the foreground before a delayed disconnect happens, cancel it.
|
||||
cancelPendingDisconnection();
|
||||
-
|
||||
- if (mWasConnectedBefore) {
|
||||
- mClient.connect();
|
||||
- }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -192,12 +156,6 @@ public class GoogleApiClientHelper
|
||||
}
|
||||
|
||||
private void disconnect() {
|
||||
- if (mClient.isConnected() || mClient.isConnecting()) {
|
||||
- mWasConnectedBefore = true;
|
||||
- }
|
||||
-
|
||||
- // We always call disconnect to abort possibly pending connection requests.
|
||||
- mClient.disconnect();
|
||||
}
|
||||
|
||||
private void cancelPendingDisconnection() {
|
||||
@@ -207,43 +165,7 @@ public class GoogleApiClientHelper
|
||||
mPendingDisconnect = null;
|
||||
}
|
||||
|
||||
- @Override
|
||||
- public void onConnectionFailed(ConnectionResult result) {
|
||||
- if (!isErrorRecoverableByRetrying(result.getErrorCode())) {
|
||||
- Log.d(TAG, "Not retrying managed client connection. Unrecoverable error: %d",
|
||||
- result.getErrorCode());
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- if (mResolutionAttempts < ConnectedTask.RETRY_NUMBER_LIMIT) {
|
||||
- Log.d(TAG, "Retrying managed client connection. attempt %d/%d - errorCode: %d",
|
||||
- mResolutionAttempts, ConnectedTask.RETRY_NUMBER_LIMIT, result.getErrorCode());
|
||||
- mResolutionAttempts += 1;
|
||||
-
|
||||
- mHandler.postDelayed(new Runnable() {
|
||||
- @Override
|
||||
- public void run() {
|
||||
- mClient.connect();
|
||||
- }
|
||||
- }, ConnectedTask.CONNECTION_RETRY_TIME_MS);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public void onConnected(Bundle connectionHint) {
|
||||
- mResolutionAttempts = 0;
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public void onConnectionSuspended(int cause) {
|
||||
- // GoogleApiClient handles retrying on suspension itself. Logging in case it didn't succeed
|
||||
- // for some reason.
|
||||
- Log.w(TAG, "Managed client connection suspended. Cause: %d", cause);
|
||||
- }
|
||||
-
|
||||
private static boolean isErrorRecoverableByRetrying(int errorCode) {
|
||||
- return errorCode == ConnectionResult.INTERNAL_ERROR
|
||||
- || errorCode == ConnectionResult.NETWORK_ERROR
|
||||
- || errorCode == ConnectionResult.SERVICE_UPDATING;
|
||||
+ return false;
|
||||
}
|
||||
}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java
|
||||
@@ -19,8 +19,6 @@ import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
|
||||
-import com.google.android.gms.common.GooglePlayServicesUtil;
|
||||
-
|
||||
import org.chromium.base.ActivityState;
|
||||
import org.chromium.base.ApplicationStatus;
|
||||
import org.chromium.base.ApplicationStatus.ActivityStateListener;
|
||||
@@ -456,13 +454,7 @@ public class UpdateStatusProvider implements ActivityStateListener {
|
||||
}
|
||||
|
||||
private boolean isGooglePlayStoreAvailable(Context context) {
|
||||
- try {
|
||||
- context.getPackageManager().getPackageInfo(
|
||||
- GooglePlayServicesUtil.GOOGLE_PLAY_STORE_PACKAGE, 0);
|
||||
- } catch (PackageManager.NameNotFoundException e) {
|
||||
- return false;
|
||||
- }
|
||||
- return true;
|
||||
+ return false;
|
||||
}
|
||||
|
||||
private long getSize(StatFs statFs) {
|
||||
diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn
|
||||
--- a/chrome/test/android/BUILD.gn
|
||||
+++ b/chrome/test/android/BUILD.gn
|
||||
@@ -260,8 +260,6 @@ android_library("chrome_java_test_support") {
|
||||
]
|
||||
|
||||
deps = [
|
||||
- "$google_play_services_package:google_play_services_base_java",
|
||||
- "$google_play_services_package:google_play_services_basement_java",
|
||||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
"//chrome/android:chrome_java",
|
||||
diff --git a/components/background_task_scheduler/BUILD.gn b/components/background_task_scheduler/BUILD.gn
|
||||
--- a/components/background_task_scheduler/BUILD.gn
|
||||
+++ b/components/background_task_scheduler/BUILD.gn
|
||||
@@ -120,10 +120,6 @@ if (is_android) {
|
||||
|
||||
deps = [
|
||||
":background_task_scheduler_task_ids_java",
|
||||
- "$google_play_services_package:google_play_services_auth_base_java",
|
||||
- "$google_play_services_package:google_play_services_base_java",
|
||||
- "$google_play_services_package:google_play_services_basement_java",
|
||||
- "$google_play_services_package:google_play_services_tasks_java",
|
||||
"internal:internal_java",
|
||||
"internal:proto_java",
|
||||
"//base:base_java",
|
||||
diff --git a/components/background_task_scheduler/internal/BUILD.gn b/components/background_task_scheduler/internal/BUILD.gn
|
||||
--- a/components/background_task_scheduler/internal/BUILD.gn
|
||||
+++ b/components/background_task_scheduler/internal/BUILD.gn
|
||||
@@ -25,9 +25,6 @@ if (is_android) {
|
||||
|
||||
deps = [
|
||||
":proto_java",
|
||||
- "$google_play_services_package:google_play_services_base_java",
|
||||
- "$google_play_services_package:google_play_services_basement_java",
|
||||
- "$google_play_services_package:google_play_services_tasks_java",
|
||||
"//base:base_java",
|
||||
"//components/background_task_scheduler:background_task_scheduler_task_ids_java",
|
||||
"//components/background_task_scheduler:public_java",
|
||||
@@ -96,9 +93,6 @@ if (is_android) {
|
||||
|
||||
deps = [
|
||||
":internal_java",
|
||||
- "$google_play_services_package:google_play_services_base_java",
|
||||
- "$google_play_services_package:google_play_services_basement_java",
|
||||
- "$google_play_services_package:google_play_services_tasks_java",
|
||||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
"//components/background_task_scheduler:background_task_scheduler_task_ids_java",
|
||||
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/BrowserMediaRouter.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/BrowserMediaRouter.java
|
||||
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/BrowserMediaRouter.java
|
||||
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/BrowserMediaRouter.java
|
||||
@@ -10,9 +10,6 @@ import androidx.annotation.Nullable;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.mediarouter.media.MediaRouter;
|
||||
|
||||
-import com.google.android.gms.common.ConnectionResult;
|
||||
-import com.google.android.gms.common.GoogleApiAvailability;
|
||||
-
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.base.StrictModeContext;
|
||||
@@ -42,20 +39,7 @@ public class BrowserMediaRouter implements MediaRouteManager {
|
||||
new MediaRouteProvider.Factory() {
|
||||
@Override
|
||||
public void addProviders(MediaRouteManager manager) {
|
||||
- int googleApiAvailabilityResult =
|
||||
- GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
|
||||
- ContextUtils.getApplicationContext(),
|
||||
- MIN_GOOGLE_PLAY_SERVICES_APK_VERSION);
|
||||
- if (googleApiAvailabilityResult != ConnectionResult.SUCCESS) {
|
||||
- GoogleApiAvailability.getInstance().showErrorNotification(
|
||||
- ContextUtils.getApplicationContext(), googleApiAvailabilityResult);
|
||||
- return;
|
||||
- }
|
||||
- MediaRouteProvider cafProvider = CafMediaRouteProvider.create(manager);
|
||||
- manager.addMediaRouteProvider(cafProvider);
|
||||
- MediaRouteProvider remotingProvider =
|
||||
- CafRemotingMediaRouteProvider.create(manager);
|
||||
- manager.addMediaRouteProvider(remotingProvider);
|
||||
+ return;
|
||||
}
|
||||
};
|
||||
|
||||
diff --git a/components/signin/core/browser/android/BUILD.gn b/components/signin/core/browser/android/BUILD.gn
|
||||
--- a/components/signin/core/browser/android/BUILD.gn
|
||||
+++ b/components/signin/core/browser/android/BUILD.gn
|
||||
@@ -14,8 +14,6 @@ generate_jni("jni_headers") {
|
||||
|
||||
android_library("java") {
|
||||
deps = [
|
||||
- "$google_play_services_package:google_play_services_base_java",
|
||||
- "$google_play_services_package:google_play_services_basement_java",
|
||||
"//base:base_java",
|
||||
"//base:jni_java",
|
||||
"//net/android:net_java",
|
||||
diff --git a/components/signin/core/browser/android/java/src/org/chromium/components/signin/GmsAvailabilityException.java b/components/signin/core/browser/android/java/src/org/chromium/components/signin/GmsAvailabilityException.java
|
||||
--- a/components/signin/core/browser/android/java/src/org/chromium/components/signin/GmsAvailabilityException.java
|
||||
+++ b/components/signin/core/browser/android/java/src/org/chromium/components/signin/GmsAvailabilityException.java
|
||||
@@ -4,8 +4,6 @@
|
||||
|
||||
package org.chromium.components.signin;
|
||||
|
||||
-import com.google.android.gms.common.GoogleApiAvailability;
|
||||
-
|
||||
/**
|
||||
* This class encapsulates return code if GMSCore package is not available.
|
||||
*/
|
||||
@@ -27,6 +25,6 @@ public class GmsAvailabilityException extends AccountManagerDelegateException {
|
||||
}
|
||||
|
||||
public boolean isUserResolvableError() {
|
||||
- return GoogleApiAvailability.getInstance().isUserResolvableError(mResultCode);
|
||||
+ return false;
|
||||
}
|
||||
}
|
||||
diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn
|
||||
--- a/content/public/android/BUILD.gn
|
||||
+++ b/content/public/android/BUILD.gn
|
||||
@@ -75,9 +75,6 @@ action_with_pydeps("generate_sandboxed_service_srcjar") {
|
||||
android_library("content_java") {
|
||||
deps = [
|
||||
":content_java_resources",
|
||||
- "$google_play_services_package:google_play_services_base_java",
|
||||
- "$google_play_services_package:google_play_services_basement_java",
|
||||
- "$google_play_services_package:google_play_services_tasks_java",
|
||||
"//base:base_java",
|
||||
"//base:jni_java",
|
||||
"//components/download/public/common:public_java",
|
||||
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
|
||||
--- a/content/test/BUILD.gn
|
||||
+++ b/content/test/BUILD.gn
|
||||
@@ -2609,9 +2609,6 @@ if (is_android) {
|
||||
testonly = true
|
||||
sources = content_java_sources_needing_jni
|
||||
deps = [
|
||||
- "$google_play_services_package:google_play_services_base_java",
|
||||
- "$google_play_services_package:google_play_services_basement_java",
|
||||
- "$google_play_services_package:google_play_services_tasks_java",
|
||||
"//base:base_java",
|
||||
"//content/public/android:content_java",
|
||||
"//ui/android:ui_full_java",
|
||||
diff --git a/device/BUILD.gn b/device/BUILD.gn
|
||||
--- a/device/BUILD.gn
|
||||
+++ b/device/BUILD.gn
|
||||
@@ -421,8 +421,6 @@ if (is_android) {
|
||||
junit_binary("device_junit_tests") {
|
||||
sources = [ "gamepad/android/junit/src/org/chromium/device/gamepad/GamepadMappingsTest.java" ]
|
||||
deps = [
|
||||
- "$google_play_services_package:google_play_services_base_java",
|
||||
- "$google_play_services_package:google_play_services_basement_java",
|
||||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
"//base:base_junit_test_support",
|
||||
diff --git a/remoting/android/client_java_tmpl.gni b/remoting/android/client_java_tmpl.gni
|
||||
--- a/remoting/android/client_java_tmpl.gni
|
||||
+++ b/remoting/android/client_java_tmpl.gni
|
||||
@@ -104,9 +104,6 @@ template("remoting_android_client_java_tmpl") {
|
||||
|
||||
if (defined(invoker.play_services_package)) {
|
||||
deps += [
|
||||
- "${invoker.play_services_package}:google_play_services_auth_base_java",
|
||||
- "${invoker.play_services_package}:google_play_services_base_java",
|
||||
- "${invoker.play_services_package}:google_play_services_basement_java",
|
||||
]
|
||||
}
|
||||
|
||||
diff --git a/services/BUILD.gn b/services/BUILD.gn
|
||||
--- a/services/BUILD.gn
|
||||
+++ b/services/BUILD.gn
|
||||
@@ -132,8 +132,6 @@ if (is_android) {
|
||||
"shape_detection/android/javatests/src/org/chromium/shape_detection/TextDetectionImplTest.java",
|
||||
]
|
||||
deps = [
|
||||
- "$google_play_services_package:google_play_services_base_java",
|
||||
- "$google_play_services_package:google_play_services_basement_java",
|
||||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
"//mojo/public/java:base_java",
|
||||
diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn
|
||||
--- a/services/device/geolocation/BUILD.gn
|
||||
+++ b/services/device/geolocation/BUILD.gn
|
||||
@@ -155,8 +155,6 @@ if (is_android) {
|
||||
|
||||
deps = [
|
||||
":geolocation_jni_headers",
|
||||
- "$google_play_services_package:google_play_services_base_java",
|
||||
- "$google_play_services_package:google_play_services_basement_java",
|
||||
"//base:base_java",
|
||||
"//base:jni_java",
|
||||
"//components/location/android:location_java",
|
||||
diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD.gn
|
||||
--- a/services/shape_detection/BUILD.gn
|
||||
+++ b/services/shape_detection/BUILD.gn
|
||||
@@ -107,8 +107,6 @@ if (is_android) {
|
||||
]
|
||||
|
||||
deps = [
|
||||
- "$google_play_services_package:google_play_services_base_java",
|
||||
- "$google_play_services_package:google_play_services_basement_java",
|
||||
"//base:base_java",
|
||||
"//mojo/public/java:base_java",
|
||||
"//mojo/public/java:bindings_java",
|
||||
diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn
|
||||
--- a/third_party/android_deps/BUILD.gn
|
||||
+++ b/third_party/android_deps/BUILD.gn
|
||||
@@ -1135,42 +1135,6 @@ java_prebuilt("com_android_tools_build_jetifier_jetifier_processor_java") {
|
||||
]
|
||||
}
|
||||
|
||||
-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
-android_aar_prebuilt("google_play_services_base_java") {
|
||||
- aar_path = "libs/com_google_android_gms_play_services_base/play-services-base-17.1.0.aar"
|
||||
- info_path = "libs/com_google_android_gms_play_services_base/com_google_android_gms_play_services_base.info"
|
||||
- deps = [
|
||||
- ":androidx_collection_collection_java",
|
||||
- ":androidx_core_core_java",
|
||||
- ":androidx_fragment_fragment_java",
|
||||
- ":google_play_services_basement_java",
|
||||
- ":google_play_services_tasks_java",
|
||||
- ]
|
||||
-
|
||||
- # Removing drawables from GMS .aars as they are unused bloat.
|
||||
- strip_drawables = true
|
||||
-}
|
||||
-
|
||||
-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
-android_aar_prebuilt("google_play_services_basement_java") {
|
||||
- aar_path = "libs/com_google_android_gms_play_services_basement/play-services-basement-17.1.0.aar"
|
||||
- info_path = "libs/com_google_android_gms_play_services_basement/com_google_android_gms_play_services_basement.info"
|
||||
- deps = [
|
||||
- ":androidx_collection_collection_java",
|
||||
- ":androidx_core_core_java",
|
||||
- ":androidx_fragment_fragment_java",
|
||||
- ]
|
||||
-
|
||||
- # Removing drawables from GMS .aars as they are unused bloat.
|
||||
- strip_drawables = true
|
||||
-
|
||||
- # https://crbug.com/989505
|
||||
- jar_excluded_patterns = [ "META-INF/proguard/*" ]
|
||||
- input_jars_paths = [ "$android_sdk/optional/org.apache.http.legacy.jar" ]
|
||||
- bytecode_rewriter_target =
|
||||
- "//build/android/bytecode:fragment_activity_replacer"
|
||||
-}
|
||||
-
|
||||
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
android_aar_prebuilt("google_play_services_gcm_java") {
|
||||
aar_path = "libs/com_google_android_gms_play_services_gcm/play-services-gcm-17.0.0.aar"
|
||||
@@ -1189,16 +1153,6 @@ android_aar_prebuilt("google_play_services_gcm_java") {
|
||||
strip_drawables = true
|
||||
}
|
||||
|
||||
-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
-android_aar_prebuilt("google_play_services_tasks_java") {
|
||||
- aar_path = "libs/com_google_android_gms_play_services_tasks/play-services-tasks-17.0.0.aar"
|
||||
- info_path = "libs/com_google_android_gms_play_services_tasks/com_google_android_gms_play_services_tasks.info"
|
||||
- deps = [ ":google_play_services_basement_java" ]
|
||||
-
|
||||
- # Removing drawables from GMS .aars as they are unused bloat.
|
||||
- strip_drawables = true
|
||||
-}
|
||||
-
|
||||
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
android_aar_prebuilt("com_google_android_material_material_java") {
|
||||
aar_path =
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
From: Wengling Chen <feiyu2817@gmail.com>
|
||||
Date: Sat, 2 Nov 2019 09:29:52 +0100
|
||||
Subject: Remove dependency on com.google.android.gcm
|
||||
|
||||
---
|
||||
third_party/android_sdk/BUILD.gn | 3 ---
|
||||
1 file changed, 3 deletions(-)
|
||||
|
||||
diff --git a/third_party/android_sdk/BUILD.gn b/third_party/android_sdk/BUILD.gn
|
||||
--- a/third_party/android_sdk/BUILD.gn
|
||||
+++ b/third_party/android_sdk/BUILD.gn
|
||||
@@ -63,7 +63,4 @@ if (enable_java_templates) {
|
||||
testonly = true
|
||||
sources = [ "//third_party/android_sdk/public/extras/chromium/support/src/org/chromium/android/support/PackageManagerWrapper.java" ]
|
||||
}
|
||||
- android_java_prebuilt("android_gcm_java") {
|
||||
- jar_path = "//third_party/android_sdk/public/extras/google/gcm/gcm-client/dist/gcm.jar"
|
||||
- }
|
||||
}
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -1,162 +0,0 @@
|
|||
From: Wengling Chen <feiyu2817@gmail.com>
|
||||
Date: Sat, 2 Nov 2019 09:22:31 +0100
|
||||
Subject: Remove dependency on com.google.android.gms.auth
|
||||
|
||||
---
|
||||
chrome/android/BUILD.gn | 1 -
|
||||
.../signin/core/browser/android/BUILD.gn | 1 -
|
||||
.../signin/SystemAccountManagerDelegate.java | 21 +--------
|
||||
content/public/android/BUILD.gn | 1 -
|
||||
content/test/BUILD.gn | 1 -
|
||||
third_party/android_deps/BUILD.gn | 47 -------------------
|
||||
6 files changed, 2 insertions(+), 70 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
+++ b/chrome/android/BUILD.gn
|
||||
@@ -278,7 +278,6 @@ android_library("chrome_java") {
|
||||
":partner_location_descriptor_proto_java",
|
||||
":update_proto_java",
|
||||
":usage_stats_proto_java",
|
||||
- "$google_play_services_package:google_play_services_auth_base_java",
|
||||
"$google_play_services_package:google_play_services_base_java",
|
||||
"$google_play_services_package:google_play_services_basement_java",
|
||||
"$google_play_services_package:google_play_services_cast_framework_java",
|
||||
diff --git a/components/signin/core/browser/android/BUILD.gn b/components/signin/core/browser/android/BUILD.gn
|
||||
--- a/components/signin/core/browser/android/BUILD.gn
|
||||
+++ b/components/signin/core/browser/android/BUILD.gn
|
||||
@@ -14,7 +14,6 @@ generate_jni("jni_headers") {
|
||||
|
||||
android_library("java") {
|
||||
deps = [
|
||||
- "$google_play_services_package:google_play_services_auth_base_java",
|
||||
"$google_play_services_package:google_play_services_base_java",
|
||||
"$google_play_services_package:google_play_services_basement_java",
|
||||
"//base:base_java",
|
||||
diff --git a/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java b/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
|
||||
--- a/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
|
||||
+++ b/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
|
||||
@@ -26,9 +26,6 @@ import android.os.SystemClock;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
-import com.google.android.gms.common.ConnectionResult;
|
||||
-import com.google.android.gms.common.GoogleApiAvailability;
|
||||
-
|
||||
import org.chromium.base.ApiCompatibilityUtils;
|
||||
import org.chromium.base.Callback;
|
||||
import org.chromium.base.ContextUtils;
|
||||
@@ -86,17 +83,7 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
|
||||
}
|
||||
|
||||
protected void checkCanUseGooglePlayServices() throws AccountManagerDelegateException {
|
||||
- Context context = ContextUtils.getApplicationContext();
|
||||
- final int resultCode =
|
||||
- ChromiumPlayServicesAvailability.getGooglePlayServicesConnectionResult(context);
|
||||
- if (resultCode == ConnectionResult.SUCCESS) {
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- throw new GmsAvailabilityException(
|
||||
- String.format("Can't use Google Play Services: %s",
|
||||
- GoogleApiAvailability.getInstance().getErrorString(resultCode)),
|
||||
- resultCode);
|
||||
+ throw new GmsAvailabilityException("Can't use Google Play Services", 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -182,11 +169,7 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
|
||||
|
||||
@Override
|
||||
public boolean isGooglePlayServicesAvailable() {
|
||||
- // TODO(http://crbug.com/577190): Remove StrictMode override.
|
||||
- try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) {
|
||||
- return ChromiumPlayServicesAvailability.isGooglePlayServicesAvailable(
|
||||
- ContextUtils.getApplicationContext());
|
||||
- }
|
||||
+ return false;
|
||||
}
|
||||
|
||||
protected boolean hasGetAccountsPermission() {
|
||||
diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn
|
||||
--- a/content/public/android/BUILD.gn
|
||||
+++ b/content/public/android/BUILD.gn
|
||||
@@ -75,7 +75,6 @@ action_with_pydeps("generate_sandboxed_service_srcjar") {
|
||||
android_library("content_java") {
|
||||
deps = [
|
||||
":content_java_resources",
|
||||
- "$google_play_services_package:google_play_services_auth_api_phone_java",
|
||||
"$google_play_services_package:google_play_services_base_java",
|
||||
"$google_play_services_package:google_play_services_basement_java",
|
||||
"$google_play_services_package:google_play_services_tasks_java",
|
||||
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
|
||||
--- a/content/test/BUILD.gn
|
||||
+++ b/content/test/BUILD.gn
|
||||
@@ -2609,7 +2609,6 @@ if (is_android) {
|
||||
testonly = true
|
||||
sources = content_java_sources_needing_jni
|
||||
deps = [
|
||||
- "$google_play_services_package:google_play_services_auth_api_phone_java",
|
||||
"$google_play_services_package:google_play_services_base_java",
|
||||
"$google_play_services_package:google_play_services_basement_java",
|
||||
"$google_play_services_package:google_play_services_tasks_java",
|
||||
diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn
|
||||
--- a/third_party/android_deps/BUILD.gn
|
||||
+++ b/third_party/android_deps/BUILD.gn
|
||||
@@ -1136,53 +1136,6 @@ java_prebuilt("com_android_tools_build_jetifier_jetifier_processor_java") {
|
||||
]
|
||||
}
|
||||
|
||||
-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
-android_aar_prebuilt("google_play_services_auth_java") {
|
||||
- aar_path = "libs/com_google_android_gms_play_services_auth/play-services-auth-17.0.0.aar"
|
||||
- info_path = "libs/com_google_android_gms_play_services_auth/com_google_android_gms_play_services_auth.info"
|
||||
- deps = [
|
||||
- ":androidx_fragment_fragment_java",
|
||||
- ":androidx_loader_loader_java",
|
||||
- ":google_play_services_auth_api_phone_java",
|
||||
- ":google_play_services_auth_base_java",
|
||||
- ":google_play_services_base_java",
|
||||
- ":google_play_services_basement_java",
|
||||
- ":google_play_services_tasks_java",
|
||||
- ]
|
||||
-
|
||||
- # Removing drawables from GMS .aars as they are unused bloat.
|
||||
- strip_drawables = true
|
||||
-}
|
||||
-
|
||||
-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
-android_aar_prebuilt("google_play_services_auth_api_phone_java") {
|
||||
- aar_path = "libs/com_google_android_gms_play_services_auth_api_phone/play-services-auth-api-phone-17.5.0.aar"
|
||||
- info_path = "libs/com_google_android_gms_play_services_auth_api_phone/com_google_android_gms_play_services_auth_api_phone.info"
|
||||
- deps = [
|
||||
- ":google_play_services_base_java",
|
||||
- ":google_play_services_basement_java",
|
||||
- ":google_play_services_tasks_java",
|
||||
- ]
|
||||
-
|
||||
- # Removing drawables from GMS .aars as they are unused bloat.
|
||||
- strip_drawables = true
|
||||
-}
|
||||
-
|
||||
-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
-android_aar_prebuilt("google_play_services_auth_base_java") {
|
||||
- aar_path = "libs/com_google_android_gms_play_services_auth_base/play-services-auth-base-17.0.0.aar"
|
||||
- info_path = "libs/com_google_android_gms_play_services_auth_base/com_google_android_gms_play_services_auth_base.info"
|
||||
- deps = [
|
||||
- ":androidx_collection_collection_java",
|
||||
- ":google_play_services_base_java",
|
||||
- ":google_play_services_basement_java",
|
||||
- ":google_play_services_tasks_java",
|
||||
- ]
|
||||
-
|
||||
- # Removing drawables from GMS .aars as they are unused bloat.
|
||||
- strip_drawables = true
|
||||
-}
|
||||
-
|
||||
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
android_aar_prebuilt("google_play_services_base_java") {
|
||||
aar_path = "libs/com_google_android_gms_play_services_base/play-services-base-17.1.0.aar"
|
||||
--
|
||||
2.17.1
|
||||
|
File diff suppressed because it is too large
Load diff
|
@ -1,398 +0,0 @@
|
|||
From: Wengling Chen <feiyu2817@gmail.com>
|
||||
Date: Sat, 2 Nov 2019 07:56:44 +0100
|
||||
Subject: Remove dependency on com.google.android.gms.gcm
|
||||
|
||||
It also disalbes Snippets, auto-update of offline pages and launching browser from background service.
|
||||
The snippets are already disabled in native codes, this will disable it on Java level.
|
||||
---
|
||||
chrome/android/BUILD.gn | 11 --
|
||||
components/background_task_scheduler/BUILD.gn | 1 -
|
||||
.../internal/BUILD.gn | 3 -
|
||||
.../BackgroundTaskGcmTaskService.java | 160 ------------------
|
||||
...ackgroundTaskSchedulerFactoryInternal.java | 6 +-
|
||||
...kgroundTaskSchedulerGcmNetworkManager.java | 60 -------
|
||||
.../gms/ChromiumPlayServicesAvailability.java | 10 +-
|
||||
7 files changed, 3 insertions(+), 248 deletions(-)
|
||||
delete mode 100644 components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskService.java
|
||||
delete mode 100644 components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java
|
||||
|
||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
+++ b/chrome/android/BUILD.gn
|
||||
@@ -283,7 +283,6 @@ android_library("chrome_java") {
|
||||
"$google_play_services_package:google_play_services_cast_framework_java",
|
||||
"$google_play_services_package:google_play_services_cast_java",
|
||||
"$google_play_services_package:google_play_services_fido_java",
|
||||
- "$google_play_services_package:google_play_services_gcm_java",
|
||||
"$google_play_services_package:google_play_services_iid_java",
|
||||
"$google_play_services_package:google_play_services_tasks_java",
|
||||
"//base:base_java",
|
||||
@@ -995,7 +994,6 @@ android_library("chrome_test_java") {
|
||||
"$google_play_services_package:google_play_services_cast_framework_java",
|
||||
"$google_play_services_package:google_play_services_cast_java",
|
||||
"$google_play_services_package:google_play_services_fido_java",
|
||||
- "$google_play_services_package:google_play_services_gcm_java",
|
||||
"$google_play_services_package:google_play_services_iid_java",
|
||||
"$google_play_services_package:google_play_services_tasks_java",
|
||||
"//base:base_java",
|
||||
@@ -1950,7 +1948,6 @@ android_library("browser_java_test_support") {
|
||||
]
|
||||
deps = [
|
||||
":chrome_java",
|
||||
- "$google_play_services_package:google_play_services_gcm_java",
|
||||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
"//chrome/browser/profiles/android:java",
|
||||
@@ -2089,8 +2086,6 @@ android_library("base_monochrome_module_java") {
|
||||
# enable_chrome_module is true and //chrome code is in a DFM.
|
||||
android_library("base_module_java") {
|
||||
sources = [
|
||||
- "java/src/com/google/ipc/invalidation/ticl/android2/channel/GcmRegistrationTaskService.java",
|
||||
- "java/src/org/chromium/chrome/browser/ChromeBackgroundService.java",
|
||||
"java/src/org/chromium/chrome/browser/ChromeBackupAgent.java",
|
||||
"java/src/org/chromium/chrome/browser/base/MainDexApplicationImpl.java",
|
||||
"java/src/org/chromium/chrome/browser/base/SplitChromeApplication.java",
|
||||
@@ -2098,8 +2093,6 @@ android_library("base_module_java") {
|
||||
"java/src/org/chromium/chrome/browser/base/SplitCompatApplication.java",
|
||||
"java/src/org/chromium/chrome/browser/base/SplitCompatBackupAgent.java",
|
||||
"java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java",
|
||||
- "java/src/org/chromium/chrome/browser/base/SplitCompatGcmListenerService.java",
|
||||
- "java/src/org/chromium/chrome/browser/base/SplitCompatGcmTaskService.java",
|
||||
"java/src/org/chromium/chrome/browser/base/SplitCompatIntentService.java",
|
||||
"java/src/org/chromium/chrome/browser/base/SplitCompatJobService.java",
|
||||
"java/src/org/chromium/chrome/browser/base/SplitCompatMinidumpUploadJobService.java",
|
||||
@@ -2121,14 +2114,10 @@ android_library("base_module_java") {
|
||||
"java/src/org/chromium/chrome/browser/omaha/OmahaClient.java",
|
||||
"java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java",
|
||||
"java/src/org/chromium/chrome/browser/prerender/ChromePrerenderService.java",
|
||||
- "java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerService.java",
|
||||
- "java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundService.java",
|
||||
- "java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java",
|
||||
"java/src/org/chromium/chrome/browser/tracing/TracingNotificationService.java",
|
||||
]
|
||||
deps = [
|
||||
":chrome_base_module_resources",
|
||||
- "$google_play_services_package:google_play_services_gcm_java",
|
||||
"//base:base_java",
|
||||
"//components/embedder_support/android:application_java",
|
||||
"//components/media_router/browser/android:cast_options_provider_java",
|
||||
diff --git a/components/background_task_scheduler/BUILD.gn b/components/background_task_scheduler/BUILD.gn
|
||||
--- a/components/background_task_scheduler/BUILD.gn
|
||||
+++ b/components/background_task_scheduler/BUILD.gn
|
||||
@@ -123,7 +123,6 @@ if (is_android) {
|
||||
"$google_play_services_package:google_play_services_auth_base_java",
|
||||
"$google_play_services_package:google_play_services_base_java",
|
||||
"$google_play_services_package:google_play_services_basement_java",
|
||||
- "$google_play_services_package:google_play_services_gcm_java",
|
||||
"$google_play_services_package:google_play_services_tasks_java",
|
||||
"internal:internal_java",
|
||||
"internal:proto_java",
|
||||
diff --git a/components/background_task_scheduler/internal/BUILD.gn b/components/background_task_scheduler/internal/BUILD.gn
|
||||
--- a/components/background_task_scheduler/internal/BUILD.gn
|
||||
+++ b/components/background_task_scheduler/internal/BUILD.gn
|
||||
@@ -11,7 +11,6 @@ if (is_android) {
|
||||
android_library("internal_java") {
|
||||
sources = [
|
||||
"android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskBroadcastReceiver.java",
|
||||
- "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskService.java",
|
||||
"android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskJobService.java",
|
||||
"android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerAlarmManager.java",
|
||||
"android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerDelegate.java",
|
||||
@@ -28,7 +27,6 @@ if (is_android) {
|
||||
":proto_java",
|
||||
"$google_play_services_package:google_play_services_base_java",
|
||||
"$google_play_services_package:google_play_services_basement_java",
|
||||
- "$google_play_services_package:google_play_services_gcm_java",
|
||||
"$google_play_services_package:google_play_services_tasks_java",
|
||||
"//base:base_java",
|
||||
"//components/background_task_scheduler:background_task_scheduler_task_ids_java",
|
||||
@@ -100,7 +98,6 @@ if (is_android) {
|
||||
":internal_java",
|
||||
"$google_play_services_package:google_play_services_base_java",
|
||||
"$google_play_services_package:google_play_services_basement_java",
|
||||
- "$google_play_services_package:google_play_services_gcm_java",
|
||||
"$google_play_services_package:google_play_services_tasks_java",
|
||||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskService.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskService.java
|
||||
deleted file mode 100644
|
||||
--- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskService.java
|
||||
+++ /dev/null
|
||||
@@ -1,160 +0,0 @@
|
||||
-// Copyright 2017 The Chromium Authors. All rights reserved.
|
||||
-// Use of this source code is governed by a BSD-style license that can be
|
||||
-// found in the LICENSE file.
|
||||
-
|
||||
-package org.chromium.components.background_task_scheduler.internal;
|
||||
-
|
||||
-import android.os.Build;
|
||||
-
|
||||
-import androidx.annotation.VisibleForTesting;
|
||||
-
|
||||
-import com.google.android.gms.gcm.GcmNetworkManager;
|
||||
-import com.google.android.gms.gcm.GcmTaskService;
|
||||
-import com.google.android.gms.gcm.TaskParams;
|
||||
-
|
||||
-import org.chromium.base.ContextUtils;
|
||||
-import org.chromium.base.Log;
|
||||
-import org.chromium.base.ThreadUtils;
|
||||
-import org.chromium.components.background_task_scheduler.BackgroundTask;
|
||||
-import org.chromium.components.background_task_scheduler.TaskParameters;
|
||||
-
|
||||
-import java.util.concurrent.CountDownLatch;
|
||||
-import java.util.concurrent.TimeUnit;
|
||||
-import java.util.concurrent.atomic.AtomicBoolean;
|
||||
-
|
||||
-/** Delegates calls out to various tasks that need to run in the background. */
|
||||
-public class BackgroundTaskGcmTaskService extends GcmTaskService {
|
||||
- private static final String TAG = "BkgrdTaskGcmTS";
|
||||
-
|
||||
- private BackgroundTaskSchedulerGcmNetworkManager.Clock mClock = System::currentTimeMillis;
|
||||
-
|
||||
- @VisibleForTesting
|
||||
- void setClockForTesting(BackgroundTaskSchedulerGcmNetworkManager.Clock clock) {
|
||||
- mClock = clock;
|
||||
- }
|
||||
-
|
||||
- /** Class that waits for the processing to be done. */
|
||||
- private static class Waiter {
|
||||
- // Wakelock is only held for 3 minutes by default for GcmTaskService.
|
||||
- private static final long MAX_TIMEOUT_SECONDS = 179;
|
||||
- private final CountDownLatch mLatch;
|
||||
- private long mWaiterTimeoutSeconds;
|
||||
- private boolean mIsRescheduleNeeded;
|
||||
- private boolean mHasTaskTimedOut;
|
||||
-
|
||||
- public Waiter(long waiterTimeoutSeconds) {
|
||||
- mLatch = new CountDownLatch(1);
|
||||
- mWaiterTimeoutSeconds = Math.min(waiterTimeoutSeconds, MAX_TIMEOUT_SECONDS);
|
||||
- }
|
||||
-
|
||||
- /** Start waiting for the processing to finish. */
|
||||
- public void startWaiting() {
|
||||
- try {
|
||||
- mHasTaskTimedOut = !mLatch.await(mWaiterTimeoutSeconds, TimeUnit.SECONDS);
|
||||
- } catch (InterruptedException e) {
|
||||
- Log.d(TAG, "Waiter interrupted while waiting.");
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- /** Called to finish waiting. */
|
||||
- public void onWaitDone(boolean needsRescheduling) {
|
||||
- mIsRescheduleNeeded = needsRescheduling;
|
||||
- mLatch.countDown();
|
||||
- }
|
||||
-
|
||||
- /** @return Whether last task timed out. */
|
||||
- public boolean hasTaskTimedOut() {
|
||||
- return mHasTaskTimedOut;
|
||||
- }
|
||||
-
|
||||
- /** @return Whether task needs to be rescheduled. */
|
||||
- public boolean isRescheduleNeeded() {
|
||||
- return mIsRescheduleNeeded;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- private static class TaskFinishedCallbackGcmTaskService
|
||||
- implements BackgroundTask.TaskFinishedCallback {
|
||||
- private final Waiter mWaiter;
|
||||
-
|
||||
- public TaskFinishedCallbackGcmTaskService(Waiter waiter) {
|
||||
- mWaiter = waiter;
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public void taskFinished(final boolean needsReschedule) {
|
||||
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
||||
- @Override
|
||||
- public void run() {
|
||||
- mWaiter.onWaitDone(needsReschedule);
|
||||
- }
|
||||
- });
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public int onRunTask(TaskParams params) {
|
||||
- final TaskParameters taskParams =
|
||||
- BackgroundTaskSchedulerGcmNetworkManager.getTaskParametersFromTaskParams(params);
|
||||
-
|
||||
- final BackgroundTask backgroundTask =
|
||||
- BackgroundTaskSchedulerFactoryInternal.getBackgroundTaskFromTaskId(
|
||||
- taskParams.getTaskId());
|
||||
- if (backgroundTask == null) {
|
||||
- Log.w(TAG, "Failed to start task. Could not instantiate BackgroundTask class.");
|
||||
- // Cancel task if the BackgroundTask class is not found anymore. We assume this means
|
||||
- // that the task has been deprecated.
|
||||
- BackgroundTaskSchedulerFactoryInternal.getScheduler().cancel(
|
||||
- ContextUtils.getApplicationContext(), taskParams.getTaskId());
|
||||
- return GcmNetworkManager.RESULT_FAILURE;
|
||||
- }
|
||||
-
|
||||
- if (BackgroundTaskSchedulerGcmNetworkManager.didTaskExpire(
|
||||
- params, mClock.currentTimeMillis())) {
|
||||
- BackgroundTaskSchedulerUma.getInstance().reportTaskExpired(taskParams.getTaskId());
|
||||
- return GcmNetworkManager.RESULT_FAILURE;
|
||||
- }
|
||||
-
|
||||
- final Waiter waiter = new Waiter(Waiter.MAX_TIMEOUT_SECONDS);
|
||||
-
|
||||
- final AtomicBoolean taskNeedsBackgroundProcessing = new AtomicBoolean();
|
||||
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
||||
- @Override
|
||||
- public void run() {
|
||||
- BackgroundTaskSchedulerUma.getInstance().reportTaskStarted(taskParams.getTaskId());
|
||||
- taskNeedsBackgroundProcessing.set(
|
||||
- backgroundTask.onStartTask(ContextUtils.getApplicationContext(), taskParams,
|
||||
- new TaskFinishedCallbackGcmTaskService(waiter)));
|
||||
- }
|
||||
- });
|
||||
-
|
||||
- if (!taskNeedsBackgroundProcessing.get()) return GcmNetworkManager.RESULT_SUCCESS;
|
||||
-
|
||||
- waiter.startWaiting();
|
||||
-
|
||||
- if (waiter.isRescheduleNeeded()) return GcmNetworkManager.RESULT_RESCHEDULE;
|
||||
- if (!waiter.hasTaskTimedOut()) return GcmNetworkManager.RESULT_SUCCESS;
|
||||
-
|
||||
- final AtomicBoolean taskNeedsRescheduling = new AtomicBoolean();
|
||||
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
||||
- @Override
|
||||
- public void run() {
|
||||
- BackgroundTaskSchedulerUma.getInstance().reportTaskStopped(taskParams.getTaskId());
|
||||
- taskNeedsRescheduling.set(backgroundTask.onStopTask(
|
||||
- ContextUtils.getApplicationContext(), taskParams));
|
||||
- }
|
||||
- });
|
||||
-
|
||||
- if (taskNeedsRescheduling.get()) return GcmNetworkManager.RESULT_RESCHEDULE;
|
||||
-
|
||||
- return GcmNetworkManager.RESULT_SUCCESS;
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public void onInitializeTasks() {
|
||||
- // Ignore the event on OSs supporting JobScheduler.
|
||||
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) return;
|
||||
- BackgroundTaskSchedulerFactoryInternal.getScheduler().reschedule(
|
||||
- ContextUtils.getApplicationContext());
|
||||
- }
|
||||
-}
|
||||
diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerFactoryInternal.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerFactoryInternal.java
|
||||
--- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerFactoryInternal.java
|
||||
+++ b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerFactoryInternal.java
|
||||
@@ -21,11 +21,7 @@ public final class BackgroundTaskSchedulerFactoryInternal {
|
||||
private static BackgroundTaskFactory sBackgroundTaskFactory;
|
||||
|
||||
static BackgroundTaskSchedulerDelegate getSchedulerDelegateForSdk(int sdkInt) {
|
||||
- if (sdkInt >= Build.VERSION_CODES.M) {
|
||||
- return new BackgroundTaskSchedulerJobService();
|
||||
- } else {
|
||||
- return new BackgroundTaskSchedulerGcmNetworkManager();
|
||||
- }
|
||||
+ return new BackgroundTaskSchedulerJobService();
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java
|
||||
deleted file mode 100644
|
||||
--- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java
|
||||
+++ /dev/null
|
||||
@@ -1,60 +0,0 @@
|
||||
-// Copyright 2017 The Chromium Authors. All rights reserved.
|
||||
-// Use of this source code is governed by a BSD-style license that can be
|
||||
-// found in the LICENSE file.
|
||||
-
|
||||
-package org.chromium.components.background_task_scheduler.internal;
|
||||
-
|
||||
-import android.content.Context;
|
||||
-import android.os.Bundle;
|
||||
-
|
||||
-import androidx.annotation.NonNull;
|
||||
-import androidx.annotation.VisibleForTesting;
|
||||
-
|
||||
-import com.google.android.gms.gcm.GcmNetworkManager;
|
||||
-import com.google.android.gms.gcm.OneoffTask;
|
||||
-import com.google.android.gms.gcm.PeriodicTask;
|
||||
-import com.google.android.gms.gcm.Task;
|
||||
-import com.google.android.gms.gcm.TaskParams;
|
||||
-
|
||||
-import org.chromium.base.Log;
|
||||
-import org.chromium.base.ThreadUtils;
|
||||
-import org.chromium.components.background_task_scheduler.TaskInfo;
|
||||
-import org.chromium.components.background_task_scheduler.TaskParameters;
|
||||
-import org.chromium.gms.ChromiumPlayServicesAvailability;
|
||||
-
|
||||
-import java.util.concurrent.TimeUnit;
|
||||
-
|
||||
-/**
|
||||
- * An implementation of {@link BackgroundTaskSchedulerDelegate} that uses the Play Services
|
||||
- * {@link GcmNetworkManager} to schedule jobs.
|
||||
- */
|
||||
-class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedulerDelegate {
|
||||
- private static final String TAG = "BkgrdTaskSchedGcmNM";
|
||||
-
|
||||
- /** Delta time for expiration checks, after the end time. */
|
||||
- static final long DEADLINE_DELTA_MS = 1000;
|
||||
-
|
||||
- /** Clock to use so we can mock time in tests. */
|
||||
- public interface Clock { long currentTimeMillis(); }
|
||||
-
|
||||
- private static Clock sClock = System::currentTimeMillis;
|
||||
-
|
||||
- @VisibleForTesting
|
||||
- static void setClockForTesting(Clock clock) {
|
||||
- sClock = clock;
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public boolean schedule(Context context, @NonNull TaskInfo taskInfo) {
|
||||
- ThreadUtils.assertOnUiThread();
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public void cancel(Context context, int taskId) {
|
||||
- }
|
||||
-
|
||||
- private static String taskIdToTaskTag(int taskId) {
|
||||
- return Integer.toString(taskId);
|
||||
- }
|
||||
-}
|
||||
diff --git a/third_party/android_deps/util/org/chromium/gms/ChromiumPlayServicesAvailability.java b/third_party/android_deps/util/org/chromium/gms/ChromiumPlayServicesAvailability.java
|
||||
--- a/third_party/android_deps/util/org/chromium/gms/ChromiumPlayServicesAvailability.java
|
||||
+++ b/third_party/android_deps/util/org/chromium/gms/ChromiumPlayServicesAvailability.java
|
||||
@@ -5,9 +5,6 @@ package org.chromium.gms;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
-import com.google.android.gms.common.ConnectionResult;
|
||||
-import com.google.android.gms.common.GoogleApiAvailability;
|
||||
-
|
||||
public final class ChromiumPlayServicesAvailability {
|
||||
/**
|
||||
* The minimum GMS version we're requesting. isGooglePlayServicesAvailable will fail if the
|
||||
@@ -30,8 +27,7 @@ public final class ChromiumPlayServicesAvailability {
|
||||
* PM/UX.
|
||||
*/
|
||||
public static int getGooglePlayServicesConnectionResult(final Context context) {
|
||||
- return GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
|
||||
- context, GMS_VERSION_NUMBER);
|
||||
+ return 16; // API_UNAVAILABLE
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -44,8 +40,6 @@ public final class ChromiumPlayServicesAvailability {
|
||||
* PM/UX.
|
||||
*/
|
||||
public static boolean isGooglePlayServicesAvailable(final Context context) {
|
||||
- return GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
|
||||
- context, GMS_VERSION_NUMBER)
|
||||
- == ConnectionResult.SUCCESS;
|
||||
+ return false;
|
||||
}
|
||||
}
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -1,504 +0,0 @@
|
|||
From: Wengling Chen <feiyu2817@gmail.com>
|
||||
Date: Fri, 1 Nov 2019 23:01:41 +0100
|
||||
Subject: Remove dependency on com.google.android.play
|
||||
|
||||
---
|
||||
chrome/android/BUILD.gn | 1 -
|
||||
.../inline/FakeAppUpdateManagerWrapper.java | 60 +----
|
||||
.../inline/InlineUpdateControllerFactory.java | 16 --
|
||||
.../inline/PlayInlineUpdateController.java | 226 +-----------------
|
||||
components/module_installer/android/BUILD.gn | 2 -
|
||||
third_party/google_android_play_core/BUILD.gn | 5 -
|
||||
6 files changed, 3 insertions(+), 307 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
+++ b/chrome/android/BUILD.gn
|
||||
@@ -515,7 +515,6 @@ android_library("chrome_java") {
|
||||
"//third_party/blink/public/mojom:android_mojo_bindings_java",
|
||||
"//third_party/blink/public/mojom:mojom_platform_java",
|
||||
"//third_party/gif_player:gif_player_java",
|
||||
- "//third_party/google_android_play_core:com_google_android_play_core_java",
|
||||
"//third_party/metrics_proto:metrics_proto_java",
|
||||
"//ui/android:ui_java",
|
||||
"//ui/base/mojom:mojom_java",
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/FakeAppUpdateManagerWrapper.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/FakeAppUpdateManagerWrapper.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/FakeAppUpdateManagerWrapper.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/FakeAppUpdateManagerWrapper.java
|
||||
@@ -11,11 +11,6 @@ import android.os.Message;
|
||||
|
||||
import androidx.annotation.IntDef;
|
||||
|
||||
-import com.google.android.play.core.appupdate.AppUpdateInfo;
|
||||
-import com.google.android.play.core.appupdate.testing.FakeAppUpdateManager;
|
||||
-import com.google.android.play.core.install.model.AppUpdateType;
|
||||
-import com.google.android.play.core.tasks.Task;
|
||||
-
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.task.PostTask;
|
||||
import org.chromium.chrome.browser.app.ChromeActivity;
|
||||
@@ -31,7 +26,7 @@ import java.lang.ref.WeakReference;
|
||||
* wrapper isn't meant to be used for a full integration test, but simulating all of the possible
|
||||
* error cases is a bit easier to do here.
|
||||
*/
|
||||
-public class FakeAppUpdateManagerWrapper extends FakeAppUpdateManager {
|
||||
+public class FakeAppUpdateManagerWrapper {
|
||||
private static final int RESULT_IN_APP_UPDATE_FAILED = 1;
|
||||
private static final int STEP_DELAY_MS = 5000;
|
||||
private static final int TOAST_DURATION_MS = 2000;
|
||||
@@ -108,15 +103,12 @@ public class FakeAppUpdateManagerWrapper extends FakeAppUpdateManager {
|
||||
switch (event) {
|
||||
case Event.UPDATE_AVAILABLE:
|
||||
w.toast("Making app update available.");
|
||||
- w.setUpdateAvailable(10000 /* Figure out a better version? */);
|
||||
return;
|
||||
case Event.USER_ACCEPTS_UPDATE:
|
||||
w.toast("User accepts update.");
|
||||
- w.userAcceptsUpdate();
|
||||
return;
|
||||
case Event.USER_REJECTS_UPDATE:
|
||||
w.toast("User rejects update.");
|
||||
- w.userRejectsUpdate();
|
||||
return;
|
||||
case Event.TRIGGER_DOWNLOAD:
|
||||
w.toast("Triggering download.");
|
||||
@@ -124,27 +116,21 @@ public class FakeAppUpdateManagerWrapper extends FakeAppUpdateManager {
|
||||
return;
|
||||
case Event.DOWNLOAD_STARTS:
|
||||
w.toast("Download has started.");
|
||||
- w.downloadStarts();
|
||||
return;
|
||||
case Event.DOWNLOAD_FAILS:
|
||||
w.toast("Triggering download failure.");
|
||||
- w.downloadFails();
|
||||
return;
|
||||
case Event.USER_CANCELS_DOWNLOAD:
|
||||
w.toast("Triggering cancellation of download.");
|
||||
- w.userCancelsDownload();
|
||||
return;
|
||||
case Event.DOWNLOAD_COMPLETES:
|
||||
w.toast("Download completes.");
|
||||
- w.downloadCompletes();
|
||||
return;
|
||||
case Event.INSTALL_FAILS:
|
||||
w.toast("Triggering install failure.");
|
||||
- w.installFails();
|
||||
return;
|
||||
case Event.INSTALL_COMPLETES:
|
||||
w.toast("Triggering install completion.");
|
||||
- w.installCompletes();
|
||||
return;
|
||||
default:
|
||||
w.toast("Unknown event.");
|
||||
@@ -159,56 +145,12 @@ public class FakeAppUpdateManagerWrapper extends FakeAppUpdateManager {
|
||||
* @param endState at which point should the inline update flow end.
|
||||
*/
|
||||
FakeAppUpdateManagerWrapper(@Type int endState) {
|
||||
- super(ContextUtils.getApplicationContext());
|
||||
mType = endState;
|
||||
mEventHandler = new EventHandler(this);
|
||||
|
||||
if (mType != Type.NONE) execute(Event.UPDATE_AVAILABLE);
|
||||
}
|
||||
|
||||
- // FakeAppUpdateManager implementation.
|
||||
- @Override
|
||||
- public boolean startUpdateFlowForResult(AppUpdateInfo appUpdateInfo,
|
||||
- @AppUpdateType int appUpdateType, Activity activity, int requestCode) {
|
||||
- toast("Starting update flow.");
|
||||
- // TODO(dtrainor): Simulate exceptions being thrown or returning false from the super call.
|
||||
- boolean success =
|
||||
- super.startUpdateFlowForResult(appUpdateInfo, appUpdateType, activity, requestCode);
|
||||
- if (!success) return false;
|
||||
-
|
||||
- assert activity instanceof ChromeActivity : "Unexpected triggering activity.";
|
||||
-
|
||||
- final int resultCode;
|
||||
- if (mType == Type.FAIL_DIALOG_CANCEL) {
|
||||
- resultCode = Activity.RESULT_CANCELED;
|
||||
- } else if (mType == Type.FAIL_DIALOG_UPDATE_FAILED) {
|
||||
- resultCode = RESULT_IN_APP_UPDATE_FAILED;
|
||||
- } else {
|
||||
- resultCode = Activity.RESULT_OK;
|
||||
- }
|
||||
-
|
||||
- PostTask.postDelayedTask(UiThreadTaskTraits.DEFAULT, () -> {
|
||||
- triggerDialogResponse((ChromeActivity) activity, requestCode, resultCode);
|
||||
- }, STEP_DELAY_MS);
|
||||
-
|
||||
- return true;
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public Task<Void> completeUpdate() {
|
||||
- toast("Completing update.");
|
||||
- Task<Void> result = super.completeUpdate();
|
||||
-
|
||||
- if (mType == Type.FAIL_INSTALL) {
|
||||
- postDelayedEvent(Event.INSTALL_FAILS);
|
||||
- } else {
|
||||
- postDelayedEvent(Event.INSTALL_COMPLETES);
|
||||
- // This doesn't actually restart Chrome in this case.
|
||||
- }
|
||||
-
|
||||
- return result;
|
||||
- }
|
||||
-
|
||||
private void triggerDialogResponse(ChromeActivity activity, int requestCode, int resultCode) {
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
execute(Event.USER_ACCEPTS_UPDATE);
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java
|
||||
@@ -4,8 +4,6 @@
|
||||
|
||||
package org.chromium.chrome.browser.omaha.inline;
|
||||
|
||||
-import com.google.android.play.core.appupdate.AppUpdateManagerFactory;
|
||||
-
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
import org.chromium.chrome.browser.omaha.UpdateConfigs;
|
||||
@@ -20,20 +18,6 @@ public class InlineUpdateControllerFactory {
|
||||
public static InlineUpdateController create(Runnable callback) {
|
||||
@FakeAppUpdateManagerWrapper.Type
|
||||
int mockInlineEndState = UpdateConfigs.getMockInlineScenarioEndState();
|
||||
- if (mockInlineEndState != FakeAppUpdateManagerWrapper.Type.NO_SIMULATION) {
|
||||
- // The config requires to run through a test controller, using the
|
||||
- // PlayInlineUpdateController, but with a fake Google Play backend that automatically
|
||||
- // goes through a scenario flow.
|
||||
- return new PlayInlineUpdateController(
|
||||
- callback, new FakeAppUpdateManagerWrapper(mockInlineEndState));
|
||||
- }
|
||||
-
|
||||
- if (ChromeFeatureList.isEnabled(ChromeFeatureList.INLINE_UPDATE_FLOW)) {
|
||||
- // The application configuration requires to use the real Google Play backend for inline
|
||||
- // updates.
|
||||
- return new PlayInlineUpdateController(
|
||||
- callback, AppUpdateManagerFactory.create(ContextUtils.getApplicationContext()));
|
||||
- }
|
||||
|
||||
// No test scenario was in place, and the inline flow has not been enabled, so use a
|
||||
// controller with no functionality.
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/PlayInlineUpdateController.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/PlayInlineUpdateController.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/PlayInlineUpdateController.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/PlayInlineUpdateController.java
|
||||
@@ -10,15 +10,6 @@ import android.content.IntentSender.SendIntentException;
|
||||
import androidx.annotation.IntDef;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
-import com.google.android.play.core.appupdate.AppUpdateInfo;
|
||||
-import com.google.android.play.core.appupdate.AppUpdateManager;
|
||||
-import com.google.android.play.core.install.InstallState;
|
||||
-import com.google.android.play.core.install.InstallStateUpdatedListener;
|
||||
-import com.google.android.play.core.install.model.AppUpdateType;
|
||||
-import com.google.android.play.core.install.model.InstallErrorCode;
|
||||
-import com.google.android.play.core.install.model.InstallStatus;
|
||||
-import com.google.android.play.core.install.model.UpdateAvailability;
|
||||
-
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.base.metrics.RecordHistogram;
|
||||
import org.chromium.chrome.browser.omaha.UpdateStatusProvider.UpdateState;
|
||||
@@ -32,7 +23,7 @@ import java.lang.annotation.RetentionPolicy;
|
||||
* in the foreground.
|
||||
*/
|
||||
public class PlayInlineUpdateController
|
||||
- implements InlineUpdateController, InstallStateUpdatedListener {
|
||||
+ implements InlineUpdateController {
|
||||
/**
|
||||
* Converts Play's InstallErrorCode enum to a stable monotomically incrementing Chrome enum.
|
||||
* This is used for metric stability.
|
||||
@@ -127,26 +118,9 @@ public class PlayInlineUpdateController
|
||||
private static final int RESULT_IN_APP_UPDATE_FAILED = 1;
|
||||
private static final int REQUEST_CODE = 8123;
|
||||
|
||||
- private final Runnable mCallback;
|
||||
- private final AppUpdateManager mAppUpdateManager;
|
||||
-
|
||||
private boolean mEnabled;
|
||||
private @Nullable @UpdateState Integer mUpdateState;
|
||||
|
||||
- private AppUpdateInfo mAppUpdateInfo;
|
||||
- private @Nullable @UpdateAvailability Integer mUpdateAvailability;
|
||||
- private @Nullable @InstallStatus Integer mInstallStatus;
|
||||
-
|
||||
- /**
|
||||
- * Builds an instance of {@link PlayInlineUpdateController}.
|
||||
- * @param callback The {@link Runnable} to notify when an inline update state change occurs.
|
||||
- */
|
||||
- PlayInlineUpdateController(Runnable callback, AppUpdateManager appUpdateManager) {
|
||||
- mCallback = callback;
|
||||
- mAppUpdateManager = appUpdateManager;
|
||||
- setEnabled(true);
|
||||
- }
|
||||
-
|
||||
// InlineUpdateController implementation.
|
||||
@Override
|
||||
public void setEnabled(boolean enabled) {
|
||||
@@ -155,10 +129,8 @@ public class PlayInlineUpdateController
|
||||
|
||||
if (mEnabled) {
|
||||
mUpdateState = UpdateState.NONE;
|
||||
- mAppUpdateManager.registerListener(this);
|
||||
pullCurrentState();
|
||||
} else {
|
||||
- mAppUpdateManager.unregisterListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -169,220 +141,26 @@ public class PlayInlineUpdateController
|
||||
|
||||
@Override
|
||||
public void startUpdate(Activity activity) {
|
||||
- try {
|
||||
- boolean success = mAppUpdateManager.startUpdateFlowForResult(
|
||||
- mAppUpdateInfo, AppUpdateType.FLEXIBLE, activity, REQUEST_CODE);
|
||||
- Log.i(TAG, "startUpdateFlowForResult() returned " + success);
|
||||
-
|
||||
- if (!success) recordCallFailure(CallFailure.START_FAILED);
|
||||
- } catch (SendIntentException exception) {
|
||||
- mInstallStatus = InstallStatus.FAILED;
|
||||
- Log.i(TAG, "startUpdateFlowForResult() threw an exception.");
|
||||
- recordCallFailure(CallFailure.START_EXCEPTION);
|
||||
- }
|
||||
- // TODO(dtrainor): Use success.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void completeUpdate() {
|
||||
- mAppUpdateManager.completeUpdate()
|
||||
- .addOnSuccessListener(unused -> {
|
||||
- Log.i(TAG, "completeUpdate() success.");
|
||||
- pushStatus();
|
||||
- })
|
||||
- .addOnFailureListener(exception -> {
|
||||
- Log.i(TAG, "completeUpdate() failed.");
|
||||
- recordCallFailure(CallFailure.COMPLETE_FAILED);
|
||||
- mInstallStatus = InstallStatus.FAILED;
|
||||
- pushStatus();
|
||||
- });
|
||||
- }
|
||||
-
|
||||
- // InstallStateUpdatedListener implementation.
|
||||
- @Override
|
||||
- public void onStateUpdate(InstallState state) {
|
||||
- Log.i(TAG,
|
||||
- "onStateUpdate(" + state.installStatus() + ", " + state.installErrorCode() + ")");
|
||||
-
|
||||
- if (state.installStatus() != mInstallStatus) {
|
||||
- RecordHistogram.recordEnumeratedHistogram("GoogleUpdate.Inline.StateChange.Error."
|
||||
- + installStatusToEnumSuffix(state.installStatus()),
|
||||
- installErrorCodeToMetrics(state.installErrorCode()),
|
||||
- InstallErrorCodeMetrics.NUM_ENTRIES);
|
||||
- }
|
||||
-
|
||||
- mInstallStatus = state.installStatus();
|
||||
- pushStatus();
|
||||
}
|
||||
|
||||
private void pullCurrentState() {
|
||||
- mAppUpdateManager.getAppUpdateInfo()
|
||||
- .addOnSuccessListener(info -> {
|
||||
- mAppUpdateInfo = info;
|
||||
- mUpdateAvailability = info.updateAvailability();
|
||||
- mInstallStatus = info.installStatus();
|
||||
- Log.i(TAG,
|
||||
- "pullCurrentState(" + mUpdateAvailability + ", " + mInstallStatus
|
||||
- + ") success.");
|
||||
- recordOnAppUpdateInfo(info);
|
||||
- pushStatus();
|
||||
- })
|
||||
- .addOnFailureListener(exception -> {
|
||||
- mAppUpdateInfo = null;
|
||||
- mUpdateAvailability = UpdateAvailability.UNKNOWN;
|
||||
- mInstallStatus = InstallStatus.UNKNOWN;
|
||||
- Log.i(TAG, "pullCurrentState() failed.");
|
||||
- recordCallFailure(CallFailure.QUERY_FAILED);
|
||||
- pushStatus();
|
||||
- });
|
||||
}
|
||||
|
||||
private void pushStatus() {
|
||||
- if (!mEnabled || mUpdateAvailability == null || mInstallStatus == null) return;
|
||||
-
|
||||
- @UpdateState
|
||||
- int newState = toUpdateState(mUpdateAvailability, mInstallStatus);
|
||||
- if (mUpdateState != null && mUpdateState == newState) return;
|
||||
-
|
||||
- Log.i(TAG, "Pushing inline update state to " + newState);
|
||||
- mUpdateState = newState;
|
||||
- mCallback.run();
|
||||
}
|
||||
|
||||
private static @UpdateState int toUpdateState(
|
||||
- @UpdateAvailability int updateAvailability, @InstallStatus int installStatus) {
|
||||
+ int updateAvailability, int installStatus) {
|
||||
@UpdateState
|
||||
int newStatus = UpdateState.NONE;
|
||||
|
||||
- // Note, use InstallStatus first then UpdateAvailability if InstallStatus doesn't indicate
|
||||
- // a currently active install.
|
||||
- switch (installStatus) {
|
||||
- case InstallStatus.PENDING:
|
||||
- // Intentional fall through.
|
||||
- case InstallStatus.DOWNLOADING:
|
||||
- newStatus = UpdateState.INLINE_UPDATE_DOWNLOADING;
|
||||
- break;
|
||||
- case InstallStatus.DOWNLOADED:
|
||||
- newStatus = UpdateState.INLINE_UPDATE_READY;
|
||||
- break;
|
||||
- case InstallStatus.FAILED:
|
||||
- newStatus = UpdateState.INLINE_UPDATE_FAILED;
|
||||
- break;
|
||||
- }
|
||||
-
|
||||
- if (newStatus == UpdateState.NONE) {
|
||||
- switch (updateAvailability) {
|
||||
- case UpdateAvailability.UPDATE_AVAILABLE:
|
||||
- newStatus = UpdateState.INLINE_UPDATE_AVAILABLE;
|
||||
- break;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
return newStatus;
|
||||
}
|
||||
|
||||
- private static String installStatusToEnumSuffix(@InstallStatus int status) {
|
||||
- switch (status) {
|
||||
- case InstallStatus.UNKNOWN:
|
||||
- return "Unknown";
|
||||
- case InstallStatus.REQUIRES_UI_INTENT:
|
||||
- return "RequiresUiIntent";
|
||||
- case InstallStatus.PENDING:
|
||||
- return "Pending";
|
||||
- case InstallStatus.DOWNLOADING:
|
||||
- return "Downloading";
|
||||
- case InstallStatus.DOWNLOADED:
|
||||
- return "Downloaded";
|
||||
- case InstallStatus.INSTALLING:
|
||||
- return "Installing";
|
||||
- case InstallStatus.INSTALLED:
|
||||
- return "Installed";
|
||||
- case InstallStatus.FAILED:
|
||||
- return "Failed";
|
||||
- case InstallStatus.CANCELED:
|
||||
- return "Canceled";
|
||||
- default:
|
||||
- return "Untracked";
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- private static @InstallErrorCodeMetrics int installErrorCodeToMetrics(
|
||||
- @InstallErrorCode int error) {
|
||||
- switch (error) {
|
||||
- case InstallErrorCode.NO_ERROR:
|
||||
- return InstallErrorCodeMetrics.NO_ERROR;
|
||||
- case InstallErrorCode.NO_ERROR_PARTIALLY_ALLOWED:
|
||||
- return InstallErrorCodeMetrics.NO_ERROR_PARTIALLY_ALLOWED;
|
||||
- case InstallErrorCode.ERROR_UNKNOWN:
|
||||
- return InstallErrorCodeMetrics.ERROR_UNKNOWN;
|
||||
- case InstallErrorCode.ERROR_API_NOT_AVAILABLE:
|
||||
- return InstallErrorCodeMetrics.ERROR_API_NOT_AVAILABLE;
|
||||
- case InstallErrorCode.ERROR_INVALID_REQUEST:
|
||||
- return InstallErrorCodeMetrics.ERROR_INVALID_REQUEST;
|
||||
- case InstallErrorCode.ERROR_INSTALL_UNAVAILABLE:
|
||||
- return InstallErrorCodeMetrics.ERROR_INSTALL_UNAVAILABLE;
|
||||
- case InstallErrorCode.ERROR_INSTALL_NOT_ALLOWED:
|
||||
- return InstallErrorCodeMetrics.ERROR_INSTALL_NOT_ALLOWED;
|
||||
- case InstallErrorCode.ERROR_DOWNLOAD_NOT_PRESENT:
|
||||
- return InstallErrorCodeMetrics.ERROR_DOWNLOAD_NOT_PRESENT;
|
||||
- case InstallErrorCode.ERROR_INTERNAL_ERROR:
|
||||
- return InstallErrorCodeMetrics.ERROR_INTERNAL_ERROR;
|
||||
- default:
|
||||
- return InstallErrorCodeMetrics.ERROR_UNTRACKED;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- private static @UpdateAvailabilityMetric int updateAvailabilityToMetrics(
|
||||
- @UpdateAvailability int updateAvailability) {
|
||||
- switch (updateAvailability) {
|
||||
- case UpdateAvailability.UNKNOWN:
|
||||
- return UpdateAvailabilityMetric.UNKNOWN;
|
||||
- case UpdateAvailability.UPDATE_NOT_AVAILABLE:
|
||||
- return UpdateAvailabilityMetric.UPDATE_NOT_AVAILABLE;
|
||||
- case UpdateAvailability.UPDATE_AVAILABLE:
|
||||
- return UpdateAvailabilityMetric.UPDATE_AVAILABLE;
|
||||
- case UpdateAvailability.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS:
|
||||
- return UpdateAvailabilityMetric.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS;
|
||||
- default:
|
||||
- return UpdateAvailabilityMetric.UNTRACKED;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- private static @InstallStatusMetric int installStatusToMetrics(
|
||||
- @InstallStatus int installStatus) {
|
||||
- switch (installStatus) {
|
||||
- case InstallStatus.UNKNOWN:
|
||||
- return InstallStatusMetric.UNKNOWN;
|
||||
- case InstallStatus.REQUIRES_UI_INTENT:
|
||||
- return InstallStatusMetric.REQUIRES_UI_INTENT;
|
||||
- case InstallStatus.PENDING:
|
||||
- return InstallStatusMetric.PENDING;
|
||||
- case InstallStatus.DOWNLOADING:
|
||||
- return InstallStatusMetric.DOWNLOADING;
|
||||
- case InstallStatus.DOWNLOADED:
|
||||
- return InstallStatusMetric.DOWNLOADED;
|
||||
- case InstallStatus.INSTALLING:
|
||||
- return InstallStatusMetric.INSTALLING;
|
||||
- case InstallStatus.INSTALLED:
|
||||
- return InstallStatusMetric.INSTALLED;
|
||||
- case InstallStatus.FAILED:
|
||||
- return InstallStatusMetric.FAILED;
|
||||
- case InstallStatus.CANCELED:
|
||||
- return InstallStatusMetric.CANCELED;
|
||||
- default:
|
||||
- return InstallStatusMetric.UNTRACKED;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- private static void recordOnAppUpdateInfo(AppUpdateInfo info) {
|
||||
- RecordHistogram.recordEnumeratedHistogram(
|
||||
- "GoogleUpdate.Inline.AppUpdateInfo.UpdateAvailability",
|
||||
- updateAvailabilityToMetrics(info.updateAvailability()),
|
||||
- UpdateAvailabilityMetric.NUM_ENTRIES);
|
||||
- RecordHistogram.recordEnumeratedHistogram("GoogleUpdate.Inline.AppUpdateInfo.InstallStatus",
|
||||
- installStatusToMetrics(info.installStatus()), InstallStatusMetric.NUM_ENTRIES);
|
||||
- }
|
||||
-
|
||||
private static void recordCallFailure(@CallFailure int failure) {
|
||||
RecordHistogram.recordEnumeratedHistogram(
|
||||
"GoogleUpdate.Inline.CallFailure", failure, CallFailure.NUM_ENTRIES);
|
||||
diff --git a/components/module_installer/android/BUILD.gn b/components/module_installer/android/BUILD.gn
|
||||
--- a/components/module_installer/android/BUILD.gn
|
||||
+++ b/components/module_installer/android/BUILD.gn
|
||||
@@ -37,7 +37,6 @@ android_library("module_installer_java") {
|
||||
"//base:jni_java",
|
||||
"//components/crash/android:java",
|
||||
"//third_party/android_deps:androidx_annotation_annotation_java",
|
||||
- "//third_party/google_android_play_core:com_google_android_play_core_java",
|
||||
]
|
||||
|
||||
annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
|
||||
@@ -60,7 +59,6 @@ junit_binary("module_installer_junit_tests") {
|
||||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
"//base:base_junit_test_support",
|
||||
- "//third_party/google_android_play_core:com_google_android_play_core_java",
|
||||
"//third_party/hamcrest:hamcrest_java",
|
||||
]
|
||||
}
|
||||
diff --git a/third_party/google_android_play_core/BUILD.gn b/third_party/google_android_play_core/BUILD.gn
|
||||
--- a/third_party/google_android_play_core/BUILD.gn
|
||||
+++ b/third_party/google_android_play_core/BUILD.gn
|
||||
@@ -3,8 +3,3 @@
|
||||
# found in the LICENSE file.
|
||||
|
||||
import("//build/config/android/rules.gni")
|
||||
-
|
||||
-android_aar_prebuilt("com_google_android_play_core_java") {
|
||||
- aar_path = "core-1.6.4.aar"
|
||||
- info_path = "com_google_android_play_core.info"
|
||||
-}
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -1,649 +0,0 @@
|
|||
From: Wengling Chen <feiyu2817@gmail.com>
|
||||
Date: Sat, 2 Nov 2019 07:58:48 +0100
|
||||
Subject: Remove dependency on fido, iid, instantapps, location
|
||||
|
||||
---
|
||||
chrome/android/BUILD.gn | 5 -
|
||||
chrome/android/chrome_java_sources.gni | 3 -
|
||||
.../ExternalNavigationDelegateImpl.java | 8 +-
|
||||
.../instantapps/InstantAppsHandler.java | 56 ----------
|
||||
.../browser/webauth/AuthenticatorImpl.java | 29 +----
|
||||
.../gcm_driver/instance_id/android/BUILD.gn | 2 -
|
||||
.../instance_id/InstanceIDWithSubtype.java | 28 +----
|
||||
content/public/common/content_features.cc | 2 +-
|
||||
device/BUILD.gn | 1 -
|
||||
services/BUILD.gn | 3 -
|
||||
services/device/geolocation/BUILD.gn | 1 -
|
||||
.../geolocation/LocationProviderGmsCore.java | 102 +-----------------
|
||||
third_party/android_deps/BUILD.gn | 75 -------------
|
||||
13 files changed, 14 insertions(+), 301 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
+++ b/chrome/android/BUILD.gn
|
||||
@@ -282,8 +282,6 @@ android_library("chrome_java") {
|
||||
"$google_play_services_package:google_play_services_basement_java",
|
||||
"$google_play_services_package:google_play_services_cast_framework_java",
|
||||
"$google_play_services_package:google_play_services_cast_java",
|
||||
- "$google_play_services_package:google_play_services_fido_java",
|
||||
- "$google_play_services_package:google_play_services_iid_java",
|
||||
"$google_play_services_package:google_play_services_tasks_java",
|
||||
"//base:base_java",
|
||||
"//base:jni_java",
|
||||
@@ -774,7 +772,6 @@ junit_binary("chrome_junit_tests") {
|
||||
"$google_play_services_package:google_play_services_basement_java",
|
||||
"$google_play_services_package:google_play_services_cast_framework_java",
|
||||
"$google_play_services_package:google_play_services_cast_java",
|
||||
- "$google_play_services_package:google_play_services_fido_java",
|
||||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
"//base:base_junit_test_support",
|
||||
@@ -992,8 +989,6 @@ android_library("chrome_test_java") {
|
||||
"$google_play_services_package:google_play_services_basement_java",
|
||||
"$google_play_services_package:google_play_services_cast_framework_java",
|
||||
"$google_play_services_package:google_play_services_cast_java",
|
||||
- "$google_play_services_package:google_play_services_fido_java",
|
||||
- "$google_play_services_package:google_play_services_iid_java",
|
||||
"$google_play_services_package:google_play_services_tasks_java",
|
||||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
|
||||
--- a/chrome/android/chrome_java_sources.gni
|
||||
+++ b/chrome/android/chrome_java_sources.gni
|
||||
@@ -1685,9 +1685,6 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/webapps/addtohomescreen/AddToHomescreenViewDelegate.java",
|
||||
"java/src/org/chromium/chrome/browser/webauth/AuthenticatorFactory.java",
|
||||
"java/src/org/chromium/chrome/browser/webauth/AuthenticatorImpl.java",
|
||||
- "java/src/org/chromium/chrome/browser/webauth/Fido2ApiHandler.java",
|
||||
- "java/src/org/chromium/chrome/browser/webauth/Fido2CredentialRequest.java",
|
||||
- "java/src/org/chromium/chrome/browser/webauth/Fido2Helper.java",
|
||||
"java/src/org/chromium/chrome/browser/webauth/HandlerResponseCallback.java",
|
||||
"java/src/org/chromium/chrome/browser/webauth/authenticator/CableAuthenticatorActivity.java",
|
||||
"java/src/org/chromium/chrome/browser/webshare/ShareServiceImplementationFactory.java",
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
|
||||
@@ -216,12 +216,8 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
|
||||
|
||||
@Override
|
||||
public void maybeAdjustInstantAppExtras(Intent intent, boolean isIntentToInstantApp) {
|
||||
- if (isIntentToInstantApp) {
|
||||
- intent.putExtra(InstantAppsHandler.IS_GOOGLE_SEARCH_REFERRER, true);
|
||||
- } else {
|
||||
- // Make sure this extra is not sent unless we've done the verification.
|
||||
- intent.removeExtra(InstantAppsHandler.IS_GOOGLE_SEARCH_REFERRER);
|
||||
- }
|
||||
+ // Always remove this extra
|
||||
+ intent.removeExtra(InstantAppsHandler.IS_GOOGLE_SEARCH_REFERRER);
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java
|
||||
@@ -40,31 +40,9 @@ public class InstantAppsHandler {
|
||||
// TODO(mariakhomenko): Use system once we roll to O SDK.
|
||||
private static final int FLAG_DO_NOT_LAUNCH = 0x00000200;
|
||||
|
||||
- // TODO(mariakhomenko): Depend directly on the constants once we roll to v8 libraries.
|
||||
- private static final String DO_NOT_LAUNCH_EXTRA =
|
||||
- "com.google.android.gms.instantapps.DO_NOT_LAUNCH_INSTANT_APP";
|
||||
-
|
||||
- protected static final String IS_REFERRER_TRUSTED_EXTRA =
|
||||
- "com.google.android.gms.instantapps.IS_REFERRER_TRUSTED";
|
||||
-
|
||||
- protected static final String IS_USER_CONFIRMED_LAUNCH_EXTRA =
|
||||
- "com.google.android.gms.instantapps.IS_USER_CONFIRMED_LAUNCH";
|
||||
-
|
||||
- protected static final String TRUSTED_REFERRER_PKG_EXTRA =
|
||||
- "com.google.android.gms.instantapps.TRUSTED_REFERRER_PKG";
|
||||
-
|
||||
public static final String IS_GOOGLE_SEARCH_REFERRER =
|
||||
"com.google.android.gms.instantapps.IS_GOOGLE_SEARCH_REFERRER";
|
||||
|
||||
- private static final String BROWSER_LAUNCH_REASON =
|
||||
- "com.google.android.gms.instantapps.BROWSER_LAUNCH_REASON";
|
||||
-
|
||||
- private static final String SUPERVISOR_PKG = "com.google.android.instantapps.supervisor";
|
||||
-
|
||||
- private static final String[] SUPERVISOR_START_ACTIONS = {
|
||||
- "com.google.android.instantapps.START", "com.google.android.instantapps.nmr1.INSTALL",
|
||||
- "com.google.android.instantapps.nmr1.VIEW"};
|
||||
-
|
||||
/** Finch experiment name. */
|
||||
private static final String INSTANT_APPS_EXPERIMENT_NAME = "InstantApps";
|
||||
|
||||
@@ -93,14 +71,6 @@ public class InstantAppsHandler {
|
||||
* @return Whether the given intent is going to open an Instant App.
|
||||
*/
|
||||
public static boolean isIntentToInstantApp(Intent intent) {
|
||||
- if (SUPERVISOR_PKG.equals(intent.getPackage())) return true;
|
||||
-
|
||||
- String intentAction = intent.getAction();
|
||||
- for (String action : SUPERVISOR_START_ACTIONS) {
|
||||
- if (action.equals(intentAction)) {
|
||||
- return true;
|
||||
- }
|
||||
- }
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -135,20 +105,6 @@ public class InstantAppsHandler {
|
||||
* @param intent The current intent.
|
||||
*/
|
||||
private void maybeRecordFallbackStats(Intent intent) {
|
||||
- Long startTime = IntentUtils.safeGetLongExtra(intent, INSTANT_APP_START_TIME_EXTRA, 0);
|
||||
- if (startTime > 0) {
|
||||
- RecordHistogram.recordTimesHistogram("Android.InstantApps.FallbackDuration",
|
||||
- SystemClock.elapsedRealtime() - startTime);
|
||||
- intent.removeExtra(INSTANT_APP_START_TIME_EXTRA);
|
||||
- }
|
||||
- int callSource = IntentUtils.safeGetIntExtra(intent, BROWSER_LAUNCH_REASON, 0);
|
||||
- if (callSource > 0 && callSource < SOURCE_BOUNDARY) {
|
||||
- RecordHistogram.recordEnumeratedHistogram(
|
||||
- "Android.InstantApps.CallSource", callSource, SOURCE_BOUNDARY);
|
||||
- intent.removeExtra(BROWSER_LAUNCH_REASON);
|
||||
- } else if (callSource >= SOURCE_BOUNDARY) {
|
||||
- Log.e(TAG, "Unexpected call source constant for Instant Apps: " + callSource);
|
||||
- }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -183,14 +139,6 @@ public class InstantAppsHandler {
|
||||
return false;
|
||||
}
|
||||
|
||||
- if (IntentUtils.safeGetBooleanExtra(intent, DO_NOT_LAUNCH_EXTRA, false)
|
||||
- || (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
|
||||
- && (intent.getFlags() & FLAG_DO_NOT_LAUNCH) != 0)) {
|
||||
- maybeRecordFallbackStats(intent);
|
||||
- Log.i(TAG, "Not handling with Instant Apps (DO_NOT_LAUNCH_EXTRA)");
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
if (IntentUtils.safeGetBooleanExtra(
|
||||
intent, IntentHandler.EXTRA_OPEN_NEW_INCOGNITO_TAB, false)
|
||||
|| IntentUtils.safeHasExtra(intent, ShortcutHelper.EXTRA_SOURCE)
|
||||
@@ -215,7 +163,6 @@ public class InstantAppsHandler {
|
||||
}
|
||||
|
||||
Intent callbackIntent = new Intent(intent);
|
||||
- callbackIntent.putExtra(DO_NOT_LAUNCH_EXTRA, true);
|
||||
callbackIntent.putExtra(INSTANT_APP_START_TIME_EXTRA, startTime);
|
||||
|
||||
return tryLaunchingInstantApp(context, intent, isCustomTabsIntent, callbackIntent);
|
||||
@@ -318,12 +265,9 @@ public class InstantAppsHandler {
|
||||
Intent iaIntent = data.getIntent();
|
||||
if (data.getReferrer() != null) {
|
||||
iaIntent.putExtra(Intent.EXTRA_REFERRER, data.getReferrer());
|
||||
- iaIntent.putExtra(IS_REFERRER_TRUSTED_EXTRA, true);
|
||||
}
|
||||
|
||||
Context appContext = ContextUtils.getApplicationContext();
|
||||
- iaIntent.putExtra(TRUSTED_REFERRER_PKG_EXTRA, appContext.getPackageName());
|
||||
- iaIntent.putExtra(IS_USER_CONFIRMED_LAUNCH_EXTRA, true);
|
||||
|
||||
try {
|
||||
appContext.startActivity(iaIntent);
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webauth/AuthenticatorImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/webauth/AuthenticatorImpl.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/webauth/AuthenticatorImpl.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webauth/AuthenticatorImpl.java
|
||||
@@ -102,14 +102,7 @@ public class AuthenticatorImpl extends HandlerResponseCallback implements Authen
|
||||
|
||||
mMakeCredentialCallback = callback;
|
||||
Context context = ContextUtils.getApplicationContext();
|
||||
- if (PackageUtils.getPackageVersion(context, GMSCORE_PACKAGE_NAME)
|
||||
- < Fido2ApiHandler.GMSCORE_MIN_VERSION) {
|
||||
- onError(AuthenticatorStatus.NOT_IMPLEMENTED);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- mIsOperationPending = true;
|
||||
- Fido2ApiHandler.getInstance().makeCredential(options, mRenderFrameHost, mOrigin, this);
|
||||
+ onError(AuthenticatorStatus.NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -137,14 +130,7 @@ public class AuthenticatorImpl extends HandlerResponseCallback implements Authen
|
||||
mGetAssertionCallback = callback;
|
||||
Context context = ContextUtils.getApplicationContext();
|
||||
|
||||
- if (PackageUtils.getPackageVersion(context, GMSCORE_PACKAGE_NAME)
|
||||
- < Fido2ApiHandler.GMSCORE_MIN_VERSION) {
|
||||
- onError(AuthenticatorStatus.NOT_IMPLEMENTED);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- mIsOperationPending = true;
|
||||
- Fido2ApiHandler.getInstance().getAssertion(options, mRenderFrameHost, mOrigin, this);
|
||||
+ onError(AuthenticatorStatus.NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -177,15 +163,8 @@ public class AuthenticatorImpl extends HandlerResponseCallback implements Authen
|
||||
return;
|
||||
}
|
||||
|
||||
- if (PackageUtils.getPackageVersion(context, GMSCORE_PACKAGE_NAME)
|
||||
- < Fido2ApiHandler.GMSCORE_MIN_VERSION) {
|
||||
- callback.call(false);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- mIsUserVerifyingPlatformAuthenticatorAvailableCallbackQueue.add(callback);
|
||||
- Fido2ApiHandler.getInstance().isUserVerifyingPlatformAuthenticatorAvailable(
|
||||
- mRenderFrameHost, this);
|
||||
+ callback.call(false);
|
||||
+ return;
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/components/gcm_driver/instance_id/android/BUILD.gn b/components/gcm_driver/instance_id/android/BUILD.gn
|
||||
--- a/components/gcm_driver/instance_id/android/BUILD.gn
|
||||
+++ b/components/gcm_driver/instance_id/android/BUILD.gn
|
||||
@@ -15,7 +15,6 @@ generate_jni("test_support_jni_headers") {
|
||||
|
||||
android_library("instance_id_driver_java") {
|
||||
deps = [
|
||||
- "$google_play_services_package:google_play_services_iid_java",
|
||||
"//base:base_java",
|
||||
"//base:jni_java",
|
||||
"//components/gcm_driver/android:gcm_driver_java",
|
||||
@@ -34,7 +33,6 @@ android_library("instance_id_driver_java") {
|
||||
android_library("instance_id_driver_test_support_java") {
|
||||
deps = [
|
||||
":instance_id_driver_java",
|
||||
- "$google_play_services_package:google_play_services_iid_java",
|
||||
"//base:base_java",
|
||||
]
|
||||
|
||||
diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDWithSubtype.java b/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDWithSubtype.java
|
||||
--- a/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDWithSubtype.java
|
||||
+++ b/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDWithSubtype.java
|
||||
@@ -10,8 +10,6 @@ import android.text.TextUtils;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
|
||||
-import com.google.android.gms.iid.InstanceID;
|
||||
-
|
||||
import org.chromium.base.ContextUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
@@ -26,8 +24,6 @@ public class InstanceIDWithSubtype {
|
||||
// Must match the private InstanceID.OPTION_SUBTYPE, which is guaranteed to not change.
|
||||
private static final String OPTION_SUBTYPE = "subtype";
|
||||
|
||||
- private final InstanceID mInstanceID;
|
||||
-
|
||||
/**
|
||||
* Cached instances. May be accessed from multiple threads; synchronize on sSubtypeInstancesLock
|
||||
*/
|
||||
@@ -39,10 +35,6 @@ public class InstanceIDWithSubtype {
|
||||
@VisibleForTesting
|
||||
protected static FakeFactory sFakeFactoryForTesting;
|
||||
|
||||
- protected InstanceIDWithSubtype(InstanceID instanceID) {
|
||||
- mInstanceID = instanceID;
|
||||
- }
|
||||
-
|
||||
/**
|
||||
* Returns an instance of this class. Unlike {@link InstanceID#getInstance(Context)}, it is not
|
||||
* a singleton, but instead a different instance will be returned for each {@code subtype}.
|
||||
@@ -58,11 +50,6 @@ public class InstanceIDWithSubtype {
|
||||
if (sFakeFactoryForTesting != null) {
|
||||
existing = sFakeFactoryForTesting.create(subtype);
|
||||
} else {
|
||||
- Bundle options = new Bundle();
|
||||
- options.putCharSequence(OPTION_SUBTYPE, subtype);
|
||||
- InstanceID instanceID =
|
||||
- InstanceID.getInstance(ContextUtils.getApplicationContext(), options);
|
||||
- existing = new InstanceIDWithSubtype(instanceID);
|
||||
}
|
||||
sSubtypeInstances.put(subtype, existing);
|
||||
}
|
||||
@@ -71,35 +58,30 @@ public class InstanceIDWithSubtype {
|
||||
}
|
||||
|
||||
public String getSubtype() {
|
||||
- return mInstanceID.getSubtype();
|
||||
+ return "";
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
- return mInstanceID.getId();
|
||||
+ return "";
|
||||
}
|
||||
|
||||
public long getCreationTime() {
|
||||
- return mInstanceID.getCreationTime();
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
public void deleteInstanceID() throws IOException {
|
||||
- synchronized (sSubtypeInstancesLock) {
|
||||
- sSubtypeInstances.remove(mInstanceID.getSubtype());
|
||||
- mInstanceID.deleteInstanceID();
|
||||
- }
|
||||
}
|
||||
|
||||
public void deleteToken(String authorizedEntity, String scope) throws IOException {
|
||||
- mInstanceID.deleteToken(authorizedEntity, scope);
|
||||
}
|
||||
|
||||
public String getToken(String authorizedEntity, String scope) throws IOException {
|
||||
- return mInstanceID.getToken(authorizedEntity, scope);
|
||||
+ return "";
|
||||
}
|
||||
|
||||
public String getToken(String authorizedEntity, String scope, Bundle extras)
|
||||
throws IOException {
|
||||
- return mInstanceID.getToken(authorizedEntity, scope, extras);
|
||||
+ return "";
|
||||
}
|
||||
|
||||
/** Fake subclasses can set {@link #sFakeFactoryForTesting} to an implementation of this. */
|
||||
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
|
||||
--- a/content/public/common/content_features.cc
|
||||
+++ b/content/public/common/content_features.cc
|
||||
@@ -782,7 +782,7 @@ const base::Feature kWebContentsOcclusion {
|
||||
// Controls whether the WebAuthentication API is enabled:
|
||||
// https://w3c.github.io/webauthn
|
||||
const base::Feature kWebAuth{"WebAuthentication",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
// Controls whether CTAP2 devices can communicate via the WebAuthentication API
|
||||
// using pairingless BLE protocol.
|
||||
diff --git a/device/BUILD.gn b/device/BUILD.gn
|
||||
--- a/device/BUILD.gn
|
||||
+++ b/device/BUILD.gn
|
||||
@@ -423,7 +423,6 @@ if (is_android) {
|
||||
deps = [
|
||||
"$google_play_services_package:google_play_services_base_java",
|
||||
"$google_play_services_package:google_play_services_basement_java",
|
||||
- "$google_play_services_package:google_play_services_location_java",
|
||||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
"//base:base_junit_test_support",
|
||||
diff --git a/services/BUILD.gn b/services/BUILD.gn
|
||||
--- a/services/BUILD.gn
|
||||
+++ b/services/BUILD.gn
|
||||
@@ -104,9 +104,6 @@ if (is_android) {
|
||||
"shape_detection/android/junit/src/org/chromium/shape_detection/BitmapUtilsTest.java",
|
||||
]
|
||||
deps = [
|
||||
- "$google_play_services_package:google_play_services_base_java",
|
||||
- "$google_play_services_package:google_play_services_basement_java",
|
||||
- "$google_play_services_package:google_play_services_location_java",
|
||||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
"//base:base_junit_test_support",
|
||||
diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn
|
||||
--- a/services/device/geolocation/BUILD.gn
|
||||
+++ b/services/device/geolocation/BUILD.gn
|
||||
@@ -157,7 +157,6 @@ if (is_android) {
|
||||
":geolocation_jni_headers",
|
||||
"$google_play_services_package:google_play_services_base_java",
|
||||
"$google_play_services_package:google_play_services_basement_java",
|
||||
- "$google_play_services_package:google_play_services_location_java",
|
||||
"//base:base_java",
|
||||
"//base:jni_java",
|
||||
"//components/location/android:location_java",
|
||||
diff --git a/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderGmsCore.java b/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderGmsCore.java
|
||||
--- a/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderGmsCore.java
|
||||
+++ b/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderGmsCore.java
|
||||
@@ -8,132 +8,40 @@ import android.content.Context;
|
||||
import android.location.Location;
|
||||
import android.os.Bundle;
|
||||
|
||||
-import com.google.android.gms.common.ConnectionResult;
|
||||
-import com.google.android.gms.common.api.GoogleApiClient;
|
||||
-import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks;
|
||||
-import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;
|
||||
-import com.google.android.gms.location.FusedLocationProviderApi;
|
||||
-import com.google.android.gms.location.LocationListener;
|
||||
-import com.google.android.gms.location.LocationRequest;
|
||||
-import com.google.android.gms.location.LocationServices;
|
||||
-
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.base.ThreadUtils;
|
||||
import org.chromium.components.location.LocationUtils;
|
||||
-import org.chromium.gms.ChromiumPlayServicesAvailability;
|
||||
|
||||
/**
|
||||
* This is a LocationProvider using Google Play Services.
|
||||
*
|
||||
* https://developers.google.com/android/reference/com/google/android/gms/location/package-summary
|
||||
*/
|
||||
-public class LocationProviderGmsCore implements ConnectionCallbacks, OnConnectionFailedListener,
|
||||
- LocationListener, LocationProvider {
|
||||
+public class LocationProviderGmsCore implements LocationProvider {
|
||||
private static final String TAG = "LocationProvider";
|
||||
|
||||
// Values for the LocationRequest's setInterval for normal and high accuracy, respectively.
|
||||
private static final long UPDATE_INTERVAL_MS = 1000;
|
||||
private static final long UPDATE_INTERVAL_FAST_MS = 500;
|
||||
|
||||
- private final GoogleApiClient mGoogleApiClient;
|
||||
- private FusedLocationProviderApi mLocationProviderApi = LocationServices.FusedLocationApi;
|
||||
-
|
||||
- private boolean mEnablehighAccuracy;
|
||||
- private LocationRequest mLocationRequest;
|
||||
-
|
||||
public static boolean isGooglePlayServicesAvailable(Context context) {
|
||||
- return ChromiumPlayServicesAvailability.isGooglePlayServicesAvailable(context);
|
||||
+ return false;
|
||||
}
|
||||
|
||||
LocationProviderGmsCore(Context context) {
|
||||
Log.i(TAG, "Google Play Services");
|
||||
- mGoogleApiClient = new GoogleApiClient.Builder(context)
|
||||
- .addApi(LocationServices.API)
|
||||
- .addConnectionCallbacks(this)
|
||||
- .addOnConnectionFailedListener(this)
|
||||
- .build();
|
||||
- assert mGoogleApiClient != null;
|
||||
- }
|
||||
-
|
||||
- LocationProviderGmsCore(GoogleApiClient client, FusedLocationProviderApi locationApi) {
|
||||
- mGoogleApiClient = client;
|
||||
- mLocationProviderApi = locationApi;
|
||||
- }
|
||||
-
|
||||
- // ConnectionCallbacks implementation
|
||||
- @Override
|
||||
- public void onConnected(Bundle connectionHint) {
|
||||
- ThreadUtils.assertOnUiThread();
|
||||
-
|
||||
- mLocationRequest = LocationRequest.create();
|
||||
- if (mEnablehighAccuracy) {
|
||||
- // With enableHighAccuracy, request a faster update interval and configure the provider
|
||||
- // for high accuracy mode.
|
||||
- mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
|
||||
- .setInterval(UPDATE_INTERVAL_FAST_MS);
|
||||
- } else {
|
||||
- // Use balanced mode by default. In this mode, the API will prefer the network provider
|
||||
- // but may use sensor data (for instance, GPS) if high accuracy is requested by another
|
||||
- // app.
|
||||
- //
|
||||
- // If location is configured for sensors-only then elevate the priority to ensure GPS
|
||||
- // and other sensors are used.
|
||||
- if (LocationUtils.getInstance().isSystemLocationSettingSensorsOnly()) {
|
||||
- mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
|
||||
- } else {
|
||||
- mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
|
||||
- }
|
||||
- mLocationRequest.setInterval(UPDATE_INTERVAL_MS);
|
||||
- }
|
||||
-
|
||||
- final Location location = mLocationProviderApi.getLastLocation(mGoogleApiClient);
|
||||
- if (location != null) {
|
||||
- LocationProviderAdapter.onNewLocationAvailable(location);
|
||||
- }
|
||||
-
|
||||
- try {
|
||||
- // Request updates on UI Thread replicating LocationProviderAndroid's behaviour.
|
||||
- mLocationProviderApi.requestLocationUpdates(
|
||||
- mGoogleApiClient, mLocationRequest, this, ThreadUtils.getUiThreadLooper());
|
||||
- } catch (IllegalStateException | SecurityException e) {
|
||||
- // IllegalStateException is thrown "If this method is executed in a thread that has not
|
||||
- // called Looper.prepare()". SecurityException is thrown if there is no permission, see
|
||||
- // https://crbug.com/731271.
|
||||
- Log.e(TAG, " mLocationProviderApi.requestLocationUpdates() " + e);
|
||||
- LocationProviderAdapter.newErrorAvailable(
|
||||
- "Failed to request location updates: " + e.toString());
|
||||
- assert false;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public void onConnectionSuspended(int cause) {}
|
||||
-
|
||||
- // OnConnectionFailedListener implementation
|
||||
- @Override
|
||||
- public void onConnectionFailed(ConnectionResult result) {
|
||||
- LocationProviderAdapter.newErrorAvailable(
|
||||
- "Failed to connect to Google Play Services: " + result.toString());
|
||||
}
|
||||
|
||||
// LocationProvider implementation
|
||||
@Override
|
||||
public void start(boolean enableHighAccuracy) {
|
||||
ThreadUtils.assertOnUiThread();
|
||||
- if (mGoogleApiClient.isConnected()) mGoogleApiClient.disconnect();
|
||||
-
|
||||
mEnablehighAccuracy = enableHighAccuracy;
|
||||
- mGoogleApiClient.connect(); // Should return via onConnected().
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop() {
|
||||
ThreadUtils.assertOnUiThread();
|
||||
- if (!mGoogleApiClient.isConnected()) return;
|
||||
-
|
||||
- mLocationProviderApi.removeLocationUpdates(mGoogleApiClient, this);
|
||||
-
|
||||
- mGoogleApiClient.disconnect();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -142,10 +50,4 @@ public class LocationProviderGmsCore implements ConnectionCallbacks, OnConnectio
|
||||
if (mGoogleApiClient == null) return false;
|
||||
return mGoogleApiClient.isConnecting() || mGoogleApiClient.isConnected();
|
||||
}
|
||||
-
|
||||
- // LocationListener implementation
|
||||
- @Override
|
||||
- public void onLocationChanged(Location location) {
|
||||
- LocationProviderAdapter.onNewLocationAvailable(location);
|
||||
- }
|
||||
}
|
||||
diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn
|
||||
--- a/third_party/android_deps/BUILD.gn
|
||||
+++ b/third_party/android_deps/BUILD.gn
|
||||
@@ -49,7 +49,6 @@ java_group("robolectric_all_java") {
|
||||
":org_robolectric_shadowapi_java",
|
||||
":org_robolectric_shadows_framework_java",
|
||||
":org_robolectric_shadows_multidex_java",
|
||||
- ":org_robolectric_shadows_playservices_java",
|
||||
":org_robolectric_utils_java",
|
||||
":org_robolectric_utils_reflector_java",
|
||||
"//third_party/robolectric:android-all-10-robolectric-5803371_java",
|
||||
@@ -1211,20 +1210,6 @@ android_aar_prebuilt("google_play_services_cast_framework_java") {
|
||||
strip_resources = !is_java_debug
|
||||
}
|
||||
|
||||
-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
-android_aar_prebuilt("google_play_services_fido_java") {
|
||||
- aar_path = "libs/com_google_android_gms_play_services_fido/play-services-fido-18.1.0.aar"
|
||||
- info_path = "libs/com_google_android_gms_play_services_fido/com_google_android_gms_play_services_fido.info"
|
||||
- deps = [
|
||||
- ":google_play_services_base_java",
|
||||
- ":google_play_services_basement_java",
|
||||
- ":google_play_services_tasks_java",
|
||||
- ]
|
||||
-
|
||||
- # Removing drawables from GMS .aars as they are unused bloat.
|
||||
- strip_drawables = true
|
||||
-}
|
||||
-
|
||||
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
android_aar_prebuilt("google_play_services_gcm_java") {
|
||||
aar_path = "libs/com_google_android_gms_play_services_gcm/play-services-gcm-17.0.0.aar"
|
||||
@@ -1243,52 +1228,6 @@ android_aar_prebuilt("google_play_services_gcm_java") {
|
||||
strip_drawables = true
|
||||
}
|
||||
|
||||
-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
-android_aar_prebuilt("google_play_services_iid_java") {
|
||||
- aar_path = "libs/com_google_android_gms_play_services_iid/play-services-iid-17.0.0.aar"
|
||||
- info_path = "libs/com_google_android_gms_play_services_iid/com_google_android_gms_play_services_iid.info"
|
||||
- deps = [
|
||||
- ":androidx_collection_collection_java",
|
||||
- ":androidx_core_core_java",
|
||||
- ":google_play_services_base_java",
|
||||
- ":google_play_services_basement_java",
|
||||
- ":google_play_services_stats_java",
|
||||
- ":google_play_services_tasks_java",
|
||||
- ]
|
||||
-
|
||||
- # Removing drawables from GMS .aars as they are unused bloat.
|
||||
- strip_drawables = true
|
||||
-}
|
||||
-
|
||||
-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
-android_aar_prebuilt("google_play_services_instantapps_java") {
|
||||
- aar_path = "libs/com_google_android_gms_play_services_instantapps/play-services-instantapps-17.0.0.aar"
|
||||
- info_path = "libs/com_google_android_gms_play_services_instantapps/com_google_android_gms_play_services_instantapps.info"
|
||||
- deps = [
|
||||
- ":google_play_services_base_java",
|
||||
- ":google_play_services_basement_java",
|
||||
- ":google_play_services_tasks_java",
|
||||
- ]
|
||||
-
|
||||
- # Removing drawables from GMS .aars as they are unused bloat.
|
||||
- strip_drawables = true
|
||||
-}
|
||||
-
|
||||
-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
-android_aar_prebuilt("google_play_services_location_java") {
|
||||
- aar_path = "libs/com_google_android_gms_play_services_location/play-services-location-17.0.0.aar"
|
||||
- info_path = "libs/com_google_android_gms_play_services_location/com_google_android_gms_play_services_location.info"
|
||||
- deps = [
|
||||
- ":google_play_services_base_java",
|
||||
- ":google_play_services_basement_java",
|
||||
- ":google_play_services_places_placereport_java",
|
||||
- ":google_play_services_tasks_java",
|
||||
- ]
|
||||
-
|
||||
- # Removing drawables from GMS .aars as they are unused bloat.
|
||||
- strip_drawables = true
|
||||
-}
|
||||
-
|
||||
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
android_aar_prebuilt("google_play_services_tasks_java") {
|
||||
aar_path = "libs/com_google_android_gms_play_services_tasks/play-services-tasks-17.0.0.aar"
|
||||
@@ -1690,20 +1629,6 @@ java_prebuilt("org_robolectric_shadows_multidex_java") {
|
||||
bypass_platform_checks = true
|
||||
}
|
||||
|
||||
-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
-java_prebuilt("org_robolectric_shadows_playservices_java") {
|
||||
- jar_path =
|
||||
- "libs/org_robolectric_shadows_playservices/shadows-playservices-4.3.1.jar"
|
||||
- output_name = "org_robolectric_shadows_playservices"
|
||||
- enable_bytecode_checks = false
|
||||
- testonly = true
|
||||
- deps = [
|
||||
- ":com_google_guava_guava_java",
|
||||
- ":org_robolectric_annotations_java",
|
||||
- ]
|
||||
- bypass_platform_checks = true
|
||||
-}
|
||||
-
|
||||
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
java_prebuilt("org_robolectric_utils_java") {
|
||||
jar_path = "libs/org_robolectric_utils/utils-4.3.1.jar"
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
From: Wengling Chen <feiyu2817@gmail.com>
|
||||
Date: Sat, 2 Nov 2019 07:57:37 +0100
|
||||
Subject: Remove dependency on flags, places and stats
|
||||
|
||||
---
|
||||
third_party/android_deps/BUILD.gn | 31 -------------------------------
|
||||
1 file changed, 31 deletions(-)
|
||||
|
||||
diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn
|
||||
--- a/third_party/android_deps/BUILD.gn
|
||||
+++ b/third_party/android_deps/BUILD.gn
|
||||
@@ -2251,37 +2251,6 @@ java_prebuilt("com_github_kevinstern_software_and_algorithms_java") {
|
||||
visibility = [ ":*" ]
|
||||
}
|
||||
|
||||
-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
-android_aar_prebuilt("google_play_services_places_placereport_java") {
|
||||
- aar_path = "libs/com_google_android_gms_play_services_places_placereport/play-services-places-placereport-17.0.0.aar"
|
||||
- info_path = "libs/com_google_android_gms_play_services_places_placereport/com_google_android_gms_play_services_places_placereport.info"
|
||||
-
|
||||
- # To remove visibility constraint, add this dependency to
|
||||
- # //third_party/android_deps/build.gradle.
|
||||
- visibility = [ ":*" ]
|
||||
- deps = [ ":google_play_services_basement_java" ]
|
||||
-
|
||||
- # Removing drawables from GMS .aars as they are unused bloat.
|
||||
- strip_drawables = true
|
||||
-}
|
||||
-
|
||||
-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
-android_aar_prebuilt("google_play_services_stats_java") {
|
||||
- aar_path = "libs/com_google_android_gms_play_services_stats/play-services-stats-17.0.0.aar"
|
||||
- info_path = "libs/com_google_android_gms_play_services_stats/com_google_android_gms_play_services_stats.info"
|
||||
-
|
||||
- # To remove visibility constraint, add this dependency to
|
||||
- # //third_party/android_deps/build.gradle.
|
||||
- visibility = [ ":*" ]
|
||||
- deps = [
|
||||
- ":androidx_legacy_legacy_support_core_utils_java",
|
||||
- ":google_play_services_basement_java",
|
||||
- ]
|
||||
-
|
||||
- # Removing drawables from GMS .aars as they are unused bloat.
|
||||
- strip_drawables = true
|
||||
-}
|
||||
-
|
||||
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
java_prebuilt("com_google_auto_auto_common_java") {
|
||||
jar_path = "libs/com_google_auto_auto_common/auto-common-0.10.jar"
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -1,576 +0,0 @@
|
|||
From: Wengling Chen <feiyu2817@gmail.com>
|
||||
Date: Fri, 1 Nov 2019 23:10:47 +0100
|
||||
Subject: Remove dependency on vision, clearcut and phenotype
|
||||
|
||||
---
|
||||
services/BUILD.gn | 4 -
|
||||
services/shape_detection/BUILD.gn | 2 -
|
||||
.../shape_detection/BarcodeDetectionImpl.java | 114 +-----------------
|
||||
.../BarcodeDetectionProviderImpl.java | 31 +----
|
||||
.../FaceDetectionImplGmsCore.java | 96 +--------------
|
||||
.../shape_detection/TextDetectionImpl.java | 58 +--------
|
||||
third_party/android_deps/BUILD.gn | 86 -------------
|
||||
7 files changed, 10 insertions(+), 381 deletions(-)
|
||||
|
||||
diff --git a/services/BUILD.gn b/services/BUILD.gn
|
||||
--- a/services/BUILD.gn
|
||||
+++ b/services/BUILD.gn
|
||||
@@ -107,8 +107,6 @@ if (is_android) {
|
||||
"$google_play_services_package:google_play_services_base_java",
|
||||
"$google_play_services_package:google_play_services_basement_java",
|
||||
"$google_play_services_package:google_play_services_location_java",
|
||||
- "$google_play_services_package:google_play_services_vision_common_java",
|
||||
- "$google_play_services_package:google_play_services_vision_java",
|
||||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
"//base:base_junit_test_support",
|
||||
@@ -139,8 +137,6 @@ if (is_android) {
|
||||
deps = [
|
||||
"$google_play_services_package:google_play_services_base_java",
|
||||
"$google_play_services_package:google_play_services_basement_java",
|
||||
- "$google_play_services_package:google_play_services_vision_common_java",
|
||||
- "$google_play_services_package:google_play_services_vision_java",
|
||||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
"//mojo/public/java:base_java",
|
||||
diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD.gn
|
||||
--- a/services/shape_detection/BUILD.gn
|
||||
+++ b/services/shape_detection/BUILD.gn
|
||||
@@ -109,8 +109,6 @@ if (is_android) {
|
||||
deps = [
|
||||
"$google_play_services_package:google_play_services_base_java",
|
||||
"$google_play_services_package:google_play_services_basement_java",
|
||||
- "$google_play_services_package:google_play_services_vision_common_java",
|
||||
- "$google_play_services_package:google_play_services_vision_java",
|
||||
"//base:base_java",
|
||||
"//mojo/public/java:base_java",
|
||||
"//mojo/public/java:bindings_java",
|
||||
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java
|
||||
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java
|
||||
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java
|
||||
@@ -8,10 +8,6 @@ import android.graphics.Point;
|
||||
import android.graphics.Rect;
|
||||
import android.util.SparseArray;
|
||||
|
||||
-import com.google.android.gms.vision.Frame;
|
||||
-import com.google.android.gms.vision.barcode.Barcode;
|
||||
-import com.google.android.gms.vision.barcode.BarcodeDetector;
|
||||
-
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.gfx.mojom.PointF;
|
||||
@@ -28,50 +24,7 @@ import org.chromium.shape_detection.mojom.BarcodeFormat;
|
||||
public class BarcodeDetectionImpl implements BarcodeDetection {
|
||||
private static final String TAG = "BarcodeDetectionImpl";
|
||||
|
||||
- private BarcodeDetector mBarcodeDetector;
|
||||
-
|
||||
public BarcodeDetectionImpl(BarcodeDetectorOptions options) {
|
||||
- int formats = Barcode.ALL_FORMATS;
|
||||
- if (options.formats != null && options.formats.length > 0) {
|
||||
- formats = 0;
|
||||
- // Keep this list in sync with the constants defined in
|
||||
- // com.google.android.gms.vision.barcode.Barcode and the list of
|
||||
- // supported formats in BarcodeDetectionProviderImpl.
|
||||
- for (int i = 0; i < options.formats.length; ++i) {
|
||||
- if (options.formats[i] == BarcodeFormat.AZTEC) {
|
||||
- formats |= Barcode.AZTEC;
|
||||
- } else if (options.formats[i] == BarcodeFormat.CODE_128) {
|
||||
- formats |= Barcode.CODE_128;
|
||||
- } else if (options.formats[i] == BarcodeFormat.CODE_39) {
|
||||
- formats |= Barcode.CODE_39;
|
||||
- } else if (options.formats[i] == BarcodeFormat.CODE_93) {
|
||||
- formats |= Barcode.CODE_93;
|
||||
- } else if (options.formats[i] == BarcodeFormat.CODABAR) {
|
||||
- formats |= Barcode.CODABAR;
|
||||
- } else if (options.formats[i] == BarcodeFormat.DATA_MATRIX) {
|
||||
- formats |= Barcode.DATA_MATRIX;
|
||||
- } else if (options.formats[i] == BarcodeFormat.EAN_13) {
|
||||
- formats |= Barcode.EAN_13;
|
||||
- } else if (options.formats[i] == BarcodeFormat.EAN_8) {
|
||||
- formats |= Barcode.EAN_8;
|
||||
- } else if (options.formats[i] == BarcodeFormat.ITF) {
|
||||
- formats |= Barcode.ITF;
|
||||
- } else if (options.formats[i] == BarcodeFormat.PDF417) {
|
||||
- formats |= Barcode.PDF417;
|
||||
- } else if (options.formats[i] == BarcodeFormat.QR_CODE) {
|
||||
- formats |= Barcode.QR_CODE;
|
||||
- } else if (options.formats[i] == BarcodeFormat.UPC_A) {
|
||||
- formats |= Barcode.UPC_A;
|
||||
- } else if (options.formats[i] == BarcodeFormat.UPC_E) {
|
||||
- formats |= Barcode.UPC_E;
|
||||
- } else {
|
||||
- Log.e(TAG, "Unsupported barcode format hint: " + options.formats[i]);
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
- mBarcodeDetector = new BarcodeDetector.Builder(ContextUtils.getApplicationContext())
|
||||
- .setBarcodeFormats(formats)
|
||||
- .build();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -80,47 +33,12 @@ public class BarcodeDetectionImpl implements BarcodeDetection {
|
||||
// on the device; this happens "fast", but it might have not completed,
|
||||
// bail in this case. Also, the API was disabled between and v.9.0 and
|
||||
// v.9.2, see https://developers.google.com/android/guides/releases.
|
||||
- if (!mBarcodeDetector.isOperational()) {
|
||||
- Log.e(TAG, "BarcodeDetector is not operational");
|
||||
- callback.call(new BarcodeDetectionResult[0]);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- Frame frame = BitmapUtils.convertToFrame(bitmapData);
|
||||
- if (frame == null) {
|
||||
- Log.e(TAG, "Error converting Mojom Bitmap to Frame");
|
||||
- callback.call(new BarcodeDetectionResult[0]);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- final SparseArray<Barcode> barcodes = mBarcodeDetector.detect(frame);
|
||||
-
|
||||
- BarcodeDetectionResult[] barcodeArray = new BarcodeDetectionResult[barcodes.size()];
|
||||
- for (int i = 0; i < barcodes.size(); i++) {
|
||||
- barcodeArray[i] = new BarcodeDetectionResult();
|
||||
- final Barcode barcode = barcodes.valueAt(i);
|
||||
- barcodeArray[i].rawValue = barcode.rawValue;
|
||||
- final Rect rect = barcode.getBoundingBox();
|
||||
- barcodeArray[i].boundingBox = new RectF();
|
||||
- barcodeArray[i].boundingBox.x = rect.left;
|
||||
- barcodeArray[i].boundingBox.y = rect.top;
|
||||
- barcodeArray[i].boundingBox.width = rect.width();
|
||||
- barcodeArray[i].boundingBox.height = rect.height();
|
||||
- final Point[] corners = barcode.cornerPoints;
|
||||
- barcodeArray[i].cornerPoints = new PointF[corners.length];
|
||||
- for (int j = 0; j < corners.length; j++) {
|
||||
- barcodeArray[i].cornerPoints[j] = new PointF();
|
||||
- barcodeArray[i].cornerPoints[j].x = corners[j].x;
|
||||
- barcodeArray[i].cornerPoints[j].y = corners[j].y;
|
||||
- }
|
||||
- barcodeArray[i].format = toBarcodeFormat(barcode.format);
|
||||
- }
|
||||
- callback.call(barcodeArray);
|
||||
+ Log.e(TAG, "BarcodeDetector is not operational");
|
||||
+ callback.call(new BarcodeDetectionResult[0]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
- mBarcodeDetector.release();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -129,34 +47,6 @@ public class BarcodeDetectionImpl implements BarcodeDetection {
|
||||
}
|
||||
|
||||
private int toBarcodeFormat(int format) {
|
||||
- switch (format) {
|
||||
- case Barcode.CODE_128:
|
||||
- return BarcodeFormat.CODE_128;
|
||||
- case Barcode.CODE_39:
|
||||
- return BarcodeFormat.CODE_39;
|
||||
- case Barcode.CODE_93:
|
||||
- return BarcodeFormat.CODE_93;
|
||||
- case Barcode.CODABAR:
|
||||
- return BarcodeFormat.CODABAR;
|
||||
- case Barcode.DATA_MATRIX:
|
||||
- return BarcodeFormat.DATA_MATRIX;
|
||||
- case Barcode.EAN_13:
|
||||
- return BarcodeFormat.EAN_13;
|
||||
- case Barcode.EAN_8:
|
||||
- return BarcodeFormat.EAN_8;
|
||||
- case Barcode.ITF:
|
||||
- return BarcodeFormat.ITF;
|
||||
- case Barcode.QR_CODE:
|
||||
- return BarcodeFormat.QR_CODE;
|
||||
- case Barcode.UPC_A:
|
||||
- return BarcodeFormat.UPC_A;
|
||||
- case Barcode.UPC_E:
|
||||
- return BarcodeFormat.UPC_E;
|
||||
- case Barcode.PDF417:
|
||||
- return BarcodeFormat.PDF417;
|
||||
- case Barcode.AZTEC:
|
||||
- return BarcodeFormat.AZTEC;
|
||||
- }
|
||||
return BarcodeFormat.UNKNOWN;
|
||||
}
|
||||
}
|
||||
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionProviderImpl.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionProviderImpl.java
|
||||
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionProviderImpl.java
|
||||
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionProviderImpl.java
|
||||
@@ -8,8 +8,6 @@ import android.content.Context;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager.NameNotFoundException;
|
||||
|
||||
-import com.google.android.gms.common.GoogleApiAvailability;
|
||||
-
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.gms.ChromiumPlayServicesAvailability;
|
||||
@@ -36,15 +34,6 @@ public class BarcodeDetectionProviderImpl implements BarcodeDetectionProvider {
|
||||
|
||||
@Override
|
||||
public void enumerateSupportedFormats(EnumerateSupportedFormatsResponse callback) {
|
||||
- // Keep this list in sync with the constants defined in
|
||||
- // com.google.android.gms.vision.barcode.Barcode and the format hints
|
||||
- // supported by BarcodeDetectionImpl.
|
||||
- int[] supportedFormats = {BarcodeFormat.AZTEC, BarcodeFormat.CODE_128,
|
||||
- BarcodeFormat.CODE_39, BarcodeFormat.CODE_93, BarcodeFormat.CODABAR,
|
||||
- BarcodeFormat.DATA_MATRIX, BarcodeFormat.EAN_13, BarcodeFormat.EAN_8,
|
||||
- BarcodeFormat.ITF, BarcodeFormat.PDF417, BarcodeFormat.QR_CODE, BarcodeFormat.UPC_A,
|
||||
- BarcodeFormat.UPC_E};
|
||||
- callback.call(supportedFormats);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -54,23 +43,7 @@ public class BarcodeDetectionProviderImpl implements BarcodeDetectionProvider {
|
||||
public void onConnectionError(MojoException e) {}
|
||||
|
||||
public static BarcodeDetectionProvider create() {
|
||||
- Context ctx = ContextUtils.getApplicationContext();
|
||||
- if (!ChromiumPlayServicesAvailability.isGooglePlayServicesAvailable(ctx)) {
|
||||
- Log.w(TAG, "Google Play Services not available");
|
||||
- return null;
|
||||
- }
|
||||
- try {
|
||||
- PackageInfo playServicesPackage = ctx.getPackageManager().getPackageInfo(
|
||||
- GoogleApiAvailability.GOOGLE_PLAY_SERVICES_PACKAGE, 0);
|
||||
- if (playServicesPackage.versionCode < 19742000) {
|
||||
- // https://crbug.com/1020746
|
||||
- Log.w(TAG, "Detection disabled (%s < 19.7.42)", playServicesPackage.versionName);
|
||||
- return null;
|
||||
- }
|
||||
- } catch (NameNotFoundException e) {
|
||||
- Log.w(TAG, "Google Play Services not available");
|
||||
- return null;
|
||||
- }
|
||||
- return new BarcodeDetectionProviderImpl();
|
||||
+ Log.w(TAG, "Google Play Services not available");
|
||||
+ return null;
|
||||
}
|
||||
}
|
||||
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java
|
||||
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java
|
||||
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java
|
||||
@@ -7,11 +7,6 @@ package org.chromium.shape_detection;
|
||||
import android.graphics.PointF;
|
||||
import android.util.SparseArray;
|
||||
|
||||
-import com.google.android.gms.vision.Frame;
|
||||
-import com.google.android.gms.vision.face.Face;
|
||||
-import com.google.android.gms.vision.face.FaceDetector;
|
||||
-import com.google.android.gms.vision.face.Landmark;
|
||||
-
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.gfx.mojom.RectF;
|
||||
@@ -36,107 +31,20 @@ public class FaceDetectionImplGmsCore implements FaceDetection {
|
||||
private static final int MAX_EULER_Z = 15;
|
||||
private final int mMaxFaces;
|
||||
private final boolean mFastMode;
|
||||
- private final FaceDetector mFaceDetector;
|
||||
|
||||
FaceDetectionImplGmsCore(FaceDetectorOptions options) {
|
||||
- FaceDetector.Builder builder =
|
||||
- new FaceDetector.Builder(ContextUtils.getApplicationContext());
|
||||
mMaxFaces = Math.min(options.maxDetectedFaces, MAX_FACES);
|
||||
mFastMode = options.fastMode;
|
||||
-
|
||||
- try {
|
||||
- builder.setMode(mFastMode ? FaceDetector.FAST_MODE : FaceDetector.ACCURATE_MODE);
|
||||
- builder.setLandmarkType(FaceDetector.ALL_LANDMARKS);
|
||||
- if (mMaxFaces == 1) {
|
||||
- builder.setProminentFaceOnly(true);
|
||||
- }
|
||||
- } catch (IllegalArgumentException e) {
|
||||
- Log.e(TAG, "Unexpected exception " + e);
|
||||
- assert false;
|
||||
- }
|
||||
-
|
||||
- mFaceDetector = builder.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void detect(org.chromium.skia.mojom.Bitmap bitmapData, DetectResponse callback) {
|
||||
- // The vision library will be downloaded the first time the API is used
|
||||
- // on the device; this happens "fast", but it might have not completed,
|
||||
- // bail in this case.
|
||||
- if (!mFaceDetector.isOperational()) {
|
||||
- Log.e(TAG, "FaceDetector is not operational");
|
||||
-
|
||||
- // Fallback to Android's FaceDetectionImpl.
|
||||
- FaceDetectorOptions options = new FaceDetectorOptions();
|
||||
- options.fastMode = mFastMode;
|
||||
- options.maxDetectedFaces = mMaxFaces;
|
||||
- FaceDetectionImpl detector = new FaceDetectionImpl(options);
|
||||
- detector.detect(bitmapData, callback);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- Frame frame = BitmapUtils.convertToFrame(bitmapData);
|
||||
- if (frame == null) {
|
||||
- Log.e(TAG, "Error converting Mojom Bitmap to Frame");
|
||||
- callback.call(new FaceDetectionResult[0]);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- final SparseArray<Face> faces = mFaceDetector.detect(frame);
|
||||
-
|
||||
- FaceDetectionResult[] faceArray = new FaceDetectionResult[faces.size()];
|
||||
- for (int i = 0; i < faces.size(); i++) {
|
||||
- faceArray[i] = new FaceDetectionResult();
|
||||
- final Face face = faces.valueAt(i);
|
||||
-
|
||||
- final PointF corner = face.getPosition();
|
||||
- faceArray[i].boundingBox = new RectF();
|
||||
- faceArray[i].boundingBox.x = corner.x;
|
||||
- faceArray[i].boundingBox.y = corner.y;
|
||||
- faceArray[i].boundingBox.width = face.getWidth();
|
||||
- faceArray[i].boundingBox.height = face.getHeight();
|
||||
-
|
||||
- final List<Landmark> landmarks = face.getLandmarks();
|
||||
- ArrayList<org.chromium.shape_detection.mojom.Landmark> mojoLandmarks =
|
||||
- new ArrayList<org.chromium.shape_detection.mojom.Landmark>(landmarks.size());
|
||||
-
|
||||
- for (int j = 0; j < landmarks.size(); j++) {
|
||||
- final Landmark landmark = landmarks.get(j);
|
||||
- final int landmarkType = landmark.getType();
|
||||
- if (landmarkType != Landmark.LEFT_EYE && landmarkType != Landmark.RIGHT_EYE
|
||||
- && landmarkType != Landmark.BOTTOM_MOUTH
|
||||
- && landmarkType != Landmark.NOSE_BASE) {
|
||||
- continue;
|
||||
- }
|
||||
-
|
||||
- org.chromium.shape_detection.mojom.Landmark mojoLandmark =
|
||||
- new org.chromium.shape_detection.mojom.Landmark();
|
||||
- mojoLandmark.locations = new org.chromium.gfx.mojom.PointF[1];
|
||||
- mojoLandmark.locations[0] = new org.chromium.gfx.mojom.PointF();
|
||||
- mojoLandmark.locations[0].x = landmark.getPosition().x;
|
||||
- mojoLandmark.locations[0].y = landmark.getPosition().y;
|
||||
-
|
||||
- if (landmarkType == Landmark.LEFT_EYE) {
|
||||
- mojoLandmark.type = LandmarkType.EYE;
|
||||
- } else if (landmarkType == Landmark.RIGHT_EYE) {
|
||||
- mojoLandmark.type = LandmarkType.EYE;
|
||||
- } else if (landmarkType == Landmark.BOTTOM_MOUTH) {
|
||||
- mojoLandmark.type = LandmarkType.MOUTH;
|
||||
- } else {
|
||||
- assert landmarkType == Landmark.NOSE_BASE;
|
||||
- mojoLandmark.type = LandmarkType.NOSE;
|
||||
- }
|
||||
- mojoLandmarks.add(mojoLandmark);
|
||||
- }
|
||||
- faceArray[i].landmarks = mojoLandmarks.toArray(
|
||||
- new org.chromium.shape_detection.mojom.Landmark[mojoLandmarks.size()]);
|
||||
- }
|
||||
- callback.call(faceArray);
|
||||
+ Log.e(TAG, "FaceDetector is not operational");
|
||||
+ callback.call(new FaceDetectionResult[0]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
- mFaceDetector.release();
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/TextDetectionImpl.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/TextDetectionImpl.java
|
||||
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/TextDetectionImpl.java
|
||||
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/TextDetectionImpl.java
|
||||
@@ -8,15 +8,10 @@ import android.graphics.Point;
|
||||
import android.graphics.Rect;
|
||||
import android.util.SparseArray;
|
||||
|
||||
-import com.google.android.gms.vision.Frame;
|
||||
-import com.google.android.gms.vision.text.TextBlock;
|
||||
-import com.google.android.gms.vision.text.TextRecognizer;
|
||||
-
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.gfx.mojom.PointF;
|
||||
import org.chromium.gfx.mojom.RectF;
|
||||
-import org.chromium.gms.ChromiumPlayServicesAvailability;
|
||||
import org.chromium.mojo.system.MojoException;
|
||||
import org.chromium.shape_detection.mojom.TextDetection;
|
||||
import org.chromium.shape_detection.mojom.TextDetectionResult;
|
||||
@@ -27,58 +22,17 @@ import org.chromium.shape_detection.mojom.TextDetectionResult;
|
||||
public class TextDetectionImpl implements TextDetection {
|
||||
private static final String TAG = "TextDetectionImpl";
|
||||
|
||||
- private TextRecognizer mTextRecognizer;
|
||||
-
|
||||
public TextDetectionImpl() {
|
||||
- mTextRecognizer = new TextRecognizer.Builder(ContextUtils.getApplicationContext()).build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void detect(org.chromium.skia.mojom.Bitmap bitmapData, DetectResponse callback) {
|
||||
- // The vision library will be downloaded the first time the API is used
|
||||
- // on the device; this happens "fast", but it might have not completed,
|
||||
- // bail in this case. Also, the API was disabled between and v.9.0 and
|
||||
- // v.9.2, see https://developers.google.com/android/guides/releases.
|
||||
- if (!mTextRecognizer.isOperational()) {
|
||||
- Log.e(TAG, "TextDetector is not operational");
|
||||
- callback.call(new TextDetectionResult[0]);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- Frame frame = BitmapUtils.convertToFrame(bitmapData);
|
||||
- if (frame == null) {
|
||||
- Log.e(TAG, "Error converting Mojom Bitmap to Frame");
|
||||
- callback.call(new TextDetectionResult[0]);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- final SparseArray<TextBlock> textBlocks = mTextRecognizer.detect(frame);
|
||||
-
|
||||
- TextDetectionResult[] detectedTextArray = new TextDetectionResult[textBlocks.size()];
|
||||
- for (int i = 0; i < textBlocks.size(); i++) {
|
||||
- detectedTextArray[i] = new TextDetectionResult();
|
||||
- final TextBlock textBlock = textBlocks.valueAt(i);
|
||||
- detectedTextArray[i].rawValue = textBlock.getValue();
|
||||
- final Rect rect = textBlock.getBoundingBox();
|
||||
- detectedTextArray[i].boundingBox = new RectF();
|
||||
- detectedTextArray[i].boundingBox.x = rect.left;
|
||||
- detectedTextArray[i].boundingBox.y = rect.top;
|
||||
- detectedTextArray[i].boundingBox.width = rect.width();
|
||||
- detectedTextArray[i].boundingBox.height = rect.height();
|
||||
- final Point[] corners = textBlock.getCornerPoints();
|
||||
- detectedTextArray[i].cornerPoints = new PointF[corners.length];
|
||||
- for (int j = 0; j < corners.length; j++) {
|
||||
- detectedTextArray[i].cornerPoints[j] = new PointF();
|
||||
- detectedTextArray[i].cornerPoints[j].x = corners[j].x;
|
||||
- detectedTextArray[i].cornerPoints[j].y = corners[j].y;
|
||||
- }
|
||||
- }
|
||||
- callback.call(detectedTextArray);
|
||||
+ Log.e(TAG, "TextDetector is not operational");
|
||||
+ callback.call(new TextDetectionResult[0]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
- mTextRecognizer.release();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -87,11 +41,7 @@ public class TextDetectionImpl implements TextDetection {
|
||||
}
|
||||
|
||||
public static TextDetection create() {
|
||||
- if (!ChromiumPlayServicesAvailability.isGooglePlayServicesAvailable(
|
||||
- ContextUtils.getApplicationContext())) {
|
||||
- Log.e(TAG, "Google Play Services not available");
|
||||
- return null;
|
||||
- }
|
||||
- return new TextDetectionImpl();
|
||||
+ Log.e(TAG, "Google Play Services not available");
|
||||
+ return null;
|
||||
}
|
||||
}
|
||||
diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn
|
||||
--- a/third_party/android_deps/BUILD.gn
|
||||
+++ b/third_party/android_deps/BUILD.gn
|
||||
@@ -1299,36 +1299,6 @@ android_aar_prebuilt("google_play_services_tasks_java") {
|
||||
strip_drawables = true
|
||||
}
|
||||
|
||||
-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
-android_aar_prebuilt("google_play_services_vision_java") {
|
||||
- aar_path = "libs/com_google_android_gms_play_services_vision/play-services-vision-18.0.0.aar"
|
||||
- info_path = "libs/com_google_android_gms_play_services_vision/com_google_android_gms_play_services_vision.info"
|
||||
- deps = [
|
||||
- ":google_play_services_base_java",
|
||||
- ":google_play_services_basement_java",
|
||||
- ":google_play_services_vision_common_java",
|
||||
- ]
|
||||
-
|
||||
- # Removing drawables from GMS .aars as they are unused bloat.
|
||||
- strip_drawables = true
|
||||
-}
|
||||
-
|
||||
-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
-android_aar_prebuilt("google_play_services_vision_common_java") {
|
||||
- aar_path = "libs/com_google_android_gms_play_services_vision_common/play-services-vision-common-18.0.0.aar"
|
||||
- info_path = "libs/com_google_android_gms_play_services_vision_common/com_google_android_gms_play_services_vision_common.info"
|
||||
- deps = [
|
||||
- ":google_play_services_base_java",
|
||||
- ":google_play_services_basement_java",
|
||||
- ":google_play_services_clearcut_java",
|
||||
- ":google_play_services_flags_java",
|
||||
- ":google_play_services_phenotype_java",
|
||||
- ]
|
||||
-
|
||||
- # Removing drawables from GMS .aars as they are unused bloat.
|
||||
- strip_drawables = true
|
||||
-}
|
||||
-
|
||||
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
android_aar_prebuilt("com_google_android_material_material_java") {
|
||||
aar_path =
|
||||
@@ -2281,62 +2251,6 @@ java_prebuilt("com_github_kevinstern_software_and_algorithms_java") {
|
||||
visibility = [ ":*" ]
|
||||
}
|
||||
|
||||
-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
-android_aar_prebuilt("google_play_services_clearcut_java") {
|
||||
- aar_path = "libs/com_google_android_gms_play_services_clearcut/play-services-clearcut-17.0.0.aar"
|
||||
- info_path = "libs/com_google_android_gms_play_services_clearcut/com_google_android_gms_play_services_clearcut.info"
|
||||
-
|
||||
- # To remove visibility constraint, add this dependency to
|
||||
- # //third_party/android_deps/build.gradle.
|
||||
- visibility = [ ":*" ]
|
||||
- deps = [
|
||||
- ":androidx_core_core_java",
|
||||
- ":google_play_services_base_java",
|
||||
- ":google_play_services_basement_java",
|
||||
- ":google_play_services_phenotype_java",
|
||||
- ":google_play_services_tasks_java",
|
||||
- ]
|
||||
-
|
||||
- # Removing drawables from GMS .aars as they are unused bloat.
|
||||
- strip_drawables = true
|
||||
-}
|
||||
-
|
||||
-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
-android_aar_prebuilt("google_play_services_flags_java") {
|
||||
- aar_path = "libs/com_google_android_gms_play_services_flags/play-services-flags-17.0.0.aar"
|
||||
- info_path = "libs/com_google_android_gms_play_services_flags/com_google_android_gms_play_services_flags.info"
|
||||
-
|
||||
- # To remove visibility constraint, add this dependency to
|
||||
- # //third_party/android_deps/build.gradle.
|
||||
- visibility = [ ":*" ]
|
||||
- deps = [
|
||||
- ":google_play_services_base_java",
|
||||
- ":google_play_services_basement_java",
|
||||
- ]
|
||||
-
|
||||
- # Removing drawables from GMS .aars as they are unused bloat.
|
||||
- strip_drawables = true
|
||||
-}
|
||||
-
|
||||
-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
-android_aar_prebuilt("google_play_services_phenotype_java") {
|
||||
- aar_path = "libs/com_google_android_gms_play_services_phenotype/play-services-phenotype-17.0.0.aar"
|
||||
- info_path = "libs/com_google_android_gms_play_services_phenotype/com_google_android_gms_play_services_phenotype.info"
|
||||
-
|
||||
- # To remove visibility constraint, add this dependency to
|
||||
- # //third_party/android_deps/build.gradle.
|
||||
- visibility = [ ":*" ]
|
||||
- deps = [
|
||||
- ":androidx_core_core_java",
|
||||
- ":google_play_services_base_java",
|
||||
- ":google_play_services_basement_java",
|
||||
- ":google_play_services_tasks_java",
|
||||
- ]
|
||||
-
|
||||
- # Removing drawables from GMS .aars as they are unused bloat.
|
||||
- strip_drawables = true
|
||||
-}
|
||||
-
|
||||
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
android_aar_prebuilt("google_play_services_places_placereport_java") {
|
||||
aar_path = "libs/com_google_android_gms_play_services_places_placereport/play-services-places-placereport-17.0.0.aar"
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -1,110 +0,0 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 3 May 2020 12:15:33 +0200
|
||||
Subject: Remove google_services_gcm
|
||||
|
||||
---
|
||||
.../browser/language/AppLocaleUtils.java | 32 +------------------
|
||||
third_party/android_deps/BUILD.gn | 20 +-----------
|
||||
2 files changed, 2 insertions(+), 50 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java
|
||||
@@ -8,11 +8,6 @@ import android.content.Context;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.text.TextUtils;
|
||||
|
||||
-import com.google.android.play.core.splitcompat.SplitCompat;
|
||||
-import com.google.android.play.core.splitinstall.SplitInstallManager;
|
||||
-import com.google.android.play.core.splitinstall.SplitInstallManagerFactory;
|
||||
-import com.google.android.play.core.splitinstall.SplitInstallRequest;
|
||||
-
|
||||
import org.chromium.base.BundleUtils;
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.Log;
|
||||
@@ -78,31 +73,12 @@ public class AppLocaleUtils {
|
||||
* @param context Activity context to enable downloaded language splits on.
|
||||
*/
|
||||
public static void maybeInstallActivitySplitCompat(Context context) {
|
||||
- if (GlobalAppLocaleController.getInstance().isOverridden() && BundleUtils.isBundle()) {
|
||||
- Log.i(TAG, "maybeInstallActivitySplit isOverridden: %s isBundle: %s",
|
||||
- GlobalAppLocaleController.getInstance().isOverridden(), BundleUtils.isBundle());
|
||||
- Log.i(TAG, "Override Locale: %s", getAppLanguagePref());
|
||||
- logInstalledLanguages(context);
|
||||
- SplitCompat.installActivity(context);
|
||||
- logInstalledLanguages(context);
|
||||
- }
|
||||
}
|
||||
|
||||
/**
|
||||
* For bundle builds ensure that the language split for languageName is download.
|
||||
*/
|
||||
private static void ensureLaguageSplitInstalled(String languageName) {
|
||||
- SplitInstallManager splitInstallManager =
|
||||
- SplitInstallManagerFactory.create(ContextUtils.getApplicationContext());
|
||||
-
|
||||
- // TODO(perrier): check if languageName is already installed. https://crbug.com/1103806
|
||||
- if (languageName != null) {
|
||||
- SplitInstallRequest installRequest =
|
||||
- SplitInstallRequest.newBuilder()
|
||||
- .addLanguage(Locale.forLanguageTag(languageName))
|
||||
- .build();
|
||||
- splitInstallManager.startInstall(installRequest);
|
||||
- }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -110,12 +86,6 @@ public class AppLocaleUtils {
|
||||
* @param context Context to log installed languages on.
|
||||
*/
|
||||
private static void logInstalledLanguages(Context context) {
|
||||
- if (BundleUtils.isBundle()) {
|
||||
- SplitInstallManager splitInstallManager = SplitInstallManagerFactory.create(context);
|
||||
- Log.i(TAG, "Installed Languages: %s",
|
||||
- TextUtils.join(", ", splitInstallManager.getInstalledLanguages()));
|
||||
- } else {
|
||||
- Log.i(TAG, "Installed Languages: None - not a bundle");
|
||||
- }
|
||||
+ Log.i(TAG, "Installed Languages: None - feature disabled");
|
||||
}
|
||||
}
|
||||
diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn
|
||||
--- a/third_party/android_deps/BUILD.gn
|
||||
+++ b/third_party/android_deps/BUILD.gn
|
||||
@@ -81,7 +81,7 @@ java_annotation_processor("dagger_processor") {
|
||||
|
||||
android_library("chromium_play_services_availability_java") {
|
||||
sources = [ "util/org/chromium/gms/ChromiumPlayServicesAvailability.java" ]
|
||||
- deps = [ "$google_play_services_package:google_play_services_base_java" ]
|
||||
+ deps = [ ]
|
||||
}
|
||||
|
||||
android_library("chromium_play_services_availability_shadows_java") {
|
||||
@@ -1135,24 +1135,6 @@ java_prebuilt("com_android_tools_build_jetifier_jetifier_processor_java") {
|
||||
]
|
||||
}
|
||||
|
||||
-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
-android_aar_prebuilt("google_play_services_gcm_java") {
|
||||
- aar_path = "libs/com_google_android_gms_play_services_gcm/play-services-gcm-17.0.0.aar"
|
||||
- info_path = "libs/com_google_android_gms_play_services_gcm/com_google_android_gms_play_services_gcm.info"
|
||||
- deps = [
|
||||
- ":androidx_collection_collection_java",
|
||||
- ":androidx_core_core_java",
|
||||
- ":androidx_legacy_legacy_support_core_utils_java",
|
||||
- ":google_play_services_base_java",
|
||||
- ":google_play_services_basement_java",
|
||||
- ":google_play_services_iid_java",
|
||||
- ":google_play_services_stats_java",
|
||||
- ]
|
||||
-
|
||||
- # Removing drawables from GMS .aars as they are unused bloat.
|
||||
- strip_drawables = true
|
||||
-}
|
||||
-
|
||||
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
android_aar_prebuilt("com_google_android_material_material_java") {
|
||||
aar_path =
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -38,7 +38,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcu
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
@@ -1963,15 +1963,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -1997,15 +1997,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
|
||||
final Tab currentTab = getActivityTab();
|
||||
|
||||
|
@ -57,7 +57,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java
|
||||
@@ -474,7 +474,7 @@ public abstract class BaseCustomTabActivity extends ChromeActivity<BaseCustomTab
|
||||
@@ -482,7 +482,7 @@ public abstract class BaseCustomTabActivity extends ChromeActivity<BaseCustomTab
|
||||
@Override
|
||||
public boolean onMenuOrKeyboardAction(int id, boolean fromMenu) {
|
||||
// Disable creating new tabs, bookmark, history, print, help, focus_url, etc.
|
||||
|
|
|
@ -9,6 +9,9 @@ Never show the data saver promo snackbar
|
|||
Disable unused permissions from manifest
|
||||
Disable sync adaptive and invalidation services from manifest
|
||||
More permissions removal from manifest
|
||||
Disable promos displayed in bookmarks manager
|
||||
Remove personalized signin promo view from
|
||||
bookmarks, never reach signin thresholds.
|
||||
|
||||
Fix building with debug symbols:
|
||||
|
||||
|
@ -16,43 +19,33 @@ ld.lld: error: undefined symbol: notifier::NotifierOptions::NotifierOptions()
|
|||
>>> referenced by invalidation_service_util.cc:17 (../../components/invalidation/impl/invalidation_service_util.cc:17)
|
||||
>>> impl/invalidation_service_util.o:(invalidation::ParseNotifierOptions(base::CommandLine const&)) in archive obj/components/invalidation/impl/libimpl.a
|
||||
---
|
||||
chrome/android/BUILD.gn | 3 +-
|
||||
chrome/android/java/AndroidManifest.xml | 18 --
|
||||
chrome/android/java/AndroidManifest.xml | 8 -
|
||||
.../android/java/res/xml/main_preferences.xml | 9 -
|
||||
.../chrome/browser/app/ChromeActivity.java | 34 ----
|
||||
.../bookmarks/BookmarkItemsAdapter.java | 30 +---
|
||||
.../bookmarks/BookmarkPromoHeader.java | 161 +----------------
|
||||
.../DataReductionPreferenceFragment.java | 24 +--
|
||||
.../privacy/settings/PrivacySettings.java | 44 +----
|
||||
.../chrome/browser/settings/MainSettings.java | 166 +-----------------
|
||||
.../chrome/browser/signin/SigninManager.java | 78 +-------
|
||||
.../browser/sync/AndroidSyncSettings.java | 28 +--
|
||||
.../settings/SyncAndServicesSettings.java | 8 -
|
||||
.../android/signin/signin_manager_android.cc | 1 -
|
||||
.../browser/signin/services/android/BUILD.gn | 2 -
|
||||
.../services/IdentityServicesProvider.java | 14 --
|
||||
.../signin/ui/SigninPromoController.java | 23 +--
|
||||
.../strings/android_chrome_strings.grd | 18 --
|
||||
.../signin/SystemAccountManagerDelegate.java | 38 +---
|
||||
.../net/HttpNegotiateAuthenticator.java | 88 +---------
|
||||
.../chromoting/base/OAuthTokenFetcher.java | 2 -
|
||||
15 files changed, 26 insertions(+), 533 deletions(-)
|
||||
18 files changed, 26 insertions(+), 672 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
+++ b/chrome/android/BUILD.gn
|
||||
@@ -1504,8 +1504,7 @@ jinja_template_resources("chrome_public_apk_template_resources") {
|
||||
resources = [
|
||||
"java/res_template/xml/file_paths.xml",
|
||||
"java/res_template/xml/launchershortcuts.xml",
|
||||
- "java/res_template/xml/searchable.xml",
|
||||
- "java/res_template/xml/syncadapter.xml",
|
||||
+ "java/res_template/xml/searchable.xml"
|
||||
]
|
||||
res_dir = "java/res_template"
|
||||
variables = [ "manifest_package=$chrome_public_manifest_package" ]
|
||||
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
|
||||
--- a/chrome/android/java/AndroidManifest.xml
|
||||
+++ b/chrome/android/java/AndroidManifest.xml
|
||||
@@ -48,24 +48,18 @@ by a child template that "extends" this file.
|
||||
{% if target_sdk_version|int > 27 or target_sdk_version == "Q" %}
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
{% endif %}
|
||||
@@ -47,24 +47,18 @@ by a child template that "extends" this file.
|
||||
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
- <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
- <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
|
||||
|
@ -74,7 +67,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
|
|||
{% set enable_vr = enable_vr|default(0) %}
|
||||
{% if enable_vr == "true" %}
|
||||
<!-- Indicates use of Android's VR-mode, available only on Android N+. -->
|
||||
@@ -107,8 +101,6 @@ by a child template that "extends" this file.
|
||||
@@ -106,8 +100,6 @@ by a child template that "extends" this file.
|
||||
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
|
||||
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
|
||||
|
||||
|
@ -83,23 +76,6 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
|
|||
{% block extra_uses_permissions %}
|
||||
{% endblock %}
|
||||
|
||||
@@ -898,16 +890,6 @@ by a child template that "extends" this file.
|
||||
android:resource="@xml/file_paths" />
|
||||
</provider>
|
||||
|
||||
- <!-- Sync adapter for browser invalidation. -->
|
||||
- <service android:name="org.chromium.chrome.browser.invalidation.ChromeBrowserSyncAdapterService"
|
||||
- android:exported="false">
|
||||
- <intent-filter>
|
||||
- <action android:name="android.content.SyncAdapter" />
|
||||
- </intent-filter>
|
||||
- <meta-data android:name="android.content.SyncAdapter"
|
||||
- android:resource="@xml/syncadapter" />
|
||||
- </service>
|
||||
-
|
||||
<!-- Broadcast receiver that will be notified of account changes -->
|
||||
<receiver android:name="org.chromium.chrome.browser.services.AccountsChangedReceiver"
|
||||
android:exported="true">
|
||||
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/main_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/main_preferences.xml
|
||||
|
@ -129,16 +105,15 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
@@ -133,8 +133,6 @@ import org.chromium.chrome.browser.settings.SettingsLauncher;
|
||||
@@ -135,7 +135,6 @@ import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
|
||||
import org.chromium.chrome.browser.share.ShareDelegate;
|
||||
import org.chromium.chrome.browser.share.ShareDelegateImpl;
|
||||
-import org.chromium.chrome.browser.sync.ProfileSyncService;
|
||||
-import org.chromium.chrome.browser.sync.SyncController;
|
||||
import org.chromium.chrome.browser.tab.AccessibilityVisibilityHandler;
|
||||
import org.chromium.chrome.browser.tab.Tab;
|
||||
import org.chromium.chrome.browser.tab.TabHidingType;
|
||||
@@ -265,9 +263,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -268,9 +267,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
private boolean mRemoveWindowBackgroundDone;
|
||||
protected AccessibilityVisibilityHandler mAccessibilityVisibilityHandler;
|
||||
|
||||
|
@ -148,16 +123,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
// The PictureInPictureController is initialized lazily https://crbug.com/729738.
|
||||
private PictureInPictureController mPictureInPictureController;
|
||||
|
||||
@@ -888,28 +883,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -909,28 +905,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
}
|
||||
|
||||
private void createContextReporterIfNeeded() {
|
||||
if (!mStarted) return; // Sync state reporting should work only in started state.
|
||||
if (mContextReporter != null || getActivityTab() == null) return;
|
||||
- if (!mStarted) return; // Sync state reporting should work only in started state.
|
||||
- if (mContextReporter != null || getActivityTab() == null) return;
|
||||
-
|
||||
- final SyncController syncController = SyncController.get();
|
||||
- final ProfileSyncService syncService = ProfileSyncService.get();
|
||||
-
|
||||
- if (syncController != null && syncController.isSyncingUrlsWithKeystorePassphrase()) {
|
||||
- assert syncService != null;
|
||||
- if (syncService != null && syncService.isSyncingUrlsWithKeystorePassphrase()) {
|
||||
- mContextReporter = AppHooks.get().createGsaHelper().getContextReporter(this);
|
||||
-
|
||||
- if (mSyncStateChangedListener != null) {
|
||||
|
@ -177,7 +152,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
}
|
||||
|
||||
@Override
|
||||
@@ -971,13 +944,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -995,14 +969,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
if (GSAState.getInstance(this).isGsaAvailable() && !SysUtils.isLowEndDevice()) {
|
||||
GSAAccountChangeListener.getInstance().disconnect();
|
||||
}
|
||||
|
@ -188,9 +163,344 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
- }
|
||||
- mSyncStateChangedListener = null;
|
||||
- }
|
||||
if (mContextReporter != null) mContextReporter.disable();
|
||||
- if (mContextReporter != null) mContextReporter.disable();
|
||||
|
||||
super.onStopWithNative();
|
||||
}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
|
||||
@@ -25,7 +25,6 @@ import org.chromium.chrome.browser.bookmarks.BookmarkListEntry.ViewType;
|
||||
import org.chromium.chrome.browser.bookmarks.BookmarkRow.Location;
|
||||
import org.chromium.chrome.browser.feature_engagement.TrackerFactory;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
-import org.chromium.chrome.browser.signin.ui.PersonalizedSigninPromoView;
|
||||
import org.chromium.chrome.browser.sync.ProfileSyncService;
|
||||
import org.chromium.components.bookmarks.BookmarkId;
|
||||
import org.chromium.components.bookmarks.BookmarkType;
|
||||
@@ -51,7 +50,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
|
||||
@ViewType
|
||||
private int mPromoHeaderType = ViewType.INVALID;
|
||||
private BookmarkDelegate mDelegate;
|
||||
- private BookmarkPromoHeader mPromoHeaderManager;
|
||||
private String mSearchText;
|
||||
private BookmarkId mCurrentFolder;
|
||||
private ProfileSyncService mProfileSyncService;
|
||||
@@ -183,9 +181,9 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
|
||||
case ViewType.PERSONALIZED_SIGNIN_PROMO:
|
||||
// fall through
|
||||
case ViewType.PERSONALIZED_SYNC_PROMO:
|
||||
- return mPromoHeaderManager.createPersonalizedSigninAndSyncPromoHolder(parent);
|
||||
+ return null;
|
||||
case ViewType.SYNC_PROMO:
|
||||
- return mPromoHeaderManager.createSyncPromoHolder(parent);
|
||||
+ return null;
|
||||
case ViewType.SECTION_HEADER:
|
||||
return createSectionHeaderViewHolder(parent, viewType);
|
||||
case ViewType.FOLDER:
|
||||
@@ -205,11 +203,7 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
|
||||
@Override
|
||||
public void onBindViewHolder(ViewHolder holder, int position) {
|
||||
if (holder.getItemViewType() == ViewType.PERSONALIZED_SIGNIN_PROMO) {
|
||||
- PersonalizedSigninPromoView view = (PersonalizedSigninPromoView) holder.itemView;
|
||||
- mPromoHeaderManager.setupPersonalizedSigninPromo(view);
|
||||
} else if (holder.getItemViewType() == ViewType.PERSONALIZED_SYNC_PROMO) {
|
||||
- PersonalizedSigninPromoView view = (PersonalizedSigninPromoView) holder.itemView;
|
||||
- mPromoHeaderManager.setupPersonalizedSyncPromo(view);
|
||||
} else if (holder.getItemViewType() == ViewType.SECTION_HEADER) {
|
||||
bindSectionHeaderViewHolder(holder.itemView, getItemByPosition(position));
|
||||
} else if (BookmarkListEntry.isBookmarkEntry(holder.getItemViewType())) {
|
||||
@@ -262,7 +256,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
|
||||
case ViewType.PERSONALIZED_SIGNIN_PROMO:
|
||||
// fall through
|
||||
case ViewType.PERSONALIZED_SYNC_PROMO:
|
||||
- mPromoHeaderManager.detachPersonalizePromoView();
|
||||
break;
|
||||
default:
|
||||
// Other view holders don't have special recycling code.
|
||||
@@ -288,7 +281,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
|
||||
updateHeader(!topLevelFoldersShowing());
|
||||
};
|
||||
|
||||
- mPromoHeaderManager = new BookmarkPromoHeader(mContext, promoHeaderChangeAction);
|
||||
populateTopLevelFoldersList();
|
||||
|
||||
mElements = new ArrayList<>();
|
||||
@@ -303,7 +295,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
|
||||
mDelegate.getModel().removeObserver(mBookmarkModelObserver);
|
||||
mDelegate.getSelectionDelegate().removeObserver(this);
|
||||
mDelegate = null;
|
||||
- mPromoHeaderManager.destroy();
|
||||
mProfileSyncService.removeSyncStateChangedListener(this);
|
||||
}
|
||||
|
||||
@@ -426,23 +417,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
|
||||
return;
|
||||
} else if (currentUIState == BookmarkUIState.STATE_SEARCHING) {
|
||||
mPromoHeaderType = ViewType.INVALID;
|
||||
- } else {
|
||||
- switch (mPromoHeaderManager.getPromoState()) {
|
||||
- case BookmarkPromoHeader.PromoState.PROMO_NONE:
|
||||
- mPromoHeaderType = ViewType.INVALID;
|
||||
- break;
|
||||
- case BookmarkPromoHeader.PromoState.PROMO_SIGNIN_PERSONALIZED:
|
||||
- mPromoHeaderType = ViewType.PERSONALIZED_SIGNIN_PROMO;
|
||||
- break;
|
||||
- case BookmarkPromoHeader.PromoState.PROMO_SYNC_PERSONALIZED:
|
||||
- mPromoHeaderType = ViewType.PERSONALIZED_SYNC_PROMO;
|
||||
- break;
|
||||
- case BookmarkPromoHeader.PromoState.PROMO_SYNC:
|
||||
- mPromoHeaderType = ViewType.SYNC_PROMO;
|
||||
- break;
|
||||
- default:
|
||||
- assert false : "Unexpected value for promo state!";
|
||||
- }
|
||||
}
|
||||
|
||||
boolean willShowPromo = hasPromoHeader();
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java
|
||||
@@ -19,22 +19,6 @@ import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
||||
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
-import org.chromium.chrome.browser.signin.SigninActivityLauncherImpl;
|
||||
-import org.chromium.chrome.browser.signin.SigninPromoUtil;
|
||||
-import org.chromium.chrome.browser.signin.SyncPromoView;
|
||||
-import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
|
||||
-import org.chromium.chrome.browser.signin.services.ProfileDataCache;
|
||||
-import org.chromium.chrome.browser.signin.services.SigninManager;
|
||||
-import org.chromium.chrome.browser.signin.services.SigninManager.SignInStateObserver;
|
||||
-import org.chromium.chrome.browser.signin.ui.PersonalizedSigninPromoView;
|
||||
-import org.chromium.chrome.browser.signin.ui.SigninPromoController;
|
||||
-import org.chromium.chrome.browser.sync.ProfileSyncService;
|
||||
-import org.chromium.components.signin.AccountManagerFacade;
|
||||
-import org.chromium.components.signin.AccountManagerFacadeProvider;
|
||||
-import org.chromium.components.signin.AccountsChangeObserver;
|
||||
-import org.chromium.components.signin.base.CoreAccountInfo;
|
||||
-import org.chromium.components.signin.identitymanager.ConsentLevel;
|
||||
-import org.chromium.components.signin.metrics.SigninAccessPoint;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
@@ -43,8 +27,7 @@ import java.lang.annotation.RetentionPolicy;
|
||||
* Class that manages all the logic and UI behind the signin promo header in the bookmark
|
||||
* content UI. The header is shown only on certain situations, (e.g., not signed in).
|
||||
*/
|
||||
-class BookmarkPromoHeader implements ProfileSyncService.SyncStateChangedListener,
|
||||
- SignInStateObserver, ProfileDataCache.Observer,
|
||||
+class BookmarkPromoHeader implements ProfileDataCache.Observer,
|
||||
AccountsChangeObserver {
|
||||
/**
|
||||
* Specifies the various states in which the Bookmarks promo can be.
|
||||
@@ -65,14 +48,10 @@ class BookmarkPromoHeader implements ProfileSyncService.SyncStateChangedListener
|
||||
private static @Nullable @PromoState Integer sPromoStateForTests;
|
||||
|
||||
private final Context mContext;
|
||||
- private final SigninManager mSignInManager;
|
||||
- private final AccountManagerFacade mAccountManagerFacade;
|
||||
private final Runnable mPromoHeaderChangeAction;
|
||||
|
||||
private @Nullable ProfileDataCache mProfileDataCache;
|
||||
- private final @Nullable SigninPromoController mSigninPromoController;
|
||||
private @PromoState int mPromoState;
|
||||
- private final @Nullable ProfileSyncService mProfileSyncService;
|
||||
|
||||
/**
|
||||
* Initializes the class. Note that this will start listening to signin related events and
|
||||
@@ -82,47 +61,21 @@ class BookmarkPromoHeader implements ProfileSyncService.SyncStateChangedListener
|
||||
mContext = context;
|
||||
mPromoHeaderChangeAction = promoHeaderChangeAction;
|
||||
|
||||
- mProfileSyncService = ProfileSyncService.get();
|
||||
- if (mProfileSyncService != null) mProfileSyncService.addSyncStateChangedListener(this);
|
||||
-
|
||||
- mSignInManager = IdentityServicesProvider.get().getSigninManager(
|
||||
- Profile.getLastUsedRegularProfile());
|
||||
- mSignInManager.addSignInStateObserver(this);
|
||||
-
|
||||
- mAccountManagerFacade = AccountManagerFacadeProvider.getInstance();
|
||||
-
|
||||
mPromoState = calculatePromoState();
|
||||
if (mPromoState == PromoState.PROMO_SYNC) {
|
||||
SharedPreferencesManager.getInstance().incrementInt(
|
||||
ChromePreferenceKeys.SIGNIN_AND_SYNC_PROMO_SHOW_COUNT);
|
||||
}
|
||||
|
||||
- if (SigninPromoController.hasNotReachedImpressionLimit(
|
||||
- SigninAccessPoint.BOOKMARK_MANAGER)) {
|
||||
- mProfileDataCache = ProfileDataCache.createProfileDataCache(mContext);
|
||||
- mProfileDataCache.addObserver(this);
|
||||
- mSigninPromoController = new SigninPromoController(
|
||||
- SigninAccessPoint.BOOKMARK_MANAGER, SigninActivityLauncherImpl.get());
|
||||
- mAccountManagerFacade.addObserver(this);
|
||||
- } else {
|
||||
- mProfileDataCache = null;
|
||||
- mSigninPromoController = null;
|
||||
- }
|
||||
+ mProfileDataCache = ProfileDataCache.createProfileDataCache(mContext);
|
||||
+ mProfileDataCache.addObserver(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clean ups the class. Must be called once done using this class.
|
||||
*/
|
||||
void destroy() {
|
||||
- if (mProfileSyncService != null) mProfileSyncService.removeSyncStateChangedListener(this);
|
||||
-
|
||||
- if (mSigninPromoController != null) {
|
||||
- mAccountManagerFacade.removeObserver(this);
|
||||
- mProfileDataCache.removeObserver(this);
|
||||
- mSigninPromoController.onPromoDestroyed();
|
||||
- }
|
||||
-
|
||||
- mSignInManager.removeSignInStateObserver(this);
|
||||
+ mProfileDataCache.removeObserver(this);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -133,18 +86,6 @@ class BookmarkPromoHeader implements ProfileSyncService.SyncStateChangedListener
|
||||
return mPromoState;
|
||||
}
|
||||
|
||||
- /**
|
||||
- * @return Personalized signin promo header {@link ViewHolder} instance that can be used with
|
||||
- * {@link RecyclerView}.
|
||||
- */
|
||||
- ViewHolder createPersonalizedSigninAndSyncPromoHolder(ViewGroup parent) {
|
||||
- View view = LayoutInflater.from(mContext).inflate(
|
||||
- R.layout.personalized_signin_promo_view_bookmarks, parent, false);
|
||||
-
|
||||
- // ViewHolder is abstract and it cannot be instantiated directly.
|
||||
- return new ViewHolder(view) {};
|
||||
- }
|
||||
-
|
||||
/**
|
||||
* @return Sync promo header {@link ViewHolder} instance that can be used with
|
||||
* {@link RecyclerView}.
|
||||
@@ -156,54 +97,11 @@ class BookmarkPromoHeader implements ProfileSyncService.SyncStateChangedListener
|
||||
return new ViewHolder(view) {};
|
||||
}
|
||||
|
||||
- /**
|
||||
- * Configures the personalized signin promo and records promo impressions.
|
||||
- * @param view The view to be configured.
|
||||
- */
|
||||
- void setupPersonalizedSigninPromo(PersonalizedSigninPromoView view) {
|
||||
- SigninPromoUtil.setupSigninPromoViewFromCache(mSigninPromoController, mProfileDataCache,
|
||||
- view, this::setPersonalizedSigninPromoDeclined);
|
||||
- }
|
||||
-
|
||||
- void setupPersonalizedSyncPromo(PersonalizedSigninPromoView view) {
|
||||
- SigninPromoUtil.setupSyncPromoViewFromCache(mSigninPromoController, mProfileDataCache, view,
|
||||
- this::setPersonalizedSigninPromoDeclined);
|
||||
- }
|
||||
-
|
||||
- /**
|
||||
- * Detaches the previously configured {@link PersonalizedSigninPromoView}.
|
||||
- */
|
||||
- void detachPersonalizePromoView() {
|
||||
- if (mSigninPromoController != null) mSigninPromoController.detach();
|
||||
- }
|
||||
-
|
||||
- /**
|
||||
- * Saves that the personalized signin promo was declined and updates the UI.
|
||||
- */
|
||||
- private void setPersonalizedSigninPromoDeclined() {
|
||||
- SharedPreferencesManager.getInstance().writeBoolean(
|
||||
- ChromePreferenceKeys.SIGNIN_PROMO_PERSONALIZED_DECLINED, true);
|
||||
- mPromoState = calculatePromoState();
|
||||
- triggerPromoUpdate();
|
||||
- }
|
||||
-
|
||||
- /**
|
||||
- * @return Whether the user declined the personalized signin promo.
|
||||
- */
|
||||
- @VisibleForTesting
|
||||
- static boolean wasPersonalizedSigninPromoDeclined() {
|
||||
- return SharedPreferencesManager.getInstance().readBoolean(
|
||||
- ChromePreferenceKeys.SIGNIN_PROMO_PERSONALIZED_DECLINED, false);
|
||||
- }
|
||||
-
|
||||
/**
|
||||
* @return Whether the personalized signin promo should be shown to user.
|
||||
*/
|
||||
private boolean shouldShowBookmarkSigninPromo() {
|
||||
- return mSignInManager.isSignInAllowed()
|
||||
- && SigninPromoController.hasNotReachedImpressionLimit(
|
||||
- SigninAccessPoint.BOOKMARK_MANAGER)
|
||||
- && !wasPersonalizedSigninPromoDeclined();
|
||||
+ return false;
|
||||
}
|
||||
|
||||
private @PromoState int calculatePromoState() {
|
||||
@@ -211,57 +109,9 @@ class BookmarkPromoHeader implements ProfileSyncService.SyncStateChangedListener
|
||||
return sPromoStateForTests;
|
||||
}
|
||||
|
||||
- if (mProfileSyncService == null) {
|
||||
- // |mProfileSyncService| will remain null until the next browser startup, so no sense in
|
||||
- // offering any promo.
|
||||
- return PromoState.PROMO_NONE;
|
||||
- }
|
||||
-
|
||||
- if (!mProfileSyncService.isSyncAllowedByPlatform()) {
|
||||
- return PromoState.PROMO_NONE;
|
||||
- }
|
||||
-
|
||||
- if (!mSignInManager.getIdentityManager().hasPrimaryAccount()) {
|
||||
- if (!shouldShowBookmarkSigninPromo()) {
|
||||
- return PromoState.PROMO_NONE;
|
||||
- }
|
||||
- CoreAccountInfo primaryAccount =
|
||||
- mSignInManager.getIdentityManager().getPrimaryAccountInfo(
|
||||
- ConsentLevel.NOT_REQUIRED);
|
||||
- return primaryAccount == null ? PromoState.PROMO_SIGNIN_PERSONALIZED
|
||||
- : PromoState.PROMO_SYNC_PERSONALIZED;
|
||||
- }
|
||||
-
|
||||
- boolean impressionLimitNotReached =
|
||||
- SharedPreferencesManager.getInstance().readInt(
|
||||
- ChromePreferenceKeys.SIGNIN_AND_SYNC_PROMO_SHOW_COUNT)
|
||||
- < MAX_SIGNIN_AND_SYNC_PROMO_SHOW_COUNT;
|
||||
- if (!mProfileSyncService.isSyncRequested() && impressionLimitNotReached) {
|
||||
- return PromoState.PROMO_SYNC;
|
||||
- }
|
||||
return PromoState.PROMO_NONE;
|
||||
}
|
||||
|
||||
- // ProfileSyncService.SyncStateChangedListener implementation.
|
||||
- @Override
|
||||
- public void syncStateChanged() {
|
||||
- mPromoState = calculatePromoState();
|
||||
- triggerPromoUpdate();
|
||||
- }
|
||||
-
|
||||
- // SignInStateObserver implementation.
|
||||
- @Override
|
||||
- public void onSignedIn() {
|
||||
- mPromoState = calculatePromoState();
|
||||
- triggerPromoUpdate();
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public void onSignedOut() {
|
||||
- mPromoState = calculatePromoState();
|
||||
- triggerPromoUpdate();
|
||||
- }
|
||||
-
|
||||
// ProfileDataCache.Observer implementation.
|
||||
@Override
|
||||
public void onProfileDataUpdated(String accountEmail) {
|
||||
@@ -275,7 +125,6 @@ class BookmarkPromoHeader implements ProfileSyncService.SyncStateChangedListener
|
||||
}
|
||||
|
||||
private void triggerPromoUpdate() {
|
||||
- detachPersonalizePromoView();
|
||||
mPromoHeaderChangeAction.run();
|
||||
}
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/datareduction/settings/DataReductionPreferenceFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/datareduction/settings/DataReductionPreferenceFragment.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/datareduction/settings/DataReductionPreferenceFragment.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/datareduction/settings/DataReductionPreferenceFragment.java
|
||||
|
@ -235,30 +545,31 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/datareduction/s
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
@@ -27,9 +27,6 @@ import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate;
|
||||
import org.chromium.chrome.browser.settings.SettingsLauncher;
|
||||
@@ -24,9 +24,6 @@ import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate;
|
||||
import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
|
||||
import org.chromium.chrome.browser.signin.IdentityServicesProvider;
|
||||
import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
|
||||
-import org.chromium.chrome.browser.sync.settings.GoogleServicesSettings;
|
||||
-import org.chromium.chrome.browser.sync.settings.ManageSyncSettings;
|
||||
-import org.chromium.chrome.browser.sync.settings.SyncAndServicesSettings;
|
||||
import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
|
||||
import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate;
|
||||
import org.chromium.components.browser_ui.settings.SettingsUtils;
|
||||
@@ -48,11 +45,10 @@ public class PrivacySettings
|
||||
import org.chromium.components.browser_ui.settings.SettingsLauncher;
|
||||
@@ -46,12 +43,11 @@ public class PrivacySettings
|
||||
private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
|
||||
private static final String PREF_SECURE_DNS = "secure_dns";
|
||||
private static final String PREF_DO_NOT_TRACK = "do_not_track";
|
||||
- private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link";
|
||||
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
|
||||
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
|
||||
private static final String[] NEW_PRIVACY_PREFERENCE_ORDER = {PREF_CLEAR_BROWSING_DATA,
|
||||
PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS,
|
||||
- PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_SYNC_AND_SERVICES_LINK
|
||||
+ PREF_SECURE_DNS, PREF_DO_NOT_TRACK
|
||||
};
|
||||
- PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX, PREF_SYNC_AND_SERVICES_LINK};
|
||||
+ PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX};
|
||||
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
@@ -92,47 +88,9 @@ public class PrivacySettings
|
||||
|
||||
@@ -95,47 +91,9 @@ public class PrivacySettings
|
||||
Preference secureDnsPref = findPreference(PREF_SECURE_DNS);
|
||||
secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled());
|
||||
|
||||
|
@ -320,22 +631,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe
|
|||
import org.chromium.chrome.browser.night_mode.NightModeUtils;
|
||||
import org.chromium.chrome.browser.offlinepages.prefetch.PrefetchConfiguration;
|
||||
import org.chromium.chrome.browser.password_check.PasswordCheck;
|
||||
@@ -32,14 +30,7 @@ import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
@@ -33,14 +31,6 @@ import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment;
|
||||
import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
|
||||
-import org.chromium.chrome.browser.signin.IdentityServicesProvider;
|
||||
import org.chromium.chrome.browser.signin.SigninActivityLauncherImpl;
|
||||
-import org.chromium.chrome.browser.signin.SigninManager;
|
||||
-import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
|
||||
-import org.chromium.chrome.browser.signin.services.SigninManager;
|
||||
-import org.chromium.chrome.browser.sync.ProfileSyncService;
|
||||
-import org.chromium.chrome.browser.sync.settings.ManageSyncSettings;
|
||||
-import org.chromium.chrome.browser.sync.settings.SignInPreference;
|
||||
-import org.chromium.chrome.browser.sync.settings.SyncPromoPreference;
|
||||
-import org.chromium.chrome.browser.sync.settings.SyncPromoPreference.State;
|
||||
-import org.chromium.chrome.browser.sync.settings.SyncSettingsUtils;
|
||||
import org.chromium.chrome.browser.tracing.settings.DeveloperSettings;
|
||||
import org.chromium.components.browser_ui.settings.ChromeBasePreference;
|
||||
import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate;
|
||||
@@ -57,23 +48,17 @@ import java.util.Map;
|
||||
@@ -59,23 +49,17 @@ import java.util.Map;
|
||||
* The main settings screen, shown when the user first opens Settings.
|
||||
*/
|
||||
public class MainSettings extends PreferenceFragmentCompat
|
||||
|
@ -360,7 +671,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe
|
|||
public static final String PREF_NOTIFICATIONS = "notifications";
|
||||
public static final String PREF_DOWNLOADS = "downloads";
|
||||
public static final String PREF_DEVELOPER = "developer";
|
||||
@@ -84,9 +69,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
@@ -86,9 +70,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
|
||||
private final ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
private final Map<String, Preference> mAllPreferences = new HashMap<>();
|
||||
|
@ -370,12 +681,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe
|
|||
private @Nullable PasswordCheck mPasswordCheck;
|
||||
|
||||
public MainSettings() {
|
||||
@@ -116,42 +98,12 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
@@ -118,41 +99,12 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
- mSyncPromoPreference.onPreferenceFragmentDestroyed();
|
||||
- mSignInPreference.onPreferenceFragmentDestroyed();
|
||||
// The component should only be destroyed when the activity has been closed by the user
|
||||
// (e.g. by pressing on the back button) and not when the activity is temporarily destroyed
|
||||
// by the system.
|
||||
|
@ -413,11 +723,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe
|
|||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
@@ -170,12 +122,9 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
@@ -171,12 +123,9 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
|
||||
cachePreferences();
|
||||
|
||||
- mSignInPreference.setOnStateChangedCallback(this::onSignInPreferenceStateChanged);
|
||||
- mSyncPromoPreference.setOnStateChangedCallback(this::onSyncPromoPreferenceStateChanged);
|
||||
-
|
||||
updatePasswordsPreference();
|
||||
|
||||
|
@ -554,15 +864,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe
|
|||
- updatePreferences();
|
||||
- }
|
||||
-
|
||||
- private void onSignInPreferenceStateChanged() {
|
||||
- // Remove "Account" section header if the personalized sign-in promo is shown. Remove
|
||||
- // "You and Google" section header if the personalized sync promo is shown.
|
||||
- boolean isShowingPersonalizedPromo =
|
||||
- mSignInPreference.getState() == SignInPreference.State.PERSONALIZED_PROMO;
|
||||
- private void onSyncPromoPreferenceStateChanged() {
|
||||
- // Remove "Account" section header if the personalized sign-in promo is shown.
|
||||
- boolean isShowingPersonalizedSigninPromo =
|
||||
- mSyncPromoPreference.getState() == State.PERSONALIZED_SIGNIN_PROMO;
|
||||
- String prefName = ChromeFeatureList.isEnabled(ChromeFeatureList.MOBILE_IDENTITY_CONSISTENCY)
|
||||
- ? PREF_ACCOUNT_AND_GOOGLE_SERVICES_SECTION
|
||||
- : PREF_ACCOUNT_SECTION;
|
||||
- findPreference(prefName).setVisible(!isShowingPersonalizedPromo);
|
||||
- findPreference(prefName).setVisible(!isShowingPersonalizedSigninPromo);
|
||||
- mSignInPreference.setVisible(!isShowingPersonalizedSigninPromo);
|
||||
- }
|
||||
-
|
||||
// TemplateUrlService.LoadListener implementation.
|
||||
|
@ -602,176 +912,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe
|
|||
if (PREF_SEARCH_ENGINE.equals(preference.getKey())) {
|
||||
return TemplateUrlServiceFactory.get().isDefaultSearchManaged();
|
||||
}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
|
||||
@@ -53,7 +53,7 @@ import java.util.List;
|
||||
* See chrome/browser/signin/signin_manager_android.h for more details.
|
||||
*/
|
||||
public class SigninManager
|
||||
- implements AccountTrackerService.OnSystemAccountsSeededListener, IdentityManager.Observer {
|
||||
+ implements IdentityManager.Observer {
|
||||
private static final String TAG = "SigninManager";
|
||||
|
||||
/**
|
||||
@@ -205,7 +205,6 @@ public class SigninManager
|
||||
* This is not final, as destroy() updates this.
|
||||
*/
|
||||
private long mNativeSigninManagerAndroid;
|
||||
- private final AccountTrackerService mAccountTrackerService;
|
||||
private final IdentityManager mIdentityManager;
|
||||
private final IdentityMutator mIdentityMutator;
|
||||
private final AndroidSyncSettings mAndroidSyncSettings;
|
||||
@@ -243,24 +242,22 @@ public class SigninManager
|
||||
*/
|
||||
@CalledByNative
|
||||
private static SigninManager create(long nativeSigninManagerAndroid,
|
||||
- AccountTrackerService accountTrackerService, IdentityManager identityManager,
|
||||
+ IdentityManager identityManager,
|
||||
IdentityMutator identityMutator) {
|
||||
assert nativeSigninManagerAndroid != 0;
|
||||
- assert accountTrackerService != null;
|
||||
assert identityManager != null;
|
||||
assert identityMutator != null;
|
||||
- return new SigninManager(nativeSigninManagerAndroid, accountTrackerService, identityManager,
|
||||
+ return new SigninManager(nativeSigninManagerAndroid, identityManager,
|
||||
identityMutator, AndroidSyncSettings.get(), AppHooks.get().getExternalAuthUtils());
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
- SigninManager(long nativeSigninManagerAndroid, AccountTrackerService accountTrackerService,
|
||||
+ SigninManager(long nativeSigninManagerAndroid,
|
||||
IdentityManager identityManager, IdentityMutator identityMutator,
|
||||
AndroidSyncSettings androidSyncSettings, ExternalAuthUtils externalAuthUtils) {
|
||||
ThreadUtils.assertOnUiThread();
|
||||
assert androidSyncSettings != null;
|
||||
mNativeSigninManagerAndroid = nativeSigninManagerAndroid;
|
||||
- mAccountTrackerService = accountTrackerService;
|
||||
mIdentityManager = identityManager;
|
||||
mIdentityMutator = identityMutator;
|
||||
mAndroidSyncSettings = androidSyncSettings;
|
||||
@@ -269,7 +266,6 @@ public class SigninManager
|
||||
mSigninAllowedByPolicy =
|
||||
SigninManagerJni.get().isSigninAllowedByPolicy(mNativeSigninManagerAndroid);
|
||||
|
||||
- mAccountTrackerService.addSystemAccountsSeededListener(this);
|
||||
mIdentityManager.addObserver(this);
|
||||
|
||||
reloadAllAccountsFromSystem();
|
||||
@@ -303,7 +299,6 @@ public class SigninManager
|
||||
@CalledByNative
|
||||
public void destroy() {
|
||||
mIdentityManager.removeObserver(this);
|
||||
- mAccountTrackerService.removeSystemAccountsSeededListener(this);
|
||||
mNativeSigninManagerAndroid = 0;
|
||||
}
|
||||
|
||||
@@ -342,9 +337,7 @@ public class SigninManager
|
||||
* Returns true if signin can be started now.
|
||||
*/
|
||||
public boolean isSignInAllowed() {
|
||||
- return !mFirstRunCheckIsPending && mSignInState == null && mSigninAllowedByPolicy
|
||||
- && mIdentityManager.getPrimaryAccountInfo(ConsentLevel.SYNC) == null
|
||||
- && isSigninSupported();
|
||||
+ return false;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -399,17 +392,6 @@ public class SigninManager
|
||||
});
|
||||
}
|
||||
|
||||
- /**
|
||||
- * Continue pending sign in after system accounts have been seeded into AccountTrackerService.
|
||||
- */
|
||||
- @Override
|
||||
- public void onSystemAccountsSeedingComplete() {
|
||||
- if (mSignInState != null && mSignInState.mBlockedOnAccountSeeding) {
|
||||
- mSignInState.mBlockedOnAccountSeeding = false;
|
||||
- progressSignInFlowCheckPolicy();
|
||||
- }
|
||||
- }
|
||||
-
|
||||
/**
|
||||
* Starts the sign-in flow, and executes the callback when finished.
|
||||
*
|
||||
@@ -499,11 +481,8 @@ public class SigninManager
|
||||
mSignInState = signinState;
|
||||
notifySignInAllowedChanged();
|
||||
|
||||
- if (mAccountTrackerService.checkAndSeedSystemAccounts()) {
|
||||
- progressSignInFlowCheckPolicy();
|
||||
- } else {
|
||||
- mSignInState.mBlockedOnAccountSeeding = true;
|
||||
- }
|
||||
+ abortSignIn();
|
||||
+ //mSignInState.mBlockedOnAccountSeeding = true;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -550,44 +529,6 @@ public class SigninManager
|
||||
mIdentityMutator.reloadAllAccountsFromSystemWithPrimaryAccount(
|
||||
mSignInState.mCoreAccountInfo.getId());
|
||||
|
||||
- @ConsentLevel
|
||||
- int consentLevel =
|
||||
- mSignInState.shouldTurnSyncOn() ? ConsentLevel.SYNC : ConsentLevel.NOT_REQUIRED;
|
||||
- if (!mIdentityMutator.setPrimaryAccount(
|
||||
- mSignInState.mCoreAccountInfo.getId(), consentLevel)) {
|
||||
- Log.w(TAG, "Failed to set the PrimaryAccount in IdentityManager, aborting signin");
|
||||
- abortSignIn();
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- if (mSignInState.shouldTurnSyncOn()) {
|
||||
- // TODO(https://crbug.com/1091858): Remove this after migrating the legacy code that
|
||||
- // uses the sync account before the native is loaded.
|
||||
- SigninPreferencesManager.getInstance().setLegacySyncAccountEmail(
|
||||
- mSignInState.mCoreAccountInfo.getEmail());
|
||||
-
|
||||
- // Cache the signed-in account name. This must be done after the native call, otherwise
|
||||
- // sync tries to start without being signed in the native code and crashes.
|
||||
- mAndroidSyncSettings.updateAccount(
|
||||
- AccountUtils.createAccountFromName(mSignInState.mCoreAccountInfo.getEmail()));
|
||||
- boolean atLeastOneDataTypeSynced =
|
||||
- !ProfileSyncService.get().getChosenDataTypes().isEmpty();
|
||||
- if (!ChromeFeatureList.isEnabled(ChromeFeatureList.MOBILE_IDENTITY_CONSISTENCY)
|
||||
- || atLeastOneDataTypeSynced) {
|
||||
- // Turn on sync only when user has at least one data type to sync, this is
|
||||
- // consistent with {@link ManageSyncSettings#updataSyncStateFromSelectedModelTypes},
|
||||
- // in which we turn off sync we stop sync service when the user toggles off all the
|
||||
- // sync types.
|
||||
- mAndroidSyncSettings.enableChromeSync();
|
||||
- }
|
||||
-
|
||||
- RecordUserAction.record("Signin_Signin_Succeed");
|
||||
- RecordHistogram.recordEnumeratedHistogram("Signin.SigninCompletedAccessPoint",
|
||||
- mSignInState.getAccessPoint(), SigninAccessPoint.MAX);
|
||||
- RecordHistogram.recordEnumeratedHistogram(
|
||||
- "Signin.SigninReason", SigninReason.SIGNIN_PRIMARY_ACCOUNT, SigninReason.MAX);
|
||||
- }
|
||||
-
|
||||
if (mSignInState.mCallback != null) {
|
||||
mSignInState.mCallback.onSignInComplete();
|
||||
}
|
||||
@@ -732,13 +673,8 @@ public class SigninManager
|
||||
|
||||
Log.d(TAG, "On native signout, wipe user data: " + mSignOutState.mShouldWipeUserData);
|
||||
|
||||
- // TODO(https://crbug.com/1091858): Remove this after migrating the legacy code that uses
|
||||
- // the sync account before the native is loaded.
|
||||
- SigninPreferencesManager.getInstance().setLegacySyncAccountEmail(null);
|
||||
-
|
||||
if (mSignOutState.mSignOutCallback != null) mSignOutState.mSignOutCallback.preWipeData();
|
||||
disableSyncAndWipeData(mSignOutState.mShouldWipeUserData, this::finishSignOut);
|
||||
- mAccountTrackerService.invalidateAccountSeedStatus(true);
|
||||
}
|
||||
|
||||
void finishSignOut() {
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyncSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyncSettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyncSettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyncSettings.java
|
||||
@@ -223,10 +223,8 @@ public class AndroidSyncSettings {
|
||||
@@ -199,10 +199,8 @@ public class AndroidSyncSettings {
|
||||
|
||||
private void setChromeSyncEnabled(boolean value) {
|
||||
updateSyncability();
|
||||
|
@ -780,10 +924,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyn
|
|||
mChromeSyncEnabled = value;
|
||||
-
|
||||
- mSyncContentResolverDelegate.setSyncAutomatically(mAccount, mContractAuthority, value);
|
||||
notifyObservers();
|
||||
maybeNotifyDelegate();
|
||||
}
|
||||
|
||||
@@ -275,27 +273,9 @@ public class AndroidSyncSettings {
|
||||
@@ -251,27 +249,9 @@ public class AndroidSyncSettings {
|
||||
boolean oldChromeSyncEnabled = mChromeSyncEnabled;
|
||||
boolean oldMasterSyncEnabled = mMasterSyncEnabled;
|
||||
|
||||
|
@ -817,9 +961,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyn
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncAndServicesSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncAndServicesSettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncAndServicesSettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncAndServicesSettings.java
|
||||
@@ -172,15 +172,7 @@ public class SyncAndServicesSettings extends PreferenceFragmentCompat
|
||||
|
||||
mPrivacyPrefManager.migrateNetworkPredictionPreferences();
|
||||
@@ -170,15 +170,7 @@ public class SyncAndServicesSettings extends PreferenceFragmentCompat
|
||||
mIsFromSigninScreen =
|
||||
IntentUtils.safeGetBoolean(getArguments(), IS_FROM_SIGNIN_SCREEN, false);
|
||||
|
||||
- getActivity().setTitle(R.string.prefs_sync_and_services);
|
||||
setHasOptionsMenu(true);
|
||||
|
@ -838,16 +982,88 @@ diff --git a/chrome/browser/android/signin/signin_manager_android.cc b/chrome/br
|
|||
+++ b/chrome/browser/android/signin/signin_manager_android.cc
|
||||
@@ -141,7 +141,6 @@ SigninManagerAndroid::SigninManagerAndroid(
|
||||
|
||||
java_signin_manager_ = Java_SigninManager_create(
|
||||
java_signin_manager_ = Java_SigninManagerImpl_create(
|
||||
base::android::AttachCurrentThread(), reinterpret_cast<intptr_t>(this),
|
||||
- identity_manager_->LegacyGetAccountTrackerServiceJavaObject(),
|
||||
identity_manager_->GetJavaObject(),
|
||||
identity_manager_->GetIdentityMutatorJavaObject());
|
||||
}
|
||||
diff --git a/chrome/browser/signin/services/android/BUILD.gn b/chrome/browser/signin/services/android/BUILD.gn
|
||||
--- a/chrome/browser/signin/services/android/BUILD.gn
|
||||
+++ b/chrome/browser/signin/services/android/BUILD.gn
|
||||
@@ -20,8 +20,6 @@ android_library("java") {
|
||||
"java/src/org/chromium/chrome/browser/signin/services/IdentityServicesProvider.java",
|
||||
"java/src/org/chromium/chrome/browser/signin/services/ProfileDataCache.java",
|
||||
"java/src/org/chromium/chrome/browser/signin/services/ProfileDownloader.java",
|
||||
- "java/src/org/chromium/chrome/browser/signin/services/SigninHelper.java",
|
||||
- "java/src/org/chromium/chrome/browser/signin/services/SigninManager.java",
|
||||
"java/src/org/chromium/chrome/browser/signin/services/SigninMetricsUtils.java",
|
||||
"java/src/org/chromium/chrome/browser/signin/services/SigninPreferencesManager.java",
|
||||
"java/src/org/chromium/chrome/browser/signin/services/UnifiedConsentServiceBridge.java",
|
||||
diff --git a/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/IdentityServicesProvider.java b/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/IdentityServicesProvider.java
|
||||
--- a/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/IdentityServicesProvider.java
|
||||
+++ b/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/IdentityServicesProvider.java
|
||||
@@ -61,23 +61,9 @@ public class IdentityServicesProvider {
|
||||
return result;
|
||||
}
|
||||
|
||||
- /**
|
||||
- * Getter for {@link SigninManager} instance for given profile.
|
||||
- * @param profile The profile to get regarding sign-in manager.
|
||||
- * @return a {@link SigninManager} instance.
|
||||
- */
|
||||
- @MainThread
|
||||
- public SigninManager getSigninManager(Profile profile) {
|
||||
- ThreadUtils.assertOnUiThread();
|
||||
- SigninManager result = IdentityServicesProviderJni.get().getSigninManager(profile);
|
||||
- assert result != null;
|
||||
- return result;
|
||||
- }
|
||||
-
|
||||
@NativeMethods
|
||||
public interface Natives {
|
||||
IdentityManager getIdentityManager(Profile profile);
|
||||
AccountTrackerService getAccountTrackerService(Profile profile);
|
||||
- SigninManager getSigninManager(Profile profile);
|
||||
}
|
||||
}
|
||||
diff --git a/chrome/browser/signin/ui/android/java/src/org/chromium/chrome/browser/signin/ui/SigninPromoController.java b/chrome/browser/signin/ui/android/java/src/org/chromium/chrome/browser/signin/ui/SigninPromoController.java
|
||||
--- a/chrome/browser/signin/ui/android/java/src/org/chromium/chrome/browser/signin/ui/SigninPromoController.java
|
||||
+++ b/chrome/browser/signin/ui/android/java/src/org/chromium/chrome/browser/signin/ui/SigninPromoController.java
|
||||
@@ -71,28 +71,7 @@ public class SigninPromoController {
|
||||
* @param accessPoint The access point for which the impression limit is being checked.
|
||||
*/
|
||||
public static boolean hasNotReachedImpressionLimit(@AccessPoint int accessPoint) {
|
||||
- SharedPreferencesManager preferencesManager = SharedPreferencesManager.getInstance();
|
||||
- switch (accessPoint) {
|
||||
- case SigninAccessPoint.BOOKMARK_MANAGER:
|
||||
- return getSigninPromoImpressionsCountBookmarks() < MAX_IMPRESSIONS_BOOKMARKS;
|
||||
- case SigninAccessPoint.NTP_CONTENT_SUGGESTIONS:
|
||||
- int maxImpressions = ChromeFeatureList.getFieldTrialParamByFeatureAsInt(
|
||||
- ChromeFeatureList.ENHANCED_PROTECTION_PROMO_CARD,
|
||||
- "MaxSigninPromoImpressions", Integer.MAX_VALUE);
|
||||
- return SharedPreferencesManager.getInstance().readInt(
|
||||
- ChromePreferenceKeys.SIGNIN_PROMO_IMPRESSIONS_COUNT_NTP)
|
||||
- < maxImpressions;
|
||||
- case SigninAccessPoint.RECENT_TABS:
|
||||
- // There is no impression limit for Recent Tabs.
|
||||
- return true;
|
||||
- case SigninAccessPoint.SETTINGS:
|
||||
- return preferencesManager.readInt(
|
||||
- ChromePreferenceKeys.SIGNIN_PROMO_IMPRESSIONS_COUNT_SETTINGS)
|
||||
- < MAX_IMPRESSIONS_SETTINGS;
|
||||
- default:
|
||||
- assert false : "Unexpected value for access point: " + accessPoint;
|
||||
- return false;
|
||||
- }
|
||||
+ return false;
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -269,21 +269,12 @@ CHAR-LIMIT guidelines:
|
||||
@@ -272,21 +272,12 @@ CHAR-LIMIT guidelines:
|
||||
<message name="IDS_SIGN_IN_TO_CHROME" desc="Title for the button to sign in to Chrome using one's Google account. [CHAR-LIMIT=27]">
|
||||
Sign in to Chrome
|
||||
</message>
|
||||
|
@ -869,7 +1085,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
|||
<message name="IDS_SIGN_IN_TO_CHROME_DISABLED_SUMMARY" desc="A descriptive line of text that appears under the 'Sign in to Chrome' option, in Chrome Settings on Android. The text explains why 'Sign in to Chrome' is disabled. 'Administrator' refers to the IT administrator of the company/organization that owns the user’s device.">
|
||||
Disabled by the administrator of this device
|
||||
</message>
|
||||
@@ -345,15 +336,6 @@ CHAR-LIMIT guidelines:
|
||||
@@ -348,15 +339,6 @@ CHAR-LIMIT guidelines:
|
||||
<message name="IDS_URL_KEYED_ANONYMIZED_DATA_SUMMARY" desc="Summary for a checkbox in Settings that controls non-personalized URL collection and informs the user about the data shared by this feature.">
|
||||
Sends URLs of pages you visit to Google
|
||||
</message>
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: Replace DoH probe domain with RIPE domain
|
|||
diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
|
||||
--- a/net/dns/dns_transaction.cc
|
||||
+++ b/net/dns/dns_transaction.cc
|
||||
@@ -828,7 +828,7 @@ class DnsTCPAttempt : public DnsAttempt {
|
||||
@@ -833,7 +833,7 @@ class DnsTCPAttempt : public DnsAttempt {
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ Disable search-ready omnibox by default
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java
|
||||
@@ -63,6 +63,7 @@ class DropdownItemViewInfoListBuilder {
|
||||
@@ -68,6 +68,7 @@ class DropdownItemViewInfoListBuilder {
|
||||
private int mDropdownHeight;
|
||||
private boolean mEnableAdaptiveSuggestionsCount;
|
||||
private boolean mBuiltListHasFullyConcealedElements;
|
||||
|
@ -28,8 +28,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggest
|
|||
|
||||
DropdownItemViewInfoListBuilder(AutocompleteController controller) {
|
||||
mPriorityOrderedSuggestionProcessors = new ArrayList<>();
|
||||
@@ -92,8 +93,9 @@ class DropdownItemViewInfoListBuilder {
|
||||
() -> mShareDelegateSupplier == null ? null : mShareDelegateSupplier.get();
|
||||
@@ -98,8 +99,9 @@ class DropdownItemViewInfoListBuilder {
|
||||
final Supplier<BookmarkBridge> bookmarkSupplier = () -> mBookmarkBridge;
|
||||
|
||||
mHeaderProcessor = new HeaderProcessor(context, host, delegate);
|
||||
- registerSuggestionProcessor(new EditUrlSuggestionProcessor(
|
||||
|
@ -40,7 +40,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggest
|
|||
registerSuggestionProcessor(
|
||||
new AnswerSuggestionProcessor(context, host, textProvider, imageFetcherSupplier));
|
||||
registerSuggestionProcessor(
|
||||
@@ -223,6 +225,10 @@ class DropdownItemViewInfoListBuilder {
|
||||
@@ -235,6 +237,10 @@ class DropdownItemViewInfoListBuilder {
|
||||
|
||||
/** Signals that native initialization has completed. */
|
||||
void onNativeInitialized() {
|
||||
|
@ -54,7 +54,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggest
|
|||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -3028,6 +3028,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -3182,6 +3182,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kAndroidAutofillAccessibilityName,
|
||||
flag_descriptions::kAndroidAutofillAccessibilityDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(features::kAndroidAutofillAccessibility)},
|
||||
|
@ -67,7 +67,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
|
||||
--- a/chrome/browser/flag-metadata.json
|
||||
+++ b/chrome/browser/flag-metadata.json
|
||||
@@ -1972,6 +1972,11 @@
|
||||
@@ -2034,6 +2034,11 @@
|
||||
// with neural net palm detection.
|
||||
"expiry_milestone": 90
|
||||
},
|
||||
|
@ -82,7 +82,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
|
|||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -3105,6 +3105,11 @@ const char kSafeBrowsingUseLocalBlacklistsV2Description[] =
|
||||
@@ -3184,6 +3184,11 @@ const char kSafeBrowsingUseLocalBlacklistsV2Description[] =
|
||||
"process to check the Safe Browsing reputation of URLs without calling "
|
||||
"into GmsCore for every URL.";
|
||||
|
||||
|
@ -97,7 +97,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
|
|||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -1801,6 +1801,9 @@ extern const char kSafeBrowsingSectionUiAndroidDescription[];
|
||||
@@ -1837,6 +1837,9 @@ extern const char kSafeBrowsingSectionUiAndroidDescription[];
|
||||
extern const char kSafeBrowsingUseLocalBlacklistsV2Name[];
|
||||
extern const char kSafeBrowsingUseLocalBlacklistsV2Description[];
|
||||
|
||||
|
@ -110,7 +110,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
|
|||
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
--- a/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
@@ -197,6 +197,7 @@ const base::Feature* kFeaturesExposedToJava[] = {
|
||||
@@ -206,6 +206,7 @@ const base::Feature* kFeaturesExposedToJava[] = {
|
||||
&kReachedCodeProfiler,
|
||||
&kReaderModeInCCT,
|
||||
&kReengagementNotification,
|
||||
|
@ -118,7 +118,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
|
|||
&kRelatedSearches,
|
||||
&kSearchEnginePromoExistingDevice,
|
||||
&kSearchEnginePromoNewDevice,
|
||||
@@ -579,6 +580,9 @@ const base::Feature kReengagementNotification{
|
||||
@@ -586,6 +587,9 @@ const base::Feature kReengagementNotification{
|
||||
const base::Feature kRelatedSearches{"RelatedSearches",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
|
@ -131,7 +131,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
|
|||
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
|
||||
--- a/chrome/browser/flags/android/chrome_feature_list.h
|
||||
+++ b/chrome/browser/flags/android/chrome_feature_list.h
|
||||
@@ -103,6 +103,7 @@ extern const base::Feature kReaderModeInCCT;
|
||||
@@ -104,6 +104,7 @@ extern const base::Feature kReaderModeInCCT;
|
||||
extern const base::Feature kRelatedSearches;
|
||||
extern const base::Feature kSearchEnginePromoExistingDevice;
|
||||
extern const base::Feature kSearchEnginePromoNewDevice;
|
||||
|
@ -142,7 +142,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser
|
|||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
@@ -347,6 +347,7 @@ public abstract class ChromeFeatureList {
|
||||
@@ -356,6 +356,7 @@ public abstract class ChromeFeatureList {
|
||||
public static final String OMNIBOX_ADAPTIVE_SUGGESTIONS_COUNT =
|
||||
"OmniboxAdaptiveSuggestionsCount";
|
||||
public static final String OMNIBOX_ASSISTANT_VOICE_SEARCH = "OmniboxAssistantVoiceSearch";
|
||||
|
|
|
@ -28,7 +28,7 @@ This reverts commit 4d0e4483c5f77c66a8b6193e8a3bec5d0624d6ad.
|
|||
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
|
||||
--- a/chrome/android/chrome_java_resources.gni
|
||||
+++ b/chrome/android/chrome_java_resources.gni
|
||||
@@ -914,6 +914,7 @@ chrome_java_resources = [
|
||||
@@ -854,6 +854,7 @@ chrome_java_resources = [
|
||||
"java/res/layout/new_tab_page_snippets_expandable_header.xml",
|
||||
"java/res/layout/new_tab_page_snippets_expandable_header_with_menu.xml",
|
||||
"java/res/layout/new_tab_page_tile_grid_placeholder.xml",
|
||||
|
@ -39,7 +39,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
|
|||
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
|
||||
--- a/chrome/android/chrome_java_sources.gni
|
||||
+++ b/chrome/android/chrome_java_sources.gni
|
||||
@@ -700,6 +700,7 @@ chrome_java_sources = [
|
||||
@@ -590,6 +590,7 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/feedback/FeedFeedbackCollector.java",
|
||||
"java/src/org/chromium/chrome/browser/feedback/HelpAndFeedbackLauncherImpl.java",
|
||||
"java/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java",
|
||||
|
@ -208,7 +208,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
|
|||
/**
|
||||
* Whether the tiles shown in the layout have finished loading.
|
||||
* With {@link #mHasShownView}, it's one of the 2 flags used to track initialisation progress.
|
||||
@@ -264,6 +267,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
|
||||
@@ -270,6 +273,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
|
||||
}
|
||||
mNoSearchLogoSpacer = findViewById(R.id.no_search_logo_spacer);
|
||||
|
||||
|
@ -216,7 +216,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
|
|||
initializeSearchBoxTextView();
|
||||
initializeVoiceSearchButton();
|
||||
initializeLayoutChangeListener();
|
||||
@@ -553,10 +557,16 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
|
||||
@@ -558,10 +562,16 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
|
||||
* Updates the padding for the tile grid based on what is shown above it.
|
||||
*/
|
||||
private void updateTileGridPadding() {
|
||||
|
@ -235,7 +235,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
|
|||
mSiteSectionViewHolder.itemView.setPadding(
|
||||
0, paddingTop, 0, mSiteSectionViewHolder.itemView.getPaddingBottom());
|
||||
}
|
||||
@@ -954,6 +964,22 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
|
||||
@@ -952,6 +962,22 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
|
||||
return iphCommandBuilder;
|
||||
}
|
||||
|
||||
|
@ -306,7 +306,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug
|
|||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -3571,6 +3571,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -3728,6 +3728,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
SINGLE_VALUE_TYPE_AND_VALUE(
|
||||
switches::kForceShowUpdateMenuItemCustomSummary,
|
||||
"Custom Summary")},
|
||||
|
@ -319,7 +319,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -3148,6 +3148,9 @@ const char kStartSurfaceAndroidDescription[] =
|
||||
@@ -3227,6 +3227,9 @@ const char kStartSurfaceAndroidDescription[] =
|
||||
"Enable showing the start surface when launching Chrome via the "
|
||||
"launcher.";
|
||||
|
||||
|
@ -332,7 +332,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
|
|||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -1825,6 +1825,9 @@ extern const char kSiteIsolationForPasswordSitesDescription[];
|
||||
@@ -1861,6 +1861,9 @@ extern const char kSiteIsolationForPasswordSitesDescription[];
|
||||
extern const char kSmartSuggestionForLargeDownloadsName[];
|
||||
extern const char kSmartSuggestionForLargeDownloadsDescription[];
|
||||
|
||||
|
@ -345,17 +345,17 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
|
|||
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
--- a/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
@@ -189,6 +189,7 @@ const base::Feature* kFeaturesExposedToJava[] = {
|
||||
&kNewPhotoPicker,
|
||||
&kNotificationSuspender,
|
||||
&kOfflineIndicatorV2,
|
||||
@@ -187,6 +187,7 @@ const base::Feature* kFeaturesExposedToJava[] = {
|
||||
&kEnhancedProtectionPromoCard,
|
||||
&kEphemeralTabUsingBottomSheet,
|
||||
&kExploreSites,
|
||||
+ &kSimplifiedNTP,
|
||||
&kOmniboxSpareRenderer,
|
||||
&kPayWithGoogleV1,
|
||||
&kPhotoPickerVideoSupport,
|
||||
@@ -551,6 +552,9 @@ const base::Feature kNotificationSuspender{"NotificationSuspender",
|
||||
const base::Feature kOfflineIndicatorV2{"OfflineIndicatorV2",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
&kFocusOmniboxInIncognitoTabIntents,
|
||||
&kGPayAppDynamicUpdate,
|
||||
&kHandleMediaIntents,
|
||||
@@ -566,6 +567,9 @@ const base::Feature kOfflineIndicatorV2{"OfflineIndicatorV2",
|
||||
const base::Feature kOfflineMeasurementsBackgroundTask{
|
||||
"OfflineMeasurementsBackgroundTask", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
+const base::Feature kSimplifiedNTP{"SimplifiedNTP",
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
@ -366,18 +366,18 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
|
|||
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
|
||||
--- a/chrome/browser/flags/android/chrome_feature_list.h
|
||||
+++ b/chrome/browser/flags/android/chrome_feature_list.h
|
||||
@@ -92,6 +92,7 @@ extern const base::Feature kLanguagesPreference;
|
||||
extern const base::Feature kNewPhotoPicker;
|
||||
extern const base::Feature kNotificationSuspender;
|
||||
@@ -96,6 +96,7 @@ extern const base::Feature kNotificationSuspender;
|
||||
extern const base::Feature kOfflineIndicatorV2;
|
||||
+extern const base::Feature kSimplifiedNTP;
|
||||
extern const base::Feature kOfflineMeasurementsBackgroundTask;
|
||||
extern const base::Feature kOmniboxSpareRenderer;
|
||||
extern const base::Feature kPayWithGoogleV1;
|
||||
extern const base::Feature kPhotoPickerVideoSupport;
|
||||
+extern const base::Feature kSimplifiedNTP;
|
||||
extern const base::Feature kPageAnnotationsService;
|
||||
extern const base::Feature kProbabilisticCryptidRenderer;
|
||||
extern const base::Feature kReachedCodeProfiler;
|
||||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
@@ -327,6 +327,7 @@ public abstract class ChromeFeatureList {
|
||||
@@ -334,6 +334,7 @@ public abstract class ChromeFeatureList {
|
||||
public static final String LOOKALIKE_NAVIGATION_URL_SUGGESTIONS_UI =
|
||||
"LookalikeUrlNavigationSuggestionsUI";
|
||||
public static final String MARK_HTTP_AS = "MarkHttpAs";
|
||||
|
@ -410,7 +410,7 @@ diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/featu
|
|||
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
|
||||
--- a/testing/variations/fieldtrial_testing_config.json
|
||||
+++ b/testing/variations/fieldtrial_testing_config.json
|
||||
@@ -6736,6 +6736,24 @@
|
||||
@@ -6821,6 +6821,24 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
|
|
|
@ -58,7 +58,7 @@ diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc
|
|||
// Used to look up the URL to use for the New Tab page. Also tracks how we
|
||||
// arrived at that URL so it can be logged with UMA.
|
||||
struct NewTabURLDetails {
|
||||
@@ -187,10 +152,9 @@ struct NewTabURLDetails {
|
||||
@@ -188,10 +153,9 @@ struct NewTabURLDetails {
|
||||
: chrome::kChromeSearchLocalNtpUrl);
|
||||
#endif
|
||||
|
||||
|
@ -71,7 +71,7 @@ diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc
|
|||
GetDefaultSearchProviderTemplateURL(profile);
|
||||
if (!profile || !template_url)
|
||||
return NewTabURLDetails(local_url, NEW_TAB_URL_BAD);
|
||||
@@ -206,7 +170,7 @@ struct NewTabURLDetails {
|
||||
@@ -207,7 +171,7 @@ struct NewTabURLDetails {
|
||||
if (!IsURLAllowedForSupervisedUser(search_provider_url, profile))
|
||||
return NewTabURLDetails(local_url, NEW_TAB_URL_BLOCKED);
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: Restore enable-horizontal-tab-switcher flag
|
|||
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
|
||||
--- a/chrome/browser/flag-metadata.json
|
||||
+++ b/chrome/browser/flag-metadata.json
|
||||
@@ -1697,7 +1697,7 @@
|
||||
@@ -1757,7 +1757,7 @@
|
||||
{
|
||||
"name": "enable-horizontal-tab-switcher",
|
||||
"owners": [ "memex-team@google.com" ],
|
||||
|
|
|
@ -13,7 +13,7 @@ This reverts commit 4e598f38a0e6dd3dbede009c6a99b2a520a94e1f.
|
|||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -3053,6 +3053,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -3207,6 +3207,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
SINGLE_VALUE_TYPE(switches::kHostedAppQuitNotification)},
|
||||
#endif // OS_MAC
|
||||
#if defined(OS_ANDROID)
|
||||
|
@ -27,7 +27,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
|
||||
--- a/chrome/browser/flag-metadata.json
|
||||
+++ b/chrome/browser/flag-metadata.json
|
||||
@@ -944,6 +944,11 @@
|
||||
@@ -968,6 +968,11 @@
|
||||
// enable-javascript-harmony.
|
||||
"expiry_milestone": -1
|
||||
},
|
||||
|
@ -42,9 +42,9 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
|
|||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -3038,6 +3038,10 @@ const char kQueryTilesInstantFetchName[] = "Query tile instant fetch";
|
||||
const char kQueryTilesInstantFetchDescription[] =
|
||||
"Immediately schedule background task to fetch query tiles";
|
||||
@@ -3112,6 +3112,10 @@ const char kReadLaterDescription[] =
|
||||
"Allow users to save tabs for later. Enables a new button and menu for "
|
||||
"accessing tabs saved for later.";
|
||||
|
||||
+const char kPullToRefreshEffectName[] = "The pull-to-refresh effect";
|
||||
+const char kPullToRefreshEffectDescription[] =
|
||||
|
@ -56,9 +56,9 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
|
|||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -1766,6 +1766,9 @@ extern const char kQueryTilesLocalOrderingDescription[];
|
||||
extern const char kQueryTilesInstantFetchName[];
|
||||
extern const char kQueryTilesInstantFetchDescription[];
|
||||
@@ -1799,6 +1799,9 @@ extern const char kQueryTilesMoreTrendingDescription[];
|
||||
extern const char kQueryTilesSwapTrendingName[];
|
||||
extern const char kQueryTilesSwapTrendingDescription[];
|
||||
|
||||
+extern const char kPullToRefreshEffectName[];
|
||||
+extern const char kPullToRefreshEffectDescription[];
|
||||
|
|
|
@ -13,7 +13,7 @@ This reverts commit 2a51528a1737e9038f7f96f29403032a6a845a25.
|
|||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -290,6 +290,15 @@ const FeatureEntry::Choice kOverlayStrategiesChoices[] = {
|
||||
@@ -297,6 +297,15 @@ const FeatureEntry::Choice kOverlayStrategiesChoices[] = {
|
||||
"single-fullscreen,single-on-top,underlay"},
|
||||
};
|
||||
|
||||
|
@ -29,7 +29,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
const FeatureEntry::Choice kTouchTextSelectionStrategyChoices[] = {
|
||||
{flags_ui::kGenericExperimentChoiceDefault, "", ""},
|
||||
{flag_descriptions::kTouchSelectionStrategyCharacter,
|
||||
@@ -3141,6 +3150,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -3295,6 +3304,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
feature_engagement::kIPHDemoMode,
|
||||
feature_engagement::kIPHDemoModeChoiceVariations,
|
||||
"IPH_DemoMode")},
|
||||
|
@ -43,8 +43,8 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
|
|||
--- a/chrome/browser/flag-metadata.json
|
||||
+++ b/chrome/browser/flag-metadata.json
|
||||
@@ -3360,6 +3360,11 @@
|
||||
"owners": [ "reillyg@chromium.org" ],
|
||||
"expiry_milestone": 90
|
||||
],
|
||||
"expiry_milestone": 95
|
||||
},
|
||||
+ {
|
||||
+ "name": "num-raster-threads",
|
||||
|
@ -52,12 +52,12 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
|
|||
+ "expiry_milestone": -1
|
||||
+ },
|
||||
{
|
||||
"name": "notification-scheduler-debug-options",
|
||||
"owners": [ "//chrome/browser/notifications/scheduler/OWNERS" ],
|
||||
"name": "minutes-delay-to-restore-gaia-cookies-if-deleted",
|
||||
"owners": ["fernandex", "chrome-signin-team"],
|
||||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -1497,6 +1497,14 @@ const char kUseMultiloginEndpointName[] = "Use Multilogin endpoint.";
|
||||
@@ -1523,6 +1523,14 @@ const char kUseMultiloginEndpointName[] = "Use Multilogin endpoint.";
|
||||
const char kUseMultiloginEndpointDescription[] =
|
||||
"Use Gaia OAuth multilogin for identity consistency.";
|
||||
|
||||
|
@ -75,7 +75,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
|
|||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -896,6 +896,13 @@ extern const char kNotificationsNativeFlagDescription[];
|
||||
@@ -911,6 +911,13 @@ extern const char kNotificationsNativeFlagDescription[];
|
||||
extern const char kUseMultiloginEndpointName[];
|
||||
extern const char kUseMultiloginEndpointDescription[];
|
||||
|
||||
|
|
|
@ -9,16 +9,15 @@ Subject: Revert the removal of an option to block autoplay
|
|||
.../res/drawable-xhdpi/settings_autoplay.png | Bin 0 -> 551 bytes
|
||||
.../res/drawable-xxhdpi/settings_autoplay.png | Bin 0 -> 792 bytes
|
||||
.../drawable-xxxhdpi/settings_autoplay.png | Bin 0 -> 1064 bytes
|
||||
.../res/xml/single_website_preferences.xml | 2 ++
|
||||
.../res/xml/site_settings_preferences.xml | 4 +++
|
||||
.../ContentSettingsResources.java | 4 +++
|
||||
.../site_settings/SingleCategorySettings.java | 4 +++
|
||||
.../site_settings/SingleWebsiteSettings.java | 22 ++++++++++++++++
|
||||
.../site_settings/SingleWebsiteSettings.java | 22 +++++++++++++++++
|
||||
.../site_settings/SiteSettingsCategory.java | 9 +++++--
|
||||
.../browser_ui/site_settings/Website.java | 8 ++++++
|
||||
.../WebsitePermissionsFetcher.java | 1 +
|
||||
.../WebsitePreferenceBridge.java | 4 +++
|
||||
.../android/website_preference_bridge.cc | 24 +++++++++++++++++-
|
||||
.../android/website_preference_bridge.cc | 23 ++++++++++++++++++
|
||||
.../strings/android/site_settings.grdp | 9 +++++++
|
||||
.../core/browser/content_settings_registry.cc | 2 +-
|
||||
.../core/browser/content_settings_utils.cc | 2 ++
|
||||
|
@ -27,7 +26,7 @@ Subject: Revert the removal of an option to block autoplay
|
|||
.../core/common/content_settings.mojom | 1 +
|
||||
.../common/content_settings_mojom_traits.cc | 1 +
|
||||
.../common/content_settings_mojom_traits.h | 5 ++++
|
||||
.../renderer/content_settings_agent_impl.cc | 11 ++++++++
|
||||
.../renderer/content_settings_agent_impl.cc | 11 +++++++++
|
||||
.../renderer/content_settings_agent_impl.h | 1 +
|
||||
.../android/page_info_controller_android.cc | 1 +
|
||||
components/page_info/page_info.cc | 6 +++++
|
||||
|
@ -36,7 +35,7 @@ Subject: Revert the removal of an option to block autoplay
|
|||
.../platform/web_content_settings_client.h | 3 +++
|
||||
.../core/html/media/autoplay_policy.cc | 12 ++++++++-
|
||||
.../core/html/media/autoplay_policy.h | 4 +++
|
||||
33 files changed, 146 insertions(+), 5 deletions(-)
|
||||
32 files changed, 144 insertions(+), 4 deletions(-)
|
||||
create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-hdpi/settings_autoplay.png
|
||||
create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-mdpi/settings_autoplay.png
|
||||
create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-xhdpi/settings_autoplay.png
|
||||
|
@ -46,7 +45,7 @@ Subject: Revert the removal of an option to block autoplay
|
|||
diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn
|
||||
--- a/components/browser_ui/site_settings/android/BUILD.gn
|
||||
+++ b/components/browser_ui/site_settings/android/BUILD.gn
|
||||
@@ -190,6 +190,11 @@ android_resources("java_resources") {
|
||||
@@ -188,6 +188,11 @@ android_resources("java_resources") {
|
||||
"java/res/drawable-xxxhdpi/settings_storage.png",
|
||||
"java/res/drawable-xxxhdpi/settings_usb.png",
|
||||
"java/res/drawable-xxxhdpi/web_asset.png",
|
||||
|
@ -166,18 +165,6 @@ ib6hJ{tXQ#P#rX?0El=KlH_u1_0000<MNUMnLSTX(y!wd%
|
|||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
diff --git a/components/browser_ui/site_settings/android/java/res/xml/single_website_preferences.xml b/components/browser_ui/site_settings/android/java/res/xml/single_website_preferences.xml
|
||||
--- a/components/browser_ui/site_settings/android/java/res/xml/single_website_preferences.xml
|
||||
+++ b/components/browser_ui/site_settings/android/java/res/xml/single_website_preferences.xml
|
||||
@@ -71,6 +71,8 @@
|
||||
android:key="automatic_downloads_permission_list" />
|
||||
<ListPreference
|
||||
android:key="protected_media_identifier_permission_list" />
|
||||
+ <ListPreference
|
||||
+ android:key="autoplay_permission_list" />
|
||||
<ListPreference
|
||||
android:key="sound_permission_list" />
|
||||
<ListPreference
|
||||
diff --git a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml
|
||||
--- a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml
|
||||
+++ b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml
|
||||
|
@ -195,7 +182,7 @@ diff --git a/components/browser_ui/site_settings/android/java/res/xml/site_setti
|
|||
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingsResources.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingsResources.java
|
||||
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingsResources.java
|
||||
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingsResources.java
|
||||
@@ -104,6 +104,10 @@ public class ContentSettingsResources {
|
||||
@@ -111,6 +111,10 @@ public class ContentSettingsResources {
|
||||
new ResourceItem(R.drawable.infobar_downloading,
|
||||
R.string.automatic_downloads_permission_title, ContentSettingValues.ASK,
|
||||
ContentSettingValues.BLOCK, R.string.website_settings_category_ask, 0));
|
||||
|
@ -209,7 +196,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
|
||||
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
|
||||
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
|
||||
@@ -533,6 +533,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
@@ -537,6 +537,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
int resource = 0;
|
||||
if (mCategory.showSites(SiteSettingsCategory.Type.AUTOMATIC_DOWNLOADS)) {
|
||||
resource = R.string.website_settings_add_site_description_automatic_downloads;
|
||||
|
@ -218,7 +205,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
} else if (mCategory.showSites(SiteSettingsCategory.Type.BACKGROUND_SYNC)) {
|
||||
resource = R.string.website_settings_add_site_description_background_sync;
|
||||
} else if (mCategory.showSites(SiteSettingsCategory.Type.JAVASCRIPT)) {
|
||||
@@ -650,6 +652,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
@@ -653,6 +655,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
boolean exception = false;
|
||||
if (mCategory.showSites(SiteSettingsCategory.Type.SOUND)) {
|
||||
exception = true;
|
||||
|
@ -230,7 +217,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
|
||||
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
|
||||
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
|
||||
@@ -101,6 +101,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
@@ -128,6 +128,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
return "bluetooth_scanning_permission_list";
|
||||
case ContentSettingsType.COOKIES:
|
||||
return "cookies_permission_list";
|
||||
|
@ -239,16 +226,16 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
case ContentSettingsType.IDLE_DETECTION:
|
||||
return "idle_detection_permission_list";
|
||||
case ContentSettingsType.JAVASCRIPT:
|
||||
@@ -435,6 +437,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
setUpSoundPreference(preference);
|
||||
} else if (type == ContentSettingsType.JAVASCRIPT) {
|
||||
setUpJavascriptPreference(preference);
|
||||
+ } else if (type == ContentSettingsType.AUTOPLAY) {
|
||||
+ setUpAutoplayPreference(preference);
|
||||
} else if (type == ContentSettingsType.COOKIES) {
|
||||
setUpCookiePreference(preference);
|
||||
} else if (type == ContentSettingsType.GEOLOCATION) {
|
||||
@@ -921,6 +925,24 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
@@ -475,6 +477,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
setUpSoundPreference(preference);
|
||||
} else if (type == ContentSettingsType.JAVASCRIPT) {
|
||||
setUpJavascriptPreference(preference);
|
||||
+ } else if (type == ContentSettingsType.AUTOPLAY) {
|
||||
+ setUpAutoplayPreference(preference);
|
||||
} else if (type == ContentSettingsType.GEOLOCATION) {
|
||||
setUpLocationPreference(preference);
|
||||
} else if (type == ContentSettingsType.NOTIFICATIONS) {
|
||||
@@ -979,6 +983,24 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -261,7 +248,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
+ // doesn't have a current value.
|
||||
+ if (currentValue == null) {
|
||||
+ currentValue = WebsitePreferenceBridge.isCategoryEnabled(
|
||||
+ getSiteSettingsClient().getBrowserContextHandle(),
|
||||
+ getSiteSettingsDelegate().getBrowserContextHandle(),
|
||||
+ ContentSettingsType.AUTOPLAY)
|
||||
+ ? ContentSettingValues.ALLOW
|
||||
+ : ContentSettingValues.BLOCK;
|
||||
|
@ -272,11 +259,11 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
+
|
||||
private void setUpSoundPreference(Preference preference) {
|
||||
BrowserContextHandle browserContextHandle =
|
||||
getSiteSettingsClient().getBrowserContextHandle();
|
||||
getSiteSettingsDelegate().getBrowserContextHandle();
|
||||
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java
|
||||
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java
|
||||
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java
|
||||
@@ -43,7 +43,7 @@ public class SiteSettingsCategory {
|
||||
@@ -42,7 +42,7 @@ public class SiteSettingsCategory {
|
||||
Type.CLIPBOARD, Type.COOKIES, Type.IDLE_DETECTION, Type.DEVICE_LOCATION,
|
||||
Type.JAVASCRIPT, Type.MICROPHONE, Type.NFC, Type.NOTIFICATIONS, Type.POPUPS,
|
||||
Type.PROTECTED_MEDIA, Type.SENSORS, Type.SOUND, Type.USB, Type.VIRTUAL_REALITY,
|
||||
|
@ -285,7 +272,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface Type {
|
||||
// All updates here must also be reflected in {@link #preferenceKey(int)
|
||||
@@ -72,10 +72,11 @@ public class SiteSettingsCategory {
|
||||
@@ -71,10 +71,11 @@ public class SiteSettingsCategory {
|
||||
int VIRTUAL_REALITY = 21;
|
||||
int USE_STORAGE = 22;
|
||||
int TIMEZONE_OVERRIDE = 23;
|
||||
|
@ -298,7 +285,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
}
|
||||
|
||||
private final BrowserContextHandle mBrowserContextHandle;
|
||||
@@ -181,6 +182,8 @@ public class SiteSettingsCategory {
|
||||
@@ -180,6 +181,8 @@ public class SiteSettingsCategory {
|
||||
return ContentSettingsType.NFC;
|
||||
case Type.NOTIFICATIONS:
|
||||
return ContentSettingsType.NOTIFICATIONS;
|
||||
|
@ -307,7 +294,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
case Type.POPUPS:
|
||||
return ContentSettingsType.POPUPS;
|
||||
case Type.PROTECTED_MEDIA:
|
||||
@@ -254,6 +257,8 @@ public class SiteSettingsCategory {
|
||||
@@ -253,6 +256,8 @@ public class SiteSettingsCategory {
|
||||
return "nfc";
|
||||
case Type.NOTIFICATIONS:
|
||||
return "notifications";
|
||||
|
@ -319,9 +306,9 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
|
||||
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
|
||||
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
|
||||
@@ -216,6 +216,14 @@ public final class Website implements Serializable {
|
||||
} else {
|
||||
RecordUserAction.record("JavascriptContentSetting.DisableBy.SiteSettings");
|
||||
@@ -219,6 +219,14 @@ public final class Website implements Serializable {
|
||||
getAddress().getOrigin(), value, "");
|
||||
setContentSettingException(type, exception);
|
||||
}
|
||||
+ } else if (type == ContentSettingsType.AUTOPLAY) {
|
||||
+ // It is possible to set the permission without having an existing exception,
|
||||
|
@ -406,11 +393,6 @@ diff --git a/components/browser_ui/site_settings/android/website_preference_brid
|
|||
static jboolean JNI_WebsitePreferenceBridge_IsContentSettingManagedByCustodian(
|
||||
JNIEnv* env,
|
||||
const JavaParamRef<jobject>& jbrowser_context_handle,
|
||||
@@ -934,4 +957,3 @@ static base::android::ScopedJavaLocalRef<jstring> JNI_WebsitePreferenceBridge_Ge
|
||||
GetHostContentSettingsMap(jbrowser_context_handle)->GetTimezoneOverrideValue(timezone);
|
||||
return ConvertUTF8ToJavaString(env, timezone);
|
||||
}
|
||||
-
|
||||
diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp
|
||||
--- a/components/browser_ui/strings/android/site_settings.grdp
|
||||
+++ b/components/browser_ui/strings/android/site_settings.grdp
|
||||
|
@ -433,7 +415,7 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen
|
|||
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
|
||||
--- a/components/content_settings/core/browser/content_settings_registry.cc
|
||||
+++ b/components/content_settings/core/browser/content_settings_registry.cc
|
||||
@@ -323,7 +323,7 @@ void ContentSettingsRegistry::Init() {
|
||||
@@ -311,7 +311,7 @@ void ContentSettingsRegistry::Init() {
|
||||
ContentSettingsInfo::PERSISTENT,
|
||||
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
|
||||
|
||||
|
@ -457,7 +439,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc
|
|||
diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc
|
||||
--- a/components/content_settings/core/common/content_settings.cc
|
||||
+++ b/components/content_settings/core/common/content_settings.cc
|
||||
@@ -178,6 +178,7 @@ bool RendererContentSettingRules::IsRendererContentSetting(
|
||||
@@ -179,6 +179,7 @@ bool RendererContentSettingRules::IsRendererContentSetting(
|
||||
ContentSettingsType content_type) {
|
||||
return content_type == ContentSettingsType::IMAGES ||
|
||||
content_type == ContentSettingsType::JAVASCRIPT ||
|
||||
|
@ -516,7 +498,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai
|
|||
diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc b/components/content_settings/renderer/content_settings_agent_impl.cc
|
||||
--- a/components/content_settings/renderer/content_settings_agent_impl.cc
|
||||
+++ b/components/content_settings/renderer/content_settings_agent_impl.cc
|
||||
@@ -430,6 +430,17 @@ bool ContentSettingsAgentImpl::AllowRunningInsecureContent(
|
||||
@@ -422,6 +422,17 @@ bool ContentSettingsAgentImpl::AllowRunningInsecureContent(
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -537,7 +519,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc
|
|||
diff --git a/components/content_settings/renderer/content_settings_agent_impl.h b/components/content_settings/renderer/content_settings_agent_impl.h
|
||||
--- a/components/content_settings/renderer/content_settings_agent_impl.h
|
||||
+++ b/components/content_settings/renderer/content_settings_agent_impl.h
|
||||
@@ -96,6 +96,7 @@ class ContentSettingsAgentImpl
|
||||
@@ -95,6 +95,7 @@ class ContentSettingsAgentImpl
|
||||
void DidNotAllowScript() override;
|
||||
bool AllowRunningInsecureContent(bool allowed_per_settings,
|
||||
const blink::WebURL& url) override;
|
||||
|
@ -565,7 +547,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.
|
|||
ContentSettingsType::SOUND,
|
||||
+ ContentSettingsType::AUTOPLAY,
|
||||
ContentSettingsType::AUTOMATIC_DOWNLOADS,
|
||||
#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
|
||||
#if defined(OS_ANDROID) || BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
ContentSettingsType::PROTECTED_MEDIA_IDENTIFIER,
|
||||
@@ -141,6 +142,11 @@ bool ShouldShowPermission(const PageInfo::PermissionInfo& info,
|
||||
return is_subresource_filter_activated;
|
||||
|
@ -582,7 +564,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.
|
|||
diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_info_ui.cc
|
||||
--- a/components/page_info/page_info_ui.cc
|
||||
+++ b/components/page_info/page_info_ui.cc
|
||||
@@ -163,6 +163,7 @@ base::span<const PermissionsUIInfo> GetContentSettingsUIInfo() {
|
||||
@@ -160,6 +160,7 @@ base::span<const PermissionsUIInfo> GetContentSettingsUIInfo() {
|
||||
IDS_PAGE_INFO_TYPE_PROTECTED_MEDIA_IDENTIFIER},
|
||||
#endif
|
||||
{ContentSettingsType::ADS, IDS_PAGE_INFO_TYPE_ADS},
|
||||
|
@ -593,7 +575,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in
|
|||
diff --git a/components/page_info_strings.grdp b/components/page_info_strings.grdp
|
||||
--- a/components/page_info_strings.grdp
|
||||
+++ b/components/page_info_strings.grdp
|
||||
@@ -281,6 +281,9 @@
|
||||
@@ -278,6 +278,9 @@
|
||||
<message name="IDS_PAGE_INFO_TYPE_SOUND" desc="The label used for the sound permission controls in the Page Info popup.">
|
||||
Sound
|
||||
</message>
|
||||
|
@ -636,7 +618,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi
|
|||
}
|
||||
|
||||
String AutoplayPolicy::GetPlayErrorMessage() const {
|
||||
@@ -382,6 +383,15 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() {
|
||||
@@ -384,6 +385,15 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,23 +4,23 @@ Subject: Show site settings for cookies
|
|||
|
||||
Avoid displaying info about intrusive ads
|
||||
---
|
||||
.../site_settings/SingleWebsiteSettings.java | 59 +++++++++----------
|
||||
.../browser_ui/site_settings/Website.java | 14 +++--
|
||||
2 files changed, 37 insertions(+), 36 deletions(-)
|
||||
.../site_settings/SingleWebsiteSettings.java | 57 +++++++++----------
|
||||
.../browser_ui/site_settings/Website.java | 9 ++-
|
||||
2 files changed, 36 insertions(+), 30 deletions(-)
|
||||
|
||||
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
|
||||
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
|
||||
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
|
||||
@@ -433,6 +433,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
setUpSoundPreference(preference);
|
||||
} else if (type == ContentSettingsType.JAVASCRIPT) {
|
||||
setUpJavascriptPreference(preference);
|
||||
+ } else if (type == ContentSettingsType.COOKIES) {
|
||||
+ setUpCookiePreference(preference);
|
||||
} else if (type == ContentSettingsType.GEOLOCATION) {
|
||||
setUpLocationPreference(preference);
|
||||
} else if (type == ContentSettingsType.NOTIFICATIONS) {
|
||||
@@ -754,18 +756,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
@@ -476,6 +476,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
setUpLocationPreference(preference);
|
||||
} else if (type == ContentSettingsType.NOTIFICATIONS) {
|
||||
setUpNotificationsPreference(preference, isPermissionEmbargoed(type));
|
||||
+ } else if (type == ContentSettingsType.COOKIES) {
|
||||
+ setUpCookiePreference(preference);
|
||||
} else {
|
||||
setupContentSettingsPreference(preference,
|
||||
mSite.getContentSetting(
|
||||
@@ -785,18 +787,7 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
}
|
||||
|
||||
private void setUpAdsInformationalBanner() {
|
||||
|
@ -28,7 +28,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
- // activated on this site.
|
||||
- boolean adBlockingActivated = SiteSettingsCategory.adsCategoryEnabled()
|
||||
- && WebsitePreferenceBridge.getAdBlockingActivated(
|
||||
- getSiteSettingsClient().getBrowserContextHandle(),
|
||||
- getSiteSettingsDelegate().getBrowserContextHandle(),
|
||||
- mSite.getAddress().getOrigin())
|
||||
- && findPreference(getPreferenceKey(ContentSettingsType.ADS)) != null;
|
||||
-
|
||||
|
@ -36,12 +36,11 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
- removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO);
|
||||
- removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO_DIVIDER);
|
||||
- }
|
||||
+ removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO);
|
||||
+ removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO_DIVIDER);
|
||||
}
|
||||
|
||||
private SiteSettingsCategory getWarningCategory() {
|
||||
@@ -935,14 +927,31 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
@@ -987,15 +978,15 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
@Nullable
|
||||
Integer currentValue =
|
||||
mSite.getContentSetting(browserContextHandle, ContentSettingsType.JAVASCRIPT);
|
||||
|
@ -54,81 +53,83 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
+ // Always show the Javascript permission
|
||||
+ if (currentValue == null) {
|
||||
+ currentValue = WebsitePreferenceBridge.isCategoryEnabled(
|
||||
+ getSiteSettingsClient().getBrowserContextHandle(),
|
||||
+ getSiteSettingsDelegate().getBrowserContextHandle(),
|
||||
+ ContentSettingsType.JAVASCRIPT)
|
||||
+ ? ContentSettingValues.ALLOW
|
||||
+ : ContentSettingValues.BLOCK;
|
||||
}
|
||||
- // Not possible to embargo JAVASCRIPT.
|
||||
- setupContentSettingsPreference(preference, currentValue, false /* isEmbargoed */);
|
||||
+ setUpListPreference(preference, currentValue, false);
|
||||
+ }
|
||||
+
|
||||
+ private void setUpCookiePreference(Preference preference) {
|
||||
+ @ContentSettingValues
|
||||
+ @Nullable
|
||||
+ Integer currentValue =
|
||||
+ mSite.getContentSetting(getSiteSettingsClient().getBrowserContextHandle(), ContentSettingsType.COOKIES);
|
||||
+ // Always show the cookies permission
|
||||
+ if (currentValue == null) {
|
||||
+ currentValue = WebsitePreferenceBridge.isCategoryEnabled(
|
||||
+ getSiteSettingsClient().getBrowserContextHandle(),
|
||||
+ ContentSettingsType.COOKIES)
|
||||
+ ? ContentSettingValues.ALLOW
|
||||
+ : ContentSettingValues.BLOCK;
|
||||
+ }
|
||||
+ // Not possible to embargo COOKIES.
|
||||
setUpListPreference(preference, currentValue, false /* isEmbargoed */);
|
||||
}
|
||||
|
||||
@@ -961,22 +970,10 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
setUpListPreference(preference, null, false);
|
||||
return;
|
||||
}
|
||||
- // If the ad blocker is activated, then this site will have ads blocked unless there is an
|
||||
- // explicit permission disallowing the blocking.
|
||||
- boolean activated = WebsitePreferenceBridge.getAdBlockingActivated(
|
||||
- browserContextHandle, mSite.getAddress().getOrigin());
|
||||
/**
|
||||
@@ -1020,15 +1011,6 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
@ContentSettingValues
|
||||
@Nullable
|
||||
Integer permission = mSite.getContentSetting(browserContextHandle, ContentSettingsType.ADS);
|
||||
|
||||
-
|
||||
- // If |permission| is null, there is no explicit (non-default) permission set for this site.
|
||||
- // If the site is not considered a candidate for blocking, do the standard thing and remove
|
||||
- // the preference.
|
||||
- if (permission == null && !activated) {
|
||||
- setUpListPreference(preference, null, false);
|
||||
- setupContentSettingsPreference(preference, null, false);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
// However, if the blocking is activated, we still want to show the permission, even if it
|
||||
// is in the default state.
|
||||
if (permission == null) {
|
||||
@@ -1050,6 +1032,23 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
}
|
||||
}
|
||||
|
||||
+ private void setUpCookiePreference(Preference preference) {
|
||||
+ @ContentSettingValues
|
||||
+ @Nullable
|
||||
+ Integer currentValue =
|
||||
+ mSite.getContentSetting(getSiteSettingsDelegate().getBrowserContextHandle(), ContentSettingsType.COOKIES);
|
||||
+ // Always show the cookies permission
|
||||
+ if (currentValue == null) {
|
||||
+ currentValue = WebsitePreferenceBridge.isCategoryEnabled(
|
||||
+ getSiteSettingsDelegate().getBrowserContextHandle(),
|
||||
+ ContentSettingsType.COOKIES)
|
||||
+ ? ContentSettingValues.ALLOW
|
||||
+ : ContentSettingValues.BLOCK;
|
||||
+ }
|
||||
+ // Not possible to embargo COOKIES.
|
||||
+ setupContentSettingsPreference(preference, currentValue, false /* isEmbargoed */);
|
||||
+ }
|
||||
+
|
||||
private String getDSECategorySummary(@ContentSettingValues int value) {
|
||||
return value == ContentSettingValues.ALLOW
|
||||
? getString(R.string.website_settings_permissions_allowed_dse)
|
||||
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
|
||||
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
|
||||
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
|
||||
@@ -187,13 +187,17 @@ public final class Website implements Serializable {
|
||||
|
||||
ContentSettingException exception = getContentSettingException(type);
|
||||
if (type == ContentSettingsType.ADS) {
|
||||
- // It is possible to set the permission without having an existing exception,
|
||||
- // because we can show the BLOCK state even when this permission is set to the
|
||||
- // default. In that case, just set an exception now to BLOCK to enable changing the
|
||||
- // permission.
|
||||
+ // It is possible to set the permission without having an existing exception
|
||||
@@ -193,7 +193,7 @@ public final class Website implements Serializable {
|
||||
// permission.
|
||||
if (exception == null) {
|
||||
exception = new ContentSettingException(ContentSettingsType.ADS,
|
||||
- getAddress().getOrigin(), ContentSettingValues.BLOCK, "");
|
||||
+ getAddress().getOrigin(), value, "");
|
||||
+ setContentSettingException(type, exception);
|
||||
+ }
|
||||
setContentSettingException(type, exception);
|
||||
}
|
||||
} else if (type == ContentSettingsType.JAVASCRIPT) {
|
||||
@@ -212,6 +212,13 @@ public final class Website implements Serializable {
|
||||
} else {
|
||||
RecordUserAction.record("JavascriptContentSetting.DisableBy.SiteSettings");
|
||||
}
|
||||
+ } else if (type == ContentSettingsType.COOKIES) {
|
||||
+ // It is possible to set the permission without having an existing exception
|
||||
+ if (exception == null) {
|
||||
+ exception = new ContentSettingException(ContentSettingsType.COOKIES,
|
||||
+ getAddress().getOrigin(), value, "");
|
||||
setContentSettingException(type, exception);
|
||||
}
|
||||
} else if (type == ContentSettingsType.JAVASCRIPT) {
|
||||
+ setContentSettingException(type, exception);
|
||||
+ }
|
||||
} else if (type == ContentSettingsType.SOUND) {
|
||||
// It is possible to set the permission without having an existing exception,
|
||||
// because we always show the sound permission in Site Settings.
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue