Merge branch 'master' into enable-user-scripts
This commit is contained in:
commit
63fcd262e2
122 changed files with 6746 additions and 4643 deletions
26
CHANGELOG.md
26
CHANGELOG.md
|
@ -1,3 +1,29 @@
|
|||
# 87.0.4280.106
|
||||
* enable SplitCacheByNetworkIsolationKey (fixes https://github.com/bromite/bromite/issues/836)
|
||||
* fix random timezone option (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/828)
|
||||
* disable autofill server communication by default
|
||||
* ask permission to play protected media by default
|
||||
* disable SystemWebView variations support
|
||||
|
||||
# 87.0.4280.81
|
||||
* fix text fragment not disabled by default, unexpire flag (fixes https://github.com/bromite/bromite/issues/803)
|
||||
* turn AImageReader off by default on ARM64 (fixes https://github.com/bromite/bromite/issues/814)
|
||||
* fix issue with global autoplay settings (thanks to @uazo, https://github.com/bromite/bromite/pull/825)
|
||||
* fix issues with user agent customization (thanks to @uazo, https://github.com/bromite/bromite/pull/823)
|
||||
* updated zh_CN translations (thanks to @zhmars, https://github.com/bromite/bromite/pull/821)
|
||||
|
||||
# 87.0.4280.68
|
||||
* user agent customization (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/798)
|
||||
* fix for intent handling for local apps on Android 11 (https://github.com/bromite/bromite/pull/816)
|
||||
|
||||
# 87.0.4280.67
|
||||
|
||||
# 86.0.4240.194
|
||||
* fix native pages displaying incorrectly with the sticky desktop mode (thanks to @uazo)
|
||||
* re-introduce simplified NTP (fixes https://github.com/bromite/bromite/issues/701)
|
||||
* re-introduce site settings to block autoplay (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/791)
|
||||
* fix Omnibox flag not working (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/789)
|
||||
|
||||
# 86.0.4240.181
|
||||
* allow sticky desktop mode for all tabs (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/780)
|
||||
|
||||
|
|
10
README.md
10
README.md
|
@ -52,6 +52,8 @@ ETH donations address: `0xf47ff39223d828f99fec5ab53bd068c5c0522042`
|
|||
* privacy enhancement patches from [Iridium](https://iridiumbrowser.de/), [Inox patchset](https://github.com/gcarq/inox-patchset), [Brave](https://brave.com/) and [ungoogled-chromium](https://github.com/Eloston/ungoogled-chromium) projects
|
||||
* security enhancement patches from [GrapheneOS](https://github.com/GrapheneOS) project
|
||||
* disable scroll-to-text-fragment
|
||||
* reduced referer granularity
|
||||
* block gateway attacks via websockets
|
||||
|
||||
## Features not related to privacy
|
||||
* import/export bookmarks
|
||||
|
@ -66,6 +68,12 @@ ETH donations address: `0xf47ff39223d828f99fec5ab53bd068c5c0522042`
|
|||
* do not ignore save prompt for users without SD cards
|
||||
* disable articles and increase number of icons on new tab page
|
||||
* adding an URL as bookmark will clear its blocked status for the NTP tiles
|
||||
* history support in incognito mode
|
||||
* view source of pages
|
||||
* timezone customization
|
||||
* sticky desktop mode setting
|
||||
* disable video autoplay by default
|
||||
* mobile/desktop user agent customization
|
||||
|
||||
You can inspect all functionality/privacy changes by reading the [patches](https://github.com/bromite/bromite/tree/master/build/patches) and/or the [CHANGELOG](./CHANGELOG.md).
|
||||
|
||||
|
@ -77,6 +85,8 @@ Flags which have been retired from upstream Chromium but are still available in
|
|||
* `#pull-to-refresh`
|
||||
* `#enable-search-ready-omnibox`
|
||||
* `#darken-websites-checkbox-in-themes-setting`
|
||||
* `#simplified-ntp`
|
||||
* `#enable-text-fragment-anchor`
|
||||
|
||||
New flags:
|
||||
|
||||
|
|
|
@ -20,7 +20,6 @@ enable_platform_dolby_vision=true
|
|||
enable_platform_hevc=true
|
||||
enable_remoting=false
|
||||
enable_reporting=true
|
||||
enable_resource_whitelist_generation=false
|
||||
enable_vr=false
|
||||
ffmpeg_branding="Chrome"
|
||||
fieldtrial_testing_like_official_build=true
|
||||
|
|
|
@ -1 +1 @@
|
|||
86.0.4240.181
|
||||
87.0.4280.106
|
||||
|
|
|
@ -38,7 +38,6 @@ Disable-Omaha-update-checks.patch
|
|||
Disable-update-scheduler.patch
|
||||
Add-English-only-search-engine.patch
|
||||
Add-DuckDuckGo-Lite-search-engine.patch
|
||||
Fix-crash-when-accessing-page-info-site-settings.patch
|
||||
openH264-enable-ARM-ARM64-optimizations.patch
|
||||
Switch-to-fstack-protector-strong.patch
|
||||
Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch
|
||||
|
@ -51,7 +50,7 @@ Open-YouTube-links-in-Bromite.patch
|
|||
Add-exit-menu-item.patch
|
||||
Remove-help-menu-item.patch
|
||||
AudioBuffer-AnalyserNode-fp-mitigations.patch
|
||||
Multiple-fingerprinting-mitigations-for-canvas-text-and-client-rectangles.patch
|
||||
Multiple-fingerprinting-mitigations.patch
|
||||
Add-flags-to-disable-device-motion-orientation-APIs.patch
|
||||
Disable-metrics-on-all-I-O-threads.patch
|
||||
Always-respect-async-dns-flag-regardless-of-SDK-version.patch
|
||||
|
@ -114,7 +113,7 @@ Increase-number-of-autocomplete-matches-from-5-to-10.patch
|
|||
Disable-HEAD-requests-for-single-word-Omnibar-searches.patch
|
||||
Disable-some-signed-exchange-features.patch
|
||||
Add-flag-to-disable-WebGL.patch
|
||||
Enable-DoH.patch
|
||||
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
|
||||
|
@ -127,10 +126,7 @@ Disable-DRM-media-origin-IDs-preprovisioning.patch
|
|||
Disable-smart-selection-by-default.patch
|
||||
Enable-user-agent-freeze-by-default.patch
|
||||
disable-browser-autologin-by-default.patch
|
||||
Revert-gpu-android-Remove-setup-for-disabling-AImageReader.patch
|
||||
Revert-Remove-flags-to-enable-disable-AImageReader.patch
|
||||
Disable-AImageReader-for-ARM64-P-and-ARM64-Q.patch
|
||||
Restore-GPU-bug-blacklist-for-AImageReader-on-ARM-CPUs.patch
|
||||
AImageReader-CFI-crash-mitigations.patch
|
||||
Update-i18n-zh_CN-support.patch
|
||||
Add-a-flag-to-allow-screenshots-in-Incognito-mode.patch
|
||||
Add-menu-item-to-view-source.patch
|
||||
|
@ -142,12 +138,19 @@ Disable-support-for-RAR-files-inspection.patch
|
|||
Add-history-support-in-incognito-mode.patch
|
||||
Enable-darken-websites-checkbox-in-themes.patch
|
||||
Remove-blocklisted-URLs-upon-bookmark-creation.patch
|
||||
Disable-scroll-to-text-fragment.patch
|
||||
Disable-the-DIAL-repeating-discovery.patch
|
||||
Block-all-connection-requests-with-qjz9zk-in-the-domain-name-or-with-a-trk-scheme.patch
|
||||
Hardening-against-incognito-mode-detection.patch
|
||||
Remove-weblayer-dependency-on-Play-Services.patch
|
||||
Timezone-customization.patch
|
||||
Move-some-account-settings-back-to-privacy-settings.patch
|
||||
Add-a-flag-to-always-view-desktop-site-for-all-websites.patch
|
||||
User-agent-customization.patch
|
||||
Restore-Simplified-NTP-launch.patch
|
||||
Revert-the-removal-of-an-option-to-block-autoplay.patch
|
||||
android-upstream-missed-manifest-changes-for-Q-R.patch
|
||||
Disable-text-fragments-by-default.patch
|
||||
disable-WebView-variations-support.patch
|
||||
disable-autofill-server-communication-by-default.patch
|
||||
ask-permission-to-play-protected-media-by-default.patch
|
||||
Enable-SplitCacheByNetworkIsolationKey.patch
|
||||
Automated-domain-substitution.patch
|
||||
|
|
265
build/patches/AImageReader-CFI-crash-mitigations.patch
Normal file
265
build/patches/AImageReader-CFI-crash-mitigations.patch
Normal file
|
@ -0,0 +1,265 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Tue, 5 May 2020 07:22:20 +0200
|
||||
Subject: AImageReader CFI crash mitigations
|
||||
|
||||
Revert "gpu/android: Remove setup for disabling AImageReader."
|
||||
This reverts commit dcd5a39518246eb999f1cc63bf1ec95d93fd5b2f.
|
||||
|
||||
Revert "Remove flags to enable/disable AImageReader."
|
||||
This reverts commit 463fa0f2e3b9e418bc26e2c8954463f0b0f76634.
|
||||
|
||||
Disable AImageReader for ARM64/P and ARM64/Q
|
||||
|
||||
Restore GPU bug blacklist for AImageReader on ARM and Qualcomm CPUs
|
||||
|
||||
Restore the AImageReader blacklist for ARM/ARM64/Qualcomm chipsets which causes
|
||||
crashes on Android 9 and 10 (at different code locations).
|
||||
|
||||
See discussions at:
|
||||
* https://github.com/bromite/bromite/issues/445
|
||||
* https://github.com/bromite/bromite/issues/814
|
||||
---
|
||||
base/android/android_image_reader_compat.cc | 8 +++++++-
|
||||
base/android/android_image_reader_compat.h | 4 ++++
|
||||
chrome/browser/flag-metadata.json | 2 +-
|
||||
gpu/config/gpu_driver_bug_list.json | 16 ++++++++++++++++
|
||||
gpu/config/gpu_finch_features.cc | 10 +++++++++-
|
||||
gpu/config/gpu_finch_features.h | 1 +
|
||||
gpu/config/gpu_util.cc | 8 ++++++++
|
||||
gpu/config/gpu_workaround_list.txt | 1 +
|
||||
gpu/ipc/service/gpu_init.cc | 5 +++++
|
||||
gpu/ipc/service/stream_texture_android.cc | 11 ++++++++++-
|
||||
media/base/media_switches.cc | 4 ++++
|
||||
media/base/media_switches.h | 1 +
|
||||
12 files changed, 67 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/base/android/android_image_reader_compat.cc b/base/android/android_image_reader_compat.cc
|
||||
--- a/base/android/android_image_reader_compat.cc
|
||||
+++ b/base/android/android_image_reader_compat.cc
|
||||
@@ -23,6 +23,8 @@
|
||||
namespace base {
|
||||
namespace android {
|
||||
|
||||
+bool AndroidImageReader::disable_support_ = false;
|
||||
+
|
||||
AndroidImageReader& AndroidImageReader::GetInstance() {
|
||||
// C++11 static local variable initialization is
|
||||
// thread-safe.
|
||||
@@ -30,8 +32,12 @@ AndroidImageReader& AndroidImageReader::GetInstance() {
|
||||
return *instance;
|
||||
}
|
||||
|
||||
+void AndroidImageReader::DisableSupport() {
|
||||
+ disable_support_ = true;
|
||||
+}
|
||||
+
|
||||
bool AndroidImageReader::IsSupported() {
|
||||
- return is_supported_;
|
||||
+ return !disable_support_ && is_supported_;
|
||||
}
|
||||
|
||||
// static
|
||||
diff --git a/base/android/android_image_reader_compat.h b/base/android/android_image_reader_compat.h
|
||||
--- a/base/android/android_image_reader_compat.h
|
||||
+++ b/base/android/android_image_reader_compat.h
|
||||
@@ -22,6 +22,9 @@ class BASE_EXPORT AndroidImageReader {
|
||||
// Thread safe GetInstance.
|
||||
static AndroidImageReader& GetInstance();
|
||||
|
||||
+ // Disable image reader support.
|
||||
+ static void DisableSupport();
|
||||
+
|
||||
// Check if the image reader usage is supported. This function returns TRUE
|
||||
// if android version is >=OREO, image reader support is not disabled and all
|
||||
// the required functions are loaded.
|
||||
@@ -64,6 +67,7 @@ class BASE_EXPORT AndroidImageReader {
|
||||
jobject ANativeWindow_toSurface(JNIEnv* env, ANativeWindow* window);
|
||||
|
||||
private:
|
||||
+ static bool disable_support_;
|
||||
friend class base::NoDestructor<AndroidImageReader>;
|
||||
|
||||
AndroidImageReader();
|
||||
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
|
||||
@@ -1681,7 +1681,7 @@
|
||||
{
|
||||
"name": "enable-image-reader",
|
||||
"owners": [ "vikassoni", "khushalsagar" ],
|
||||
- "expiry_milestone": 90
|
||||
+ "expiry_milestone": -1
|
||||
},
|
||||
{
|
||||
"name": "enable-immersive-fullscreen-toolbar",
|
||||
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
|
||||
@@ -3287,6 +3287,22 @@
|
||||
"dont_delete_source_texture_for_egl_image"
|
||||
]
|
||||
},
|
||||
+ {
|
||||
+ "id":335,
|
||||
+ "cr_bugs": [1051705],
|
||||
+ "description": "Disable AImageReader on ARM GPUs",
|
||||
+ "os": {
|
||||
+ "type": "android",
|
||||
+ "version": {
|
||||
+ "op": "<",
|
||||
+ "value": "10"
|
||||
+ }
|
||||
+ },
|
||||
+ "gl_vendor": "ARM.*",
|
||||
+ "features": [
|
||||
+ "disable_aimagereader"
|
||||
+ ]
|
||||
+ },
|
||||
{
|
||||
"id": 336,
|
||||
"cr_bugs": [625785],
|
||||
diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
|
||||
--- a/gpu/config/gpu_finch_features.cc
|
||||
+++ b/gpu/config/gpu_finch_features.cc
|
||||
@@ -13,6 +13,10 @@
|
||||
|
||||
namespace features {
|
||||
|
||||
+// Use android AImageReader when playing videos with MediaPlayer.
|
||||
+const base::Feature kAImageReaderMediaPlayer{"AImageReaderMediaPlayer",
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+
|
||||
#if defined(OS_ANDROID)
|
||||
// Used to limit GL version to 2.0 for skia raster on Android.
|
||||
const base::Feature kUseGles2ForOopR{"UseGles2ForOopR",
|
||||
@@ -26,7 +30,11 @@ const base::Feature kAndroidSurfaceControl{"AndroidSurfaceControl",
|
||||
|
||||
// Use AImageReader for MediaCodec and MediaPlyer on android.
|
||||
const base::Feature kAImageReader{"AImageReader",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+#ifdef ARCH_CPU_ARM64
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+#else
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+#endif
|
||||
#endif
|
||||
|
||||
// Enable GPU Rasterization by default. This can still be overridden by
|
||||
diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h
|
||||
--- a/gpu/config/gpu_finch_features.h
|
||||
+++ b/gpu/config/gpu_finch_features.h
|
||||
@@ -17,6 +17,7 @@ namespace features {
|
||||
// All features in alphabetical order. The features should be documented
|
||||
// alongside the definition of their values in the .cc file.
|
||||
#if defined(OS_ANDROID)
|
||||
+GPU_EXPORT extern const base::Feature kAImageReaderMediaPlayer;
|
||||
GPU_EXPORT extern const base::Feature kUseGles2ForOopR;
|
||||
GPU_EXPORT extern const base::Feature kAndroidSurfaceControl;
|
||||
GPU_EXPORT extern const base::Feature kAImageReader;
|
||||
diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
|
||||
--- a/gpu/config/gpu_util.cc
|
||||
+++ b/gpu/config/gpu_util.cc
|
||||
@@ -111,6 +111,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus(
|
||||
#if !defined(OS_ANDROID)
|
||||
return kGpuFeatureStatusDisabled;
|
||||
#else
|
||||
+ if (blocklisted_features.count(GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL))
|
||||
+ return kGpuFeatureStatusBlocklisted;
|
||||
+
|
||||
if (!gpu_preferences.enable_android_surface_control)
|
||||
return kGpuFeatureStatusDisabled;
|
||||
|
||||
@@ -374,6 +377,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) {
|
||||
gpu_feature_info->status_values[GPU_FEATURE_TYPE_ACCELERATED_WEBGL2] =
|
||||
kGpuFeatureStatusBlocklisted;
|
||||
}
|
||||
+
|
||||
+ if (gpu_feature_info->IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) {
|
||||
+ gpu_feature_info->status_values[GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL] =
|
||||
+ kGpuFeatureStatusBlocklisted;
|
||||
+ }
|
||||
}
|
||||
|
||||
// Estimates roughly user total disk space by counting in the drives where
|
||||
diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list.txt
|
||||
--- a/gpu/config/gpu_workaround_list.txt
|
||||
+++ b/gpu/config/gpu_workaround_list.txt
|
||||
@@ -13,6 +13,7 @@ decode_encode_srgb_for_generatemipmap
|
||||
depth_stencil_renderbuffer_resize_emulation
|
||||
disable_2d_canvas_auto_flush
|
||||
disable_accelerated_av1_decode
|
||||
+disable_aimagereader
|
||||
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
|
||||
@@ -467,6 +467,11 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
|
||||
}
|
||||
}
|
||||
|
||||
+ // Disable AImageReader if the workaround is enabled.
|
||||
+ if (gpu_feature_info_.IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) {
|
||||
+ base::android::AndroidImageReader::DisableSupport();
|
||||
+ }
|
||||
+
|
||||
if (gpu_feature_info_.status_values[GPU_FEATURE_TYPE_VULKAN] !=
|
||||
kGpuFeatureStatusEnabled ||
|
||||
!InitializeVulkan()) {
|
||||
diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_texture_android.cc
|
||||
--- a/gpu/ipc/service/stream_texture_android.cc
|
||||
+++ b/gpu/ipc/service/stream_texture_android.cc
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
#include <string.h>
|
||||
|
||||
+#include "base/android/android_image_reader_compat.h"
|
||||
#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(
|
||||
}
|
||||
|
||||
TextureOwner::Mode GetTextureOwnerMode() {
|
||||
- return features::IsAImageReaderEnabled()
|
||||
+ const bool a_image_reader_supported =
|
||||
+ base::android::AndroidImageReader::GetInstance().IsSupported();
|
||||
+
|
||||
+ // TODO(vikassoni) : Currently we have 2 different flags to enable/disable
|
||||
+ // AImageReader - one for MCVD and other for MediaPlayer here. Merge those 2
|
||||
+ // flags into a single flag. Keeping the 2 flags separate for now since finch
|
||||
+ // experiment using this flag is in progress.
|
||||
+ return a_image_reader_supported && features::IsAImageReaderEnabled() &&
|
||||
+ base::FeatureList::IsEnabled(features::kAImageReaderMediaPlayer)
|
||||
? TextureOwner::Mode::kAImageReaderInsecure
|
||||
: TextureOwner::Mode::kSurfaceTextureInsecure;
|
||||
}
|
||||
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
|
||||
@@ -566,6 +566,10 @@ const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning",
|
||||
const base::Feature kMediaDrmPreprovisioningAtStartup{
|
||||
"MediaDrmPreprovisioningAtStartup", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
+// Enables the Android Image Reader path for Video decoding(for AVDA and MCVD)
|
||||
+const base::Feature kAImageReaderVideoOutput{"AImageReaderVideoOutput",
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+
|
||||
// Prevents using SurfaceLayer for videos. This is meant to be used by embedders
|
||||
// that cannot support SurfaceLayer at the moment.
|
||||
const base::Feature kDisableSurfaceLayerForVideo{
|
||||
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
|
||||
@@ -198,6 +198,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;
|
||||
+MEDIA_EXPORT extern const base::Feature kAImageReaderVideoOutput;
|
||||
MEDIA_EXPORT extern const base::Feature kDisableSurfaceLayerForVideo;
|
||||
MEDIA_EXPORT extern const base::Feature kCanPlayHls;
|
||||
MEDIA_EXPORT extern const base::Feature kPictureInPictureAPI;
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -73,7 +73,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
|
||||
@@ -670,6 +670,11 @@ aom_mem_sources = [
|
||||
@@ -671,6 +671,11 @@ aom_mem_sources = [
|
||||
|
||||
aom_ports_asm_x86 = [ "//third_party/libaom/source/libaom/aom_ports/emms.asm" ]
|
||||
|
||||
|
@ -88,9 +88,9 @@ diff --git a/third_party/libaom/libaom_srcs.gni b/third_party/libaom/libaom_srcs
|
|||
diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.asm b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.asm
|
||||
--- a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.asm
|
||||
+++ b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.asm
|
||||
@@ -44,7 +44,7 @@ CONFIG_MULTITHREAD equ 1
|
||||
CONFIG_NN_V2 equ 0
|
||||
@@ -45,7 +45,7 @@ CONFIG_NN_V2 equ 0
|
||||
CONFIG_NORMAL_TILE_MODE equ 1
|
||||
CONFIG_OPTICAL_FLOW_API equ 0
|
||||
CONFIG_OS_SUPPORT equ 1
|
||||
-CONFIG_PIC equ 0
|
||||
+CONFIG_PIC equ 1
|
||||
|
@ -100,9 +100,9 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/a
|
|||
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
|
||||
+++ b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h
|
||||
@@ -46,7 +46,7 @@
|
||||
#define CONFIG_NN_V2 0
|
||||
@@ -47,7 +47,7 @@
|
||||
#define CONFIG_NORMAL_TILE_MODE 1
|
||||
#define CONFIG_OPTICAL_FLOW_API 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
|
@ -112,9 +112,9 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/a
|
|||
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
|
||||
+++ b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm
|
||||
@@ -44,7 +44,7 @@ CONFIG_MULTITHREAD equ 1
|
||||
CONFIG_NN_V2 equ 0
|
||||
@@ -45,7 +45,7 @@ CONFIG_NN_V2 equ 0
|
||||
CONFIG_NORMAL_TILE_MODE equ 1
|
||||
CONFIG_OPTICAL_FLOW_API equ 0
|
||||
CONFIG_OS_SUPPORT equ 1
|
||||
-CONFIG_PIC equ 0
|
||||
+CONFIG_PIC equ 1
|
||||
|
@ -124,9 +124,9 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.a
|
|||
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
|
||||
+++ b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
|
||||
@@ -46,7 +46,7 @@
|
||||
#define CONFIG_NN_V2 0
|
||||
@@ -47,7 +47,7 @@
|
||||
#define CONFIG_NORMAL_TILE_MODE 1
|
||||
#define CONFIG_OPTICAL_FLOW_API 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
|
@ -136,9 +136,9 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
|
|||
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
|
||||
+++ b/third_party/libaom/source/config/linux/arm/config/aom_config.asm
|
||||
@@ -44,7 +44,7 @@ CONFIG_MULTITHREAD equ 1
|
||||
CONFIG_NN_V2 equ 0
|
||||
@@ -45,7 +45,7 @@ CONFIG_NN_V2 equ 0
|
||||
CONFIG_NORMAL_TILE_MODE equ 1
|
||||
CONFIG_OPTICAL_FLOW_API equ 0
|
||||
CONFIG_OS_SUPPORT equ 1
|
||||
-CONFIG_PIC equ 0
|
||||
+CONFIG_PIC equ 1
|
||||
|
@ -148,9 +148,9 @@ diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.asm b/
|
|||
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
|
||||
+++ b/third_party/libaom/source/config/linux/arm/config/aom_config.h
|
||||
@@ -46,7 +46,7 @@
|
||||
#define CONFIG_NN_V2 0
|
||||
@@ -47,7 +47,7 @@
|
||||
#define CONFIG_NORMAL_TILE_MODE 1
|
||||
#define CONFIG_OPTICAL_FLOW_API 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
|
@ -160,9 +160,9 @@ diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.h b/th
|
|||
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
|
||||
+++ b/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
|
||||
@@ -44,7 +44,7 @@ CONFIG_MULTITHREAD equ 1
|
||||
CONFIG_NN_V2 equ 0
|
||||
@@ -45,7 +45,7 @@ CONFIG_NN_V2 equ 0
|
||||
CONFIG_NORMAL_TILE_MODE equ 1
|
||||
CONFIG_OPTICAL_FLOW_API equ 0
|
||||
CONFIG_OS_SUPPORT equ 1
|
||||
-CONFIG_PIC equ 0
|
||||
+CONFIG_PIC equ 1
|
||||
|
@ -172,9 +172,9 @@ diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
|
|||
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
|
||||
+++ b/third_party/libaom/source/config/linux/arm64/config/aom_config.h
|
||||
@@ -46,7 +46,7 @@
|
||||
#define CONFIG_NN_V2 0
|
||||
@@ -47,7 +47,7 @@
|
||||
#define CONFIG_NORMAL_TILE_MODE 1
|
||||
#define CONFIG_OPTICAL_FLOW_API 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
|
@ -184,9 +184,9 @@ diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.h b/
|
|||
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
|
||||
+++ b/third_party/libaom/source/config/linux/generic/config/aom_config.asm
|
||||
@@ -44,7 +44,7 @@ CONFIG_MULTITHREAD equ 1
|
||||
CONFIG_NN_V2 equ 0
|
||||
@@ -45,7 +45,7 @@ CONFIG_NN_V2 equ 0
|
||||
CONFIG_NORMAL_TILE_MODE equ 1
|
||||
CONFIG_OPTICAL_FLOW_API equ 0
|
||||
CONFIG_OS_SUPPORT equ 1
|
||||
-CONFIG_PIC equ 0
|
||||
+CONFIG_PIC equ 1
|
||||
|
@ -196,9 +196,9 @@ diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.as
|
|||
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
|
||||
+++ b/third_party/libaom/source/config/linux/generic/config/aom_config.h
|
||||
@@ -46,7 +46,7 @@
|
||||
#define CONFIG_NN_V2 0
|
||||
@@ -47,7 +47,7 @@
|
||||
#define CONFIG_NORMAL_TILE_MODE 1
|
||||
#define CONFIG_OPTICAL_FLOW_API 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
|
@ -208,9 +208,9 @@ diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.h
|
|||
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
|
||||
+++ b/third_party/libaom/source/config/linux/x64/config/aom_config.asm
|
||||
@@ -34,7 +34,7 @@
|
||||
%define CONFIG_NN_V2 0
|
||||
@@ -35,7 +35,7 @@
|
||||
%define CONFIG_NORMAL_TILE_MODE 1
|
||||
%define CONFIG_OPTICAL_FLOW_API 0
|
||||
%define CONFIG_OS_SUPPORT 1
|
||||
-%define CONFIG_PIC 0
|
||||
+%define CONFIG_PIC 1
|
||||
|
@ -220,9 +220,9 @@ diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.asm b/
|
|||
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
|
||||
+++ b/third_party/libaom/source/config/linux/x64/config/aom_config.h
|
||||
@@ -46,7 +46,7 @@
|
||||
#define CONFIG_NN_V2 0
|
||||
@@ -47,7 +47,7 @@
|
||||
#define CONFIG_NORMAL_TILE_MODE 1
|
||||
#define CONFIG_OPTICAL_FLOW_API 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
|
|
|
@ -42,7 +42,7 @@ diff --git a/components/search_engines/search_engine_type.h b/components/search_
|
|||
diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc
|
||||
--- a/components/search_engines/template_url_prepopulate_data.cc
|
||||
+++ b/components/search_engines/template_url_prepopulate_data.cc
|
||||
@@ -35,6 +35,7 @@ const PrepopulatedEngine* const engines_default[] = {
|
||||
@@ -32,6 +32,7 @@ const PrepopulatedEngine* const engines_default[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -50,7 +50,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// Note, the below entries are sorted by country code, not the name in comment.
|
||||
@@ -44,7 +45,7 @@ const PrepopulatedEngine* const engines_AE[] = {
|
||||
@@ -41,7 +42,7 @@ const PrepopulatedEngine* const engines_AE[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -59,7 +59,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -53,7 +54,7 @@ const PrepopulatedEngine* const engines_AL[] = {
|
||||
@@ -50,7 +51,7 @@ const PrepopulatedEngine* const engines_AL[] = {
|
||||
&googleen, &google,
|
||||
&yahoo,
|
||||
&bing,
|
||||
|
@ -68,7 +68,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -62,7 +63,7 @@ const PrepopulatedEngine* const engines_AR[] = {
|
||||
@@ -59,7 +60,7 @@ const PrepopulatedEngine* const engines_AR[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_ar,
|
||||
|
@ -77,7 +77,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -70,7 +71,7 @@ const PrepopulatedEngine* const engines_AR[] = {
|
||||
@@ -67,7 +68,7 @@ const PrepopulatedEngine* const engines_AR[] = {
|
||||
const PrepopulatedEngine* const engines_AT[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
|
@ -86,7 +86,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo_at,
|
||||
&ecosia,
|
||||
};
|
||||
@@ -79,7 +80,7 @@ const PrepopulatedEngine* const engines_AT[] = {
|
||||
@@ -76,7 +77,7 @@ const PrepopulatedEngine* const engines_AT[] = {
|
||||
const PrepopulatedEngine* const engines_AU[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
|
@ -95,7 +95,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo_au,
|
||||
&ecosia,
|
||||
};
|
||||
@@ -89,7 +90,7 @@ const PrepopulatedEngine* const engines_BA[] = {
|
||||
@@ -86,7 +87,7 @@ const PrepopulatedEngine* const engines_BA[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -104,7 +104,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ask,
|
||||
};
|
||||
|
||||
@@ -99,7 +100,7 @@ const PrepopulatedEngine* const engines_BE[] = {
|
||||
@@ -96,7 +97,7 @@ const PrepopulatedEngine* const engines_BE[] = {
|
||||
&bing,
|
||||
&yahoo,
|
||||
&ecosia,
|
||||
|
@ -113,7 +113,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// Bulgaria
|
||||
@@ -107,7 +108,7 @@ const PrepopulatedEngine* const engines_BG[] = {
|
||||
@@ -104,7 +105,7 @@ const PrepopulatedEngine* const engines_BG[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -122,7 +122,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -116,7 +117,7 @@ const PrepopulatedEngine* const engines_BH[] = {
|
||||
@@ -113,7 +114,7 @@ const PrepopulatedEngine* const engines_BH[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -131,7 +131,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -125,7 +126,7 @@ const PrepopulatedEngine* const engines_BI[] = {
|
||||
@@ -122,7 +123,7 @@ const PrepopulatedEngine* const engines_BI[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -140,7 +140,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ask,
|
||||
};
|
||||
|
||||
@@ -134,7 +135,7 @@ const PrepopulatedEngine* const engines_BN[] = {
|
||||
@@ -131,7 +132,7 @@ const PrepopulatedEngine* const engines_BN[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -149,7 +149,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -143,7 +144,7 @@ const PrepopulatedEngine* const engines_BO[] = {
|
||||
@@ -140,7 +141,7 @@ const PrepopulatedEngine* const engines_BO[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -158,7 +158,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -152,7 +153,7 @@ const PrepopulatedEngine* const engines_BR[] = {
|
||||
@@ -149,7 +150,7 @@ const PrepopulatedEngine* const engines_BR[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_br,
|
||||
|
@ -167,7 +167,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -170,7 +171,7 @@ const PrepopulatedEngine* const engines_BZ[] = {
|
||||
@@ -167,7 +168,7 @@ const PrepopulatedEngine* const engines_BZ[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -176,7 +176,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ask,
|
||||
};
|
||||
|
||||
@@ -179,7 +180,7 @@ const PrepopulatedEngine* const engines_CA[] = {
|
||||
@@ -176,7 +177,7 @@ const PrepopulatedEngine* const engines_CA[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_ca,
|
||||
|
@ -185,7 +185,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -187,7 +188,7 @@ const PrepopulatedEngine* const engines_CA[] = {
|
||||
@@ -184,7 +185,7 @@ const PrepopulatedEngine* const engines_CA[] = {
|
||||
const PrepopulatedEngine* const engines_CH[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
|
@ -194,7 +194,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo_ch,
|
||||
&ecosia,
|
||||
};
|
||||
@@ -197,7 +198,7 @@ const PrepopulatedEngine* const engines_CL[] = {
|
||||
@@ -194,7 +195,7 @@ const PrepopulatedEngine* const engines_CL[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_cl,
|
||||
|
@ -203,7 +203,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -216,7 +217,7 @@ const PrepopulatedEngine* const engines_CO[] = {
|
||||
@@ -213,7 +214,7 @@ const PrepopulatedEngine* const engines_CO[] = {
|
||||
&bing,
|
||||
&yahoo_co,
|
||||
&ecosia,
|
||||
|
@ -212,7 +212,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// Costa Rica
|
||||
@@ -224,7 +225,7 @@ const PrepopulatedEngine* const engines_CR[] = {
|
||||
@@ -221,7 +222,7 @@ const PrepopulatedEngine* const engines_CR[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -221,7 +221,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -234,7 +235,7 @@ const PrepopulatedEngine* const engines_CZ[] = {
|
||||
@@ -231,7 +232,7 @@ const PrepopulatedEngine* const engines_CZ[] = {
|
||||
&seznam_cz,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -230,7 +230,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// Germany
|
||||
@@ -242,7 +243,7 @@ const PrepopulatedEngine* const engines_DE[] = {
|
||||
@@ -239,7 +240,7 @@ const PrepopulatedEngine* const engines_DE[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_de,
|
||||
|
@ -239,7 +239,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -251,7 +252,7 @@ const PrepopulatedEngine* const engines_DK[] = {
|
||||
@@ -248,7 +249,7 @@ const PrepopulatedEngine* const engines_DK[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_dk,
|
||||
|
@ -248,7 +248,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -260,7 +261,7 @@ const PrepopulatedEngine* const engines_DO[] = {
|
||||
@@ -257,7 +258,7 @@ const PrepopulatedEngine* const engines_DO[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -257,7 +257,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -270,7 +271,7 @@ const PrepopulatedEngine* const engines_DZ[] = {
|
||||
@@ -267,7 +268,7 @@ const PrepopulatedEngine* const engines_DZ[] = {
|
||||
&yahoo,
|
||||
&bing,
|
||||
&yandex_ru,
|
||||
|
@ -266,7 +266,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// Ecuador
|
||||
@@ -279,7 +280,7 @@ const PrepopulatedEngine* const engines_EC[] = {
|
||||
@@ -276,7 +277,7 @@ const PrepopulatedEngine* const engines_EC[] = {
|
||||
&bing,
|
||||
&yahoo,
|
||||
&ecosia,
|
||||
|
@ -275,7 +275,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// Estonia
|
||||
@@ -297,7 +298,7 @@ const PrepopulatedEngine* const engines_EG[] = {
|
||||
@@ -294,7 +295,7 @@ const PrepopulatedEngine* const engines_EG[] = {
|
||||
&yahoo,
|
||||
&bing,
|
||||
&yandex_ru,
|
||||
|
@ -284,7 +284,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// Spain
|
||||
@@ -305,7 +306,7 @@ const PrepopulatedEngine* const engines_ES[] = {
|
||||
@@ -302,7 +303,7 @@ const PrepopulatedEngine* const engines_ES[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_es,
|
||||
|
@ -293,7 +293,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -314,7 +315,7 @@ const PrepopulatedEngine* const engines_FI[] = {
|
||||
@@ -311,7 +312,7 @@ const PrepopulatedEngine* const engines_FI[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_fi,
|
||||
|
@ -302,7 +302,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -323,7 +324,7 @@ const PrepopulatedEngine* const engines_FO[] = {
|
||||
@@ -320,7 +321,7 @@ const PrepopulatedEngine* const engines_FO[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_dk,
|
||||
|
@ -311,7 +311,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -341,7 +342,7 @@ const PrepopulatedEngine* const engines_GB[] = {
|
||||
@@ -338,7 +339,7 @@ const PrepopulatedEngine* const engines_GB[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_uk,
|
||||
|
@ -320,7 +320,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -350,7 +351,7 @@ const PrepopulatedEngine* const engines_GR[] = {
|
||||
@@ -347,7 +348,7 @@ const PrepopulatedEngine* const engines_GR[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -329,7 +329,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -360,7 +361,7 @@ const PrepopulatedEngine* const engines_GT[] = {
|
||||
@@ -357,7 +358,7 @@ const PrepopulatedEngine* const engines_GT[] = {
|
||||
&bing,
|
||||
&yahoo,
|
||||
&ecosia,
|
||||
|
@ -338,7 +338,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// Hong Kong
|
||||
@@ -378,7 +379,7 @@ const PrepopulatedEngine* const engines_HN[] = {
|
||||
@@ -375,7 +376,7 @@ const PrepopulatedEngine* const engines_HN[] = {
|
||||
&bing,
|
||||
&yahoo,
|
||||
&yandex_ru,
|
||||
|
@ -347,7 +347,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// Croatia
|
||||
@@ -386,7 +387,7 @@ const PrepopulatedEngine* const engines_HR[] = {
|
||||
@@ -383,7 +384,7 @@ const PrepopulatedEngine* const engines_HR[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -356,7 +356,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -395,7 +396,7 @@ const PrepopulatedEngine* const engines_HU[] = {
|
||||
@@ -392,7 +393,7 @@ const PrepopulatedEngine* const engines_HU[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -365,7 +365,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -404,7 +405,7 @@ const PrepopulatedEngine* const engines_ID[] = {
|
||||
@@ -401,7 +402,7 @@ const PrepopulatedEngine* const engines_ID[] = {
|
||||
&googleen, &google,
|
||||
&yahoo_id,
|
||||
&bing,
|
||||
|
@ -374,7 +374,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_com,
|
||||
};
|
||||
|
||||
@@ -413,7 +414,7 @@ const PrepopulatedEngine* const engines_IE[] = {
|
||||
@@ -410,7 +411,7 @@ const PrepopulatedEngine* const engines_IE[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -383,7 +383,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -423,7 +424,7 @@ const PrepopulatedEngine* const engines_IL[] = {
|
||||
@@ -420,7 +421,7 @@ const PrepopulatedEngine* const engines_IL[] = {
|
||||
&bing,
|
||||
&yahoo,
|
||||
&yandex_ru,
|
||||
|
@ -392,7 +392,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// India
|
||||
@@ -431,7 +432,7 @@ const PrepopulatedEngine* const engines_IN[] = {
|
||||
@@ -428,7 +429,7 @@ const PrepopulatedEngine* const engines_IN[] = {
|
||||
&googleen, &google,
|
||||
&yahoo_in,
|
||||
&bing,
|
||||
|
@ -401,7 +401,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -441,7 +442,7 @@ const PrepopulatedEngine* const engines_IQ[] = {
|
||||
@@ -438,7 +439,7 @@ const PrepopulatedEngine* const engines_IQ[] = {
|
||||
&yahoo,
|
||||
&bing,
|
||||
&yandex_ru,
|
||||
|
@ -410,7 +410,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// Iran
|
||||
@@ -457,7 +458,7 @@ const PrepopulatedEngine* const engines_IR[] = {
|
||||
@@ -454,7 +455,7 @@ const PrepopulatedEngine* const engines_IR[] = {
|
||||
const PrepopulatedEngine* const engines_IS[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
|
@ -419,7 +419,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo,
|
||||
&ecosia,
|
||||
};
|
||||
@@ -467,7 +468,7 @@ const PrepopulatedEngine* const engines_IT[] = {
|
||||
@@ -464,7 +465,7 @@ const PrepopulatedEngine* const engines_IT[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -428,7 +428,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -476,7 +477,7 @@ const PrepopulatedEngine* const engines_JM[] = {
|
||||
@@ -473,7 +474,7 @@ const PrepopulatedEngine* const engines_JM[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -437,7 +437,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ask,
|
||||
};
|
||||
|
||||
@@ -485,7 +486,7 @@ const PrepopulatedEngine* const engines_JO[] = {
|
||||
@@ -482,7 +483,7 @@ const PrepopulatedEngine* const engines_JO[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -446,7 +446,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_com,
|
||||
};
|
||||
|
||||
@@ -495,7 +496,7 @@ const PrepopulatedEngine* const engines_JP[] = {
|
||||
@@ -492,7 +493,7 @@ const PrepopulatedEngine* const engines_JP[] = {
|
||||
&yahoo_jp,
|
||||
&bing,
|
||||
&baidu,
|
||||
|
@ -455,7 +455,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// Kenya
|
||||
@@ -503,7 +504,7 @@ const PrepopulatedEngine* const engines_KE[] = {
|
||||
@@ -500,7 +501,7 @@ const PrepopulatedEngine* const engines_KE[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -464,7 +464,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -521,7 +522,7 @@ const PrepopulatedEngine* const engines_KW[] = {
|
||||
@@ -518,7 +519,7 @@ const PrepopulatedEngine* const engines_KW[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -473,7 +473,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_com,
|
||||
};
|
||||
|
||||
@@ -539,7 +540,7 @@ const PrepopulatedEngine* const engines_LB[] = {
|
||||
@@ -536,7 +537,7 @@ const PrepopulatedEngine* const engines_LB[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -482,7 +482,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -547,7 +548,7 @@ const PrepopulatedEngine* const engines_LB[] = {
|
||||
@@ -544,7 +545,7 @@ const PrepopulatedEngine* const engines_LB[] = {
|
||||
const PrepopulatedEngine* const engines_LI[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
|
@ -491,7 +491,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo,
|
||||
&ecosia,
|
||||
};
|
||||
@@ -558,14 +559,14 @@ const PrepopulatedEngine* const engines_LT[] = {
|
||||
@@ -555,14 +556,14 @@ const PrepopulatedEngine* const engines_LT[] = {
|
||||
&bing,
|
||||
&yahoo,
|
||||
&yandex_ru,
|
||||
|
@ -508,7 +508,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo,
|
||||
&ecosia,
|
||||
};
|
||||
@@ -576,7 +577,7 @@ const PrepopulatedEngine* const engines_LV[] = {
|
||||
@@ -573,7 +574,7 @@ const PrepopulatedEngine* const engines_LV[] = {
|
||||
&yandex_ru,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -517,7 +517,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// Libya
|
||||
@@ -585,7 +586,7 @@ const PrepopulatedEngine* const engines_LY[] = {
|
||||
@@ -582,7 +583,7 @@ const PrepopulatedEngine* const engines_LY[] = {
|
||||
&yahoo,
|
||||
&bing,
|
||||
&yandex_com,
|
||||
|
@ -526,7 +526,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// Morocco
|
||||
@@ -593,7 +594,7 @@ const PrepopulatedEngine* const engines_MA[] = {
|
||||
@@ -590,7 +591,7 @@ const PrepopulatedEngine* const engines_MA[] = {
|
||||
&googleen, &google,
|
||||
&yahoo,
|
||||
&bing,
|
||||
|
@ -535,7 +535,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_com,
|
||||
};
|
||||
|
||||
@@ -601,7 +602,7 @@ const PrepopulatedEngine* const engines_MA[] = {
|
||||
@@ -598,7 +599,7 @@ const PrepopulatedEngine* const engines_MA[] = {
|
||||
const PrepopulatedEngine* const engines_MC[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
|
@ -544,7 +544,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo,
|
||||
&qwant,
|
||||
};
|
||||
@@ -611,7 +612,7 @@ const PrepopulatedEngine* const engines_MD[] = {
|
||||
@@ -608,7 +609,7 @@ const PrepopulatedEngine* const engines_MD[] = {
|
||||
&googleen, &google,
|
||||
&yandex_ru,
|
||||
&mail_ru,
|
||||
|
@ -553,7 +553,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
};
|
||||
|
||||
@@ -621,7 +622,7 @@ const PrepopulatedEngine* const engines_ME[] = {
|
||||
@@ -618,7 +619,7 @@ const PrepopulatedEngine* const engines_ME[] = {
|
||||
&bing,
|
||||
&yahoo,
|
||||
&yandex_ru,
|
||||
|
@ -562,7 +562,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// Macedonia
|
||||
@@ -629,7 +630,7 @@ const PrepopulatedEngine* const engines_MK[] = {
|
||||
@@ -626,7 +627,7 @@ const PrepopulatedEngine* const engines_MK[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -571,7 +571,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -639,7 +640,7 @@ const PrepopulatedEngine* const engines_MX[] = {
|
||||
@@ -636,7 +637,7 @@ const PrepopulatedEngine* const engines_MX[] = {
|
||||
&bing,
|
||||
&yahoo_mx,
|
||||
&ecosia,
|
||||
|
@ -580,7 +580,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// Malaysia
|
||||
@@ -647,7 +648,7 @@ const PrepopulatedEngine* const engines_MY[] = {
|
||||
@@ -644,7 +645,7 @@ const PrepopulatedEngine* const engines_MY[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_my,
|
||||
|
@ -589,7 +589,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&baidu,
|
||||
};
|
||||
|
||||
@@ -656,8 +657,9 @@ const PrepopulatedEngine* const engines_NI[] = {
|
||||
@@ -653,8 +654,9 @@ const PrepopulatedEngine* const engines_NI[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -600,7 +600,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// Netherlands
|
||||
@@ -665,7 +667,7 @@ const PrepopulatedEngine* const engines_NL[] = {
|
||||
@@ -662,7 +664,7 @@ const PrepopulatedEngine* const engines_NL[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_nl,
|
||||
|
@ -609,7 +609,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -674,7 +676,7 @@ const PrepopulatedEngine* const engines_NO[] = {
|
||||
@@ -671,7 +673,7 @@ const PrepopulatedEngine* const engines_NO[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -618,7 +618,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -682,7 +684,7 @@ const PrepopulatedEngine* const engines_NO[] = {
|
||||
@@ -679,7 +681,7 @@ const PrepopulatedEngine* const engines_NO[] = {
|
||||
const PrepopulatedEngine* const engines_NZ[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
|
@ -627,7 +627,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo_nz,
|
||||
&ecosia,
|
||||
};
|
||||
@@ -692,7 +694,7 @@ const PrepopulatedEngine* const engines_OM[] = {
|
||||
@@ -689,7 +691,7 @@ const PrepopulatedEngine* const engines_OM[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -636,7 +636,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -701,7 +703,7 @@ const PrepopulatedEngine* const engines_PA[] = {
|
||||
@@ -698,7 +700,7 @@ const PrepopulatedEngine* const engines_PA[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -645,7 +645,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -711,7 +713,7 @@ const PrepopulatedEngine* const engines_PE[] = {
|
||||
@@ -708,7 +710,7 @@ const PrepopulatedEngine* const engines_PE[] = {
|
||||
&bing,
|
||||
&yahoo_pe,
|
||||
&ecosia,
|
||||
|
@ -654,7 +654,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// Philippines
|
||||
@@ -720,7 +722,7 @@ const PrepopulatedEngine* const engines_PH[] = {
|
||||
@@ -717,7 +719,7 @@ const PrepopulatedEngine* const engines_PH[] = {
|
||||
&yahoo_ph,
|
||||
&bing,
|
||||
&ecosia,
|
||||
|
@ -663,7 +663,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// Pakistan
|
||||
@@ -728,7 +730,7 @@ const PrepopulatedEngine* const engines_PK[] = {
|
||||
@@ -725,7 +727,7 @@ const PrepopulatedEngine* const engines_PK[] = {
|
||||
&googleen, &google,
|
||||
&yahoo,
|
||||
&bing,
|
||||
|
@ -672,7 +672,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_com,
|
||||
};
|
||||
|
||||
@@ -737,7 +739,7 @@ const PrepopulatedEngine* const engines_PL[] = {
|
||||
@@ -734,7 +736,7 @@ const PrepopulatedEngine* const engines_PL[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -681,7 +681,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -746,7 +748,7 @@ const PrepopulatedEngine* const engines_PR[] = {
|
||||
@@ -743,7 +745,7 @@ const PrepopulatedEngine* const engines_PR[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -690,7 +690,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -755,7 +757,7 @@ const PrepopulatedEngine* const engines_PT[] = {
|
||||
@@ -752,7 +754,7 @@ const PrepopulatedEngine* const engines_PT[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -699,7 +699,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -764,7 +766,7 @@ const PrepopulatedEngine* const engines_PY[] = {
|
||||
@@ -761,7 +763,7 @@ const PrepopulatedEngine* const engines_PY[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -708,7 +708,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -773,7 +775,7 @@ const PrepopulatedEngine* const engines_QA[] = {
|
||||
@@ -770,7 +772,7 @@ const PrepopulatedEngine* const engines_QA[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -717,7 +717,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_com,
|
||||
};
|
||||
|
||||
@@ -782,7 +784,7 @@ const PrepopulatedEngine* const engines_RO[] = {
|
||||
@@ -779,7 +781,7 @@ const PrepopulatedEngine* const engines_RO[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -726,7 +726,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -791,7 +793,7 @@ const PrepopulatedEngine* const engines_RS[] = {
|
||||
@@ -788,7 +790,7 @@ const PrepopulatedEngine* const engines_RS[] = {
|
||||
&googleen, &google,
|
||||
&yahoo,
|
||||
&bing,
|
||||
|
@ -735,7 +735,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -809,7 +811,7 @@ const PrepopulatedEngine* const engines_RW[] = {
|
||||
@@ -806,7 +808,7 @@ const PrepopulatedEngine* const engines_RW[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -744,7 +744,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&mail_ru,
|
||||
};
|
||||
|
||||
@@ -819,7 +821,7 @@ const PrepopulatedEngine* const engines_SA[] = {
|
||||
@@ -816,7 +818,7 @@ const PrepopulatedEngine* const engines_SA[] = {
|
||||
&bing,
|
||||
&yahoo,
|
||||
&yandex_com,
|
||||
|
@ -753,7 +753,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// Sweden
|
||||
@@ -827,7 +829,7 @@ const PrepopulatedEngine* const engines_SE[] = {
|
||||
@@ -824,7 +826,7 @@ const PrepopulatedEngine* const engines_SE[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_se,
|
||||
|
@ -762,7 +762,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -844,7 +846,7 @@ const PrepopulatedEngine* const engines_SG[] = {
|
||||
@@ -841,7 +843,7 @@ const PrepopulatedEngine* const engines_SG[] = {
|
||||
const PrepopulatedEngine* const engines_SI[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
|
@ -771,7 +771,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo,
|
||||
&yandex_ru,
|
||||
};
|
||||
@@ -854,7 +856,7 @@ const PrepopulatedEngine* const engines_SK[] = {
|
||||
@@ -851,7 +853,7 @@ const PrepopulatedEngine* const engines_SK[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -780,7 +780,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&seznam_cz,
|
||||
};
|
||||
|
||||
@@ -863,7 +865,7 @@ const PrepopulatedEngine* const engines_SV[] = {
|
||||
@@ -860,7 +862,7 @@ const PrepopulatedEngine* const engines_SV[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -789,7 +789,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -873,7 +875,7 @@ const PrepopulatedEngine* const engines_SY[] = {
|
||||
@@ -870,7 +872,7 @@ const PrepopulatedEngine* const engines_SY[] = {
|
||||
&bing,
|
||||
&yahoo,
|
||||
&yandex_ru,
|
||||
|
@ -798,7 +798,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// Thailand
|
||||
@@ -881,7 +883,7 @@ const PrepopulatedEngine* const engines_TH[] = {
|
||||
@@ -878,7 +880,7 @@ const PrepopulatedEngine* const engines_TH[] = {
|
||||
&googleen, &google,
|
||||
&yahoo_th,
|
||||
&bing,
|
||||
|
@ -807,7 +807,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&baidu,
|
||||
};
|
||||
|
||||
@@ -891,7 +893,7 @@ const PrepopulatedEngine* const engines_TN[] = {
|
||||
@@ -888,7 +890,7 @@ const PrepopulatedEngine* const engines_TN[] = {
|
||||
&yahoo,
|
||||
&bing,
|
||||
&yandex_ru,
|
||||
|
@ -816,7 +816,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// Turkey
|
||||
@@ -900,7 +902,7 @@ const PrepopulatedEngine* const engines_TR[] = {
|
||||
@@ -897,7 +899,7 @@ const PrepopulatedEngine* const engines_TR[] = {
|
||||
&yandex_tr,
|
||||
&yahoo_tr,
|
||||
&bing,
|
||||
|
@ -825,7 +825,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// Trinidad and Tobago
|
||||
@@ -908,7 +910,7 @@ const PrepopulatedEngine* const engines_TT[] = {
|
||||
@@ -905,7 +907,7 @@ const PrepopulatedEngine* const engines_TT[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -834,7 +834,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ask,
|
||||
};
|
||||
|
||||
@@ -926,7 +928,7 @@ const PrepopulatedEngine* const engines_TZ[] = {
|
||||
@@ -923,7 +925,7 @@ const PrepopulatedEngine* const engines_TZ[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -843,7 +843,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -944,7 +946,7 @@ const PrepopulatedEngine* const engines_US[] = {
|
||||
@@ -941,7 +943,7 @@ const PrepopulatedEngine* const engines_US[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -852,7 +852,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -953,7 +955,7 @@ const PrepopulatedEngine* const engines_UY[] = {
|
||||
@@ -950,7 +952,7 @@ const PrepopulatedEngine* const engines_UY[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -861,7 +861,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -962,7 +964,7 @@ const PrepopulatedEngine* const engines_VE[] = {
|
||||
@@ -959,7 +961,7 @@ const PrepopulatedEngine* const engines_VE[] = {
|
||||
&googleen, &google,
|
||||
&yahoo_ve,
|
||||
&bing,
|
||||
|
@ -870,7 +870,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -981,7 +983,7 @@ const PrepopulatedEngine* const engines_YE[] = {
|
||||
@@ -978,7 +980,7 @@ const PrepopulatedEngine* const engines_YE[] = {
|
||||
&bing,
|
||||
&yahoo,
|
||||
&yandex_ru,
|
||||
|
@ -879,7 +879,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
};
|
||||
|
||||
// South Africa
|
||||
@@ -989,7 +991,7 @@ const PrepopulatedEngine* const engines_ZA[] = {
|
||||
@@ -986,7 +988,7 @@ const PrepopulatedEngine* const engines_ZA[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
|
@ -888,7 +888,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&baidu,
|
||||
};
|
||||
|
||||
@@ -999,7 +1001,7 @@ const PrepopulatedEngine* const engines_ZW[] = {
|
||||
@@ -996,7 +998,7 @@ const PrepopulatedEngine* const engines_ZW[] = {
|
||||
&bing,
|
||||
&yahoo,
|
||||
&ask,
|
||||
|
|
|
@ -55,7 +55,7 @@ diff --git a/components/search_engines/search_engine_type.h b/components/search_
|
|||
diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc
|
||||
--- a/components/search_engines/template_url_prepopulate_data.cc
|
||||
+++ b/components/search_engines/template_url_prepopulate_data.cc
|
||||
@@ -32,7 +32,7 @@ namespace {
|
||||
@@ -29,7 +29,7 @@ namespace {
|
||||
|
||||
// Default (for countries with no better engine set)
|
||||
const PrepopulatedEngine* const engines_default[] = {
|
||||
|
@ -64,7 +64,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
};
|
||||
@@ -41,7 +41,7 @@ const PrepopulatedEngine* const engines_default[] = {
|
||||
@@ -38,7 +38,7 @@ const PrepopulatedEngine* const engines_default[] = {
|
||||
// Engine selection by country ------------------------------------------------
|
||||
// United Arab Emirates
|
||||
const PrepopulatedEngine* const engines_AE[] = {
|
||||
|
@ -73,7 +73,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -50,7 +50,7 @@ const PrepopulatedEngine* const engines_AE[] = {
|
||||
@@ -47,7 +47,7 @@ const PrepopulatedEngine* const engines_AE[] = {
|
||||
|
||||
// Albania
|
||||
const PrepopulatedEngine* const engines_AL[] = {
|
||||
|
@ -82,7 +82,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo,
|
||||
&bing,
|
||||
&duckduckgo,
|
||||
@@ -59,7 +59,7 @@ const PrepopulatedEngine* const engines_AL[] = {
|
||||
@@ -56,7 +56,7 @@ const PrepopulatedEngine* const engines_AL[] = {
|
||||
|
||||
// Argentina
|
||||
const PrepopulatedEngine* const engines_AR[] = {
|
||||
|
@ -91,7 +91,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo_ar,
|
||||
&duckduckgo,
|
||||
@@ -68,7 +68,7 @@ const PrepopulatedEngine* const engines_AR[] = {
|
||||
@@ -65,7 +65,7 @@ const PrepopulatedEngine* const engines_AR[] = {
|
||||
|
||||
// Austria
|
||||
const PrepopulatedEngine* const engines_AT[] = {
|
||||
|
@ -100,7 +100,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&duckduckgo,
|
||||
&yahoo_at,
|
||||
@@ -77,7 +77,7 @@ const PrepopulatedEngine* const engines_AT[] = {
|
||||
@@ -74,7 +74,7 @@ const PrepopulatedEngine* const engines_AT[] = {
|
||||
|
||||
// Australia
|
||||
const PrepopulatedEngine* const engines_AU[] = {
|
||||
|
@ -109,7 +109,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&duckduckgo,
|
||||
&yahoo_au,
|
||||
@@ -86,7 +86,7 @@ const PrepopulatedEngine* const engines_AU[] = {
|
||||
@@ -83,7 +83,7 @@ const PrepopulatedEngine* const engines_AU[] = {
|
||||
|
||||
// Bosnia and Herzegovina
|
||||
const PrepopulatedEngine* const engines_BA[] = {
|
||||
|
@ -118,7 +118,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -95,7 +95,7 @@ const PrepopulatedEngine* const engines_BA[] = {
|
||||
@@ -92,7 +92,7 @@ const PrepopulatedEngine* const engines_BA[] = {
|
||||
|
||||
// Belgium
|
||||
const PrepopulatedEngine* const engines_BE[] = {
|
||||
|
@ -127,7 +127,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&ecosia,
|
||||
@@ -104,7 +104,7 @@ const PrepopulatedEngine* const engines_BE[] = {
|
||||
@@ -101,7 +101,7 @@ const PrepopulatedEngine* const engines_BE[] = {
|
||||
|
||||
// Bulgaria
|
||||
const PrepopulatedEngine* const engines_BG[] = {
|
||||
|
@ -136,7 +136,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -113,7 +113,7 @@ const PrepopulatedEngine* const engines_BG[] = {
|
||||
@@ -110,7 +110,7 @@ const PrepopulatedEngine* const engines_BG[] = {
|
||||
|
||||
// Bahrain
|
||||
const PrepopulatedEngine* const engines_BH[] = {
|
||||
|
@ -145,7 +145,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -122,7 +122,7 @@ const PrepopulatedEngine* const engines_BH[] = {
|
||||
@@ -119,7 +119,7 @@ const PrepopulatedEngine* const engines_BH[] = {
|
||||
|
||||
// Burundi
|
||||
const PrepopulatedEngine* const engines_BI[] = {
|
||||
|
@ -154,7 +154,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -131,7 +131,7 @@ const PrepopulatedEngine* const engines_BI[] = {
|
||||
@@ -128,7 +128,7 @@ const PrepopulatedEngine* const engines_BI[] = {
|
||||
|
||||
// Brunei
|
||||
const PrepopulatedEngine* const engines_BN[] = {
|
||||
|
@ -163,7 +163,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -140,7 +140,7 @@ const PrepopulatedEngine* const engines_BN[] = {
|
||||
@@ -137,7 +137,7 @@ const PrepopulatedEngine* const engines_BN[] = {
|
||||
|
||||
// Bolivia
|
||||
const PrepopulatedEngine* const engines_BO[] = {
|
||||
|
@ -172,7 +172,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -149,7 +149,7 @@ const PrepopulatedEngine* const engines_BO[] = {
|
||||
@@ -146,7 +146,7 @@ const PrepopulatedEngine* const engines_BO[] = {
|
||||
|
||||
// Brazil
|
||||
const PrepopulatedEngine* const engines_BR[] = {
|
||||
|
@ -181,7 +181,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo_br,
|
||||
&duckduckgo,
|
||||
@@ -158,7 +158,7 @@ const PrepopulatedEngine* const engines_BR[] = {
|
||||
@@ -155,7 +155,7 @@ const PrepopulatedEngine* const engines_BR[] = {
|
||||
|
||||
// Belarus
|
||||
const PrepopulatedEngine* const engines_BY[] = {
|
||||
|
@ -190,7 +190,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_by,
|
||||
&mail_ru,
|
||||
&bing,
|
||||
@@ -167,7 +167,7 @@ const PrepopulatedEngine* const engines_BY[] = {
|
||||
@@ -164,7 +164,7 @@ const PrepopulatedEngine* const engines_BY[] = {
|
||||
|
||||
// Belize
|
||||
const PrepopulatedEngine* const engines_BZ[] = {
|
||||
|
@ -199,7 +199,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -176,7 +176,7 @@ const PrepopulatedEngine* const engines_BZ[] = {
|
||||
@@ -173,7 +173,7 @@ const PrepopulatedEngine* const engines_BZ[] = {
|
||||
|
||||
// Canada
|
||||
const PrepopulatedEngine* const engines_CA[] = {
|
||||
|
@ -208,7 +208,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo_ca,
|
||||
&duckduckgo,
|
||||
@@ -185,7 +185,7 @@ const PrepopulatedEngine* const engines_CA[] = {
|
||||
@@ -182,7 +182,7 @@ const PrepopulatedEngine* const engines_CA[] = {
|
||||
|
||||
// Switzerland
|
||||
const PrepopulatedEngine* const engines_CH[] = {
|
||||
|
@ -217,7 +217,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&duckduckgo,
|
||||
&yahoo_ch,
|
||||
@@ -194,7 +194,7 @@ const PrepopulatedEngine* const engines_CH[] = {
|
||||
@@ -191,7 +191,7 @@ const PrepopulatedEngine* const engines_CH[] = {
|
||||
|
||||
// Chile
|
||||
const PrepopulatedEngine* const engines_CL[] = {
|
||||
|
@ -226,7 +226,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo_cl,
|
||||
&duckduckgo,
|
||||
@@ -205,14 +205,14 @@ const PrepopulatedEngine* const engines_CL[] = {
|
||||
@@ -202,14 +202,14 @@ const PrepopulatedEngine* const engines_CL[] = {
|
||||
const PrepopulatedEngine* const engines_CN[] = {
|
||||
&baidu,
|
||||
&sogou,
|
||||
|
@ -243,7 +243,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo_co,
|
||||
&ecosia,
|
||||
@@ -221,7 +221,7 @@ const PrepopulatedEngine* const engines_CO[] = {
|
||||
@@ -218,7 +218,7 @@ const PrepopulatedEngine* const engines_CO[] = {
|
||||
|
||||
// Costa Rica
|
||||
const PrepopulatedEngine* const engines_CR[] = {
|
||||
|
@ -252,7 +252,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -230,7 +230,7 @@ const PrepopulatedEngine* const engines_CR[] = {
|
||||
@@ -227,7 +227,7 @@ const PrepopulatedEngine* const engines_CR[] = {
|
||||
|
||||
// Czech Republic
|
||||
const PrepopulatedEngine* const engines_CZ[] = {
|
||||
|
@ -261,7 +261,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&seznam_cz,
|
||||
&bing,
|
||||
&yahoo,
|
||||
@@ -239,7 +239,7 @@ const PrepopulatedEngine* const engines_CZ[] = {
|
||||
@@ -236,7 +236,7 @@ const PrepopulatedEngine* const engines_CZ[] = {
|
||||
|
||||
// Germany
|
||||
const PrepopulatedEngine* const engines_DE[] = {
|
||||
|
@ -270,7 +270,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo_de,
|
||||
&duckduckgo,
|
||||
@@ -248,7 +248,7 @@ const PrepopulatedEngine* const engines_DE[] = {
|
||||
@@ -245,7 +245,7 @@ const PrepopulatedEngine* const engines_DE[] = {
|
||||
|
||||
// Denmark
|
||||
const PrepopulatedEngine* const engines_DK[] = {
|
||||
|
@ -279,7 +279,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo_dk,
|
||||
&duckduckgo,
|
||||
@@ -257,7 +257,7 @@ const PrepopulatedEngine* const engines_DK[] = {
|
||||
@@ -254,7 +254,7 @@ const PrepopulatedEngine* const engines_DK[] = {
|
||||
|
||||
// Dominican Republic
|
||||
const PrepopulatedEngine* const engines_DO[] = {
|
||||
|
@ -288,7 +288,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -266,7 +266,7 @@ const PrepopulatedEngine* const engines_DO[] = {
|
||||
@@ -263,7 +263,7 @@ const PrepopulatedEngine* const engines_DO[] = {
|
||||
|
||||
// Algeria
|
||||
const PrepopulatedEngine* const engines_DZ[] = {
|
||||
|
@ -297,7 +297,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo,
|
||||
&bing,
|
||||
&yandex_ru,
|
||||
@@ -275,7 +275,7 @@ const PrepopulatedEngine* const engines_DZ[] = {
|
||||
@@ -272,7 +272,7 @@ const PrepopulatedEngine* const engines_DZ[] = {
|
||||
|
||||
// Ecuador
|
||||
const PrepopulatedEngine* const engines_EC[] = {
|
||||
|
@ -306,7 +306,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&ecosia,
|
||||
@@ -284,7 +284,7 @@ const PrepopulatedEngine* const engines_EC[] = {
|
||||
@@ -281,7 +281,7 @@ const PrepopulatedEngine* const engines_EC[] = {
|
||||
|
||||
// Estonia
|
||||
const PrepopulatedEngine* const engines_EE[] = {
|
||||
|
@ -315,7 +315,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yandex_ru,
|
||||
&yahoo,
|
||||
@@ -293,7 +293,7 @@ const PrepopulatedEngine* const engines_EE[] = {
|
||||
@@ -290,7 +290,7 @@ const PrepopulatedEngine* const engines_EE[] = {
|
||||
|
||||
// Egypt
|
||||
const PrepopulatedEngine* const engines_EG[] = {
|
||||
|
@ -324,7 +324,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo,
|
||||
&bing,
|
||||
&yandex_ru,
|
||||
@@ -302,7 +302,7 @@ const PrepopulatedEngine* const engines_EG[] = {
|
||||
@@ -299,7 +299,7 @@ const PrepopulatedEngine* const engines_EG[] = {
|
||||
|
||||
// Spain
|
||||
const PrepopulatedEngine* const engines_ES[] = {
|
||||
|
@ -333,7 +333,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo_es,
|
||||
&duckduckgo,
|
||||
@@ -311,7 +311,7 @@ const PrepopulatedEngine* const engines_ES[] = {
|
||||
@@ -308,7 +308,7 @@ const PrepopulatedEngine* const engines_ES[] = {
|
||||
|
||||
// Finland
|
||||
const PrepopulatedEngine* const engines_FI[] = {
|
||||
|
@ -342,7 +342,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo_fi,
|
||||
&duckduckgo,
|
||||
@@ -320,7 +320,7 @@ const PrepopulatedEngine* const engines_FI[] = {
|
||||
@@ -317,7 +317,7 @@ const PrepopulatedEngine* const engines_FI[] = {
|
||||
|
||||
// Faroe Islands
|
||||
const PrepopulatedEngine* const engines_FO[] = {
|
||||
|
@ -351,7 +351,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo_dk,
|
||||
&duckduckgo,
|
||||
@@ -329,7 +329,7 @@ const PrepopulatedEngine* const engines_FO[] = {
|
||||
@@ -326,7 +326,7 @@ const PrepopulatedEngine* const engines_FO[] = {
|
||||
|
||||
// France
|
||||
const PrepopulatedEngine* const engines_FR[] = {
|
||||
|
@ -360,7 +360,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo_fr,
|
||||
&qwant,
|
||||
@@ -338,7 +338,7 @@ const PrepopulatedEngine* const engines_FR[] = {
|
||||
@@ -335,7 +335,7 @@ const PrepopulatedEngine* const engines_FR[] = {
|
||||
|
||||
// United Kingdom
|
||||
const PrepopulatedEngine* const engines_GB[] = {
|
||||
|
@ -369,7 +369,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo_uk,
|
||||
&duckduckgo,
|
||||
@@ -347,7 +347,7 @@ const PrepopulatedEngine* const engines_GB[] = {
|
||||
@@ -344,7 +344,7 @@ const PrepopulatedEngine* const engines_GB[] = {
|
||||
|
||||
// Greece
|
||||
const PrepopulatedEngine* const engines_GR[] = {
|
||||
|
@ -378,7 +378,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -356,7 +356,7 @@ const PrepopulatedEngine* const engines_GR[] = {
|
||||
@@ -353,7 +353,7 @@ const PrepopulatedEngine* const engines_GR[] = {
|
||||
|
||||
// Guatemala
|
||||
const PrepopulatedEngine* const engines_GT[] = {
|
||||
|
@ -387,7 +387,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&ecosia,
|
||||
@@ -365,7 +365,7 @@ const PrepopulatedEngine* const engines_GT[] = {
|
||||
@@ -362,7 +362,7 @@ const PrepopulatedEngine* const engines_GT[] = {
|
||||
|
||||
// Hong Kong
|
||||
const PrepopulatedEngine* const engines_HK[] = {
|
||||
|
@ -396,7 +396,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo_hk,
|
||||
&bing,
|
||||
&yandex_com,
|
||||
@@ -374,7 +374,7 @@ const PrepopulatedEngine* const engines_HK[] = {
|
||||
@@ -371,7 +371,7 @@ const PrepopulatedEngine* const engines_HK[] = {
|
||||
|
||||
// Honduras
|
||||
const PrepopulatedEngine* const engines_HN[] = {
|
||||
|
@ -405,7 +405,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&yandex_ru,
|
||||
@@ -383,7 +383,7 @@ const PrepopulatedEngine* const engines_HN[] = {
|
||||
@@ -380,7 +380,7 @@ const PrepopulatedEngine* const engines_HN[] = {
|
||||
|
||||
// Croatia
|
||||
const PrepopulatedEngine* const engines_HR[] = {
|
||||
|
@ -414,7 +414,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -392,7 +392,7 @@ const PrepopulatedEngine* const engines_HR[] = {
|
||||
@@ -389,7 +389,7 @@ const PrepopulatedEngine* const engines_HR[] = {
|
||||
|
||||
// Hungary
|
||||
const PrepopulatedEngine* const engines_HU[] = {
|
||||
|
@ -423,7 +423,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -401,7 +401,7 @@ const PrepopulatedEngine* const engines_HU[] = {
|
||||
@@ -398,7 +398,7 @@ const PrepopulatedEngine* const engines_HU[] = {
|
||||
|
||||
// Indonesia
|
||||
const PrepopulatedEngine* const engines_ID[] = {
|
||||
|
@ -432,7 +432,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo_id,
|
||||
&bing,
|
||||
&duckduckgo,
|
||||
@@ -410,7 +410,7 @@ const PrepopulatedEngine* const engines_ID[] = {
|
||||
@@ -407,7 +407,7 @@ const PrepopulatedEngine* const engines_ID[] = {
|
||||
|
||||
// Ireland
|
||||
const PrepopulatedEngine* const engines_IE[] = {
|
||||
|
@ -441,7 +441,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -419,7 +419,7 @@ const PrepopulatedEngine* const engines_IE[] = {
|
||||
@@ -416,7 +416,7 @@ const PrepopulatedEngine* const engines_IE[] = {
|
||||
|
||||
// Israel
|
||||
const PrepopulatedEngine* const engines_IL[] = {
|
||||
|
@ -450,7 +450,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&yandex_ru,
|
||||
@@ -428,7 +428,7 @@ const PrepopulatedEngine* const engines_IL[] = {
|
||||
@@ -425,7 +425,7 @@ const PrepopulatedEngine* const engines_IL[] = {
|
||||
|
||||
// India
|
||||
const PrepopulatedEngine* const engines_IN[] = {
|
||||
|
@ -459,7 +459,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo_in,
|
||||
&bing,
|
||||
&duckduckgo,
|
||||
@@ -437,7 +437,7 @@ const PrepopulatedEngine* const engines_IN[] = {
|
||||
@@ -434,7 +434,7 @@ const PrepopulatedEngine* const engines_IN[] = {
|
||||
|
||||
// Iraq
|
||||
const PrepopulatedEngine* const engines_IQ[] = {
|
||||
|
@ -468,7 +468,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo,
|
||||
&bing,
|
||||
&yandex_ru,
|
||||
@@ -446,7 +446,7 @@ const PrepopulatedEngine* const engines_IQ[] = {
|
||||
@@ -443,7 +443,7 @@ const PrepopulatedEngine* const engines_IQ[] = {
|
||||
|
||||
// Iran
|
||||
const PrepopulatedEngine* const engines_IR[] = {
|
||||
|
@ -477,7 +477,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&yandex_ru,
|
||||
@@ -455,7 +455,7 @@ const PrepopulatedEngine* const engines_IR[] = {
|
||||
@@ -452,7 +452,7 @@ const PrepopulatedEngine* const engines_IR[] = {
|
||||
|
||||
// Iceland
|
||||
const PrepopulatedEngine* const engines_IS[] = {
|
||||
|
@ -486,7 +486,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&duckduckgo,
|
||||
&yahoo,
|
||||
@@ -464,7 +464,7 @@ const PrepopulatedEngine* const engines_IS[] = {
|
||||
@@ -461,7 +461,7 @@ const PrepopulatedEngine* const engines_IS[] = {
|
||||
|
||||
// Italy
|
||||
const PrepopulatedEngine* const engines_IT[] = {
|
||||
|
@ -495,7 +495,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -473,7 +473,7 @@ const PrepopulatedEngine* const engines_IT[] = {
|
||||
@@ -470,7 +470,7 @@ const PrepopulatedEngine* const engines_IT[] = {
|
||||
|
||||
// Jamaica
|
||||
const PrepopulatedEngine* const engines_JM[] = {
|
||||
|
@ -504,7 +504,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -482,7 +482,7 @@ const PrepopulatedEngine* const engines_JM[] = {
|
||||
@@ -479,7 +479,7 @@ const PrepopulatedEngine* const engines_JM[] = {
|
||||
|
||||
// Jordan
|
||||
const PrepopulatedEngine* const engines_JO[] = {
|
||||
|
@ -513,7 +513,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -491,7 +491,7 @@ const PrepopulatedEngine* const engines_JO[] = {
|
||||
@@ -488,7 +488,7 @@ const PrepopulatedEngine* const engines_JO[] = {
|
||||
|
||||
// Japan
|
||||
const PrepopulatedEngine* const engines_JP[] = {
|
||||
|
@ -522,7 +522,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo_jp,
|
||||
&bing,
|
||||
&baidu,
|
||||
@@ -500,7 +500,7 @@ const PrepopulatedEngine* const engines_JP[] = {
|
||||
@@ -497,7 +497,7 @@ const PrepopulatedEngine* const engines_JP[] = {
|
||||
|
||||
// Kenya
|
||||
const PrepopulatedEngine* const engines_KE[] = {
|
||||
|
@ -531,7 +531,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -509,7 +509,7 @@ const PrepopulatedEngine* const engines_KE[] = {
|
||||
@@ -506,7 +506,7 @@ const PrepopulatedEngine* const engines_KE[] = {
|
||||
|
||||
// South Korea
|
||||
const PrepopulatedEngine* const engines_KR[] = {
|
||||
|
@ -540,7 +540,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&naver,
|
||||
&bing,
|
||||
&daum,
|
||||
@@ -518,7 +518,7 @@ const PrepopulatedEngine* const engines_KR[] = {
|
||||
@@ -515,7 +515,7 @@ const PrepopulatedEngine* const engines_KR[] = {
|
||||
|
||||
// Kuwait
|
||||
const PrepopulatedEngine* const engines_KW[] = {
|
||||
|
@ -549,7 +549,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -527,7 +527,7 @@ const PrepopulatedEngine* const engines_KW[] = {
|
||||
@@ -524,7 +524,7 @@ const PrepopulatedEngine* const engines_KW[] = {
|
||||
|
||||
// Kazakhstan
|
||||
const PrepopulatedEngine* const engines_KZ[] = {
|
||||
|
@ -558,7 +558,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_kz,
|
||||
&mail_ru,
|
||||
&bing,
|
||||
@@ -536,7 +536,7 @@ const PrepopulatedEngine* const engines_KZ[] = {
|
||||
@@ -533,7 +533,7 @@ const PrepopulatedEngine* const engines_KZ[] = {
|
||||
|
||||
// Lebanon
|
||||
const PrepopulatedEngine* const engines_LB[] = {
|
||||
|
@ -567,7 +567,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -545,7 +545,7 @@ const PrepopulatedEngine* const engines_LB[] = {
|
||||
@@ -542,7 +542,7 @@ const PrepopulatedEngine* const engines_LB[] = {
|
||||
|
||||
// Liechtenstein
|
||||
const PrepopulatedEngine* const engines_LI[] = {
|
||||
|
@ -576,7 +576,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&duckduckgo,
|
||||
&yahoo,
|
||||
@@ -554,7 +554,7 @@ const PrepopulatedEngine* const engines_LI[] = {
|
||||
@@ -551,7 +551,7 @@ const PrepopulatedEngine* const engines_LI[] = {
|
||||
|
||||
// Lithuania
|
||||
const PrepopulatedEngine* const engines_LT[] = {
|
||||
|
@ -585,7 +585,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&yandex_ru,
|
||||
@@ -563,7 +563,7 @@ const PrepopulatedEngine* const engines_LT[] = {
|
||||
@@ -560,7 +560,7 @@ const PrepopulatedEngine* const engines_LT[] = {
|
||||
|
||||
// Luxembourg
|
||||
const PrepopulatedEngine* const engines_LU[] = {
|
||||
|
@ -594,7 +594,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&duckduckgo,
|
||||
&yahoo,
|
||||
@@ -572,7 +572,7 @@ const PrepopulatedEngine* const engines_LU[] = {
|
||||
@@ -569,7 +569,7 @@ const PrepopulatedEngine* const engines_LU[] = {
|
||||
|
||||
// Latvia
|
||||
const PrepopulatedEngine* const engines_LV[] = {
|
||||
|
@ -603,7 +603,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_ru,
|
||||
&bing,
|
||||
&yahoo,
|
||||
@@ -581,7 +581,7 @@ const PrepopulatedEngine* const engines_LV[] = {
|
||||
@@ -578,7 +578,7 @@ const PrepopulatedEngine* const engines_LV[] = {
|
||||
|
||||
// Libya
|
||||
const PrepopulatedEngine* const engines_LY[] = {
|
||||
|
@ -612,7 +612,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo,
|
||||
&bing,
|
||||
&yandex_com,
|
||||
@@ -590,7 +590,7 @@ const PrepopulatedEngine* const engines_LY[] = {
|
||||
@@ -587,7 +587,7 @@ const PrepopulatedEngine* const engines_LY[] = {
|
||||
|
||||
// Morocco
|
||||
const PrepopulatedEngine* const engines_MA[] = {
|
||||
|
@ -621,7 +621,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo,
|
||||
&bing,
|
||||
&duckduckgo,
|
||||
@@ -599,7 +599,7 @@ const PrepopulatedEngine* const engines_MA[] = {
|
||||
@@ -596,7 +596,7 @@ const PrepopulatedEngine* const engines_MA[] = {
|
||||
|
||||
// Monaco
|
||||
const PrepopulatedEngine* const engines_MC[] = {
|
||||
|
@ -630,7 +630,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&duckduckgo,
|
||||
&yahoo,
|
||||
@@ -608,7 +608,7 @@ const PrepopulatedEngine* const engines_MC[] = {
|
||||
@@ -605,7 +605,7 @@ const PrepopulatedEngine* const engines_MC[] = {
|
||||
|
||||
// Moldova
|
||||
const PrepopulatedEngine* const engines_MD[] = {
|
||||
|
@ -639,7 +639,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_ru,
|
||||
&mail_ru,
|
||||
&duckduckgo,
|
||||
@@ -617,7 +617,7 @@ const PrepopulatedEngine* const engines_MD[] = {
|
||||
@@ -614,7 +614,7 @@ const PrepopulatedEngine* const engines_MD[] = {
|
||||
|
||||
// Montenegro
|
||||
const PrepopulatedEngine* const engines_ME[] = {
|
||||
|
@ -648,7 +648,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&yandex_ru,
|
||||
@@ -626,7 +626,7 @@ const PrepopulatedEngine* const engines_ME[] = {
|
||||
@@ -623,7 +623,7 @@ const PrepopulatedEngine* const engines_ME[] = {
|
||||
|
||||
// Macedonia
|
||||
const PrepopulatedEngine* const engines_MK[] = {
|
||||
|
@ -657,7 +657,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -635,7 +635,7 @@ const PrepopulatedEngine* const engines_MK[] = {
|
||||
@@ -632,7 +632,7 @@ const PrepopulatedEngine* const engines_MK[] = {
|
||||
|
||||
// Mexico
|
||||
const PrepopulatedEngine* const engines_MX[] = {
|
||||
|
@ -666,7 +666,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo_mx,
|
||||
&ecosia,
|
||||
@@ -644,7 +644,7 @@ const PrepopulatedEngine* const engines_MX[] = {
|
||||
@@ -641,7 +641,7 @@ const PrepopulatedEngine* const engines_MX[] = {
|
||||
|
||||
// Malaysia
|
||||
const PrepopulatedEngine* const engines_MY[] = {
|
||||
|
@ -675,7 +675,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo_my,
|
||||
&duckduckgo,
|
||||
@@ -653,7 +653,7 @@ const PrepopulatedEngine* const engines_MY[] = {
|
||||
@@ -650,7 +650,7 @@ const PrepopulatedEngine* const engines_MY[] = {
|
||||
|
||||
// Nicaragua
|
||||
const PrepopulatedEngine* const engines_NI[] = {
|
||||
|
@ -684,7 +684,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -662,7 +662,7 @@ const PrepopulatedEngine* const engines_NI[] = {
|
||||
@@ -659,7 +659,7 @@ const PrepopulatedEngine* const engines_NI[] = {
|
||||
|
||||
// Netherlands
|
||||
const PrepopulatedEngine* const engines_NL[] = {
|
||||
|
@ -693,7 +693,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo_nl,
|
||||
&duckduckgo,
|
||||
@@ -671,7 +671,7 @@ const PrepopulatedEngine* const engines_NL[] = {
|
||||
@@ -668,7 +668,7 @@ const PrepopulatedEngine* const engines_NL[] = {
|
||||
|
||||
// Norway
|
||||
const PrepopulatedEngine* const engines_NO[] = {
|
||||
|
@ -702,7 +702,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -680,7 +680,7 @@ const PrepopulatedEngine* const engines_NO[] = {
|
||||
@@ -677,7 +677,7 @@ const PrepopulatedEngine* const engines_NO[] = {
|
||||
|
||||
// New Zealand
|
||||
const PrepopulatedEngine* const engines_NZ[] = {
|
||||
|
@ -711,7 +711,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&duckduckgo,
|
||||
&yahoo_nz,
|
||||
@@ -689,7 +689,7 @@ const PrepopulatedEngine* const engines_NZ[] = {
|
||||
@@ -686,7 +686,7 @@ const PrepopulatedEngine* const engines_NZ[] = {
|
||||
|
||||
// Oman
|
||||
const PrepopulatedEngine* const engines_OM[] = {
|
||||
|
@ -720,7 +720,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -698,7 +698,7 @@ const PrepopulatedEngine* const engines_OM[] = {
|
||||
@@ -695,7 +695,7 @@ const PrepopulatedEngine* const engines_OM[] = {
|
||||
|
||||
// Panama
|
||||
const PrepopulatedEngine* const engines_PA[] = {
|
||||
|
@ -729,7 +729,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -707,7 +707,7 @@ const PrepopulatedEngine* const engines_PA[] = {
|
||||
@@ -704,7 +704,7 @@ const PrepopulatedEngine* const engines_PA[] = {
|
||||
|
||||
// Peru
|
||||
const PrepopulatedEngine* const engines_PE[] = {
|
||||
|
@ -738,7 +738,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo_pe,
|
||||
&ecosia,
|
||||
@@ -716,7 +716,7 @@ const PrepopulatedEngine* const engines_PE[] = {
|
||||
@@ -713,7 +713,7 @@ const PrepopulatedEngine* const engines_PE[] = {
|
||||
|
||||
// Philippines
|
||||
const PrepopulatedEngine* const engines_PH[] = {
|
||||
|
@ -747,7 +747,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo_ph,
|
||||
&bing,
|
||||
&ecosia,
|
||||
@@ -725,7 +725,7 @@ const PrepopulatedEngine* const engines_PH[] = {
|
||||
@@ -722,7 +722,7 @@ const PrepopulatedEngine* const engines_PH[] = {
|
||||
|
||||
// Pakistan
|
||||
const PrepopulatedEngine* const engines_PK[] = {
|
||||
|
@ -756,7 +756,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo,
|
||||
&bing,
|
||||
&duckduckgo,
|
||||
@@ -734,7 +734,7 @@ const PrepopulatedEngine* const engines_PK[] = {
|
||||
@@ -731,7 +731,7 @@ const PrepopulatedEngine* const engines_PK[] = {
|
||||
|
||||
// Poland
|
||||
const PrepopulatedEngine* const engines_PL[] = {
|
||||
|
@ -765,7 +765,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -743,7 +743,7 @@ const PrepopulatedEngine* const engines_PL[] = {
|
||||
@@ -740,7 +740,7 @@ const PrepopulatedEngine* const engines_PL[] = {
|
||||
|
||||
// Puerto Rico
|
||||
const PrepopulatedEngine* const engines_PR[] = {
|
||||
|
@ -774,7 +774,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -752,7 +752,7 @@ const PrepopulatedEngine* const engines_PR[] = {
|
||||
@@ -749,7 +749,7 @@ const PrepopulatedEngine* const engines_PR[] = {
|
||||
|
||||
// Portugal
|
||||
const PrepopulatedEngine* const engines_PT[] = {
|
||||
|
@ -783,7 +783,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -761,7 +761,7 @@ const PrepopulatedEngine* const engines_PT[] = {
|
||||
@@ -758,7 +758,7 @@ const PrepopulatedEngine* const engines_PT[] = {
|
||||
|
||||
// Paraguay
|
||||
const PrepopulatedEngine* const engines_PY[] = {
|
||||
|
@ -792,7 +792,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -770,7 +770,7 @@ const PrepopulatedEngine* const engines_PY[] = {
|
||||
@@ -767,7 +767,7 @@ const PrepopulatedEngine* const engines_PY[] = {
|
||||
|
||||
// Qatar
|
||||
const PrepopulatedEngine* const engines_QA[] = {
|
||||
|
@ -801,7 +801,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -779,7 +779,7 @@ const PrepopulatedEngine* const engines_QA[] = {
|
||||
@@ -776,7 +776,7 @@ const PrepopulatedEngine* const engines_QA[] = {
|
||||
|
||||
// Romania
|
||||
const PrepopulatedEngine* const engines_RO[] = {
|
||||
|
@ -810,7 +810,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -788,7 +788,7 @@ const PrepopulatedEngine* const engines_RO[] = {
|
||||
@@ -785,7 +785,7 @@ const PrepopulatedEngine* const engines_RO[] = {
|
||||
|
||||
// Serbia
|
||||
const PrepopulatedEngine* const engines_RS[] = {
|
||||
|
@ -819,7 +819,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo,
|
||||
&bing,
|
||||
&duckduckgo,
|
||||
@@ -797,7 +797,7 @@ const PrepopulatedEngine* const engines_RS[] = {
|
||||
@@ -794,7 +794,7 @@ const PrepopulatedEngine* const engines_RS[] = {
|
||||
|
||||
// Russia
|
||||
const PrepopulatedEngine* const engines_RU[] = {
|
||||
|
@ -828,7 +828,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_ru,
|
||||
&mail_ru,
|
||||
&bing,
|
||||
@@ -806,7 +806,7 @@ const PrepopulatedEngine* const engines_RU[] = {
|
||||
@@ -803,7 +803,7 @@ const PrepopulatedEngine* const engines_RU[] = {
|
||||
|
||||
// Rwanda
|
||||
const PrepopulatedEngine* const engines_RW[] = {
|
||||
|
@ -837,7 +837,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -815,7 +815,7 @@ const PrepopulatedEngine* const engines_RW[] = {
|
||||
@@ -812,7 +812,7 @@ const PrepopulatedEngine* const engines_RW[] = {
|
||||
|
||||
// Saudi Arabia
|
||||
const PrepopulatedEngine* const engines_SA[] = {
|
||||
|
@ -846,7 +846,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&yandex_com,
|
||||
@@ -824,7 +824,7 @@ const PrepopulatedEngine* const engines_SA[] = {
|
||||
@@ -821,7 +821,7 @@ const PrepopulatedEngine* const engines_SA[] = {
|
||||
|
||||
// Sweden
|
||||
const PrepopulatedEngine* const engines_SE[] = {
|
||||
|
@ -855,7 +855,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo_se,
|
||||
&duckduckgo,
|
||||
@@ -833,7 +833,7 @@ const PrepopulatedEngine* const engines_SE[] = {
|
||||
@@ -830,7 +830,7 @@ const PrepopulatedEngine* const engines_SE[] = {
|
||||
|
||||
// Singapore
|
||||
const PrepopulatedEngine* const engines_SG[] = {
|
||||
|
@ -864,7 +864,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yandex_com,
|
||||
&yahoo_sg,
|
||||
@@ -842,7 +842,7 @@ const PrepopulatedEngine* const engines_SG[] = {
|
||||
@@ -839,7 +839,7 @@ const PrepopulatedEngine* const engines_SG[] = {
|
||||
|
||||
// Slovenia
|
||||
const PrepopulatedEngine* const engines_SI[] = {
|
||||
|
@ -873,7 +873,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&duckduckgo,
|
||||
&yahoo,
|
||||
@@ -851,7 +851,7 @@ const PrepopulatedEngine* const engines_SI[] = {
|
||||
@@ -848,7 +848,7 @@ const PrepopulatedEngine* const engines_SI[] = {
|
||||
|
||||
// Slovakia
|
||||
const PrepopulatedEngine* const engines_SK[] = {
|
||||
|
@ -882,7 +882,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -860,7 +860,7 @@ const PrepopulatedEngine* const engines_SK[] = {
|
||||
@@ -857,7 +857,7 @@ const PrepopulatedEngine* const engines_SK[] = {
|
||||
|
||||
// El Salvador
|
||||
const PrepopulatedEngine* const engines_SV[] = {
|
||||
|
@ -891,7 +891,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -869,7 +869,7 @@ const PrepopulatedEngine* const engines_SV[] = {
|
||||
@@ -866,7 +866,7 @@ const PrepopulatedEngine* const engines_SV[] = {
|
||||
|
||||
// Syria
|
||||
const PrepopulatedEngine* const engines_SY[] = {
|
||||
|
@ -900,7 +900,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&yandex_ru,
|
||||
@@ -878,7 +878,7 @@ const PrepopulatedEngine* const engines_SY[] = {
|
||||
@@ -875,7 +875,7 @@ const PrepopulatedEngine* const engines_SY[] = {
|
||||
|
||||
// Thailand
|
||||
const PrepopulatedEngine* const engines_TH[] = {
|
||||
|
@ -909,7 +909,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo_th,
|
||||
&bing,
|
||||
&duckduckgo,
|
||||
@@ -887,7 +887,7 @@ const PrepopulatedEngine* const engines_TH[] = {
|
||||
@@ -884,7 +884,7 @@ const PrepopulatedEngine* const engines_TH[] = {
|
||||
|
||||
// Tunisia
|
||||
const PrepopulatedEngine* const engines_TN[] = {
|
||||
|
@ -918,7 +918,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo,
|
||||
&bing,
|
||||
&yandex_ru,
|
||||
@@ -896,7 +896,7 @@ const PrepopulatedEngine* const engines_TN[] = {
|
||||
@@ -893,7 +893,7 @@ const PrepopulatedEngine* const engines_TN[] = {
|
||||
|
||||
// Turkey
|
||||
const PrepopulatedEngine* const engines_TR[] = {
|
||||
|
@ -927,7 +927,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_tr,
|
||||
&yahoo_tr,
|
||||
&bing,
|
||||
@@ -905,7 +905,7 @@ const PrepopulatedEngine* const engines_TR[] = {
|
||||
@@ -902,7 +902,7 @@ const PrepopulatedEngine* const engines_TR[] = {
|
||||
|
||||
// Trinidad and Tobago
|
||||
const PrepopulatedEngine* const engines_TT[] = {
|
||||
|
@ -936,7 +936,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -914,7 +914,7 @@ const PrepopulatedEngine* const engines_TT[] = {
|
||||
@@ -911,7 +911,7 @@ const PrepopulatedEngine* const engines_TT[] = {
|
||||
|
||||
// Taiwan
|
||||
const PrepopulatedEngine* const engines_TW[] = {
|
||||
|
@ -945,7 +945,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo_tw,
|
||||
&bing,
|
||||
&baidu,
|
||||
@@ -923,7 +923,7 @@ const PrepopulatedEngine* const engines_TW[] = {
|
||||
@@ -920,7 +920,7 @@ const PrepopulatedEngine* const engines_TW[] = {
|
||||
|
||||
// Tanzania
|
||||
const PrepopulatedEngine* const engines_TZ[] = {
|
||||
|
@ -954,7 +954,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -932,7 +932,7 @@ const PrepopulatedEngine* const engines_TZ[] = {
|
||||
@@ -929,7 +929,7 @@ const PrepopulatedEngine* const engines_TZ[] = {
|
||||
|
||||
// Ukraine
|
||||
const PrepopulatedEngine* const engines_UA[] = {
|
||||
|
@ -963,7 +963,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yandex_ua,
|
||||
&bing,
|
||||
&mail_ru,
|
||||
@@ -941,7 +941,7 @@ const PrepopulatedEngine* const engines_UA[] = {
|
||||
@@ -938,7 +938,7 @@ const PrepopulatedEngine* const engines_UA[] = {
|
||||
|
||||
// United States
|
||||
const PrepopulatedEngine* const engines_US[] = {
|
||||
|
@ -972,7 +972,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -950,7 +950,7 @@ const PrepopulatedEngine* const engines_US[] = {
|
||||
@@ -947,7 +947,7 @@ const PrepopulatedEngine* const engines_US[] = {
|
||||
|
||||
// Uruguay
|
||||
const PrepopulatedEngine* const engines_UY[] = {
|
||||
|
@ -981,7 +981,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -959,7 +959,7 @@ const PrepopulatedEngine* const engines_UY[] = {
|
||||
@@ -956,7 +956,7 @@ const PrepopulatedEngine* const engines_UY[] = {
|
||||
|
||||
// Venezuela
|
||||
const PrepopulatedEngine* const engines_VE[] = {
|
||||
|
@ -990,7 +990,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo_ve,
|
||||
&bing,
|
||||
&duckduckgo,
|
||||
@@ -968,7 +968,7 @@ const PrepopulatedEngine* const engines_VE[] = {
|
||||
@@ -965,7 +965,7 @@ const PrepopulatedEngine* const engines_VE[] = {
|
||||
|
||||
// Vietnam
|
||||
const PrepopulatedEngine* const engines_VN[] = {
|
||||
|
@ -999,7 +999,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&coccoc,
|
||||
&yahoo,
|
||||
&bing,
|
||||
@@ -977,7 +977,7 @@ const PrepopulatedEngine* const engines_VN[] = {
|
||||
@@ -974,7 +974,7 @@ const PrepopulatedEngine* const engines_VN[] = {
|
||||
|
||||
// Yemen
|
||||
const PrepopulatedEngine* const engines_YE[] = {
|
||||
|
@ -1008,7 +1008,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&yandex_ru,
|
||||
@@ -986,7 +986,7 @@ const PrepopulatedEngine* const engines_YE[] = {
|
||||
@@ -983,7 +983,7 @@ const PrepopulatedEngine* const engines_YE[] = {
|
||||
|
||||
// South Africa
|
||||
const PrepopulatedEngine* const engines_ZA[] = {
|
||||
|
@ -1017,7 +1017,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
@@ -995,7 +995,7 @@ const PrepopulatedEngine* const engines_ZA[] = {
|
||||
@@ -992,7 +992,7 @@ const PrepopulatedEngine* const engines_ZA[] = {
|
||||
|
||||
// Zimbabwe
|
||||
const PrepopulatedEngine* const engines_ZW[] = {
|
||||
|
|
|
@ -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
|
||||
@@ -4928,6 +4928,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -5188,6 +5188,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
kOsAll,
|
||||
FEATURE_VALUE_TYPE(features::kEnableAmbientAuthenticationInIncognito)},
|
||||
|
||||
|
@ -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
|
||||
@@ -548,6 +548,11 @@ const char kEnableAmbientAuthenticationInIncognitoDescription[] =
|
||||
@@ -525,6 +525,11 @@ const char kEnableAmbientAuthenticationInIncognitoDescription[] =
|
||||
"Enables ambient authentication in Incognito mode. This flag may be "
|
||||
"overriden by policies.";
|
||||
|
||||
|
@ -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
|
||||
@@ -333,6 +333,9 @@ extern const char kEnableAccessibilityObjectModelDescription[];
|
||||
@@ -321,6 +321,9 @@ extern const char kEnableAccessibilityObjectModelDescription[];
|
||||
extern const char kEnableAmbientAuthenticationInIncognitoName[];
|
||||
extern const char kEnableAmbientAuthenticationInIncognitoDescription[];
|
||||
|
||||
|
@ -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
|
||||
@@ -343,6 +343,9 @@ const char kHomePage[] = "homepage";
|
||||
@@ -330,6 +330,9 @@ const char kHomePage[] = "homepage";
|
||||
// Causes the browser to launch directly in incognito mode.
|
||||
const char kIncognito[] = "incognito";
|
||||
|
||||
|
@ -88,7 +88,7 @@ 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[];
|
||||
@@ -110,6 +110,7 @@ extern const char kForceFirstRun[];
|
||||
extern const char kForceStackedTabStripLayout[];
|
||||
extern const char kHomePage[];
|
||||
extern const char kIncognito[];
|
||||
|
|
|
@ -1,474 +0,0 @@
|
|||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Mon, 26 Oct 2020 16:50:15 +0000
|
||||
Subject: Add flag to always view the desktop site for all websites
|
||||
|
||||
---
|
||||
chrome/android/chrome_java_resources.gni | 1 +
|
||||
chrome/android/chrome_java_sources.gni | 1 +
|
||||
.../android/java/res/xml/main_preferences.xml | 5 ++
|
||||
.../java/res/xml/useragent_preferences.xml | 30 ++++++++++
|
||||
.../chrome/browser/app/ChromeActivity.java | 17 +++++-
|
||||
.../settings/UserAgentPreferences.java | 59 +++++++++++++++++++
|
||||
.../chromium/chrome/browser/tab/TabImpl.java | 51 +++++++++++++++-
|
||||
.../browser/tabmodel/TabWindowManager.java | 20 +++++++
|
||||
chrome/browser/android/tab_android.cc | 5 +-
|
||||
chrome/browser/android/tab_android.h | 3 +-
|
||||
.../preferences/ChromePreferenceKeys.java | 7 ++-
|
||||
.../org/chromium/chrome/browser/tab/Tab.java | 2 +
|
||||
.../strings/android_chrome_strings.grd | 14 +++++
|
||||
.../navigation_controller_android.cc | 6 +-
|
||||
.../navigation_controller_android.h | 3 +-
|
||||
.../framehost/NavigationControllerImpl.java | 6 +-
|
||||
16 files changed, 218 insertions(+), 12 deletions(-)
|
||||
create mode 100644 chrome/android/java/res/xml/useragent_preferences.xml
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java
|
||||
|
||||
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
|
||||
@@ -1130,4 +1130,5 @@ chrome_java_resources = [
|
||||
"java/res/xml/sync_and_services_preferences.xml",
|
||||
"java/res/xml/theme_preferences.xml",
|
||||
"java/res/xml/tracing_preferences.xml",
|
||||
+ "java/res/xml/useragent_preferences.xml",
|
||||
]
|
||||
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
|
||||
@@ -1309,6 +1309,7 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceHost.java",
|
||||
"java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java",
|
||||
"java/src/org/chromium/chrome/browser/settings/AdBlockPreferences.java",
|
||||
+ "java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java",
|
||||
"java/src/org/chromium/chrome/browser/photo_picker/FileEnumWorkerTask.java",
|
||||
"java/src/org/chromium/chrome/browser/photo_picker/PhotoPickerDialog.java",
|
||||
"java/src/org/chromium/chrome/browser/photo_picker/PhotoPickerToolbar.java",
|
||||
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
|
||||
@@ -104,6 +104,11 @@
|
||||
android:key="content_settings"
|
||||
android:order="20"
|
||||
android:title="@string/prefs_site_settings"/>
|
||||
+ <Preference
|
||||
+ android:fragment="org.chromium.chrome.browser.settings.UserAgentPreferences"
|
||||
+ android:key="useragent_settings"
|
||||
+ android:order="20"
|
||||
+ android:title="@string/prefs_useragent_settings"/>
|
||||
<Preference
|
||||
android:fragment="org.chromium.chrome.browser.language.settings.LanguageSettings"
|
||||
android:key="languages"
|
||||
diff --git a/chrome/android/java/res/xml/useragent_preferences.xml b/chrome/android/java/res/xml/useragent_preferences.xml
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/chrome/android/java/res/xml/useragent_preferences.xml
|
||||
@@ -0,0 +1,30 @@
|
||||
+<?xml version="1.0" encoding="utf-8"?>
|
||||
+<!--
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
+ Bromite is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ Bromite is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
|
||||
+-->
|
||||
+
|
||||
+<!-- Layout used by the UserAgentPreferences. -->
|
||||
+
|
||||
+<PreferenceScreen
|
||||
+ xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
+ xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
+
|
||||
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||
+ android:key="desktop_mode_switch"
|
||||
+ android:summaryOn="@string/option_desktop_flag_on"
|
||||
+ android:summaryOff="@string/option_desktop_flag_off" />
|
||||
+
|
||||
+</PreferenceScreen>
|
||||
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
|
||||
@@ -202,6 +202,9 @@ import org.chromium.ui.modaldialog.ModalDialogManager;
|
||||
import org.chromium.ui.widget.Toast;
|
||||
import org.chromium.url.Origin;
|
||||
import org.chromium.webapk.lib.client.WebApkNavigationClient;
|
||||
+import org.chromium.chrome.browser.tabmodel.TabWindowManager;
|
||||
+import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
||||
+import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -1987,11 +1990,19 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
} else if (id == R.id.view_source_id) {
|
||||
currentTab.getWebContents().getNavigationController().loadUrl(new LoadUrlParams("view-source:"+currentTab.getUrlString()));
|
||||
} else if (id == R.id.request_desktop_site_id || id == R.id.request_desktop_site_check_id) {
|
||||
- final boolean reloadOnChange = !currentTab.isNativePage();
|
||||
final boolean usingDesktopUserAgent =
|
||||
currentTab.getWebContents().getNavigationController().getUseDesktopUserAgent();
|
||||
- currentTab.getWebContents().getNavigationController().setUseDesktopUserAgent(
|
||||
- !usingDesktopUserAgent, reloadOnChange);
|
||||
+ SharedPreferencesManager.getInstance().writeBoolean(
|
||||
+ ChromePreferenceKeys.USERAGENT_ALWAYS_DESKTOP_MODE, !usingDesktopUserAgent);
|
||||
+
|
||||
+ final boolean stickyDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean(
|
||||
+ ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, false);
|
||||
+ if (stickyDesktopModeEnabled) {
|
||||
+ TabWindowManager.getInstance().SetOverrideUserAgentForAllTabs(!usingDesktopUserAgent);
|
||||
+ }
|
||||
+ else {
|
||||
+ currentTab.SetOverrideUserAgent(!usingDesktopUserAgent);
|
||||
+ }
|
||||
RecordUserAction.record("MobileMenuRequestDesktopSite");
|
||||
} else if (id == R.id.reader_mode_prefs_id) {
|
||||
DomDistillerUIUtils.openSettings(currentTab.getWebContents());
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java
|
||||
@@ -0,0 +1,59 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
+ Bromite is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ Bromite is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+
|
||||
+package org.chromium.chrome.browser.settings;
|
||||
+
|
||||
+import android.os.Bundle;
|
||||
+import androidx.preference.Preference;
|
||||
+import androidx.preference.PreferenceFragmentCompat;
|
||||
+import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
|
||||
+
|
||||
+import org.chromium.components.browser_ui.settings.SettingsUtils;
|
||||
+import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
||||
+import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
|
||||
+import org.chromium.chrome.browser.tabmodel.TabWindowManager;
|
||||
+import org.chromium.chrome.R;
|
||||
+
|
||||
+/**
|
||||
+ * Fragment that allows the user to configure User Agent related preferences.
|
||||
+ */
|
||||
+public class UserAgentPreferences extends PreferenceFragmentCompat {
|
||||
+ private static final String PREF_STICK_DESKTOP_MODE_SWITCH = "desktop_mode_switch";
|
||||
+
|
||||
+ @Override
|
||||
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
+ getActivity().setTitle(R.string.useragent_settings_title);
|
||||
+ SettingsUtils.addPreferencesFromResource(this, R.xml.useragent_preferences);
|
||||
+
|
||||
+ ChromeSwitchPreference alwaysDesktopModeSwitch =
|
||||
+ (ChromeSwitchPreference) findPreference(PREF_STICK_DESKTOP_MODE_SWITCH);
|
||||
+ if (alwaysDesktopModeSwitch != null) {
|
||||
+ boolean enabled = SharedPreferencesManager.getInstance().readBoolean(
|
||||
+ ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, false);
|
||||
+ alwaysDesktopModeSwitch.setChecked(enabled);
|
||||
+ alwaysDesktopModeSwitch.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||
+ SharedPreferencesManager.getInstance().writeBoolean(
|
||||
+ ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, (boolean) newValue);
|
||||
+
|
||||
+ final boolean alwaysDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean(
|
||||
+ ChromePreferenceKeys.USERAGENT_ALWAYS_DESKTOP_MODE, false);
|
||||
+ TabWindowManager.getInstance().SetOverrideUserAgentForAllTabs(alwaysDesktopModeEnabled);
|
||||
+ return true;
|
||||
+ });
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
|
||||
@@ -57,6 +57,10 @@ import org.chromium.ui.base.WindowAndroid;
|
||||
import org.chromium.ui.util.ColorUtils;
|
||||
import org.chromium.url.GURL;
|
||||
import org.chromium.url.Origin;
|
||||
+import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
||||
+import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
|
||||
+import org.chromium.content_public.browser.navigation_controller.UserAgentOverrideOption;
|
||||
+import org.chromium.content_public.browser.NavigationController;
|
||||
|
||||
/**
|
||||
* Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}.
|
||||
@@ -446,6 +450,18 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
|
||||
throw new RuntimeException("Tab.loadUrl called when no native side exists");
|
||||
}
|
||||
|
||||
+ final boolean stickyDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean(
|
||||
+ ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, false);
|
||||
+ if (stickyDesktopModeEnabled) {
|
||||
+ final boolean alwaysDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean(
|
||||
+ ChromePreferenceKeys.USERAGENT_ALWAYS_DESKTOP_MODE, false);
|
||||
+ if (alwaysDesktopModeEnabled) {
|
||||
+ params.setOverrideUserAgent((int)UserAgentOverrideOption.TRUE);
|
||||
+ } else {
|
||||
+ params.setOverrideUserAgent((int)UserAgentOverrideOption.FALSE);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
// We load the URL from the tab rather than directly from the ContentView so the tab has
|
||||
// a chance of using a prerenderer page is any.
|
||||
int loadType = TabImplJni.get().loadUrl(mNativeTabAndroid, TabImpl.this,
|
||||
@@ -458,7 +474,8 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
|
||||
params.getReferrer() != null ? params.getReferrer().getPolicy() : 0,
|
||||
params.getIsRendererInitiated(), params.getShouldReplaceCurrentEntry(),
|
||||
params.getHasUserGesture(), params.getShouldClearHistoryList(),
|
||||
- params.getInputStartTimestamp(), params.getIntentReceivedTimestamp());
|
||||
+ params.getInputStartTimestamp(), params.getIntentReceivedTimestamp(),
|
||||
+ params.getUserAgentOverrideOption());
|
||||
|
||||
for (TabObserver observer : mObservers) {
|
||||
observer.onLoadUrl(this, params, loadType);
|
||||
@@ -1380,6 +1397,10 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
|
||||
if (mWebContents != null) mWebContents.getNavigationController().loadIfNecessary();
|
||||
mIsBeingRestored = true;
|
||||
for (TabObserver observer : mObservers) observer.onRestoreStarted(this);
|
||||
+
|
||||
+ if(overrideUserAgentWhenUnFrozen != UserAgentOverrideOption.INHERIT) {
|
||||
+ SetOverrideUserAgent(overrideUserAgentWhenUnFrozen == (int)UserAgentOverrideOption.TRUE ? true : false);
|
||||
+ }
|
||||
} finally {
|
||||
TraceEvent.end("Tab.restoreIfNeeded");
|
||||
}
|
||||
@@ -1497,6 +1518,31 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
|
||||
}
|
||||
}
|
||||
|
||||
+ int overrideUserAgentWhenUnFrozen = (int)UserAgentOverrideOption.INHERIT;
|
||||
+
|
||||
+ public void SetOverrideUserAgent(boolean usingDesktopUserAgent) {
|
||||
+ overrideUserAgentWhenUnFrozen = UserAgentOverrideOption.INHERIT;
|
||||
+
|
||||
+ WebContents webContents = this.getWebContents();
|
||||
+ if (webContents != null) {
|
||||
+ NavigationController navigationController = webContents.getNavigationController();
|
||||
+ navigationController.setUseDesktopUserAgent(
|
||||
+ usingDesktopUserAgent, !this.isNativePage());
|
||||
+ }
|
||||
+ else if (this.getPendingLoadParams() != null) {
|
||||
+ if (usingDesktopUserAgent) {
|
||||
+ this.getPendingLoadParams().setOverrideUserAgent((int)UserAgentOverrideOption.TRUE);
|
||||
+ }
|
||||
+ else {
|
||||
+ this.getPendingLoadParams().setOverrideUserAgent((int)UserAgentOverrideOption.FALSE);
|
||||
+ }
|
||||
+ }
|
||||
+ else {
|
||||
+ overrideUserAgentWhenUnFrozen = usingDesktopUserAgent ? UserAgentOverrideOption.TRUE :
|
||||
+ UserAgentOverrideOption.FALSE;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
@NativeMethods
|
||||
interface Natives {
|
||||
void init(TabImpl caller);
|
||||
@@ -1517,7 +1563,8 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
|
||||
String referrerUrl, int referrerPolicy, boolean isRendererInitiated,
|
||||
boolean shoulReplaceCurrentEntry, boolean hasUserGesture,
|
||||
boolean shouldClearHistoryList, long inputStartTimestamp,
|
||||
- long intentReceivedTimestamp);
|
||||
+ long intentReceivedTimestamp,
|
||||
+ int userAgentOverrideOption);
|
||||
void setActiveNavigationEntryTitleForUrl(
|
||||
long nativeTabAndroid, TabImpl caller, String url, String title);
|
||||
void loadOriginalImage(long nativeTabAndroid, TabImpl caller);
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java
|
||||
@@ -248,4 +248,24 @@ public class TabWindowManager implements ActivityStateListener {
|
||||
AsyncTabParamsManager.getInstance(), true, true, false);
|
||||
}
|
||||
}
|
||||
+
|
||||
+ public static void SetOverrideUserAgentForAllTabs(boolean usingDesktopUserAgent) {
|
||||
+ TabWindowManager tabWindowManagerSingleton = TabWindowManager.getInstance();
|
||||
+
|
||||
+ List<TabModelSelector> mSelectors = tabWindowManagerSingleton.mSelectors;
|
||||
+ for (int selectorIndex = 0; selectorIndex < mSelectors.size(); selectorIndex++) {
|
||||
+ TabModelSelector selector = mSelectors.get(selectorIndex);
|
||||
+ if (selector != null) {
|
||||
+ List<TabModel> models = selector.getModels();
|
||||
+ for (int modelIndex = 0; modelIndex < models.size(); modelIndex++) {
|
||||
+ TabModel model = models.get(modelIndex);
|
||||
+
|
||||
+ for (int tabIdex = 0; tabIdex < model.getCount(); tabIdex++) {
|
||||
+ Tab theTab = model.getTabAt(tabIdex);
|
||||
+ theTab.SetOverrideUserAgent(usingDesktopUserAgent);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_android.cc
|
||||
--- a/chrome/browser/android/tab_android.cc
|
||||
+++ b/chrome/browser/android/tab_android.cc
|
||||
@@ -363,7 +363,8 @@ TabAndroid::TabLoadStatus TabAndroid::LoadUrl(
|
||||
jboolean has_user_gesture,
|
||||
jboolean should_clear_history_list,
|
||||
jlong input_start_timestamp,
|
||||
- jlong intent_received_timestamp) {
|
||||
+ jlong intent_received_timestamp,
|
||||
+ jint user_agent_override_option) {
|
||||
if (!web_contents())
|
||||
return PAGE_LOAD_FAILED;
|
||||
|
||||
@@ -420,6 +421,8 @@ TabAndroid::TabLoadStatus TabAndroid::LoadUrl(
|
||||
load_params.input_start =
|
||||
base::TimeTicks::FromUptimeMillis(intent_received_timestamp);
|
||||
}
|
||||
+ load_params.override_user_agent = static_cast<NavigationController::UserAgentOverrideOption>(
|
||||
+ user_agent_override_option);
|
||||
web_contents()->GetController().LoadURLWithParams(load_params);
|
||||
}
|
||||
return DEFAULT_PAGE_LOAD;
|
||||
diff --git a/chrome/browser/android/tab_android.h b/chrome/browser/android/tab_android.h
|
||||
--- a/chrome/browser/android/tab_android.h
|
||||
+++ b/chrome/browser/android/tab_android.h
|
||||
@@ -148,7 +148,8 @@ class TabAndroid {
|
||||
jboolean has_user_gesture,
|
||||
jboolean should_clear_history_list,
|
||||
jlong omnibox_input_received_timestamp,
|
||||
- jlong intent_received_timestamp);
|
||||
+ jlong intent_received_timestamp,
|
||||
+ jint user_agent_override_option);
|
||||
void SetActiveNavigationEntryTitleForUrl(
|
||||
JNIEnv* env,
|
||||
const base::android::JavaParamRef<jobject>& obj,
|
||||
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
|
||||
@@ -778,6 +778,9 @@ public final class ChromePreferenceKeys {
|
||||
public static final KeyPrefix KEY_ZERO_SUGGEST_HEADER_GROUP_COLLAPSED_BY_DEFAULT_PREFIX =
|
||||
new KeyPrefix("zero_suggest_header_group_collapsed_by_default*");
|
||||
|
||||
+ public static final String USERAGENT_STICKY_DESKTOP_MODE = "Chrome.UserAgent.StickyDesktopMode";
|
||||
+ public static final String USERAGENT_ALWAYS_DESKTOP_MODE = "Chrome.UserAgent.AlwaysDesktopMode";
|
||||
+
|
||||
/**
|
||||
* These values are currently used as SharedPreferences keys, along with the keys in
|
||||
* {@link GrandfatheredChromePreferenceKeys#getKeysInUse()}. Add new SharedPreferences keys
|
||||
@@ -820,7 +823,9 @@ public final class ChromePreferenceKeys {
|
||||
PROMO_TIMES_SEEN.pattern(),
|
||||
SETTINGS_SAFETY_CHECK_LAST_RUN_TIMESTAMP,
|
||||
SETTINGS_SAFETY_CHECK_RUN_COUNTER,
|
||||
- TWA_DISCLOSURE_SEEN_PACKAGES
|
||||
+ TWA_DISCLOSURE_SEEN_PACKAGES,
|
||||
+ USERAGENT_STICKY_DESKTOP_MODE,
|
||||
+ USERAGENT_ALWAYS_DESKTOP_MODE
|
||||
);
|
||||
// clang-format on
|
||||
}
|
||||
diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java
|
||||
--- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java
|
||||
+++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java
|
||||
@@ -265,4 +265,6 @@ public interface Tab extends TabLifecycle {
|
||||
* @param isDirty Whether the Tab's state has changed.
|
||||
*/
|
||||
void setIsTabStateDirty(boolean isTabStateDirty);
|
||||
+
|
||||
+ void SetOverrideUserAgent(boolean usingDesktopUserAgent);
|
||||
}
|
||||
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
|
||||
@@ -228,6 +228,20 @@ CHAR-LIMIT guidelines:
|
||||
Visit help page
|
||||
</message>
|
||||
|
||||
+ <!-- User Agent settings -->
|
||||
+ <message name="IDS_PREFS_USERAGENT_SETTINGS" desc="Title of the User Agent preference. [CHAR-LIMIT=32]">
|
||||
+ User Agent
|
||||
+ </message>
|
||||
+ <message name="IDS_USERAGENT_SETTINGS_TITLE" desc="Title of the User Agent screen. [CHAR-LIMIT=32]">
|
||||
+ Customize User Agent
|
||||
+ </message>
|
||||
+ <message name="IDS_OPTION_DESKTOP_FLAG_ON" desc="The label of the option that allows users to sticky desktop mode view flag under hambuger menu.">
|
||||
+ Desktop mode toggle in hamburger menu applies to all tabs
|
||||
+ </message>
|
||||
+ <message name="IDS_OPTION_DESKTOP_FLAG_OFF" desc="The label of the option that revert the hambuger menu flag to actual behaviour.">
|
||||
+ Desktop mode toggle in hamburger menu applies to current tab only
|
||||
+ </message>
|
||||
+
|
||||
<!-- Notification channels -->
|
||||
<message name="IDS_NOTIFICATION_CATEGORY_GROUP_GENERAL" desc='Subheading for "General" section of a list of notification categories. [CHAR-LIMIT=32]'>
|
||||
General
|
||||
diff --git a/content/browser/frame_host/navigation_controller_android.cc b/content/browser/frame_host/navigation_controller_android.cc
|
||||
--- a/content/browser/frame_host/navigation_controller_android.cc
|
||||
+++ b/content/browser/frame_host/navigation_controller_android.cc
|
||||
@@ -235,7 +235,8 @@ void NavigationControllerAndroid::LoadUrl(
|
||||
const JavaParamRef<jstring>& data_url_as_string,
|
||||
jboolean can_load_local_resources,
|
||||
jboolean is_renderer_initiated,
|
||||
- jboolean should_replace_current_entry) {
|
||||
+ jboolean should_replace_current_entry,
|
||||
+ jint user_agent_override_option) {
|
||||
DCHECK(url);
|
||||
NavigationController::LoadURLParams params(
|
||||
GURL(ConvertJavaStringToUTF8(env, url)));
|
||||
@@ -289,6 +290,9 @@ void NavigationControllerAndroid::LoadUrl(
|
||||
Referrer::ConvertToPolicy(referrer_policy));
|
||||
}
|
||||
|
||||
+ params.override_user_agent = static_cast<NavigationController::UserAgentOverrideOption>(
|
||||
+ user_agent_override_option);
|
||||
+
|
||||
navigation_controller_->LoadURLWithParams(params);
|
||||
}
|
||||
|
||||
diff --git a/content/browser/frame_host/navigation_controller_android.h b/content/browser/frame_host/navigation_controller_android.h
|
||||
--- a/content/browser/frame_host/navigation_controller_android.h
|
||||
+++ b/content/browser/frame_host/navigation_controller_android.h
|
||||
@@ -80,7 +80,8 @@ class CONTENT_EXPORT NavigationControllerAndroid {
|
||||
const base::android::JavaParamRef<jstring>& data_url_as_string,
|
||||
jboolean can_load_local_resources,
|
||||
jboolean is_renderer_initiated,
|
||||
- jboolean should_replace_current_entry);
|
||||
+ jboolean should_replace_current_entry,
|
||||
+ jint user_agent_override_option);
|
||||
void ClearSslPreferences(
|
||||
JNIEnv* env,
|
||||
const base::android::JavaParamRef<jobject>& /* obj */);
|
||||
diff --git a/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java
|
||||
--- a/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java
|
||||
+++ b/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java
|
||||
@@ -168,7 +168,8 @@ import org.chromium.content_public.common.ResourceRequestBody;
|
||||
params.getUserAgentOverrideOption(), params.getExtraHeadersString(),
|
||||
params.getPostData(), params.getBaseUrl(), params.getVirtualUrlForDataUrl(),
|
||||
params.getDataUrlAsString(), params.getCanLoadLocalResources(),
|
||||
- params.getIsRendererInitiated(), params.getShouldReplaceCurrentEntry());
|
||||
+ params.getIsRendererInitiated(), params.getShouldReplaceCurrentEntry(),
|
||||
+ params.getUserAgentOverrideOption());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -347,7 +348,8 @@ import org.chromium.content_public.common.ResourceRequestBody;
|
||||
int referrerPolicy, int uaOverrideOption, String extraHeaders,
|
||||
ResourceRequestBody postData, String baseUrlForDataUrl, String virtualUrlForDataUrl,
|
||||
String dataUrlAsString, boolean canLoadLocalResources, boolean isRendererInitiated,
|
||||
- boolean shouldReplaceCurrentEntry);
|
||||
+ boolean shouldReplaceCurrentEntry,
|
||||
+ int userAgentOverrideOption);
|
||||
void clearHistory(long nativeNavigationControllerAndroid, NavigationControllerImpl caller);
|
||||
int getNavigationHistory(long nativeNavigationControllerAndroid,
|
||||
NavigationControllerImpl caller, Object history);
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -37,9 +37,9 @@ Offer auto-complete for the proxy page URL.
|
|||
diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
|
||||
--- a/chrome/android/java/res/values/values.xml
|
||||
+++ b/chrome/android/java/res/values/values.xml
|
||||
@@ -41,6 +41,9 @@
|
||||
<!-- Our manage space activity. Default pre-KitKat to be nothing. -->
|
||||
<string name="manage_space_activity"></string>
|
||||
@@ -32,6 +32,9 @@
|
||||
<integer name="reload_button_level_reload">0</integer>
|
||||
<integer name="reload_button_level_stop">1</integer>
|
||||
|
||||
+ <string name="proxy_title">Proxy configuration</string>
|
||||
+ <string name="proxy_url">chrome://proxy</string>
|
||||
|
@ -58,18 +58,18 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
|||
+ android:key="proxy"
|
||||
+ android:title="@string/proxy_title"
|
||||
+ app:url="@string/proxy_url" />
|
||||
<org.chromium.components.browser_ui.settings.ChromeBaseCheckBoxPreference
|
||||
<org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||
android:key="can_make_payment"
|
||||
android:title="@string/can_make_payment_title"
|
||||
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
|
||||
@@ -48,12 +48,15 @@ public class PrivacySettings
|
||||
@@ -49,12 +49,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,
|
||||
PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS,
|
||||
PREF_SECURE_DNS, PREF_DO_NOT_TRACK,
|
||||
|
@ -77,14 +77,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
PREF_ALLOW_CUSTOM_TAB_INTENTS,
|
||||
- PREF_CLOSE_TABS_ON_EXIT
|
||||
+ PREF_CLOSE_TABS_ON_EXIT,
|
||||
+ PREF_PROXY_OPTIONS
|
||||
+ PREF_PROXY_OPTIONS
|
||||
};
|
||||
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
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
|
||||
@@ -245,6 +245,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
|
||||
@@ -316,6 +316,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
|
||||
std::vector<base::string16> builtins_to_provide;
|
||||
builtins_to_provide.push_back(
|
||||
base::ASCIIToUTF16(chrome::kChromeUIFlagsURL));
|
||||
|
@ -96,8 +96,8 @@ 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
|
||||
@@ -113,6 +113,12 @@
|
||||
<include name="IDR_OFFLINE_INTERNALS_BROWSER_PROXY_JS" file="resources\offline_pages\offline_internals_browser_proxy.js" type="BINDATA" />
|
||||
@@ -117,6 +117,12 @@
|
||||
<include name="IDR_VIDEO_PLAYER_JS" file="resources\video_tutorials\video_player.js" type="BINDATA" />
|
||||
</if>
|
||||
|
||||
+ <!-- Bromite Proxy Configuration UI -->
|
||||
|
@ -541,7 +541,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
|
||||
@@ -254,6 +254,8 @@ static_library("ui") {
|
||||
@@ -250,6 +250,8 @@ static_library("ui") {
|
||||
"webui/metrics_handler.h",
|
||||
"webui/net_export_ui.cc",
|
||||
"webui/net_export_ui.h",
|
||||
|
@ -553,7 +553,7 @@ 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
|
||||
@@ -61,6 +61,7 @@
|
||||
@@ -64,6 +64,7 @@
|
||||
#include "chrome/browser/ui/webui/omnibox/omnibox_ui.h"
|
||||
#include "chrome/browser/ui/webui/policy_ui.h"
|
||||
#include "chrome/browser/ui/webui/predictors/predictors_ui.h"
|
||||
|
@ -561,7 +561,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom
|
|||
#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"
|
||||
@@ -483,6 +484,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
|
||||
@@ -507,6 +508,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
|
||||
return &NewWebUI<MemoryInternalsUI>;
|
||||
if (url.host_piece() == chrome::kChromeUINetExportHost)
|
||||
return &NewWebUI<NetExportUI>;
|
||||
|
@ -1038,7 +1038,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";
|
||||
@@ -315,6 +317,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
|
||||
@@ -321,6 +323,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
|
||||
kChromeUIMobileSetupHost,
|
||||
kChromeUIMultiDeviceSetupHost,
|
||||
kChromeUINetworkHost,
|
||||
|
@ -1046,7 +1046,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
|
|||
kChromeUIOobeHost,
|
||||
kChromeUIOSCreditsHost,
|
||||
kChromeUIOSSettingsHost,
|
||||
@@ -501,6 +504,7 @@ const char* const kChromeHostURLs[] = {
|
||||
@@ -511,6 +514,7 @@ const char* const kChromeHostURLs[] = {
|
||||
#if !defined(OS_ANDROID)
|
||||
#if !defined(OS_CHROMEOS)
|
||||
kChromeUIAppLauncherPageHost,
|
||||
|
@ -1057,7 +1057,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
|
|||
diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h
|
||||
--- a/chrome/common/webui_url_constants.h
|
||||
+++ b/chrome/common/webui_url_constants.h
|
||||
@@ -116,6 +116,8 @@ extern const char kChromeUIMemoryInternalsHost[];
|
||||
@@ -117,6 +117,8 @@ extern const char kChromeUIMemoryInternalsHost[];
|
||||
extern const char kChromeUINTPTilesInternalsHost[];
|
||||
extern const char kChromeUINaClHost[];
|
||||
extern const char kChromeUINetExportHost[];
|
||||
|
|
|
@ -13,7 +13,7 @@ Enable incognito custom tabs and fix crashes for incognito/custom tab intents (c
|
|||
.../chrome/browser/ChromeTabbedActivity.java | 6 +-
|
||||
.../chrome/browser/app/ChromeActivity.java | 4 +
|
||||
.../AppMenuPropertiesDelegateImpl.java | 6 ++
|
||||
.../ChromeContextMenuPopulator.java | 8 +-
|
||||
.../ChromeContextMenuPopulator.java | 9 ++-
|
||||
.../CustomTabIntentDataProvider.java | 5 +-
|
||||
.../browser/init/StartupTabPreloader.java | 11 ++-
|
||||
.../privacy/settings/PrivacySettings.java | 4 +-
|
||||
|
@ -23,7 +23,7 @@ Enable incognito custom tabs and fix crashes for incognito/custom tab intents (c
|
|||
.../webapps/WebappIntentDataProvider.java | 14 ++++
|
||||
.../flags/android/chrome_feature_list.cc | 2 +-
|
||||
.../strings/android_chrome_strings.grd | 7 ++
|
||||
16 files changed, 171 insertions(+), 10 deletions(-)
|
||||
16 files changed, 172 insertions(+), 10 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
|
||||
|
@ -44,7 +44,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
|||
android:summary="@string/preload_pages_summary"
|
||||
android:persistent="false"
|
||||
android:order="1"/>
|
||||
+ <org.chromium.components.browser_ui.settings.ChromeBaseCheckBoxPreference
|
||||
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||
+ android:key="always_incognito"
|
||||
+ android:title="@string/always_incognito_title"
|
||||
+ android:summary="@string/always_incognito_summary"
|
||||
|
@ -134,7 +134,7 @@ 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.OneShotCallback;
|
||||
@@ -49,6 +49,7 @@ import org.chromium.base.supplier.OneshotSupplierImpl;
|
||||
import org.chromium.base.supplier.Supplier;
|
||||
import org.chromium.base.task.PostTask;
|
||||
import org.chromium.chrome.R;
|
||||
|
@ -142,7 +142,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||
import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate;
|
||||
import org.chromium.chrome.browser.IntentHandler.TabOpenType;
|
||||
import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout;
|
||||
@@ -1543,8 +1544,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@@ -1556,8 +1557,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
Bundle savedInstanceState = getSavedInstanceState();
|
||||
|
||||
// We determine the model as soon as possible so every systems get initialized coherently.
|
||||
|
@ -157,7 +157,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
|
||||
@@ -83,6 +83,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchFieldTrial;
|
||||
@@ -86,6 +86,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;
|
||||
|
@ -165,7 +165,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;
|
||||
@@ -1489,6 +1490,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -1539,6 +1540,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
throw new IllegalStateException(
|
||||
"Attempting to access TabCreator before initialization");
|
||||
}
|
||||
|
@ -178,7 +178,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
|
||||
@@ -354,6 +354,12 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
@@ -429,6 +429,12 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
}
|
||||
|
||||
private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) {
|
||||
|
@ -194,7 +194,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/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||
@@ -27,7 +27,9 @@ import org.chromium.base.annotations.CalledByNative;
|
||||
@@ -33,7 +33,9 @@ import org.chromium.base.annotations.CalledByNative;
|
||||
import org.chromium.base.annotations.NativeMethods;
|
||||
import org.chromium.base.metrics.RecordHistogram;
|
||||
import org.chromium.base.supplier.Supplier;
|
||||
|
@ -203,24 +203,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
|
|||
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
||||
import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator;
|
||||
import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item;
|
||||
import org.chromium.chrome.browser.externalauth.ExternalAuthUtils;
|
||||
@@ -399,7 +401,11 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
if (FirstRunStatus.getFirstRunFlowComplete() && !isEmptyUrl(params.getUrl())
|
||||
&& UrlUtilities.isAcceptedScheme(params.getUrl())) {
|
||||
import org.chromium.chrome.browser.contextmenu.RevampedContextMenuCoordinator.ListItemType;
|
||||
@@ -401,7 +403,12 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
if (FirstRunStatus.getFirstRunFlowComplete() && !isEmptyUrl(mParams.getUrl())
|
||||
&& UrlUtilities.isAcceptedScheme(mParams.getUrl())) {
|
||||
if (mMode == ContextMenuMode.NORMAL) {
|
||||
- linkTab.add(new ChromeContextMenuItem(Item.OPEN_IN_NEW_TAB));
|
||||
- linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB));
|
||||
+ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)
|
||||
+ && !mDelegate.isIncognito()) {
|
||||
+ // disallow open in new tab
|
||||
+ } else
|
||||
+ linkTab.add(new ChromeContextMenuItem(Item.OPEN_IN_NEW_TAB));
|
||||
+ linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB));
|
||||
+
|
||||
if (!mDelegate.isIncognito() && mDelegate.isIncognitoSupported()) {
|
||||
linkTab.add(new ChromeContextMenuItem(Item.OPEN_IN_INCOGNITO_TAB));
|
||||
linkGroup.add(createListItem(Item.OPEN_IN_INCOGNITO_TAB));
|
||||
}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
|
||||
@@ -52,6 +52,9 @@ import org.chromium.components.embedder_support.util.UrlConstants;
|
||||
@@ -53,6 +53,9 @@ import org.chromium.components.embedder_support.util.UrlConstants;
|
||||
import org.chromium.device.mojom.ScreenOrientationLockType;
|
||||
import org.chromium.ui.util.ColorUtils;
|
||||
|
||||
|
@ -230,7 +231,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;
|
||||
@@ -764,7 +767,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
|
||||
@@ -779,7 +782,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
|
||||
|
||||
@Override
|
||||
public boolean isIncognito() {
|
||||
|
@ -242,7 +243,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java b/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java
|
||||
@@ -37,6 +37,9 @@ import org.chromium.ui.base.PageTransition;
|
||||
@@ -38,6 +38,9 @@ import org.chromium.ui.base.PageTransition;
|
||||
import org.chromium.ui.base.WindowAndroid;
|
||||
import org.chromium.url.GURL;
|
||||
|
||||
|
@ -252,7 +253,7 @@ 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.
|
||||
@@ -188,9 +191,11 @@ public class StartupTabPreloader implements ProfileManager.Observer, Destroyable
|
||||
@@ -195,9 +198,11 @@ public class StartupTabPreloader implements ProfileManager.Observer, Destroyable
|
||||
Intent intent = mIntentSupplier.get();
|
||||
GURL url = UrlFormatter.fixupUrl(getUrlFromIntent(intent));
|
||||
|
||||
|
@ -266,7 +267,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTab
|
|||
|
||||
mLoadUrlParams = new LoadUrlParams(url.getValidSpecOrEmpty());
|
||||
String referrer = IntentHandler.getReferrerUrlIncludingExtraHeaders(intent);
|
||||
@@ -204,7 +209,7 @@ public class StartupTabPreloader implements ProfileManager.Observer, Destroyable
|
||||
@@ -211,7 +216,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,7 +279,7 @@ 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
|
||||
@@ -43,9 +43,11 @@ public class PrivacySettings
|
||||
@@ -44,9 +44,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";
|
||||
|
@ -362,7 +363,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
|
||||
@@ -246,7 +246,15 @@ public abstract class TabModelSelectorBase implements TabModelSelector {
|
||||
@@ -251,7 +251,15 @@ public abstract class TabModelSelectorBase implements TabModelSelector, Incognit
|
||||
public void markTabStateInitialized() {
|
||||
if (mTabStateInitialized) return;
|
||||
mTabStateInitialized = true;
|
||||
|
@ -460,7 +461,7 @@ 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
|
||||
@@ -351,7 +351,7 @@ const base::Feature kCCTExternalLinkHandling{"CCTExternalLinkHandling",
|
||||
@@ -347,7 +347,7 @@ const base::Feature kCCTExternalLinkHandling{"CCTExternalLinkHandling",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kCCTIncognito{"CCTIncognito",
|
||||
|
@ -472,7 +473,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/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
|
||||
@@ -787,6 +787,13 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
@@ -803,6 +803,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>
|
||||
|
|
|
@ -14,7 +14,7 @@ Completely remove contacts picker permission from the file dialog
|
|||
.../browser/bookmarks/BookmarkDelegate.java | 10 +
|
||||
.../browser/bookmarks/BookmarkManager.java | 19 ++
|
||||
.../browser/bookmarks/BookmarkPage.java | 1 +
|
||||
chrome/browser/BUILD.gn | 8 +-
|
||||
chrome/browser/BUILD.gn | 6 +-
|
||||
.../android/bookmarks/bookmark_bridge.cc | 217 ++++++++++++++++++
|
||||
.../android/bookmarks/bookmark_bridge.h | 20 +-
|
||||
chrome/browser/importer/profile_writer.cc | 12 +
|
||||
|
@ -28,12 +28,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 +
|
||||
22 files changed, 447 insertions(+), 14 deletions(-)
|
||||
22 files changed, 447 insertions(+), 12 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
|
||||
@@ -34,7 +34,6 @@ by a child template that "extends" this file.
|
||||
@@ -38,7 +38,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"/>
|
||||
|
@ -263,7 +263,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
|
||||
@@ -33,6 +33,7 @@ import org.chromium.components.browser_ui.util.ConversionUtils;
|
||||
@@ -32,6 +32,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;
|
||||
|
@ -271,7 +271,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.url.GURL;
|
||||
|
||||
@@ -53,6 +54,7 @@ public class BookmarkManager
|
||||
@@ -52,6 +53,7 @@ public class BookmarkManager
|
||||
private Activity mActivity;
|
||||
private ViewGroup mMainView;
|
||||
private BookmarkModel mBookmarkModel;
|
||||
|
@ -279,7 +279,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;
|
||||
@@ -323,6 +325,13 @@ public class BookmarkManager
|
||||
@@ -322,6 +324,13 @@ public class BookmarkManager
|
||||
mNativePage = nativePage;
|
||||
}
|
||||
|
||||
|
@ -293,7 +293,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
|
||||
@@ -495,6 +504,16 @@ public class BookmarkManager
|
||||
@@ -494,6 +503,16 @@ public class BookmarkManager
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -324,18 +324,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
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,10 @@ static_library("browser") {
|
||||
@@ -184,6 +184,8 @@ static_library("browser") {
|
||||
"bitmap_fetcher/bitmap_fetcher_service.h",
|
||||
"bitmap_fetcher/bitmap_fetcher_service_factory.cc",
|
||||
"bitmap_fetcher/bitmap_fetcher_service_factory.h",
|
||||
+ "importer/profile_writer.cc",
|
||||
+ "importer/profile_writer.h",
|
||||
+ "bookmarks/bookmark_html_writer.cc",
|
||||
+ "bookmarks/bookmark_html_writer.h",
|
||||
"bluetooth/bluetooth_chooser_context.cc",
|
||||
"bluetooth/bluetooth_chooser_context.h",
|
||||
"bluetooth/bluetooth_chooser_context_factory.cc",
|
||||
@@ -3126,8 +3130,6 @@ static_library("browser") {
|
||||
@@ -1821,6 +1823,8 @@ static_library("browser") {
|
||||
"web_data_service_factory.h",
|
||||
"window_placement/window_placement_permission_context.cc",
|
||||
"window_placement/window_placement_permission_context.h",
|
||||
+ "importer/profile_writer.cc",
|
||||
+ "importer/profile_writer.h",
|
||||
]
|
||||
|
||||
configs += [
|
||||
@@ -3298,8 +3302,6 @@ static_library("browser") {
|
||||
"badging/badge_manager_factory.h",
|
||||
"banners/app_banner_manager_desktop.cc",
|
||||
"banners/app_banner_manager_desktop.h",
|
||||
|
@ -344,15 +351,6 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
|||
"browsing_data/access_context_audit_database.cc",
|
||||
"browsing_data/access_context_audit_database.h",
|
||||
"browsing_data/access_context_audit_service.cc",
|
||||
@@ -3265,8 +3267,6 @@ static_library("browser") {
|
||||
"importer/importer_uma.h",
|
||||
"importer/in_process_importer_bridge.cc",
|
||||
"importer/in_process_importer_bridge.h",
|
||||
- "importer/profile_writer.cc",
|
||||
- "importer/profile_writer.h",
|
||||
"lifetime/browser_close_manager.cc",
|
||||
"lifetime/browser_close_manager.h",
|
||||
"lifetime/termination_notification.cc",
|
||||
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
|
||||
|
@ -675,7 +673,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser
|
|||
diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer/profile_writer.cc
|
||||
--- a/chrome/browser/importer/profile_writer.cc
|
||||
+++ b/chrome/browser/importer/profile_writer.cc
|
||||
@@ -96,12 +96,14 @@ void ProfileWriter::AddHistoryPage(const history::URLRows& page,
|
||||
@@ -103,12 +103,14 @@ void ProfileWriter::AddHistoryPage(const history::URLRows& page,
|
||||
HistoryServiceFactory::GetForProfile(profile_,
|
||||
ServiceAccessType::EXPLICIT_ACCESS)
|
||||
->AddPagesWithDetails(page, visit_source);
|
||||
|
@ -690,7 +688,7 @@ diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer
|
|||
}
|
||||
|
||||
void ProfileWriter::AddHomepage(const GURL& home_page) {
|
||||
@@ -122,6 +124,16 @@ void ProfileWriter::AddBookmarks(
|
||||
@@ -129,6 +131,16 @@ void ProfileWriter::AddBookmarks(
|
||||
return;
|
||||
|
||||
BookmarkModel* model = BookmarkModelFactory::GetForBrowserContext(profile_);
|
||||
|
@ -749,8 +747,8 @@ 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
|
||||
@@ -410,6 +410,9 @@ static_library("common") {
|
||||
"android/cpu_affinity_experiments.h",
|
||||
@@ -405,6 +405,9 @@ static_library("common") {
|
||||
sources += [
|
||||
"media/chrome_media_drm_bridge_client.cc",
|
||||
"media/chrome_media_drm_bridge_client.h",
|
||||
+ ## Bromite dependencies for bookmark import functionality
|
||||
|
@ -762,7 +760,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") {
|
||||
@@ -78,8 +78,6 @@ static_library("utility") {
|
||||
|
||||
if (!is_android) {
|
||||
sources += [
|
||||
|
@ -771,7 +769,7 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
|
|||
"importer/bookmarks_file_importer.cc",
|
||||
"importer/bookmarks_file_importer.h",
|
||||
"importer/edge_database_reader_win.cc",
|
||||
@@ -173,6 +171,11 @@ static_library("utility") {
|
||||
@@ -180,6 +178,11 @@ static_library("utility") {
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -894,15 +892,15 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
|
|||
import org.chromium.ui.UiUtils;
|
||||
|
||||
import java.io.File;
|
||||
@@ -54,6 +55,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
private static final String IMAGE_TYPE = "image/";
|
||||
private static final String VIDEO_TYPE = "video/";
|
||||
private static final String AUDIO_TYPE = "audio/";
|
||||
@@ -53,6 +54,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
private static final String TAG = "SelectFileDialog";
|
||||
private static final String IMAGE_TYPE = "image";
|
||||
private static final String VIDEO_TYPE = "video";
|
||||
+ private static final String HTML_TYPE = "text/html";
|
||||
private static final String ALL_IMAGE_TYPES = IMAGE_TYPE + "*";
|
||||
private static final String ALL_VIDEO_TYPES = VIDEO_TYPE + "*";
|
||||
private static final String ALL_AUDIO_TYPES = AUDIO_TYPE + "*";
|
||||
@@ -151,6 +153,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
private static final String AUDIO_TYPE = "audio";
|
||||
private static final String ALL_TYPES = "*/*";
|
||||
|
||||
@@ -143,6 +145,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
mFileTypes = fileTypes;
|
||||
}
|
||||
|
||||
|
@ -914,7 +912,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
|
|||
/**
|
||||
* Creates and starts an intent based on the passed fileTypes and capture value.
|
||||
* @param fileTypes MIME types requested (i.e. "image/*")
|
||||
@@ -178,7 +185,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
@@ -170,7 +177,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
List<String> missingPermissions = new ArrayList<>();
|
||||
String storagePermission = Manifest.permission.READ_EXTERNAL_STORAGE;
|
||||
boolean shouldUsePhotoPicker = shouldUsePhotoPicker();
|
||||
|
@ -923,7 +921,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
|
|||
if (!window.hasPermission(storagePermission)) missingPermissions.add(storagePermission);
|
||||
} else {
|
||||
if (((mSupportsImageCapture && shouldShowImageTypes())
|
||||
@@ -206,7 +213,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
@@ -198,7 +205,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
}
|
||||
|
||||
// TODO(finnur): Remove once we figure out the cause of crbug.com/950024.
|
||||
|
@ -932,7 +930,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
|
|||
if (permissions.length != requestPermissions.length) {
|
||||
throw new RuntimeException(
|
||||
String.format("Permissions arrays misaligned: %d != %d",
|
||||
@@ -220,7 +227,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
@@ -212,7 +219,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -941,7 +939,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
|
|||
onFileNotSelected();
|
||||
return;
|
||||
}
|
||||
@@ -367,6 +374,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
@@ -358,6 +365,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
}
|
||||
if (!mimeTypes.contains(mimeType)) mimeTypes.add(mimeType);
|
||||
}
|
||||
|
@ -949,17 +947,17 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
|
|||
return mimeTypes;
|
||||
}
|
||||
|
||||
@@ -647,6 +655,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
return countAcceptTypesFor(specificType) > 0;
|
||||
@@ -659,6 +667,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
return countAcceptTypesFor(superType) == mFileTypes.size();
|
||||
}
|
||||
|
||||
+ private boolean shouldShowHtmlTypes() {
|
||||
+ return countAcceptTypesFor(HTML_TYPE) > 0;
|
||||
+ }
|
||||
+
|
||||
private boolean shouldShowImageTypes() {
|
||||
return shouldShowTypes(ALL_IMAGE_TYPES, IMAGE_TYPE);
|
||||
}
|
||||
/**
|
||||
* Checks whether the list of accepted types effectively describes only a single
|
||||
* type, which might be wildcard. For example:
|
||||
diff --git a/ui/shell_dialogs/select_file_dialog.h b/ui/shell_dialogs/select_file_dialog.h
|
||||
--- a/ui/shell_dialogs/select_file_dialog.h
|
||||
+++ b/ui/shell_dialogs/select_file_dialog.h
|
||||
|
|
|
@ -3,26 +3,12 @@ Date: Wed, 29 Aug 2018 11:03:44 +0200
|
|||
Subject: Add custom tab intents privacy option
|
||||
|
||||
---
|
||||
chrome/android/java/res/values/values.xml | 3 +++
|
||||
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 +++++++
|
||||
5 files changed, 31 insertions(+), 1 deletion(-)
|
||||
4 files changed, 28 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
|
||||
--- a/chrome/android/java/res/values/values.xml
|
||||
+++ b/chrome/android/java/res/values/values.xml
|
||||
@@ -14,6 +14,9 @@
|
||||
<item name="top_controls_show_threshold" format="float" type="dimen">0.5</item>
|
||||
<item name="top_controls_hide_threshold" format="float" type="dimen">0.5</item>
|
||||
|
||||
+ <string name="allow_custom_tab_intents_title">Allow custom tab intents from applications</string>
|
||||
+ <string name="allow_custom_tab_intents_summary">When disabled, all custom tab intents will be processed as regular navigation instead</string>
|
||||
+
|
||||
<!-- The number of thumbnails that the thumbnail cache can hold. -->
|
||||
<integer name="default_thumbnail_cache_size">5</integer>
|
||||
<!-- The number of approximation thumbnails that the approximation cache can hold. -->
|
||||
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
|
||||
|
@ -30,7 +16,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
|||
android:key="do_not_track"
|
||||
android:title="@string/do_not_track_title"
|
||||
android:order="3"/>
|
||||
+ <org.chromium.components.browser_ui.settings.ChromeBaseCheckBoxPreference
|
||||
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||
+ android:key="allow_custom_tab_intents"
|
||||
+ android:title="@string/allow_custom_tab_intents_title"
|
||||
+ android:summary="@string/allow_custom_tab_intents_summary"
|
||||
|
@ -41,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
|
||||
@@ -54,6 +54,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;
|
||||
|
||||
|
@ -50,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.
|
||||
@@ -243,6 +245,8 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
|
||||
@@ -242,6 +244,8 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
|
||||
*/
|
||||
public static boolean isCustomTabIntent(Intent intent) {
|
||||
if (intent == null) return false;
|
||||
|
@ -62,7 +48,7 @@ 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
|
||||
@@ -44,10 +44,12 @@ public class PrivacySettings
|
||||
@@ -45,10 +45,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";
|
||||
|
@ -76,7 +62,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
};
|
||||
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
@@ -98,6 +100,10 @@ public class PrivacySettings
|
||||
@@ -99,6 +101,10 @@ public class PrivacySettings
|
||||
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
||||
} else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
|
||||
PrivacyPreferencesManager.getInstance().setNetworkPredictionEnabled((boolean) newValue);
|
||||
|
@ -87,12 +73,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
}
|
||||
|
||||
return true;
|
||||
@@ -121,6 +127,11 @@ public class PrivacySettings
|
||||
@@ -122,6 +128,11 @@ public class PrivacySettings
|
||||
canMakePaymentPref.setChecked(prefService.getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
|
||||
}
|
||||
|
||||
+ ChromeBaseCheckBoxPreference allowCustomTabIntentsPref =
|
||||
+ (ChromeBaseCheckBoxPreference) findPreference(PREF_ALLOW_CUSTOM_TAB_INTENTS);
|
||||
+ ChromeSwitchPreference allowCustomTabIntentsPref =
|
||||
+ (ChromeSwitchPreference) findPreference(PREF_ALLOW_CUSTOM_TAB_INTENTS);
|
||||
+ allowCustomTabIntentsPref.setOnPreferenceChangeListener(this);
|
||||
+ allowCustomTabIntentsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
+
|
||||
|
@ -102,7 +88,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
|
||||
@@ -3768,6 +3768,13 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
@@ -3851,6 +3851,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>
|
||||
|
|
|
@ -14,7 +14,7 @@ Corrected Exit functionality
|
|||
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
|
||||
@@ -116,6 +116,8 @@
|
||||
@@ -119,6 +119,8 @@
|
||||
android:icon="@drawable/vr_headset" />
|
||||
<item android:id="@+id/managed_by_menu_id"
|
||||
android:title="@string/managed" />
|
||||
|
@ -23,7 +23,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 -->
|
||||
@@ -139,6 +141,8 @@
|
||||
@@ -142,6 +144,8 @@
|
||||
<item android:id="@id/preferences_id"
|
||||
android:title="@string/menu_settings"
|
||||
android:icon="@drawable/settings_cog" />
|
||||
|
@ -35,7 +35,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
|
|||
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
|
||||
@@ -133,6 +133,9 @@
|
||||
@@ -152,6 +152,9 @@
|
||||
android:icon="@drawable/vr_headset" />
|
||||
<item android:id="@+id/managed_by_menu_id"
|
||||
android:title="@string/managed" />
|
||||
|
@ -48,15 +48,15 @@ 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/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
|
||||
@@ -53,6 +53,7 @@ import org.chromium.base.supplier.ObservableSupplierImpl;
|
||||
@@ -55,6 +55,7 @@ import org.chromium.base.supplier.OneshotSupplierImpl;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.ActivityTabProvider;
|
||||
import org.chromium.chrome.browser.AppHooks;
|
||||
+import org.chromium.chrome.browser.ApplicationLifetime;
|
||||
import org.chromium.chrome.browser.ChromeActivitySessionTracker;
|
||||
import org.chromium.chrome.browser.ChromeApplication;
|
||||
import org.chromium.chrome.browser.ChromeVersionInfo;
|
||||
@@ -1874,6 +1875,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
import org.chromium.chrome.browser.ChromeWindow;
|
||||
@@ -1923,6 +1924,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
RecordUserAction.record("MobileMenuSettings");
|
||||
}
|
||||
|
||||
|
@ -87,7 +87,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
|
||||
@@ -2698,6 +2698,9 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
@@ -2835,6 +2835,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>
|
||||
|
|
|
@ -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
|
||||
@@ -732,6 +732,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
|
||||
@@ -779,6 +779,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 ==
|
||||
@@ -3249,6 +3254,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -3495,6 +3500,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
|
||||
@@ -1374,6 +1374,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
|
||||
@@ -810,6 +810,9 @@ extern const char kMarkHttpAsWarningAndDangerousOnFormEdits[];
|
||||
@@ -821,6 +821,9 @@ extern const char kMarkHttpAsWarningAndDangerousOnFormEdits[];
|
||||
extern const char kMediaHistoryName[];
|
||||
extern const char kMediaHistoryDescription[];
|
||||
|
||||
|
@ -110,8 +110,8 @@ diff --git a/components/network_session_configurator/common/network_switch_list.
|
|||
diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
|
||||
--- a/components/url_formatter/spoof_checks/top_domains/BUILD.gn
|
||||
+++ b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
|
||||
@@ -74,6 +74,7 @@ executable("make_top_domain_list_variables") {
|
||||
"//base/util/ranges:ranges",
|
||||
@@ -73,6 +73,7 @@ executable("make_top_domain_list_variables") {
|
||||
"//base:i18n",
|
||||
"//components/url_formatter/spoof_checks/common_words:common",
|
||||
"//third_party/icu",
|
||||
+ "//components/network_session_configurator/common"
|
||||
|
|
|
@ -13,7 +13,7 @@ Disable it by default on Android as it is everywhere else
|
|||
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
|
||||
@@ -2413,6 +2413,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -2648,6 +2648,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
kOsAura,
|
||||
FEATURE_VALUE_TYPE(features::kOverlayScrollbarFlashWhenMouseEnter)},
|
||||
#endif // USE_AURA
|
||||
|
@ -27,7 +27,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
|
||||
@@ -958,6 +958,11 @@ const char kMemlogStackModeNative[] = "Native";
|
||||
@@ -969,6 +969,11 @@ const char kMemlogStackModeNative[] = "Native";
|
||||
const char kMemlogStackModeNativeWithThreadNames[] = "Native with thread names";
|
||||
const char kMemlogStackModePseudo[] = "Trace events";
|
||||
|
||||
|
@ -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",
|
||||
@@ -244,11 +244,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
|
||||
@@ -4159,6 +4159,11 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -4439,6 +4439,11 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) ||
|
||||
// defined(OS_CHROMEOS)
|
||||
|
||||
|
@ -31,7 +31,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
|
||||
@@ -2750,6 +2750,10 @@ const char kContextualSearchRankerQueryDescription[] =
|
||||
@@ -2767,6 +2767,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
|
||||
@@ -612,6 +612,9 @@ extern const char kEnableWasmThreadsName[];
|
||||
@@ -614,6 +614,9 @@ extern const char kEnableWasmThreadsName[];
|
||||
extern const char kEnableWasmThreadsDescription[];
|
||||
|
||||
extern const char kEnableWasmTieringName[];
|
||||
|
@ -88,8 +88,8 @@ diff --git a/components/subresource_filter/tools/BUILD.gn b/components/subresour
|
|||
diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
|
||||
--- a/components/url_formatter/spoof_checks/top_domains/BUILD.gn
|
||||
+++ b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
|
||||
@@ -74,7 +74,8 @@ executable("make_top_domain_list_variables") {
|
||||
"//base/util/ranges:ranges",
|
||||
@@ -73,7 +73,8 @@ executable("make_top_domain_list_variables") {
|
||||
"//base:i18n",
|
||||
"//components/url_formatter/spoof_checks/common_words:common",
|
||||
"//third_party/icu",
|
||||
- "//components/network_session_configurator/common"
|
||||
|
@ -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"
|
||||
@@ -3583,8 +3584,14 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) {
|
||||
@@ -3582,8 +3583,14 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) {
|
||||
if (last_ipv6_probe_time_.is_null() ||
|
||||
(tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() >
|
||||
kIPv6ProbePeriodMs) {
|
||||
|
@ -128,7 +128,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
|
|||
diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc
|
||||
--- a/services/network/public/cpp/features.cc
|
||||
+++ b/services/network/public/cpp/features.cc
|
||||
@@ -47,6 +47,10 @@ const base::Feature kReporting{"Reporting", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
@@ -39,6 +39,10 @@ const base::Feature kReporting{"Reporting", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
const base::Feature kThrottleDelayable{"ThrottleDelayable",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
|
@ -148,9 +148,9 @@ diff --git a/services/network/public/cpp/features.h b/services/network/public/cp
|
|||
COMPONENT_EXPORT(NETWORK_CPP)
|
||||
+extern const base::Feature kIPv6Probing;
|
||||
+COMPONENT_EXPORT(NETWORK_CPP)
|
||||
extern const base::Feature kOutOfBlinkCors;
|
||||
COMPONENT_EXPORT(NETWORK_CPP)
|
||||
extern const base::Feature kReporting;
|
||||
COMPONENT_EXPORT(NETWORK_CPP)
|
||||
extern const base::Feature kThrottleDelayable;
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
@ -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
|
||||
@@ -2240,6 +2240,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -2482,6 +2482,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
|
||||
@@ -517,6 +517,10 @@ const char kForceEnableDevicesPageDescription[] =
|
||||
@@ -494,6 +494,10 @@ const char kForceEnableDevicesPageDescription[] =
|
||||
"content, instead of a warning message. Note: chrome://devices is "
|
||||
"no longer supported, and this flag will be permanently removed in M88.";
|
||||
|
||||
|
@ -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
|
||||
@@ -318,6 +318,9 @@ extern const char kDeviceDiscoveryNotificationsDescription[];
|
||||
@@ -306,6 +306,9 @@ extern const char kDeviceDiscoveryNotificationsDescription[];
|
||||
extern const char kForceEnableDevicesPageName[];
|
||||
extern const char kForceEnableDevicesPageDescription[];
|
||||
|
||||
|
|
|
@ -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
|
||||
@@ -2466,6 +2466,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -2701,6 +2701,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
|
||||
@@ -739,6 +739,14 @@ const char kWinrtSensorsImplementationDescription[] =
|
||||
@@ -735,6 +735,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
|
||||
@@ -439,6 +439,12 @@ extern const char kWinrtGeolocationImplementationDescription[];
|
||||
@@ -436,6 +436,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
|
||||
@@ -833,6 +833,16 @@ const base::Feature kWebOtpBackend{"kWebOtpBackend",
|
||||
@@ -856,6 +856,16 @@ const base::Feature kWebOtpBackend{"kWebOtpBackend",
|
||||
// TODO(rouslan): Remove this.
|
||||
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
|
||||
@@ -180,6 +180,8 @@ CONTENT_EXPORT extern const base::Feature kWebXrArModule;
|
||||
@@ -183,6 +183,8 @@ CONTENT_EXPORT extern const base::Feature kWebXrArModule;
|
||||
CONTENT_EXPORT extern const base::Feature kWebXrHitTest;
|
||||
CONTENT_EXPORT extern const base::Feature kWebXrIncubations;
|
||||
|
||||
|
@ -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
|
||||
@@ -226,9 +226,13 @@ void ModulesInitializer::OnClearWindowObjectInMainWorld(
|
||||
@@ -228,9 +228,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
|
||||
@@ -189,6 +189,14 @@ void WebRuntimeFeatures::EnableScrollTopLeftInterop(bool enable) {
|
||||
@@ -187,6 +187,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
|
||||
@@ -1303,6 +1303,14 @@
|
||||
@@ -1313,6 +1313,14 @@
|
||||
name: "OffscreenCanvasCommit",
|
||||
status: "experimental",
|
||||
},
|
||||
|
|
|
@ -3,16 +3,15 @@ Date: Fri, 7 Aug 2020 16:33:47 +0000
|
|||
Subject: Add history support in incognito mode
|
||||
|
||||
---
|
||||
.../java/res/xml/privacy_preferences.xml | 5 ++++
|
||||
.../privacy/settings/PrivacySettings.java | 23 +++++++++++++++++--
|
||||
chrome/browser/history/history_tab_helper.cc | 16 +++++++++++++
|
||||
.../java/res/xml/privacy_preferences.xml | 5 +++++
|
||||
.../privacy/settings/PrivacySettings.java | 19 +++++++++++++++++++
|
||||
chrome/browser/history/history_tab_helper.cc | 16 ++++++++++++++++
|
||||
chrome/browser/history/history_tab_helper.h | 4 ++++
|
||||
chrome/browser/prefs/browser_prefs.cc | 2 ++
|
||||
.../strings/android_chrome_strings.grd | 6 +++++
|
||||
.../android_chrome_strings_it.xtb | 4 +++-
|
||||
chrome/common/pref_names.cc | 5 ++++
|
||||
chrome/browser/prefs/browser_prefs.cc | 3 +++
|
||||
.../strings/android_chrome_strings.grd | 6 ++++++
|
||||
chrome/common/pref_names.cc | 5 +++++
|
||||
chrome/common/pref_names.h | 4 ++++
|
||||
9 files changed, 66 insertions(+), 3 deletions(-)
|
||||
8 files changed, 62 insertions(+)
|
||||
|
||||
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
|
||||
|
@ -21,7 +20,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
|||
android:title="@string/close_tabs_on_exit_title"
|
||||
android:summary="@string/close_tabs_on_exit_summary"
|
||||
android:defaultValue="false" />
|
||||
+ <org.chromium.components.browser_ui.settings.ChromeBaseCheckBoxPreference
|
||||
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||
+ android:key="incognito_history_enabled"
|
||||
+ android:title="@string/incognito_history_enabled_title"
|
||||
+ android:summary="@string/incognito_history_enabled_summary"
|
||||
|
@ -32,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
|
||||
@@ -35,6 +35,8 @@ import org.chromium.components.user_prefs.UserPrefs;
|
||||
@@ -36,6 +36,8 @@ import org.chromium.components.user_prefs.UserPrefs;
|
||||
import org.chromium.ui.text.NoUnderlineClickableSpan;
|
||||
import org.chromium.ui.text.SpanApplier;
|
||||
|
||||
|
@ -41,13 +40,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
/**
|
||||
* Fragment to keep track of the all the privacy related preferences.
|
||||
*/
|
||||
@@ -49,14 +51,16 @@ public class PrivacySettings
|
||||
@@ -50,11 +52,13 @@ public class PrivacySettings
|
||||
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[] NEW_PRIVACY_PREFERENCE_ORDER = {PREF_CLEAR_BROWSING_DATA,
|
||||
PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS,
|
||||
PREF_SECURE_DNS, PREF_DO_NOT_TRACK,
|
||||
|
@ -55,24 +53,20 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
+ PREF_INCOGNITO_TAB_HISTORY_ENABLED,
|
||||
PREF_ALLOW_CUSTOM_TAB_INTENTS,
|
||||
PREF_CLOSE_TABS_ON_EXIT,
|
||||
- PREF_PROXY_OPTIONS
|
||||
+ PREF_PROXY_OPTIONS
|
||||
};
|
||||
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
@@ -96,6 +100,11 @@ public class PrivacySettings
|
||||
PREF_PROXY_OPTIONS
|
||||
@@ -97,6 +101,11 @@ public class PrivacySettings
|
||||
Preference secureDnsPref = findPreference(PREF_SECURE_DNS);
|
||||
secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled());
|
||||
|
||||
+ ChromeBaseCheckBoxPreference historyInIncognitoPref =
|
||||
+ (ChromeBaseCheckBoxPreference) findPreference(PREF_INCOGNITO_TAB_HISTORY_ENABLED);
|
||||
+ ChromeSwitchPreference historyInIncognitoPref =
|
||||
+ (ChromeSwitchPreference) findPreference(PREF_INCOGNITO_TAB_HISTORY_ENABLED);
|
||||
+ historyInIncognitoPref.setOnPreferenceChangeListener(this);
|
||||
+ historyInIncognitoPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
+
|
||||
updateSummaries();
|
||||
}
|
||||
|
||||
@@ -115,6 +124,9 @@ public class PrivacySettings
|
||||
@@ -116,6 +125,9 @@ public class PrivacySettings
|
||||
SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
|
||||
sharedPreferencesEditor.putBoolean(PREF_ALLOW_CUSTOM_TAB_INTENTS, (boolean)newValue);
|
||||
sharedPreferencesEditor.apply();
|
||||
|
@ -82,13 +76,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
}
|
||||
|
||||
return true;
|
||||
@@ -159,6 +171,13 @@ public class PrivacySettings
|
||||
(ChromeBaseCheckBoxPreference) findPreference(PREF_CLOSE_TABS_ON_EXIT);
|
||||
@@ -160,6 +172,13 @@ public class PrivacySettings
|
||||
(ChromeSwitchPreference) findPreference(PREF_CLOSE_TABS_ON_EXIT);
|
||||
closeTabsOnExitPref.setOnPreferenceChangeListener(this);
|
||||
closeTabsOnExitPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
+
|
||||
+ CheckBoxPreference historyInIncognitoPref =
|
||||
+ (CheckBoxPreference) findPreference(PREF_INCOGNITO_TAB_HISTORY_ENABLED);
|
||||
+ ChromeSwitchPreference historyInIncognitoPref =
|
||||
+ (ChromeSwitchPreference) findPreference(PREF_INCOGNITO_TAB_HISTORY_ENABLED);
|
||||
+ if (historyInIncognitoPref != null) {
|
||||
+ historyInIncognitoPref.setChecked(
|
||||
+ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED));
|
||||
|
@ -99,31 +93,31 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/history/history_tab_helper.cc
|
||||
--- a/chrome/browser/history/history_tab_helper.cc
|
||||
+++ b/chrome/browser/history/history_tab_helper.cc
|
||||
@@ -28,6 +28,9 @@
|
||||
|
||||
@@ -29,6 +29,9 @@
|
||||
#if defined(OS_ANDROID)
|
||||
#include "chrome/browser/android/background_tab_manager.h"
|
||||
#include "components/feed/feed_feature_list.h"
|
||||
+#include "chrome/common/pref_names.h"
|
||||
+#include "components/prefs/pref_registry_simple.h"
|
||||
+#include "components/prefs/pref_service.h"
|
||||
#else
|
||||
#include "chrome/browser/ui/browser.h"
|
||||
#include "chrome/browser/ui/browser_finder.h"
|
||||
@@ -238,6 +241,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
|
||||
@@ -256,6 +259,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
|
||||
history::HistoryService* HistoryTabHelper::GetHistoryService() {
|
||||
Profile* profile =
|
||||
Profile::FromBrowserContext(web_contents()->GetBrowserContext());
|
||||
+
|
||||
+#if defined(OS_ANDROID)
|
||||
+ if(profile->GetOriginalProfile()->GetPrefs()->GetBoolean(prefs::kIncognitoTabHistoryEnabled)) {
|
||||
+ return HistoryServiceFactory::GetForProfile(profile, ServiceAccessType::IMPLICIT_ACCESS);
|
||||
+ }
|
||||
+ if(profile->GetOriginalProfile()->GetPrefs()->GetBoolean(prefs::kIncognitoTabHistoryEnabled)) {
|
||||
+ return HistoryServiceFactory::GetForProfile(profile, ServiceAccessType::IMPLICIT_ACCESS);
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
if (profile->IsOffTheRecord())
|
||||
return NULL;
|
||||
|
||||
@@ -245,6 +255,12 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
|
||||
@@ -263,6 +273,12 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
|
||||
profile, ServiceAccessType::IMPLICIT_ACCESS);
|
||||
}
|
||||
|
||||
|
@ -148,7 +142,7 @@ diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/histor
|
|||
|
||||
namespace history {
|
||||
struct HistoryAddPageArgs;
|
||||
@@ -34,6 +36,8 @@ class HistoryTabHelper : public content::WebContentsObserver,
|
||||
@@ -46,6 +48,8 @@ class HistoryTabHelper : public content::WebContentsObserver,
|
||||
int nav_entry_id,
|
||||
content::NavigationHandle* navigation_handle);
|
||||
|
||||
|
@ -160,26 +154,27 @@ 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
|
||||
@@ -231,6 +231,7 @@
|
||||
#include "components/ntp_tiles/popular_sites_impl.h"
|
||||
#include "components/permissions/contexts/geolocation_permission_context_android.h"
|
||||
#include "components/query_tiles/tile_service_prefs.h"
|
||||
@@ -208,6 +208,8 @@
|
||||
#endif
|
||||
|
||||
#if defined(OS_ANDROID)
|
||||
+#include "chrome/browser/history/history_tab_helper.h"
|
||||
#if BUILDFLAG(ENABLE_FEED_IN_CHROME)
|
||||
#include "components/feed/core/common/pref_names.h"
|
||||
#endif // BUILDFLAG(ENABLE_FEED_IN_CHROME)
|
||||
@@ -1014,6 +1015,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
|
||||
usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry);
|
||||
+
|
||||
#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"
|
||||
@@ -872,6 +874,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
|
||||
variations::VariationsService::RegisterProfilePrefs(registry);
|
||||
video_tutorials::RegisterPrefs(registry);
|
||||
feed::prefs::RegisterFeedSharedProfilePrefs(registry);
|
||||
+ HistoryTabHelper::RegisterProfilePrefs(registry);
|
||||
#if BUILDFLAG(ENABLE_FEED_IN_CHROME)
|
||||
feed::RegisterProfilePrefs(registry);
|
||||
#endif // BUILDFLAG(ENABLE_FEED_IN_CHROME)
|
||||
#else // defined(OS_ANDROID)
|
||||
AppShortcutManager::RegisterProfilePrefs(registry);
|
||||
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
|
||||
@@ -811,6 +811,12 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
@@ -827,6 +827,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>
|
||||
|
@ -192,22 +187,10 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
|||
<message name="IDS_CLEAR_BROWSING_HISTORY_SUMMARY_SIGNED_IN" desc="A text explaining other forms of activity for signed in users.">
|
||||
Clears history and autocompletions in the address bar. Your Google Account may have other forms of browsing history at <ph name="BEGIN_LINK"><link></ph>myactivity.google.com<ph name="END_LINK"></link></ph>.
|
||||
</message>
|
||||
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
|
||||
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
|
||||
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
|
||||
@@ -1101,4 +1101,6 @@ Ad esempio, alcuni siti web potrebbero rispondere alla richiesta mostrando annun
|
||||
<translation id="983192555821071799">Chiudi tutte le schede</translation>
|
||||
<translation id="987264212798334818">Generali</translation>
|
||||
<translation id="996149300115483134">Menu scheda feed chiuso</translation>
|
||||
-</translationbundle>
|
||||
\ No newline at end of file
|
||||
+<translation id="7889537574758531583">Abilita la cronologia nelle sessioni in incognito</translation>
|
||||
+<translation id="5713583121562162330">Abilita la registrazione della navigazione nella cronologia anche per le sessioni in incognito</translation>
|
||||
+</translationbundle>
|
||||
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
|
||||
@@ -3100,4 +3100,9 @@ const char kShowCaretBrowsingDialog[] =
|
||||
@@ -3079,4 +3079,9 @@ const char kShowCaretBrowsingDialog[] =
|
||||
"settings.a11y.caretbrowsing.show_dialog";
|
||||
#endif
|
||||
|
||||
|
@ -220,7 +203,7 @@ diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
|
|||
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
|
||||
@@ -1087,6 +1087,10 @@ extern const char kCaretBrowsingEnabled[];
|
||||
@@ -1078,6 +1078,10 @@ extern const char kCaretBrowsingEnabled[];
|
||||
extern const char kShowCaretBrowsingDialog[];
|
||||
#endif
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/
|
|||
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
|
||||
@@ -88,6 +88,8 @@
|
||||
@@ -91,6 +91,8 @@
|
||||
<item android:id="@+id/add_to_homescreen_id"
|
||||
android:title="@string/menu_add_to_homescreen"
|
||||
android:icon="@drawable/ic_add_to_home_screen" />
|
||||
|
@ -41,7 +41,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
|
|||
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
|
||||
@@ -97,6 +97,9 @@
|
||||
@@ -113,6 +113,9 @@
|
||||
<item android:id="@+id/add_to_homescreen_id"
|
||||
android:title="@string/menu_add_to_homescreen"
|
||||
android:icon="@drawable/ic_add_to_home_screen" />
|
||||
|
@ -54,7 +54,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
|
||||
@@ -1747,6 +1747,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@@ -1760,6 +1760,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
|
||||
}
|
||||
RecordUserAction.record("MobileMenuDownloadManager");
|
||||
|
@ -66,7 +66,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
|
||||
@@ -1969,6 +1969,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -2018,6 +2018,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
} catch (ActivityNotFoundException e) {
|
||||
Toast.makeText(context, R.string.open_webapk_failed, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
@ -78,7 +78,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
|
||||
@@ -334,6 +334,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
@@ -409,6 +409,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
isChromeScheme, isFileScheme, isContentScheme, isIncognito, url));
|
||||
|
||||
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */);
|
||||
|
@ -86,7 +86,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));
|
||||
@@ -703,6 +704,19 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
@@ -786,6 +787,19 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -120,7 +120,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
|
||||
@@ -326,6 +326,9 @@ CHAR-LIMIT guidelines:
|
||||
@@ -329,6 +329,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>
|
||||
|
|
|
@ -3,34 +3,40 @@ Date: Thu, 5 Dec 2019 22:41:25 +0100
|
|||
Subject: Add option to configure the ad blocker filters URL
|
||||
|
||||
---
|
||||
chrome/android/chrome_java_resources.gni | 2 +
|
||||
chrome/android/chrome_java_sources.gni | 2 +
|
||||
.../java/res/layout/adblock_editor.xml | 67 ++++++++++++++
|
||||
chrome/android/java/res/values/values.xml | 2 +
|
||||
.../java/res/xml/adblock_preferences.xml | 25 +++++
|
||||
.../android/java/res/xml/main_preferences.xml | 5 +
|
||||
.../browser/settings/AdBlockEditor.java | 92 +++++++++++++++++++
|
||||
.../browser/settings/AdBlockPreferences.java | 61 ++++++++++++
|
||||
chrome/app/generated_resources.grd | 10 ++
|
||||
chrome/browser/browser_process_impl.cc | 3 +-
|
||||
.../flags/android/cached_feature_flags.cc | 11 +++
|
||||
.../browser/flags/CachedFeatureFlags.java | 10 ++
|
||||
.../net/system_network_context_manager.cc | 4 +
|
||||
.../strings/android_chrome_strings.grd | 14 +++
|
||||
chrome/common/pref_names.cc | 3 +
|
||||
chrome/common/pref_names.h | 1 +
|
||||
.../adblock_updater_service.cc | 6 +-
|
||||
.../adblock_updater_service.h | 3 +-
|
||||
18 files changed, 316 insertions(+), 5 deletions(-)
|
||||
chrome/android/chrome_java_resources.gni | 2 +
|
||||
chrome/android/chrome_java_sources.gni | 2 +
|
||||
.../java/res/layout/adblock_editor.xml | 67 +++++
|
||||
chrome/android/java/res/values/values.xml | 2 +
|
||||
.../java/res/xml/adblock_preferences.xml | 25 ++
|
||||
.../android/java/res/xml/main_preferences.xml | 5 +
|
||||
.../browser/settings/AdBlockEditor.java | 92 +++++++
|
||||
.../browser/settings/AdBlockPreferences.java | 61 +++++
|
||||
chrome/app/generated_resources.grd | 10 +
|
||||
chrome/browser/browser_process_impl.cc | 3 +-
|
||||
.../flags/android/cached_feature_flags.cc | 11 +
|
||||
.../browser/flags/CachedFeatureFlags.java | 10 +
|
||||
.../net/system_network_context_manager.cc | 4 +
|
||||
.../strings/android_chrome_strings.grd | 14 +
|
||||
chrome/common/pref_names.cc | 3 +
|
||||
chrome/common/pref_names.h | 1 +
|
||||
.../adblock_updater_service.cc | 249 ++++++++++++++++++
|
||||
.../adblock_updater_service.h | 100 +++++++
|
||||
.../download_filters_task.cc | 222 ++++++++++++++++
|
||||
.../component_updater/download_filters_task.h | 129 +++++++++
|
||||
20 files changed, 1011 insertions(+), 1 deletion(-)
|
||||
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
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockPreferences.java
|
||||
create mode 100644 components/component_updater/adblock_updater_service.cc
|
||||
create mode 100644 components/component_updater/adblock_updater_service.h
|
||||
create mode 100644 components/component_updater/download_filters_task.cc
|
||||
create mode 100644 components/component_updater/download_filters_task.h
|
||||
|
||||
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
|
||||
@@ -826,6 +826,7 @@ chrome_java_resources = [
|
||||
@@ -786,6 +786,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",
|
||||
|
@ -38,7 +44,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
|
|||
"java/res/layout/add_languages_main.xml",
|
||||
"java/res/layout/add_to_homescreen_dialog.xml",
|
||||
"java/res/layout/auto_sign_in_first_run_dialog.xml",
|
||||
@@ -1106,6 +1107,7 @@ chrome_java_resources = [
|
||||
@@ -1044,6 +1045,7 @@ chrome_java_resources = [
|
||||
"java/res/xml/about_chrome_preferences.xml",
|
||||
"java/res/xml/accessibility_preferences.xml",
|
||||
"java/res/xml/account_management_preferences.xml",
|
||||
|
@ -49,15 +55,15 @@ 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
|
||||
@@ -1307,6 +1307,8 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/photo_picker/DecodeVideoTask.java",
|
||||
@@ -1306,6 +1306,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/DecoderService.java",
|
||||
"java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceHost.java",
|
||||
+ "java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java",
|
||||
+ "java/src/org/chromium/chrome/browser/settings/AdBlockPreferences.java",
|
||||
"java/src/org/chromium/chrome/browser/photo_picker/FileEnumWorkerTask.java",
|
||||
"java/src/org/chromium/chrome/browser/photo_picker/PhotoPickerDialog.java",
|
||||
"java/src/org/chromium/chrome/browser/photo_picker/PhotoPickerToolbar.java",
|
||||
"java/src/org/chromium/chrome/browser/policy/EnterpriseInfo.java",
|
||||
"java/src/org/chromium/chrome/browser/policy/PolicyAuditor.java",
|
||||
"java/src/org/chromium/chrome/browser/prerender/ChromePrerenderService.java",
|
||||
diff --git a/chrome/android/java/res/layout/adblock_editor.xml b/chrome/android/java/res/layout/adblock_editor.xml
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
|
@ -133,9 +139,9 @@ new file mode 100644
|
|||
diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
|
||||
--- a/chrome/android/java/res/values/values.xml
|
||||
+++ b/chrome/android/java/res/values/values.xml
|
||||
@@ -41,6 +41,8 @@
|
||||
<!-- Our manage space activity. Default pre-KitKat to be nothing. -->
|
||||
<string name="manage_space_activity"></string>
|
||||
@@ -32,6 +32,8 @@
|
||||
<integer name="reload_button_level_reload">0</integer>
|
||||
<integer name="reload_button_level_stop">1</integer>
|
||||
|
||||
+ <string name="adblock_help_url">https://www.bromite.org/custom-filters</string>
|
||||
+
|
||||
|
@ -175,7 +181,7 @@ new file mode 100644
|
|||
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
|
||||
@@ -89,6 +89,11 @@
|
||||
@@ -90,6 +90,11 @@
|
||||
android:key="privacy"
|
||||
android:order="18"
|
||||
android:title="@string/prefs_privacy"/>
|
||||
|
@ -353,7 +359,7 @@ new file mode 100644
|
|||
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
|
||||
@@ -10047,6 +10047,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
|
||||
@@ -10208,6 +10208,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
|
||||
Never show this again.
|
||||
</message>
|
||||
|
||||
|
@ -368,12 +374,12 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources
|
|||
+ </if>
|
||||
+
|
||||
<!-- Ad Blocking UI strings. -->
|
||||
<message name="IDS_ALWAYS_ALLOW_ADS" desc="Explanation associated with a toggle to allow ads after ads have been blocked on the page. To be used on pages where the ad blocking UI is governed by a persistent permissions-based whitelist.">
|
||||
<message name="IDS_ALWAYS_ALLOW_ADS" desc="Explanation associated with a toggle to allow ads after ads have been blocked on the page. To be used on pages where the ad blocking UI is governed by a persistent permissions-based allowlist.">
|
||||
Always allow ads on this site
|
||||
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
|
||||
@@ -1066,7 +1066,8 @@ BrowserProcessImpl::adblock_updater() {
|
||||
@@ -1073,7 +1073,8 @@ BrowserProcessImpl::adblock_updater() {
|
||||
adblock_updater_ = std::make_unique<adblock_updater::AdBlockUpdaterService>(
|
||||
g_browser_process->system_network_context_manager()->GetSharedURLLoaderFactory(),
|
||||
std::move(scheduler),
|
||||
|
@ -411,7 +417,7 @@ diff --git a/chrome/browser/flags/android/cached_feature_flags.cc b/chrome/brows
|
|||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
|
||||
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
|
||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
|
||||
@@ -260,6 +260,14 @@ public class CachedFeatureFlags {
|
||||
@@ -248,6 +248,14 @@ public class CachedFeatureFlags {
|
||||
ChromeFeatureList.REACHED_CODE_PROFILER, "sampling_interval_us", 0));
|
||||
}
|
||||
|
||||
|
@ -426,7 +432,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
|
|||
/**
|
||||
* Caches flags that must take effect on startup but are set via native code.
|
||||
*/
|
||||
@@ -412,5 +420,7 @@ public class CachedFeatureFlags {
|
||||
@@ -400,5 +408,7 @@ public class CachedFeatureFlags {
|
||||
@NativeMethods
|
||||
interface Natives {
|
||||
boolean isNetworkServiceWarmUpEnabled();
|
||||
|
@ -504,37 +510,725 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
|
|||
extern const char kProfileCreationTime[];
|
||||
#if defined(OS_WIN)
|
||||
diff --git a/components/component_updater/adblock_updater_service.cc b/components/component_updater/adblock_updater_service.cc
|
||||
--- a/components/component_updater/adblock_updater_service.cc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/component_updater/adblock_updater_service.cc
|
||||
@@ -46,12 +46,12 @@ const int initial_check_delay = 5,
|
||||
next_check_delay = 60*60*24*7, // 1 week
|
||||
on_demand_check_delay = 60; // minimum 1 minute between each on-demand check
|
||||
|
||||
-AdBlockUpdaterService::AdBlockUpdaterService(scoped_refptr<network::SharedURLLoaderFactory> shared_url_network_factory, std::unique_ptr<component_updater::UpdateScheduler> scheduler, subresource_filter::RulesetService* ruleset_service)
|
||||
@@ -0,0 +1,249 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
+ Bromite is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ Bromite is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+
|
||||
+#include "components/component_updater/adblock_updater_service.h"
|
||||
+
|
||||
+#include <algorithm>
|
||||
+#include <map>
|
||||
+#include <string>
|
||||
+#include <utility>
|
||||
+#include <vector>
|
||||
+
|
||||
+#include "base/bind.h"
|
||||
+#include "base/bind_helpers.h"
|
||||
+#include "base/callback.h"
|
||||
+#include "base/files/file_path.h"
|
||||
+#include "base/files/file_util.h"
|
||||
+#include "base/logging.h"
|
||||
+#include "base/macros.h"
|
||||
+#include "base/threading/thread_checker.h"
|
||||
+#include "base/threading/thread_task_runner_handle.h"
|
||||
+#include "base/time/time.h"
|
||||
+#include "base/timer/timer.h"
|
||||
+#include "url/gurl.h"
|
||||
+#include "base/strings/safe_sprintf.h"
|
||||
+#include "base/strings/string_number_conversions.h"
|
||||
+#include "base/strings/string_split.h"
|
||||
+namespace adblock_updater {
|
||||
+
|
||||
+// all constants express seconds
|
||||
+// these could be made configurable
|
||||
+const int initial_check_delay = 5,
|
||||
+ next_check_delay = 60*60*24*7, // 1 week
|
||||
+ on_demand_check_delay = 60; // minimum 1 minute between each on-demand check
|
||||
+
|
||||
+AdBlockUpdaterService::AdBlockUpdaterService(scoped_refptr<network::SharedURLLoaderFactory> shared_url_network_factory, std::unique_ptr<component_updater::UpdateScheduler> scheduler,
|
||||
+ subresource_filter::RulesetService* ruleset_service, std::string filters_url)
|
||||
: ruleset_service_(ruleset_service), shared_url_network_factory_(shared_url_network_factory), scheduler_(std::move(scheduler)) {
|
||||
DCHECK(ruleset_service);
|
||||
|
||||
- //TODO: retrieve filters URL from config/prefs
|
||||
- filters_url_ = "https://www.bromite.org/filters/filters.dat";
|
||||
+ : ruleset_service_(ruleset_service), shared_url_network_factory_(shared_url_network_factory), scheduler_(std::move(scheduler)) {
|
||||
+ DCHECK(ruleset_service);
|
||||
+
|
||||
+ filters_url_ = filters_url;
|
||||
}
|
||||
|
||||
AdBlockUpdaterService::~AdBlockUpdaterService() {
|
||||
+}
|
||||
+
|
||||
+AdBlockUpdaterService::~AdBlockUpdaterService() {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+}
|
||||
+
|
||||
+void AdBlockUpdaterService::AddObserver(Observer* observer) {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+ observer_list_.AddObserver(observer);
|
||||
+}
|
||||
+
|
||||
+void AdBlockUpdaterService::RemoveObserver(Observer* observer) {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+ observer_list_.RemoveObserver(observer);
|
||||
+}
|
||||
+
|
||||
+//TODO: use this as in: base::Bind(&AdBlockUpdaterService::NotifyObservers, base::Unretained(this)
|
||||
+void AdBlockUpdaterService::NotifyObservers(Event event) {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+ for (auto& observer : observer_list_)
|
||||
+ observer.OnEvent(event);
|
||||
+}
|
||||
+
|
||||
+void AdBlockUpdaterService::Start() {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+
|
||||
+ // avoid multiple scheduling
|
||||
+ if (scheduled_)
|
||||
+ return;
|
||||
+ scheduled_ = true;
|
||||
+
|
||||
+ LOG(INFO) << "AdBlockUpdaterService: starting up. "
|
||||
+ << "First update attempt will take place in "
|
||||
+ << initial_check_delay << " seconds. "
|
||||
+ << "Next update attempt will take place in "
|
||||
+ << next_check_delay << " seconds. ";
|
||||
+
|
||||
+ scheduler_->Schedule(
|
||||
+ base::TimeDelta::FromSeconds(initial_check_delay),
|
||||
+ base::TimeDelta::FromSeconds(next_check_delay),
|
||||
+ base::Bind(&AdBlockUpdaterService::OnDemandScheduledUpdate,
|
||||
+ base::Unretained(this)), base::DoNothing());
|
||||
+}
|
||||
+
|
||||
+void AdBlockUpdaterService::OnDemandScheduledUpdate(component_updater::UpdateScheduler::OnFinishedCallback on_finished) {
|
||||
+ //TODO: call on_finished
|
||||
+ OnDemandUpdateAsNeeded(false, Callback());
|
||||
+}
|
||||
+
|
||||
+bool AdBlockUpdaterService::OnDemandUpdate(Callback on_finished) {
|
||||
+ return OnDemandUpdateAsNeeded(true, std::move(on_finished));
|
||||
+}
|
||||
+
|
||||
+bool AdBlockUpdaterService::OnDemandUpdateAsNeeded(bool is_foreground, Callback on_finished) {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+
|
||||
+ // Check if the request is too soon.
|
||||
+ if (!last_update_.is_null()) {
|
||||
+ base::TimeDelta delta =
|
||||
+ base::TimeTicks::Now() - last_update_;
|
||||
+ if (is_updating_ || (delta < base::TimeDelta::FromSeconds(on_demand_check_delay)))
|
||||
+ LOG(INFO) << "AdBlockUpdaterService: update not necessary.";
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ OnDemandUpdateInternal(is_foreground, std::move(on_finished));
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
+void AdBlockUpdaterService::OnDemandUpdateInternal(bool is_foreground, Callback on_finished) {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+
|
||||
+ if (is_updating_) {
|
||||
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
|
||||
+ FROM_HERE, base::BindOnce(std::move(on_finished),
|
||||
+ Error::UPDATE_IN_PROGRESS));
|
||||
+ return;
|
||||
+ }
|
||||
+ is_updating_ = true;
|
||||
+ last_update_ = base::TimeTicks::Now();
|
||||
+
|
||||
+ base::Time::Exploded e = {0};
|
||||
+ base::Time t = base::Time();
|
||||
+ auto version = ruleset_service_->GetMostRecentlyIndexedVersion();
|
||||
+ LOG(INFO) << "AdBlockUpdaterService: MostRecentIndexedVersion = " << version.content_version;
|
||||
+ std::vector<std::string> tokens =
|
||||
+ base::SplitString(version.content_version, ".", base::KEEP_WHITESPACE, base::SPLIT_WANT_ALL);
|
||||
+ int i = 0;
|
||||
+ bool failed = false;
|
||||
+ for (const std::string& token : tokens) {
|
||||
+ // parse as number
|
||||
+ int n = 0;
|
||||
+ if (!base::StringToInt(token, &n)) {
|
||||
+ failed = true;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ switch (i++) {
|
||||
+ case 0:
|
||||
+ e.year = 2019 + n;
|
||||
+ break;
|
||||
+ case 1:
|
||||
+ e.month = n + 1;
|
||||
+ break;
|
||||
+ case 2:
|
||||
+ e.day_of_month = n + 1;
|
||||
+ break;
|
||||
+ case 3:
|
||||
+ e.second = n % 60;
|
||||
+ n -= e.second;
|
||||
+ n /= 60;
|
||||
+ e.minute = n % 60;
|
||||
+ e.hour = n / 60;
|
||||
+ break;
|
||||
+ default:
|
||||
+ failed = true;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (failed) {
|
||||
+ LOG(WARNING) << "AdBlockUpdaterService: failed to parse most recent version as x.y.z.w dot-separated integers";
|
||||
+ } else {
|
||||
+ if (!base::Time::FromUTCExploded(e, &t))
|
||||
+ LOG(WARNING) << "AdBlockUpdaterService: failed to convert version to time.";
|
||||
+ }
|
||||
+
|
||||
+ auto task = base::MakeRefCounted<DownloadFiltersTask>(
|
||||
+ shared_url_network_factory_,
|
||||
+ is_foreground, filters_url_,
|
||||
+ t,
|
||||
+ base::BindOnce(&AdBlockUpdaterService::OnUpdateComplete, base::Unretained(this),
|
||||
+ std::move(on_finished)));
|
||||
+
|
||||
+ // run task now; task is responsible for clearing the is_updating status
|
||||
+ base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
|
||||
+ base::BindOnce(&DownloadFiltersTask::Run, base::Unretained(task.get())));
|
||||
+ tasks_.insert(task);
|
||||
+}
|
||||
+
|
||||
+void AdBlockUpdaterService::OnUpdateComplete(Callback on_finished,
|
||||
+ scoped_refptr<DownloadFiltersTask> task,
|
||||
+ Error error) {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+
|
||||
+ auto file_path = task->file_path();
|
||||
+ if (error == Error::NONE) {
|
||||
+ subresource_filter::UnindexedRulesetInfo ruleset_info;
|
||||
+ ruleset_info.ruleset_path = file_path;
|
||||
+ ruleset_info.delete_ruleset_path = true;
|
||||
+ ruleset_info.content_version = "0.0.0.0";
|
||||
+ DCHECK(!ruleset_info.ruleset_path.empty());
|
||||
+
|
||||
+ // convert time to version
|
||||
+ auto t = task->last_modified();
|
||||
+ bool ignore_version = t.is_null();
|
||||
+ if (!ignore_version) {
|
||||
+ base::Time::Exploded e;
|
||||
+ t.UTCExplode(&e);
|
||||
+
|
||||
+ // convert time to version
|
||||
+ const int major = e.year - 2019,
|
||||
+ minor = e.month - 1,
|
||||
+ patch = e.day_of_month - 1,
|
||||
+ revision = (e.hour*60+e.minute)*60 + e.second;
|
||||
+ if (major < 0)
|
||||
+ LOG(WARNING) << "AdBlockUpdaterService: too old Last-Modified header, ignoring version check.";
|
||||
+ else {
|
||||
+ char version_buffer[32];
|
||||
+ base::strings::SafeSNPrintf(version_buffer, sizeof(version_buffer), "%d.%d.%d.%d",
|
||||
+ major, minor, patch, revision);
|
||||
+
|
||||
+ ruleset_info.content_version = version_buffer;
|
||||
+
|
||||
+ LOG(INFO) << "AdBlockUpdaterService: indexing filters with version " << ruleset_info.content_version;
|
||||
+ }
|
||||
+ } else
|
||||
+ LOG(WARNING) << "AdBlockUpdaterService: invalid Last-Modified header, ignoring version check.";
|
||||
+ ruleset_service_->IndexAndStoreAndPublishRulesetIfNeeded(ruleset_info, ignore_version);
|
||||
+ } else {
|
||||
+ //TODO: generate event for ADBLOCK_NOT_UPDATED in case of error UPDATE_NOT_NEEDED
|
||||
+ }
|
||||
+
|
||||
+ //TODO: run these only when index-and-store is actually finished?
|
||||
+ if (!on_finished.is_null()) {
|
||||
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
|
||||
+ FROM_HERE, base::BindOnce(std::move(on_finished), error));
|
||||
+ }
|
||||
+
|
||||
+ // mark as not updating
|
||||
+ is_updating_ = false;
|
||||
+ tasks_.erase(task);
|
||||
+}
|
||||
+
|
||||
+} // namespace adblock_updater
|
||||
diff --git a/components/component_updater/adblock_updater_service.h b/components/component_updater/adblock_updater_service.h
|
||||
--- a/components/component_updater/adblock_updater_service.h
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/component_updater/adblock_updater_service.h
|
||||
@@ -54,7 +54,8 @@ class Observer {
|
||||
// All methods are safe to call ONLY from the browser's main thread.
|
||||
class AdBlockUpdaterService {
|
||||
public:
|
||||
- AdBlockUpdaterService(scoped_refptr<network::SharedURLLoaderFactory> shared_url_network_factory, std::unique_ptr<component_updater::UpdateScheduler> scheduler, subresource_filter::RulesetService* ruleset_service);
|
||||
@@ -0,0 +1,100 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
+ Bromite is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ Bromite is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+
|
||||
+#ifndef COMPONENTS_ADBLOCK_UPDATER_SERVICE_H
|
||||
+#define COMPONENTS_ADBLOCK_UPDATER_SERVICE_H
|
||||
+
|
||||
+#include <stdint.h>
|
||||
+
|
||||
+#include <memory>
|
||||
+#include <string>
|
||||
+#include <vector>
|
||||
+
|
||||
+#include "base/callback_forward.h"
|
||||
+#include "base/gtest_prod_util.h"
|
||||
+#include "base/memory/ref_counted.h"
|
||||
+#include "base/version.h"
|
||||
+#include "build/build_config.h"
|
||||
+#include "components/component_updater/update_scheduler.h"
|
||||
+#include "url/gurl.h"
|
||||
+#include "components/component_updater/download_filters_task.h"
|
||||
+#include "components/subresource_filter/content/browser/ruleset_service.h"
|
||||
+#include "services/network/public/cpp/shared_url_loader_factory.h"
|
||||
+
|
||||
+namespace adblock_updater {
|
||||
+
|
||||
+// Called when a non-blocking call in this module completes.
|
||||
+using Callback = base::OnceCallback<void(Error error)>;
|
||||
+
|
||||
+class Observer {
|
||||
+ public:
|
||||
+ virtual ~Observer() {}
|
||||
+
|
||||
+ // Called by the update service when a state change happens.
|
||||
+ virtual void OnEvent(Event event) = 0;
|
||||
+};
|
||||
+
|
||||
+// The AdBlock update service is in charge of downloading and saving the
|
||||
+// AdBlock filters.
|
||||
+//
|
||||
+// All methods are safe to call ONLY from the browser's main thread.
|
||||
+class AdBlockUpdaterService {
|
||||
+ public:
|
||||
+ AdBlockUpdaterService(scoped_refptr<network::SharedURLLoaderFactory> shared_url_network_factory, std::unique_ptr<component_updater::UpdateScheduler> scheduler,
|
||||
+ subresource_filter::RulesetService* ruleset_service, std::string filters_url);
|
||||
~AdBlockUpdaterService();
|
||||
|
||||
// Adds an observer for this class. An observer should not be added more
|
||||
+ ~AdBlockUpdaterService();
|
||||
+
|
||||
+ // Adds an observer for this class. An observer should not be added more
|
||||
+ // than once. The caller retains the ownership of the observer object.
|
||||
+ void AddObserver(Observer* observer);
|
||||
+
|
||||
+ // Removes an observer. It is safe for an observer to be removed while
|
||||
+ // the observers are being notified.
|
||||
+ void RemoveObserver(Observer* observer);
|
||||
+
|
||||
+ // Will schedule automatic updates, run in background.
|
||||
+ void Start();
|
||||
+
|
||||
+ // To be called for an user-triggered update.
|
||||
+ // Will not result in an actual update if the last update was too recently triggered.
|
||||
+ bool OnDemandUpdate(Callback on_finished);
|
||||
+
|
||||
+ private:
|
||||
+ void NotifyObservers(Event event);
|
||||
+ void OnDemandScheduledUpdate(component_updater::UpdateScheduler::OnFinishedCallback on_finished);
|
||||
+ bool OnDemandUpdateAsNeeded(bool is_foreground, Callback on_finished);
|
||||
+ void OnDemandUpdateInternal(bool is_foreground, Callback on_finished);
|
||||
+ void OnUpdateComplete(Callback callback, scoped_refptr<DownloadFiltersTask> task, Error error);
|
||||
+
|
||||
+ base::ObserverList<Observer>::Unchecked observer_list_;
|
||||
+ base::ThreadChecker thread_checker_;
|
||||
+ base::TimeTicks last_update_;
|
||||
+
|
||||
+ subresource_filter::RulesetService* ruleset_service_;
|
||||
+ std::string filters_url_;
|
||||
+
|
||||
+ scoped_refptr<network::SharedURLLoaderFactory> shared_url_network_factory_;
|
||||
+ std::unique_ptr<component_updater::UpdateScheduler> scheduler_;
|
||||
+
|
||||
+ bool is_updating_ = false;
|
||||
+ bool scheduled_ = false;
|
||||
+ std::set<scoped_refptr<DownloadFiltersTask>> tasks_;
|
||||
+};
|
||||
+
|
||||
+} // namespace adblock_updater
|
||||
+
|
||||
+#endif // COMPONENTS_ADBLOCK_UPDATER_SERVICE_H
|
||||
diff --git a/components/component_updater/download_filters_task.cc b/components/component_updater/download_filters_task.cc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/component_updater/download_filters_task.cc
|
||||
@@ -0,0 +1,222 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
+ Bromite is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ Bromite is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+#include "components/component_updater/download_filters_task.h"
|
||||
+
|
||||
+#include <utility>
|
||||
+
|
||||
+#include "base/files/file_util.h"
|
||||
+#include "base/bind.h"
|
||||
+#include "base/location.h"
|
||||
+#include "base/threading/thread_task_runner_handle.h"
|
||||
+#include "base/logging.h"
|
||||
+#include "net/base/load_flags.h"
|
||||
+#include "url/gurl.h"
|
||||
+
|
||||
+namespace adblock_updater {
|
||||
+
|
||||
+// maximum 10MB for the filters file
|
||||
+const int kMaxBodySize = 1024 * 1024 * 10;
|
||||
+
|
||||
+const int kMaxRetriesOnNetworkChange = 3;
|
||||
+
|
||||
+const net::NetworkTrafficAnnotationTag traffic_annotation =
|
||||
+ net::DefineNetworkTrafficAnnotation("update_client", R"(
|
||||
+ semantics {
|
||||
+ sender: "Bromite AdBlock filters updater"
|
||||
+ description:
|
||||
+ "The AdBlock filters updater is responsible for updating the subresource filters."
|
||||
+ trigger: "Manual or automatic AdBlock filters updates."
|
||||
+ data:
|
||||
+ "Subresource filters rulesets, binary format"
|
||||
+ destination: WEBSITE
|
||||
+ }
|
||||
+ )");
|
||||
+
|
||||
+DownloadFiltersTask::DownloadFiltersTask(scoped_refptr<network::SharedURLLoaderFactory> shared_url_network_factory,
|
||||
+ bool is_foreground, const std::string& filters_url, base::Time min_last_modified,
|
||||
+ Callback callback)
|
||||
+ : shared_url_network_factory_(shared_url_network_factory),
|
||||
+ is_foreground_(is_foreground),
|
||||
+ complete_callback_(std::move(callback)) {
|
||||
+ DCHECK(!filters_url.empty());
|
||||
+ filters_url_ = GURL(filters_url);
|
||||
+ min_last_modified_ = min_last_modified;
|
||||
+
|
||||
+ if (filters_url.empty()) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ createSimpleURLLoader(!min_last_modified_.is_null());
|
||||
+}
|
||||
+
|
||||
+void DownloadFiltersTask::createSimpleURLLoader(bool headers_only) {
|
||||
+ // always reset response-related fields
|
||||
+ response_code_ = -1;
|
||||
+ final_url_ = GURL();
|
||||
+ download_start_time_ = base::TimeTicks();
|
||||
+
|
||||
+ auto resource_request = std::make_unique<network::ResourceRequest>();
|
||||
+ resource_request->url = filters_url_;
|
||||
+ resource_request->credentials_mode = network::mojom::CredentialsMode::kOmit;
|
||||
+ resource_request->load_flags = net::LOAD_BYPASS_CACHE | net::LOAD_DISABLE_CACHE | net::LOAD_DO_NOT_SAVE_COOKIES;
|
||||
+ resource_request->credentials_mode = network::mojom::CredentialsMode::kOmit;
|
||||
+ if (headers_only)
|
||||
+ // will chain two requests - first one is to check last modified header alone
|
||||
+ resource_request->method = "HEAD";
|
||||
+ else
|
||||
+ resource_request->method = "GET";
|
||||
+
|
||||
+ simple_url_loader_ = network::SimpleURLLoader::Create(
|
||||
+ std::move(resource_request), traffic_annotation);
|
||||
+ simple_url_loader_->SetRetryOptions(
|
||||
+ kMaxRetriesOnNetworkChange,
|
||||
+ network::SimpleURLLoader::RetryMode::RETRY_ON_NETWORK_CHANGE);
|
||||
+ simple_url_loader_->SetAllowPartialResults(false);
|
||||
+ simple_url_loader_->SetOnResponseStartedCallback(base::BindOnce(
|
||||
+ &DownloadFiltersTask::OnResponseStarted, base::Unretained(this)));
|
||||
+}
|
||||
+
|
||||
+DownloadFiltersTask::~DownloadFiltersTask() {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+}
|
||||
+
|
||||
+void DownloadFiltersTask::Run() {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+
|
||||
+ // will not be initialized if the URL was empty
|
||||
+ if (!simple_url_loader_) {
|
||||
+ TaskComplete(Error::INVALID_ARGUMENT);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ download_start_time_ = base::TimeTicks::Now();
|
||||
+ if (min_last_modified_.is_null()) {
|
||||
+ internalDownload();
|
||||
+ } else {
|
||||
+ simple_url_loader_->DownloadHeadersOnly(
|
||||
+ shared_url_network_factory_.get(),
|
||||
+ base::BindOnce(&DownloadFiltersTask::OnHeadersDownloadComplete, base::Unretained(this))
|
||||
+ );
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void DownloadFiltersTask::internalDownload() {
|
||||
+ simple_url_loader_->DownloadToTempFile(
|
||||
+ shared_url_network_factory_.get(),
|
||||
+ base::BindOnce(&DownloadFiltersTask::OnDownloadComplete, base::Unretained(this)),
|
||||
+ kMaxBodySize);
|
||||
+}
|
||||
+
|
||||
+void DownloadFiltersTask::OnHeadersDownloadComplete(scoped_refptr<net::HttpResponseHeaders> headers) {
|
||||
+ // something went wrong
|
||||
+ if (headers == nullptr) {
|
||||
+ OnDownloadComplete(base::FilePath());
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ // ignoring 'headers' as 'Last-Modified' has already been picked up by OnResponseStarted
|
||||
+ const base::TimeDelta dt =
|
||||
+ last_modified_ - min_last_modified_;
|
||||
+
|
||||
+ if (dt.InSeconds() > 0) {
|
||||
+ // prepare for next simple URL loader and trigger download
|
||||
+ createSimpleURLLoader(false);
|
||||
+ internalDownload();
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ // the remote filters are not more recent than known ones
|
||||
+ TaskComplete(Error::UPDATE_NOT_NEEDED);
|
||||
+}
|
||||
+
|
||||
+void DownloadFiltersTask::OnResponseStarted(
|
||||
+ const GURL& final_url,
|
||||
+ const network::mojom::URLResponseHead& response_head) {
|
||||
+
|
||||
+ final_url_ = final_url;
|
||||
+ response_code_ = response_head.headers ? response_head.headers->response_code() : -1;
|
||||
+
|
||||
+ if (!response_head.headers->GetLastModifiedValue(&last_modified_))
|
||||
+ LOG(WARNING) << "DownloadFiltersTask: fetching URL '" << final_url.spec() << "' with method " << (min_last_modified_.is_null() ? "GET" : "HEAD") << " (no Last-Modified header)";
|
||||
+ else
|
||||
+ LOG(INFO) << "DownloadFiltersTask: fetching URL '" << final_url.spec() << "' with method " << (min_last_modified_.is_null() ? "GET" : "HEAD");
|
||||
+}
|
||||
+
|
||||
+void DownloadFiltersTask::OnDownloadComplete(base::FilePath file_path) {
|
||||
+ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
|
||||
+ int net_error = simple_url_loader_->NetError();
|
||||
+ int64_t content_size = simple_url_loader_->GetContentSize();
|
||||
+
|
||||
+ const base::TimeTicks download_end_time(base::TimeTicks::Now());
|
||||
+ const base::TimeDelta download_time =
|
||||
+ download_end_time >= download_start_time_
|
||||
+ ? download_end_time - download_start_time_
|
||||
+ : base::TimeDelta();
|
||||
+
|
||||
+ // Consider a 5xx response from the server as an indication to terminate
|
||||
+ // the request and avoid overloading the server in this case.
|
||||
+ // is not accepting requests for the moment.
|
||||
+ int error = -1;
|
||||
+ if (!file_path.empty() && response_code_ == 200) {
|
||||
+ DCHECK_EQ(0, net_error);
|
||||
+ error = 0;
|
||||
+ } else if (response_code_ != -1) {
|
||||
+ error = response_code_;
|
||||
+ } else {
|
||||
+ error = net_error;
|
||||
+ }
|
||||
+
|
||||
+ LOG(INFO) << "DownloadFiltersTask: downloaded " << content_size << " bytes in "
|
||||
+ << download_time.InMilliseconds() << "ms from '" << final_url_.spec()
|
||||
+ << "' to '" << file_path << "' with net_error " << net_error << " and error " << error;
|
||||
+
|
||||
+ if (error) {
|
||||
+ TaskComplete(Error::DOWNLOAD_ERROR);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ file_path_ = file_path;
|
||||
+ TaskComplete(Error::NONE);
|
||||
+}
|
||||
+
|
||||
+void DownloadFiltersTask::Cancel() {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+
|
||||
+ LOG(INFO) << "DownloadFiltersTask: update cancelled";
|
||||
+
|
||||
+ // deletion of the simple_url_loader_ will cause cancellation of its active request, if any
|
||||
+
|
||||
+ TaskComplete(Error::UPDATE_CANCELED);
|
||||
+}
|
||||
+
|
||||
+void DownloadFiltersTask::TaskComplete(Error error) {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+
|
||||
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
|
||||
+ FROM_HERE, base::BindOnce(std::move(complete_callback_),
|
||||
+ scoped_refptr<DownloadFiltersTask>(this), error));
|
||||
+}
|
||||
+
|
||||
+base::Time DownloadFiltersTask::last_modified() {
|
||||
+ return last_modified_;
|
||||
+}
|
||||
+
|
||||
+base::FilePath DownloadFiltersTask::file_path() {
|
||||
+ return file_path_;
|
||||
+}
|
||||
+
|
||||
+} // namespace adblock_updater
|
||||
diff --git a/components/component_updater/download_filters_task.h b/components/component_updater/download_filters_task.h
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/component_updater/download_filters_task.h
|
||||
@@ -0,0 +1,129 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
+ Bromite is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ Bromite is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+
|
||||
+#ifndef COMPONENTS_DOWNLOAD_FILTERS_TASK_H_
|
||||
+#define COMPONENTS_DOWNLOAD_FILTERS_TASK_H_
|
||||
+
|
||||
+#include <string>
|
||||
+#include <vector>
|
||||
+
|
||||
+#include "base/callback.h"
|
||||
+#include "base/macros.h"
|
||||
+#include "base/memory/ref_counted.h"
|
||||
+#include "base/threading/thread_checker.h"
|
||||
+#include "components/update_client/network.h"
|
||||
+#include "url/gurl.h"
|
||||
+#include "base/files/file_path.h"
|
||||
+#include "services/network/public/cpp/shared_url_loader_factory.h"
|
||||
+#include "services/network/public/cpp/simple_url_loader.h"
|
||||
+
|
||||
+namespace adblock_updater {
|
||||
+
|
||||
+// Errors generated as a result of calling Run() or by the service itself (UPDATE_IN_PROGRESS or UPDATE_CANCELED)
|
||||
+enum class Error {
|
||||
+ NONE = 0,
|
||||
+ UPDATE_IN_PROGRESS = 1,
|
||||
+ UPDATE_CANCELED = 2,
|
||||
+ UPDATE_NOT_NEEDED = 3,
|
||||
+ DOWNLOAD_ERROR = 4,
|
||||
+ INVALID_ARGUMENT = 5,
|
||||
+ MAX_VALUE,
|
||||
+};
|
||||
+
|
||||
+enum class Event {
|
||||
+ // Sent before the update client does an update check.
|
||||
+ ADBLOCK_CHECKING_FOR_UPDATES = 1,
|
||||
+
|
||||
+ // Sent after the new filters have been downloaded but before the install
|
||||
+ // or the upgrade is attempted.
|
||||
+ ADBLOCK_UPDATE_READY,
|
||||
+
|
||||
+ // Sent when filters are being downloaded.
|
||||
+ ADBLOCK_UPDATE_DOWNLOADING,
|
||||
+
|
||||
+ // Sent when filters have been successfully updated.
|
||||
+ ADBLOCK_UPDATED,
|
||||
+
|
||||
+ // Sent when filters have not been updated because there
|
||||
+ // was no new version available
|
||||
+ //TODO: implement this with the headers check
|
||||
+ ADBLOCK_NOT_UPDATED,
|
||||
+
|
||||
+ // Sent when an error ocurred during an update for any reason, including
|
||||
+ // the update check itself failed, or the download of the update payload
|
||||
+ // failed, or applying the update failed.
|
||||
+ ADBLOCK_UPDATE_ERROR,
|
||||
+};
|
||||
+
|
||||
+// Defines a specialized task for updating AdBlock filters.
|
||||
+class DownloadFiltersTask : public base::RefCounted<DownloadFiltersTask> {
|
||||
+ public:
|
||||
+ using Callback =
|
||||
+ base::OnceCallback<void(scoped_refptr<DownloadFiltersTask> task, Error error)>;
|
||||
+
|
||||
+ // |shared_url_network_factory| is injected here for the URL loader factory.
|
||||
+ // |is_foreground| is true when the update task is initiated by the user.
|
||||
+ // |filters_url| is the URL to load filters from.
|
||||
+ // |complete_callback| is called to return the execution flow back to creator of
|
||||
+ // this task when the task is done.
|
||||
+ DownloadFiltersTask(scoped_refptr<network::SharedURLLoaderFactory> shared_url_network_factory,
|
||||
+ bool is_foreground, const std::string& filters_url, base::Time min_last_modified,
|
||||
+ Callback complete_callback);
|
||||
+
|
||||
+ void Run();
|
||||
+
|
||||
+ void Cancel();
|
||||
+
|
||||
+ base::FilePath file_path();
|
||||
+
|
||||
+ base::Time last_modified();
|
||||
+
|
||||
+ private:
|
||||
+ ~DownloadFiltersTask();
|
||||
+
|
||||
+ void OnDownloadProgress(uint64_t current);
|
||||
+ void OnResponseStarted(const GURL& final_url,
|
||||
+ const network::mojom::URLResponseHead& response_head);
|
||||
+ void OnDownloadComplete(base::FilePath file_path);
|
||||
+ void OnHeadersDownloadComplete(scoped_refptr<net::HttpResponseHeaders> headers);
|
||||
+ void createSimpleURLLoader(bool);
|
||||
+ void internalDownload();
|
||||
+
|
||||
+ // Called when the task has completed either because the task has run or
|
||||
+ // it has been canceled.
|
||||
+ void TaskComplete(Error error);
|
||||
+
|
||||
+ base::ThreadChecker thread_checker_;
|
||||
+ scoped_refptr<network::SharedURLLoaderFactory> shared_url_network_factory_;
|
||||
+ const bool is_foreground_;
|
||||
+ Callback complete_callback_;
|
||||
+ std::unique_ptr<network::SimpleURLLoader> simple_url_loader_;
|
||||
+
|
||||
+ // fields populated while downloading
|
||||
+ base::TimeTicks download_start_time_;
|
||||
+ GURL final_url_, filters_url_;
|
||||
+ int response_code_;
|
||||
+ base::Time last_modified_, min_last_modified_;
|
||||
+ base::FilePath file_path_;
|
||||
+
|
||||
+ friend class base::RefCounted<DownloadFiltersTask>;
|
||||
+ DISALLOW_COPY_AND_ASSIGN(DownloadFiltersTask);
|
||||
+};
|
||||
+
|
||||
+} // namespace update_client
|
||||
+
|
||||
+#endif // COMPONENTS_DOWNLOAD_FILTERS_TASK_H_
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
@ -3,26 +3,12 @@ Date: Sat, 7 Sep 2019 15:07:42 +0200
|
|||
Subject: Add option to not persist tabs across sessions
|
||||
|
||||
---
|
||||
chrome/android/java/res/values/values.xml | 3 +++
|
||||
chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 4 +++-
|
||||
.../browser/privacy/settings/PrivacySettings.java | 12 ++++++++++--
|
||||
.../ui/android/strings/android_chrome_strings.grd | 6 ++++++
|
||||
5 files changed, 27 insertions(+), 3 deletions(-)
|
||||
4 files changed, 24 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
|
||||
--- a/chrome/android/java/res/values/values.xml
|
||||
+++ b/chrome/android/java/res/values/values.xml
|
||||
@@ -35,6 +35,9 @@
|
||||
<integer name="reload_button_level_reload">0</integer>
|
||||
<integer name="reload_button_level_stop">1</integer>
|
||||
|
||||
+ <string name="close_tabs_on_exit_title">Close tabs on exit</string>
|
||||
+ <string name="close_tabs_on_exit_summary">Don\'t persist tabs between browsing sessions</string>
|
||||
+
|
||||
<!-- Our manage space activity. Default pre-KitKat to be nothing. -->
|
||||
<string name="manage_space_activity"></string>
|
||||
|
||||
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
|
||||
|
@ -30,7 +16,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
|||
android:title="@string/always_incognito_title"
|
||||
android:summary="@string/always_incognito_summary"
|
||||
android:defaultValue="false" />
|
||||
+ <org.chromium.components.browser_ui.settings.ChromeBaseCheckBoxPreference
|
||||
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||
+ android:key="close_tabs_on_exit"
|
||||
+ android:title="@string/close_tabs_on_exit_title"
|
||||
+ android:summary="@string/close_tabs_on_exit_summary"
|
||||
|
@ -41,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
|
||||
@@ -1045,8 +1045,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@@ -1047,8 +1047,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
boolean hadCipherData =
|
||||
CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
|
||||
|
||||
|
@ -62,8 +48,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
|
||||
+import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.text.SpannableString;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
@@ -14,6 +15,7 @@ import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat;
|
||||
|
@ -71,8 +57,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
+import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.BuildInfo;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
@@ -38,6 +40,7 @@ import org.chromium.ui.text.SpanApplier;
|
||||
import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl;
|
||||
@@ -39,6 +41,7 @@ import org.chromium.ui.text.SpanApplier;
|
||||
*/
|
||||
public class PrivacySettings
|
||||
extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener {
|
||||
|
@ -80,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
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";
|
||||
@@ -49,7 +52,8 @@ public class PrivacySettings
|
||||
@@ -50,7 +53,8 @@ public class PrivacySettings
|
||||
PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS,
|
||||
PREF_SECURE_DNS, PREF_DO_NOT_TRACK,
|
||||
PREF_ALWAYS_INCOGNITO,
|
||||
|
@ -90,7 +76,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
};
|
||||
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
@@ -95,7 +99,11 @@ public class PrivacySettings
|
||||
@@ -96,7 +100,11 @@ public class PrivacySettings
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
String key = preference.getKey();
|
||||
|
@ -106,7 +92,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
|
||||
@@ -3499,6 +3499,12 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
@@ -3601,6 +3601,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
|
||||
@@ -1082,6 +1082,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
|
||||
@@ -1094,6 +1094,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());
|
||||
@@ -3505,7 +3511,11 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
|
||||
@@ -3529,7 +3535,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.
|
||||
|
|
|
@ -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
|
||||
@@ -97,7 +97,7 @@ void AccountConsistencyModeManager::RegisterProfilePrefs(
|
||||
@@ -118,7 +118,7 @@ void AccountConsistencyModeManager::RegisterProfilePrefs(
|
||||
#if BUILDFLAG(ENABLE_DICE_SUPPORT)
|
||||
registry->RegisterBooleanPref(kDiceMigrationCompletePref, false);
|
||||
#endif
|
||||
|
|
|
@ -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
|
||||
@@ -533,7 +533,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions(
|
||||
@@ -555,7 +555,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions(
|
||||
effective_experimental_options->Remove(it.key(), nullptr);
|
||||
continue;
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -9,18 +9,18 @@ This patch is based on Iridium's 'net: add "trk:" scheme and help identify URLs
|
|||
.../chrome_autocomplete_scheme_classifier.cc | 1 +
|
||||
chrome/browser/history/history_utils.cc | 1 +
|
||||
chrome/browser/ui/singleton_tabs.cc | 3 +-
|
||||
.../omnibox/browser/autocomplete_input.cc | 7 ++--
|
||||
.../omnibox/browser/autocomplete_input.cc | 7 +++--
|
||||
components/url_formatter/url_fixer.cc | 4 +++
|
||||
.../child_process_security_policy_impl.cc | 1 +
|
||||
net/BUILD.gn | 2 ++
|
||||
net/url_request/trk_protocol_handler.cc | 26 +++++++++++++++
|
||||
net/url_request/trk_protocol_handler.h | 33 +++++++++++++++++++
|
||||
net/url_request/trk_protocol_handler.cc | 25 +++++++++++++++
|
||||
net/url_request/trk_protocol_handler.h | 31 +++++++++++++++++++
|
||||
net/url_request/url_request.cc | 8 +++++
|
||||
.../url_request_context_builder.cc | 3 ++
|
||||
url/url_constants.cc | 1 +
|
||||
url/url_constants.h | 1 +
|
||||
url/url_util.cc | 2 ++
|
||||
14 files changed, 90 insertions(+), 3 deletions(-)
|
||||
14 files changed, 87 insertions(+), 3 deletions(-)
|
||||
create mode 100644 net/url_request/trk_protocol_handler.cc
|
||||
create mode 100644 net/url_request/trk_protocol_handler.h
|
||||
|
||||
|
@ -86,7 +86,7 @@ diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnib
|
|||
diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/url_fixer.cc
|
||||
--- a/components/url_formatter/url_fixer.cc
|
||||
+++ b/components/url_formatter/url_fixer.cc
|
||||
@@ -557,6 +557,10 @@ GURL FixupURL(const std::string& text, const std::string& desired_tld) {
|
||||
@@ -560,6 +560,10 @@ GURL FixupURL(const std::string& text, const std::string& desired_tld) {
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
@@ -672,6 +672,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() {
|
||||
@@ -760,6 +760,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
|
||||
@@ -1092,6 +1092,8 @@ component("net") {
|
||||
@@ -1095,6 +1095,8 @@ component("net") {
|
||||
"url_request/report_sender.h",
|
||||
"url_request/static_http_user_agent_settings.cc",
|
||||
"url_request/static_http_user_agent_settings.h",
|
||||
|
@ -124,7 +124,7 @@ diff --git a/net/url_request/trk_protocol_handler.cc b/net/url_request/trk_proto
|
|||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/net/url_request/trk_protocol_handler.cc
|
||||
@@ -0,0 +1,26 @@
|
||||
@@ -0,0 +1,25 @@
|
||||
+// Copyright (c) 2018 The ungoogled-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.
|
||||
|
@ -139,11 +139,10 @@ new file mode 100644
|
|||
+
|
||||
+TrkProtocolHandler::TrkProtocolHandler() = default;
|
||||
+
|
||||
+URLRequestJob* TrkProtocolHandler::MaybeCreateJob(
|
||||
+ URLRequest* request, NetworkDelegate* network_delegate) const {
|
||||
+std::unique_ptr<URLRequestJob> TrkProtocolHandler::CreateJob(
|
||||
+ URLRequest* request) const {
|
||||
+ LOG(ERROR) << "Blocked URL in TrkProtocolHandler: " << request->original_url();
|
||||
+ return new URLRequestErrorJob(
|
||||
+ request, network_delegate, ERR_BLOCKED_BY_CLIENT);
|
||||
+ return std::make_unique<URLRequestErrorJob>(request, ERR_BLOCKED_BY_CLIENT);
|
||||
+}
|
||||
+
|
||||
+bool TrkProtocolHandler::IsSafeRedirectTarget(const GURL& location) const {
|
||||
|
@ -155,7 +154,7 @@ diff --git a/net/url_request/trk_protocol_handler.h b/net/url_request/trk_protoc
|
|||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/net/url_request/trk_protocol_handler.h
|
||||
@@ -0,0 +1,33 @@
|
||||
@@ -0,0 +1,31 @@
|
||||
+// Copyright (c) 2018 The ungoogled-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.
|
||||
|
@ -177,9 +176,7 @@ new file mode 100644
|
|||
+ : public URLRequestJobFactory::ProtocolHandler {
|
||||
+ public:
|
||||
+ TrkProtocolHandler();
|
||||
+ URLRequestJob* MaybeCreateJob(
|
||||
+ URLRequest* request,
|
||||
+ NetworkDelegate* network_delegate) const override;
|
||||
+ std::unique_ptr<URLRequestJob> CreateJob(URLRequest* request) const override;
|
||||
+ bool IsSafeRedirectTarget(const GURL& location) const override;
|
||||
+
|
||||
+ private:
|
||||
|
@ -208,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;
|
||||
@@ -570,6 +572,12 @@ URLRequest::URLRequest(const GURL& url,
|
||||
@@ -566,6 +568,12 @@ URLRequest::URLRequest(const GURL& url,
|
||||
// Sanity check out environment.
|
||||
DCHECK(base::ThreadTaskRunnerHandle::IsSet());
|
||||
|
||||
|
@ -231,7 +228,7 @@ diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/ur
|
|||
+#include "net/url_request/trk_protocol_handler.h"
|
||||
#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_impl.h"
|
||||
#include "net/url_request/url_request_job_factory.h"
|
||||
@@ -614,6 +615,8 @@ std::unique_ptr<URLRequestContext> URLRequestContextBuilder::Build() {
|
||||
job_factory->SetProtocolHandler(scheme_handler.first,
|
||||
std::move(scheme_handler.second));
|
||||
|
|
|
@ -3,7 +3,7 @@ Date: Tue, 28 Jul 2020 12:28:58 +0200
|
|||
Subject: Block gateway attacks via websockets
|
||||
|
||||
---
|
||||
services/network/public/cpp/features.cc | 2 +-
|
||||
content/public/common/content_features.cc | 2 +-
|
||||
.../renderer/core/loader/base_fetch_context.h | 1 +
|
||||
.../core/loader/frame_fetch_context.cc | 18 +++++++++++++
|
||||
.../core/loader/frame_fetch_context.h | 1 +
|
||||
|
@ -15,18 +15,18 @@ Subject: Block gateway attacks via websockets
|
|||
.../modules/websockets/websocket_common.h | 4 +++
|
||||
10 files changed, 77 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc
|
||||
--- a/services/network/public/cpp/features.cc
|
||||
+++ b/services/network/public/cpp/features.cc
|
||||
@@ -125,7 +125,7 @@ const base::Feature kCrossOriginIsolated{"CrossOriginIsolated",
|
||||
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
|
||||
@@ -101,7 +101,7 @@ const base::Feature kBlockCredentialedSubresources{
|
||||
//
|
||||
// https://wicg.github.io/cors-rfc1918/#integration-fetch
|
||||
const base::Feature kBlockInsecurePrivateNetworkRequests{
|
||||
- "BlockInsecurePrivateNetworkRequests", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+ "BlockInsecurePrivateNetworkRequests", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
// Enables or defaults splittup up server (not proxy) entries in the
|
||||
// HttpAuthCache.
|
||||
// Use ThreadPriority::DISPLAY for browser UI and IO threads.
|
||||
#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
|
||||
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
|
||||
|
@ -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
|
||||
@@ -746,6 +746,24 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
|
||||
@@ -749,6 +749,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
|
||||
@@ -154,6 +154,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext {
|
||||
@@ -159,6 +159,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext,
|
||||
bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override;
|
||||
std::unique_ptr<WebSocketHandshakeThrottle> CreateWebSocketHandshakeThrottle()
|
||||
override;
|
||||
|
@ -146,7 +146,7 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc
|
|||
diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
|
||||
--- a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
|
||||
+++ b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
|
||||
@@ -202,6 +202,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) {
|
||||
@@ -214,6 +214,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -9,31 +9,23 @@ Download filters by checking Last-Modified header first
|
|||
Fix RestoreForeignSessionTab by recreating the tab (issue #681)
|
||||
---
|
||||
chrome/browser/after_startup_task_utils.cc | 5 +
|
||||
chrome/browser/browser_process.h | 7 +
|
||||
chrome/browser/browser_process_impl.cc | 28 ++
|
||||
chrome/browser/browser_process.h | 7 ++
|
||||
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 --
|
||||
.../browser/chrome_content_browser_client.cc | 16 ---
|
||||
.../sessions/session_restore_android.cc | 4 +-
|
||||
components/component_updater/BUILD.gn | 8 +
|
||||
.../adblock_updater_service.cc | 249 ++++++++++++++++++
|
||||
.../adblock_updater_service.h | 99 +++++++
|
||||
.../download_filters_task.cc | 221 ++++++++++++++++
|
||||
.../component_updater/download_filters_task.h | 129 +++++++++
|
||||
...ent_subresource_filter_throttle_manager.cc | 11 +
|
||||
.../content/browser/ruleset_service.cc | 33 ++-
|
||||
components/component_updater/BUILD.gn | 6 +
|
||||
...ent_subresource_filter_throttle_manager.cc | 11 ++
|
||||
.../content/browser/ruleset_service.cc | 33 ++++-
|
||||
.../content/browser/ruleset_service.h | 7 +-
|
||||
.../content/browser/ruleset_version.cc | 1 +
|
||||
.../content/browser/ruleset_version.h | 5 +
|
||||
.../browser/verified_ruleset_dealer.cc | 3 +
|
||||
.../browser/subresource_filter_features.cc | 113 +-------
|
||||
.../browser/subresource_filter_features.cc | 113 +-----------------
|
||||
.../core/common/common_features.cc | 2 +-
|
||||
.../frame_host/navigation_throttle_runner.cc | 5 -
|
||||
21 files changed, 812 insertions(+), 139 deletions(-)
|
||||
create mode 100644 components/component_updater/adblock_updater_service.cc
|
||||
create mode 100644 components/component_updater/adblock_updater_service.h
|
||||
create mode 100644 components/component_updater/download_filters_task.cc
|
||||
create mode 100644 components/component_updater/download_filters_task.h
|
||||
.../navigation_throttle_runner.cc | 5 -
|
||||
17 files changed, 112 insertions(+), 139 deletions(-)
|
||||
|
||||
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
|
||||
|
@ -68,7 +60,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
|
|||
|
||||
class BackgroundModeManager;
|
||||
class BrowserProcessPlatformPart;
|
||||
@@ -63,6 +64,10 @@ class ComponentUpdateService;
|
||||
@@ -67,6 +68,10 @@ class ComponentUpdateService;
|
||||
class SupervisedUserWhitelistInstaller;
|
||||
}
|
||||
|
||||
|
@ -79,7 +71,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
|
|||
namespace extensions {
|
||||
class EventRouterForwarder;
|
||||
}
|
||||
@@ -238,6 +243,8 @@ class BrowserProcess {
|
||||
@@ -249,6 +254,8 @@ class BrowserProcess {
|
||||
|
||||
virtual component_updater::ComponentUpdateService* component_updater() = 0;
|
||||
|
||||
|
@ -91,7 +83,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
|
|||
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
|
||||
@@ -1043,6 +1043,34 @@ BrowserProcessImpl::component_updater() {
|
||||
@@ -1050,6 +1050,34 @@ BrowserProcessImpl::component_updater() {
|
||||
return component_updater_.get();
|
||||
}
|
||||
|
||||
|
@ -129,7 +121,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
|
|||
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
|
||||
@@ -180,6 +180,7 @@ class BrowserProcessImpl : public BrowserProcess,
|
||||
@@ -184,6 +184,7 @@ class BrowserProcessImpl : public BrowserProcess,
|
||||
#endif
|
||||
|
||||
component_updater::ComponentUpdateService* component_updater() override;
|
||||
|
@ -137,7 +129,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc
|
|||
#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
|
||||
component_updater::SupervisedUserWhitelistInstaller*
|
||||
supervised_user_whitelist_installer() override;
|
||||
@@ -360,6 +361,8 @@ class BrowserProcessImpl : public BrowserProcess,
|
||||
@@ -371,6 +372,8 @@ class BrowserProcessImpl : public BrowserProcess,
|
||||
// but some users of component updater only install per-user.
|
||||
std::unique_ptr<component_updater::ComponentUpdateService> component_updater_;
|
||||
|
||||
|
@ -149,7 +141,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc
|
|||
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
|
||||
@@ -1581,6 +1581,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
|
||||
@@ -1588,6 +1588,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
|
||||
if (!parsed_command_line().HasSwitch(switches::kDisableComponentUpdate)) {
|
||||
component_updater::RegisterComponentsForUpdate(profile_->IsOffTheRecord(),
|
||||
profile_->GetPrefs());
|
||||
|
@ -161,14 +153,14 @@ 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
|
||||
@@ -65,7 +65,6 @@
|
||||
@@ -67,7 +67,6 @@
|
||||
#include "chrome/browser/hid/chrome_hid_delegate.h"
|
||||
#include "chrome/browser/interstitials/enterprise_util.h"
|
||||
#include "chrome/browser/lifetime/browser_shutdown.h"
|
||||
-#include "chrome/browser/lookalikes/lookalike_url_navigation_throttle.h"
|
||||
#include "chrome/browser/media/audio_service_util.h"
|
||||
#include "chrome/browser/media/router/media_router_feature.h"
|
||||
#include "chrome/browser/media/router/presentation/presentation_service_delegate_impl.h"
|
||||
#include "chrome/browser/media/webrtc/audio_debug_recordings_handler.h"
|
||||
@@ -219,7 +218,6 @@
|
||||
#include "components/metrics/client_info.h"
|
||||
#include "components/metrics_services_manager/metrics_services_manager.h"
|
||||
|
@ -177,7 +169,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
|
|||
#include "components/page_load_metrics/browser/metrics_web_contents_observer.h"
|
||||
#include "components/payments/content/payment_request_display_manager.h"
|
||||
#include "components/performance_manager/embedder/performance_manager_registry.h"
|
||||
@@ -3931,16 +3929,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
|
||||
@@ -3935,16 +3933,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
|
||||
content::NavigationHandle* handle) {
|
||||
std::vector<std::unique_ptr<content::NavigationThrottle>> throttles;
|
||||
|
||||
|
@ -194,7 +186,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
|
|||
#if BUILDFLAG(ENABLE_PLUGINS)
|
||||
MaybeAddThrottle(FlashDownloadInterception::MaybeCreateThrottleFor(handle),
|
||||
&throttles);
|
||||
@@ -4054,10 +4042,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
|
||||
@@ -4058,10 +4046,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
|
||||
&throttles);
|
||||
#endif
|
||||
|
||||
|
@ -235,737 +227,10 @@ diff --git a/components/component_updater/BUILD.gn b/components/component_update
|
|||
"component_updater_service.cc",
|
||||
"component_updater_service.h",
|
||||
"component_updater_service_internal.h",
|
||||
@@ -36,6 +42,8 @@ static_library("component_updater") {
|
||||
"//third_party/boringssl:boringssl",
|
||||
"//ui/base",
|
||||
"//url",
|
||||
+ "//services/network/public/mojom",
|
||||
+ "//services/network/public/mojom:trust_tokens_interface",
|
||||
]
|
||||
}
|
||||
|
||||
diff --git a/components/component_updater/adblock_updater_service.cc b/components/component_updater/adblock_updater_service.cc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/component_updater/adblock_updater_service.cc
|
||||
@@ -0,0 +1,249 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
+ Bromite is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ Bromite is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+
|
||||
+#include "components/component_updater/adblock_updater_service.h"
|
||||
+
|
||||
+#include <algorithm>
|
||||
+#include <map>
|
||||
+#include <string>
|
||||
+#include <utility>
|
||||
+#include <vector>
|
||||
+
|
||||
+#include "base/bind.h"
|
||||
+#include "base/bind_helpers.h"
|
||||
+#include "base/callback.h"
|
||||
+#include "base/files/file_path.h"
|
||||
+#include "base/files/file_util.h"
|
||||
+#include "base/logging.h"
|
||||
+#include "base/macros.h"
|
||||
+#include "base/threading/thread_checker.h"
|
||||
+#include "base/threading/thread_task_runner_handle.h"
|
||||
+#include "base/time/time.h"
|
||||
+#include "base/timer/timer.h"
|
||||
+#include "url/gurl.h"
|
||||
+#include "base/strings/safe_sprintf.h"
|
||||
+#include "base/strings/string_number_conversions.h"
|
||||
+#include "base/strings/string_split.h"
|
||||
+namespace adblock_updater {
|
||||
+
|
||||
+// all constants express seconds
|
||||
+// these could be made configurable
|
||||
+const int initial_check_delay = 5,
|
||||
+ next_check_delay = 60*60*24*7, // 1 week
|
||||
+ on_demand_check_delay = 60; // minimum 1 minute between each on-demand check
|
||||
+
|
||||
+AdBlockUpdaterService::AdBlockUpdaterService(scoped_refptr<network::SharedURLLoaderFactory> shared_url_network_factory, std::unique_ptr<component_updater::UpdateScheduler> scheduler, subresource_filter::RulesetService* ruleset_service)
|
||||
+ : ruleset_service_(ruleset_service), shared_url_network_factory_(shared_url_network_factory), scheduler_(std::move(scheduler)) {
|
||||
+ DCHECK(ruleset_service);
|
||||
+
|
||||
+ //TODO: retrieve filters URL from config/prefs
|
||||
+ filters_url_ = "https://www.bromite.org/filters/filters.dat";
|
||||
+}
|
||||
+
|
||||
+AdBlockUpdaterService::~AdBlockUpdaterService() {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+}
|
||||
+
|
||||
+void AdBlockUpdaterService::AddObserver(Observer* observer) {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+ observer_list_.AddObserver(observer);
|
||||
+}
|
||||
+
|
||||
+void AdBlockUpdaterService::RemoveObserver(Observer* observer) {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+ observer_list_.RemoveObserver(observer);
|
||||
+}
|
||||
+
|
||||
+//TODO: use this as in: base::Bind(&AdBlockUpdaterService::NotifyObservers, base::Unretained(this)
|
||||
+void AdBlockUpdaterService::NotifyObservers(Event event) {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+ for (auto& observer : observer_list_)
|
||||
+ observer.OnEvent(event);
|
||||
+}
|
||||
+
|
||||
+void AdBlockUpdaterService::Start() {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+
|
||||
+ // avoid multiple scheduling
|
||||
+ if (scheduled_)
|
||||
+ return;
|
||||
+ scheduled_ = true;
|
||||
+
|
||||
+ LOG(INFO) << "AdBlockUpdaterService: starting up. "
|
||||
+ << "First update attempt will take place in "
|
||||
+ << initial_check_delay << " seconds. "
|
||||
+ << "Next update attempt will take place in "
|
||||
+ << next_check_delay << " seconds. ";
|
||||
+
|
||||
+ scheduler_->Schedule(
|
||||
+ base::TimeDelta::FromSeconds(initial_check_delay),
|
||||
+ base::TimeDelta::FromSeconds(next_check_delay),
|
||||
+ base::Bind(&AdBlockUpdaterService::OnDemandScheduledUpdate,
|
||||
+ base::Unretained(this)), base::DoNothing());
|
||||
+}
|
||||
+
|
||||
+void AdBlockUpdaterService::OnDemandScheduledUpdate(component_updater::UpdateScheduler::OnFinishedCallback on_finished) {
|
||||
+ //TODO: call on_finished
|
||||
+ OnDemandUpdateAsNeeded(false, Callback());
|
||||
+}
|
||||
+
|
||||
+bool AdBlockUpdaterService::OnDemandUpdate(Callback on_finished) {
|
||||
+ return OnDemandUpdateAsNeeded(true, std::move(on_finished));
|
||||
+}
|
||||
+
|
||||
+bool AdBlockUpdaterService::OnDemandUpdateAsNeeded(bool is_foreground, Callback on_finished) {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+
|
||||
+ // Check if the request is too soon.
|
||||
+ if (!last_update_.is_null()) {
|
||||
+ base::TimeDelta delta =
|
||||
+ base::TimeTicks::Now() - last_update_;
|
||||
+ if (is_updating_ || (delta < base::TimeDelta::FromSeconds(on_demand_check_delay)))
|
||||
+ LOG(INFO) << "AdBlockUpdaterService: update not necessary.";
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ OnDemandUpdateInternal(is_foreground, std::move(on_finished));
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
+void AdBlockUpdaterService::OnDemandUpdateInternal(bool is_foreground, Callback on_finished) {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+
|
||||
+ if (is_updating_) {
|
||||
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
|
||||
+ FROM_HERE, base::BindOnce(std::move(on_finished),
|
||||
+ Error::UPDATE_IN_PROGRESS));
|
||||
+ return;
|
||||
+ }
|
||||
+ is_updating_ = true;
|
||||
+ last_update_ = base::TimeTicks::Now();
|
||||
+
|
||||
+ base::Time::Exploded e = {0};
|
||||
+ base::Time t = base::Time();
|
||||
+ auto version = ruleset_service_->GetMostRecentlyIndexedVersion();
|
||||
+ LOG(INFO) << "AdBlockUpdaterService: MostRecentIndexedVersion = " << version.content_version;
|
||||
+ std::vector<std::string> tokens =
|
||||
+ base::SplitString(version.content_version, ".", base::KEEP_WHITESPACE, base::SPLIT_WANT_ALL);
|
||||
+ int i = 0;
|
||||
+ bool failed = false;
|
||||
+ for (const std::string& token : tokens) {
|
||||
+ // parse as number
|
||||
+ int n = 0;
|
||||
+ if (!base::StringToInt(token, &n)) {
|
||||
+ failed = true;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ switch (i++) {
|
||||
+ case 0:
|
||||
+ e.year = 2019 + n;
|
||||
+ break;
|
||||
+ case 1:
|
||||
+ e.month = n + 1;
|
||||
+ break;
|
||||
+ case 2:
|
||||
+ e.day_of_month = n + 1;
|
||||
+ break;
|
||||
+ case 3:
|
||||
+ e.second = n % 60;
|
||||
+ n -= e.second;
|
||||
+ n /= 60;
|
||||
+ e.minute = n % 60;
|
||||
+ e.hour = n / 60;
|
||||
+ break;
|
||||
+ default:
|
||||
+ failed = true;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (failed) {
|
||||
+ LOG(WARNING) << "AdBlockUpdaterService: failed to parse most recent version as x.y.z.w dot-separated integers";
|
||||
+ } else {
|
||||
+ if (!base::Time::FromUTCExploded(e, &t))
|
||||
+ LOG(WARNING) << "AdBlockUpdaterService: failed to convert version to time.";
|
||||
+ }
|
||||
+
|
||||
+ auto task = base::MakeRefCounted<DownloadFiltersTask>(
|
||||
+ shared_url_network_factory_,
|
||||
+ is_foreground, filters_url_,
|
||||
+ t,
|
||||
+ base::BindOnce(&AdBlockUpdaterService::OnUpdateComplete, base::Unretained(this),
|
||||
+ std::move(on_finished)));
|
||||
+
|
||||
+ // run task now; task is responsible for clearing the is_updating status
|
||||
+ base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
|
||||
+ base::BindOnce(&DownloadFiltersTask::Run, base::Unretained(task.get())));
|
||||
+ tasks_.insert(task);
|
||||
+}
|
||||
+
|
||||
+void AdBlockUpdaterService::OnUpdateComplete(Callback on_finished,
|
||||
+ scoped_refptr<DownloadFiltersTask> task,
|
||||
+ Error error) {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+
|
||||
+ auto file_path = task->file_path();
|
||||
+ if (error == Error::NONE) {
|
||||
+ subresource_filter::UnindexedRulesetInfo ruleset_info;
|
||||
+ ruleset_info.ruleset_path = file_path;
|
||||
+ ruleset_info.delete_ruleset_path = true;
|
||||
+ ruleset_info.content_version = "0.0.0.0";
|
||||
+ DCHECK(!ruleset_info.ruleset_path.empty());
|
||||
+
|
||||
+ // convert time to version
|
||||
+ auto t = task->last_modified();
|
||||
+ bool ignore_version = t.is_null();
|
||||
+ if (!ignore_version) {
|
||||
+ base::Time::Exploded e;
|
||||
+ t.UTCExplode(&e);
|
||||
+
|
||||
+ // convert time to version
|
||||
+ const int major = e.year - 2019,
|
||||
+ minor = e.month - 1,
|
||||
+ patch = e.day_of_month - 1,
|
||||
+ revision = (e.hour*60+e.minute)*60 + e.second;
|
||||
+ if (major < 0)
|
||||
+ LOG(WARNING) << "AdBlockUpdaterService: too old Last-Modified header, ignoring version check.";
|
||||
+ else {
|
||||
+ char version_buffer[32];
|
||||
+ base::strings::SafeSNPrintf(version_buffer, sizeof(version_buffer), "%d.%d.%d.%d",
|
||||
+ major, minor, patch, revision);
|
||||
+
|
||||
+ ruleset_info.content_version = version_buffer;
|
||||
+
|
||||
+ LOG(INFO) << "AdBlockUpdaterService: indexing filters with version " << ruleset_info.content_version;
|
||||
+ }
|
||||
+ } else
|
||||
+ LOG(WARNING) << "AdBlockUpdaterService: invalid Last-Modified header, ignoring version check.";
|
||||
+ ruleset_service_->IndexAndStoreAndPublishRulesetIfNeeded(ruleset_info, ignore_version);
|
||||
+ } else {
|
||||
+ //TODO: generate event for ADBLOCK_NOT_UPDATED in case of error UPDATE_NOT_NEEDED
|
||||
+ }
|
||||
+
|
||||
+ //TODO: run these only when index-and-store is actually finished?
|
||||
+ if (!on_finished.is_null()) {
|
||||
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
|
||||
+ FROM_HERE, base::BindOnce(std::move(on_finished), error));
|
||||
+ }
|
||||
+
|
||||
+ // mark as not updating
|
||||
+ is_updating_ = false;
|
||||
+ tasks_.erase(task);
|
||||
+}
|
||||
+
|
||||
+} // namespace adblock_updater
|
||||
diff --git a/components/component_updater/adblock_updater_service.h b/components/component_updater/adblock_updater_service.h
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/component_updater/adblock_updater_service.h
|
||||
@@ -0,0 +1,99 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
+ Bromite is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ Bromite is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+
|
||||
+#ifndef COMPONENTS_ADBLOCK_UPDATER_SERVICE_H
|
||||
+#define COMPONENTS_ADBLOCK_UPDATER_SERVICE_H
|
||||
+
|
||||
+#include <stdint.h>
|
||||
+
|
||||
+#include <memory>
|
||||
+#include <string>
|
||||
+#include <vector>
|
||||
+
|
||||
+#include "base/callback_forward.h"
|
||||
+#include "base/gtest_prod_util.h"
|
||||
+#include "base/memory/ref_counted.h"
|
||||
+#include "base/version.h"
|
||||
+#include "build/build_config.h"
|
||||
+#include "components/component_updater/update_scheduler.h"
|
||||
+#include "url/gurl.h"
|
||||
+#include "components/component_updater/download_filters_task.h"
|
||||
+#include "components/subresource_filter/content/browser/ruleset_service.h"
|
||||
+#include "services/network/public/cpp/shared_url_loader_factory.h"
|
||||
+
|
||||
+namespace adblock_updater {
|
||||
+
|
||||
+// Called when a non-blocking call in this module completes.
|
||||
+using Callback = base::OnceCallback<void(Error error)>;
|
||||
+
|
||||
+class Observer {
|
||||
+ public:
|
||||
+ virtual ~Observer() {}
|
||||
+
|
||||
+ // Called by the update service when a state change happens.
|
||||
+ virtual void OnEvent(Event event) = 0;
|
||||
+};
|
||||
+
|
||||
+// The AdBlock update service is in charge of downloading and saving the
|
||||
+// AdBlock filters.
|
||||
+//
|
||||
+// All methods are safe to call ONLY from the browser's main thread.
|
||||
+class AdBlockUpdaterService {
|
||||
+ public:
|
||||
+ AdBlockUpdaterService(scoped_refptr<network::SharedURLLoaderFactory> shared_url_network_factory, std::unique_ptr<component_updater::UpdateScheduler> scheduler, subresource_filter::RulesetService* ruleset_service);
|
||||
+ ~AdBlockUpdaterService();
|
||||
+
|
||||
+ // Adds an observer for this class. An observer should not be added more
|
||||
+ // than once. The caller retains the ownership of the observer object.
|
||||
+ void AddObserver(Observer* observer);
|
||||
+
|
||||
+ // Removes an observer. It is safe for an observer to be removed while
|
||||
+ // the observers are being notified.
|
||||
+ void RemoveObserver(Observer* observer);
|
||||
+
|
||||
+ // Will schedule automatic updates, run in background.
|
||||
+ void Start();
|
||||
+
|
||||
+ // To be called for an user-triggered update.
|
||||
+ // Will not result in an actual update if the last update was too recently triggered.
|
||||
+ bool OnDemandUpdate(Callback on_finished);
|
||||
+
|
||||
+ private:
|
||||
+ void NotifyObservers(Event event);
|
||||
+ void OnDemandScheduledUpdate(component_updater::UpdateScheduler::OnFinishedCallback on_finished);
|
||||
+ bool OnDemandUpdateAsNeeded(bool is_foreground, Callback on_finished);
|
||||
+ void OnDemandUpdateInternal(bool is_foreground, Callback on_finished);
|
||||
+ void OnUpdateComplete(Callback callback, scoped_refptr<DownloadFiltersTask> task, Error error);
|
||||
+
|
||||
+ base::ObserverList<Observer>::Unchecked observer_list_;
|
||||
+ base::ThreadChecker thread_checker_;
|
||||
+ base::TimeTicks last_update_;
|
||||
+
|
||||
+ subresource_filter::RulesetService* ruleset_service_;
|
||||
+ std::string filters_url_;
|
||||
+
|
||||
+ scoped_refptr<network::SharedURLLoaderFactory> shared_url_network_factory_;
|
||||
+ std::unique_ptr<component_updater::UpdateScheduler> scheduler_;
|
||||
+
|
||||
+ bool is_updating_ = false;
|
||||
+ bool scheduled_ = false;
|
||||
+ std::set<scoped_refptr<DownloadFiltersTask>> tasks_;
|
||||
+};
|
||||
+
|
||||
+} // namespace adblock_updater
|
||||
+
|
||||
+#endif // COMPONENTS_ADBLOCK_UPDATER_SERVICE_H
|
||||
diff --git a/components/component_updater/download_filters_task.cc b/components/component_updater/download_filters_task.cc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/component_updater/download_filters_task.cc
|
||||
@@ -0,0 +1,221 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
+ Bromite is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ Bromite is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+#include "components/component_updater/download_filters_task.h"
|
||||
+
|
||||
+#include <utility>
|
||||
+
|
||||
+#include "base/files/file_util.h"
|
||||
+#include "base/bind.h"
|
||||
+#include "base/location.h"
|
||||
+#include "base/threading/thread_task_runner_handle.h"
|
||||
+#include "base/logging.h"
|
||||
+#include "net/base/load_flags.h"
|
||||
+#include "url/gurl.h"
|
||||
+
|
||||
+namespace adblock_updater {
|
||||
+
|
||||
+// maximum 10MB for the filters file
|
||||
+const int kMaxBodySize = 1024 * 1024 * 10;
|
||||
+
|
||||
+const int kMaxRetriesOnNetworkChange = 3;
|
||||
+
|
||||
+const net::NetworkTrafficAnnotationTag traffic_annotation =
|
||||
+ net::DefineNetworkTrafficAnnotation("update_client", R"(
|
||||
+ semantics {
|
||||
+ sender: "Bromite AdBlock filters updater"
|
||||
+ description:
|
||||
+ "The AdBlock filters updater is responsible for updating the subresource filters."
|
||||
+ trigger: "Manual or automatic AdBlock filters updates."
|
||||
+ data:
|
||||
+ "Subresource filters rulesets, binary format"
|
||||
+ destination: WEBSITE
|
||||
+ }
|
||||
+ )");
|
||||
+
|
||||
+DownloadFiltersTask::DownloadFiltersTask(scoped_refptr<network::SharedURLLoaderFactory> shared_url_network_factory,
|
||||
+ bool is_foreground, const std::string& filters_url, base::Time min_last_modified,
|
||||
+ Callback callback)
|
||||
+ : shared_url_network_factory_(shared_url_network_factory),
|
||||
+ is_foreground_(is_foreground),
|
||||
+ complete_callback_(std::move(callback)) {
|
||||
+ DCHECK(!filters_url.empty());
|
||||
+ filters_url_ = GURL(filters_url);
|
||||
+ min_last_modified_ = min_last_modified;
|
||||
+
|
||||
+ if (filters_url.empty()) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ createSimpleURLLoader(!min_last_modified_.is_null());
|
||||
+}
|
||||
+
|
||||
+void DownloadFiltersTask::createSimpleURLLoader(bool headers_only) {
|
||||
+ // always reset response-related fields
|
||||
+ response_code_ = -1;
|
||||
+ final_url_ = GURL();
|
||||
+ download_start_time_ = base::TimeTicks();
|
||||
+
|
||||
+ auto resource_request = std::make_unique<network::ResourceRequest>();
|
||||
+ resource_request->url = filters_url_;
|
||||
+ resource_request->load_flags = net::LOAD_DO_NOT_SEND_AUTH_DATA | net::LOAD_BYPASS_CACHE | net::LOAD_DISABLE_CACHE | net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES;
|
||||
+ resource_request->credentials_mode = network::mojom::CredentialsMode::kOmit;
|
||||
+ if (headers_only)
|
||||
+ // will chain two requests - first one is to check last modified header alone
|
||||
+ resource_request->method = "HEAD";
|
||||
+ else
|
||||
+ resource_request->method = "GET";
|
||||
+
|
||||
+ simple_url_loader_ = network::SimpleURLLoader::Create(
|
||||
+ std::move(resource_request), traffic_annotation);
|
||||
+ simple_url_loader_->SetRetryOptions(
|
||||
+ kMaxRetriesOnNetworkChange,
|
||||
+ network::SimpleURLLoader::RetryMode::RETRY_ON_NETWORK_CHANGE);
|
||||
+ simple_url_loader_->SetAllowPartialResults(false);
|
||||
+ simple_url_loader_->SetOnResponseStartedCallback(base::BindOnce(
|
||||
+ &DownloadFiltersTask::OnResponseStarted, base::Unretained(this)));
|
||||
+}
|
||||
+
|
||||
+DownloadFiltersTask::~DownloadFiltersTask() {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+}
|
||||
+
|
||||
+void DownloadFiltersTask::Run() {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+
|
||||
+ // will not be initialized if the URL was empty
|
||||
+ if (!simple_url_loader_) {
|
||||
+ TaskComplete(Error::INVALID_ARGUMENT);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ download_start_time_ = base::TimeTicks::Now();
|
||||
+ if (min_last_modified_.is_null()) {
|
||||
+ internalDownload();
|
||||
+ } else {
|
||||
+ simple_url_loader_->DownloadHeadersOnly(
|
||||
+ shared_url_network_factory_.get(),
|
||||
+ base::BindOnce(&DownloadFiltersTask::OnHeadersDownloadComplete, base::Unretained(this))
|
||||
+ );
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void DownloadFiltersTask::internalDownload() {
|
||||
+ simple_url_loader_->DownloadToTempFile(
|
||||
+ shared_url_network_factory_.get(),
|
||||
+ base::BindOnce(&DownloadFiltersTask::OnDownloadComplete, base::Unretained(this)),
|
||||
+ kMaxBodySize);
|
||||
+}
|
||||
+
|
||||
+void DownloadFiltersTask::OnHeadersDownloadComplete(scoped_refptr<net::HttpResponseHeaders> headers) {
|
||||
+ // something went wrong
|
||||
+ if (headers == nullptr) {
|
||||
+ OnDownloadComplete(base::FilePath());
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ // ignoring 'headers' as 'Last-Modified' has already been picked up by OnResponseStarted
|
||||
+ const base::TimeDelta dt =
|
||||
+ last_modified_ - min_last_modified_;
|
||||
+
|
||||
+ if (dt.InSeconds() > 0) {
|
||||
+ // prepare for next simple URL loader and trigger download
|
||||
+ createSimpleURLLoader(false);
|
||||
+ internalDownload();
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ // the remote filters are not more recent than known ones
|
||||
+ TaskComplete(Error::UPDATE_NOT_NEEDED);
|
||||
+}
|
||||
+
|
||||
+void DownloadFiltersTask::OnResponseStarted(
|
||||
+ const GURL& final_url,
|
||||
+ const network::mojom::URLResponseHead& response_head) {
|
||||
+
|
||||
+ final_url_ = final_url;
|
||||
+ response_code_ = response_head.headers ? response_head.headers->response_code() : -1;
|
||||
+
|
||||
+ if (!response_head.headers->GetLastModifiedValue(&last_modified_))
|
||||
+ LOG(WARNING) << "DownloadFiltersTask: fetching URL '" << final_url.spec() << "' with method " << (min_last_modified_.is_null() ? "GET" : "HEAD") << " (no Last-Modified header)";
|
||||
+ else
|
||||
+ LOG(INFO) << "DownloadFiltersTask: fetching URL '" << final_url.spec() << "' with method " << (min_last_modified_.is_null() ? "GET" : "HEAD");
|
||||
+}
|
||||
+
|
||||
+void DownloadFiltersTask::OnDownloadComplete(base::FilePath file_path) {
|
||||
+ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
|
||||
+ int net_error = simple_url_loader_->NetError();
|
||||
+ int64_t content_size = simple_url_loader_->GetContentSize();
|
||||
+
|
||||
+ const base::TimeTicks download_end_time(base::TimeTicks::Now());
|
||||
+ const base::TimeDelta download_time =
|
||||
+ download_end_time >= download_start_time_
|
||||
+ ? download_end_time - download_start_time_
|
||||
+ : base::TimeDelta();
|
||||
+
|
||||
+ // Consider a 5xx response from the server as an indication to terminate
|
||||
+ // the request and avoid overloading the server in this case.
|
||||
+ // is not accepting requests for the moment.
|
||||
+ int error = -1;
|
||||
+ if (!file_path.empty() && response_code_ == 200) {
|
||||
+ DCHECK_EQ(0, net_error);
|
||||
+ error = 0;
|
||||
+ } else if (response_code_ != -1) {
|
||||
+ error = response_code_;
|
||||
+ } else {
|
||||
+ error = net_error;
|
||||
+ }
|
||||
+
|
||||
+ LOG(INFO) << "DownloadFiltersTask: downloaded " << content_size << " bytes in "
|
||||
+ << download_time.InMilliseconds() << "ms from '" << final_url_.spec()
|
||||
+ << "' to '" << file_path << "' with net_error " << net_error << " and error " << error;
|
||||
+
|
||||
+ if (error) {
|
||||
+ TaskComplete(Error::DOWNLOAD_ERROR);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ file_path_ = file_path;
|
||||
+ TaskComplete(Error::NONE);
|
||||
+}
|
||||
+
|
||||
+void DownloadFiltersTask::Cancel() {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+
|
||||
+ LOG(INFO) << "DownloadFiltersTask: update cancelled";
|
||||
+
|
||||
+ // deletion of the simple_url_loader_ will cause cancellation of its active request, if any
|
||||
+
|
||||
+ TaskComplete(Error::UPDATE_CANCELED);
|
||||
+}
|
||||
+
|
||||
+void DownloadFiltersTask::TaskComplete(Error error) {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+
|
||||
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
|
||||
+ FROM_HERE, base::BindOnce(std::move(complete_callback_),
|
||||
+ scoped_refptr<DownloadFiltersTask>(this), error));
|
||||
+}
|
||||
+
|
||||
+base::Time DownloadFiltersTask::last_modified() {
|
||||
+ return last_modified_;
|
||||
+}
|
||||
+
|
||||
+base::FilePath DownloadFiltersTask::file_path() {
|
||||
+ return file_path_;
|
||||
+}
|
||||
+
|
||||
+} // namespace adblock_updater
|
||||
diff --git a/components/component_updater/download_filters_task.h b/components/component_updater/download_filters_task.h
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/component_updater/download_filters_task.h
|
||||
@@ -0,0 +1,129 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
+ Bromite is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ Bromite is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+
|
||||
+#ifndef COMPONENTS_DOWNLOAD_FILTERS_TASK_H_
|
||||
+#define COMPONENTS_DOWNLOAD_FILTERS_TASK_H_
|
||||
+
|
||||
+#include <string>
|
||||
+#include <vector>
|
||||
+
|
||||
+#include "base/callback.h"
|
||||
+#include "base/macros.h"
|
||||
+#include "base/memory/ref_counted.h"
|
||||
+#include "base/threading/thread_checker.h"
|
||||
+#include "components/update_client/network.h"
|
||||
+#include "url/gurl.h"
|
||||
+#include "base/files/file_path.h"
|
||||
+#include "services/network/public/cpp/shared_url_loader_factory.h"
|
||||
+#include "services/network/public/cpp/simple_url_loader.h"
|
||||
+
|
||||
+namespace adblock_updater {
|
||||
+
|
||||
+// Errors generated as a result of calling Run() or by the service itself (UPDATE_IN_PROGRESS or UPDATE_CANCELED)
|
||||
+enum class Error {
|
||||
+ NONE = 0,
|
||||
+ UPDATE_IN_PROGRESS = 1,
|
||||
+ UPDATE_CANCELED = 2,
|
||||
+ UPDATE_NOT_NEEDED = 3,
|
||||
+ DOWNLOAD_ERROR = 4,
|
||||
+ INVALID_ARGUMENT = 5,
|
||||
+ MAX_VALUE,
|
||||
+};
|
||||
+
|
||||
+enum class Event {
|
||||
+ // Sent before the update client does an update check.
|
||||
+ ADBLOCK_CHECKING_FOR_UPDATES = 1,
|
||||
+
|
||||
+ // Sent after the new filters have been downloaded but before the install
|
||||
+ // or the upgrade is attempted.
|
||||
+ ADBLOCK_UPDATE_READY,
|
||||
+
|
||||
+ // Sent when filters are being downloaded.
|
||||
+ ADBLOCK_UPDATE_DOWNLOADING,
|
||||
+
|
||||
+ // Sent when filters have been successfully updated.
|
||||
+ ADBLOCK_UPDATED,
|
||||
+
|
||||
+ // Sent when filters have not been updated because there
|
||||
+ // was no new version available
|
||||
+ //TODO: implement this with the headers check
|
||||
+ ADBLOCK_NOT_UPDATED,
|
||||
+
|
||||
+ // Sent when an error ocurred during an update for any reason, including
|
||||
+ // the update check itself failed, or the download of the update payload
|
||||
+ // failed, or applying the update failed.
|
||||
+ ADBLOCK_UPDATE_ERROR,
|
||||
+};
|
||||
+
|
||||
+// Defines a specialized task for updating AdBlock filters.
|
||||
+class DownloadFiltersTask : public base::RefCounted<DownloadFiltersTask> {
|
||||
+ public:
|
||||
+ using Callback =
|
||||
+ base::OnceCallback<void(scoped_refptr<DownloadFiltersTask> task, Error error)>;
|
||||
+
|
||||
+ // |shared_url_network_factory| is injected here for the URL loader factory.
|
||||
+ // |is_foreground| is true when the update task is initiated by the user.
|
||||
+ // |filters_url| is the URL to load filters from.
|
||||
+ // |complete_callback| is called to return the execution flow back to creator of
|
||||
+ // this task when the task is done.
|
||||
+ DownloadFiltersTask(scoped_refptr<network::SharedURLLoaderFactory> shared_url_network_factory,
|
||||
+ bool is_foreground, const std::string& filters_url, base::Time min_last_modified,
|
||||
+ Callback complete_callback);
|
||||
+
|
||||
+ void Run();
|
||||
+
|
||||
+ void Cancel();
|
||||
+
|
||||
+ base::FilePath file_path();
|
||||
+
|
||||
+ base::Time last_modified();
|
||||
+
|
||||
+ private:
|
||||
+ ~DownloadFiltersTask();
|
||||
+
|
||||
+ void OnDownloadProgress(uint64_t current);
|
||||
+ void OnResponseStarted(const GURL& final_url,
|
||||
+ const network::mojom::URLResponseHead& response_head);
|
||||
+ void OnDownloadComplete(base::FilePath file_path);
|
||||
+ void OnHeadersDownloadComplete(scoped_refptr<net::HttpResponseHeaders> headers);
|
||||
+ void createSimpleURLLoader(bool);
|
||||
+ void internalDownload();
|
||||
+
|
||||
+ // Called when the task has completed either because the task has run or
|
||||
+ // it has been canceled.
|
||||
+ void TaskComplete(Error error);
|
||||
+
|
||||
+ base::ThreadChecker thread_checker_;
|
||||
+ scoped_refptr<network::SharedURLLoaderFactory> shared_url_network_factory_;
|
||||
+ const bool is_foreground_;
|
||||
+ Callback complete_callback_;
|
||||
+ std::unique_ptr<network::SimpleURLLoader> simple_url_loader_;
|
||||
+
|
||||
+ // fields populated while downloading
|
||||
+ base::TimeTicks download_start_time_;
|
||||
+ GURL final_url_, filters_url_;
|
||||
+ int response_code_;
|
||||
+ base::Time last_modified_, min_last_modified_;
|
||||
+ base::FilePath file_path_;
|
||||
+
|
||||
+ friend class base::RefCounted<DownloadFiltersTask>;
|
||||
+ DISALLOW_COPY_AND_ASSIGN(DownloadFiltersTask);
|
||||
+};
|
||||
+
|
||||
+} // namespace update_client
|
||||
+
|
||||
+#endif // COMPONENTS_DOWNLOAD_FILTERS_TASK_H_
|
||||
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
|
||||
@@ -379,6 +379,17 @@ ContentSubresourceFilterThrottleManager::
|
||||
@@ -391,6 +391,17 @@ ContentSubresourceFilterThrottleManager::
|
||||
throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(),
|
||||
ad_tagging_state);
|
||||
}
|
||||
|
@ -986,7 +251,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f
|
|||
diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/components/subresource_filter/content/browser/ruleset_service.cc
|
||||
--- a/components/subresource_filter/content/browser/ruleset_service.cc
|
||||
+++ b/components/subresource_filter/content/browser/ruleset_service.cc
|
||||
@@ -45,9 +45,7 @@ namespace {
|
||||
@@ -46,9 +46,7 @@ namespace {
|
||||
|
||||
void RecordIndexAndWriteRulesetResult(
|
||||
RulesetService::IndexAndWriteRulesetResult result) {
|
||||
|
@ -997,7 +262,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
|
|||
}
|
||||
|
||||
// Implements operations on a `sentinel file`, which is used as a safeguard to
|
||||
@@ -197,10 +195,13 @@ RulesetService::RulesetService(
|
||||
@@ -227,10 +225,13 @@ RulesetService::RulesetService(
|
||||
RulesetService::~RulesetService() {}
|
||||
|
||||
void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded(
|
||||
|
@ -1013,7 +278,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
|
|||
// Trying to store a ruleset with the same version for a second time would
|
||||
// not only be futile, but would fail on Windows due to "File System
|
||||
// Tunneling" as long as the previously stored copy of the rules is still
|
||||
@@ -210,13 +211,16 @@ void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded(
|
||||
@@ -240,13 +241,16 @@ void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded(
|
||||
if (most_recently_indexed_version.IsCurrentFormatVersion() &&
|
||||
most_recently_indexed_version.content_version ==
|
||||
unindexed_ruleset_info.content_version) {
|
||||
|
@ -1030,7 +295,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
|
|||
return;
|
||||
}
|
||||
|
||||
@@ -235,6 +239,18 @@ IndexedRulesetVersion RulesetService::GetMostRecentlyIndexedVersion() const {
|
||||
@@ -265,6 +269,18 @@ IndexedRulesetVersion RulesetService::GetMostRecentlyIndexedVersion() const {
|
||||
IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||
const base::FilePath& indexed_ruleset_base_dir,
|
||||
const UnindexedRulesetInfo& unindexed_ruleset_info) {
|
||||
|
@ -1049,7 +314,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
|
|||
base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
|
||||
base::BlockingType::MAY_BLOCK);
|
||||
|
||||
@@ -242,6 +258,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||
@@ -272,6 +288,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||
unindexed_ruleset_info.ruleset_path,
|
||||
base::File::FLAG_OPEN | base::File::FLAG_READ);
|
||||
if (!unindexed_ruleset_file.IsValid()) {
|
||||
|
@ -1057,7 +322,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
|
|||
RecordIndexAndWriteRulesetResult(
|
||||
IndexAndWriteRulesetResult::FAILED_OPENING_UNINDEXED_RULESET);
|
||||
return IndexedRulesetVersion();
|
||||
@@ -255,6 +272,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||
@@ -285,6 +302,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||
indexed_ruleset_base_dir, indexed_version);
|
||||
|
||||
if (!base::CreateDirectory(indexed_ruleset_version_dir)) {
|
||||
|
@ -1065,7 +330,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
|
|||
RecordIndexAndWriteRulesetResult(
|
||||
IndexAndWriteRulesetResult::FAILED_CREATING_VERSION_DIR);
|
||||
return IndexedRulesetVersion();
|
||||
@@ -280,6 +298,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||
@@ -310,6 +328,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||
|
||||
RulesetIndexer indexer;
|
||||
if (!(*g_index_ruleset_func)(std::move(unindexed_ruleset_file), &indexer)) {
|
||||
|
@ -1073,7 +338,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
|
|||
RecordIndexAndWriteRulesetResult(
|
||||
IndexAndWriteRulesetResult::FAILED_PARSING_UNINDEXED_RULESET);
|
||||
return IndexedRulesetVersion();
|
||||
@@ -300,6 +319,8 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||
@@ -330,6 +349,8 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||
if (result != IndexAndWriteRulesetResult::SUCCESS)
|
||||
return IndexedRulesetVersion();
|
||||
|
||||
|
@ -1082,7 +347,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
|
|||
DCHECK(indexed_version.IsValid());
|
||||
return indexed_version;
|
||||
}
|
||||
@@ -424,6 +445,7 @@ void RulesetService::IndexAndStoreRuleset(
|
||||
@@ -454,6 +475,7 @@ void RulesetService::IndexAndStoreRuleset(
|
||||
void RulesetService::OnWrittenRuleset(WriteRulesetCallback result_callback,
|
||||
const IndexedRulesetVersion& version) {
|
||||
DCHECK(!result_callback.is_null());
|
||||
|
@ -1090,7 +355,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
|
|||
if (!version.IsValid())
|
||||
return;
|
||||
version.SaveToPrefs(local_state_);
|
||||
@@ -436,7 +458,6 @@ void RulesetService::OpenAndPublishRuleset(
|
||||
@@ -466,7 +488,6 @@ void RulesetService::OpenAndPublishRuleset(
|
||||
IndexedRulesetLocator::GetRulesetDataFilePath(
|
||||
IndexedRulesetLocator::GetSubdirectoryPathForVersion(
|
||||
indexed_ruleset_base_dir_, version));
|
||||
|
@ -1101,7 +366,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
|
|||
diff --git a/components/subresource_filter/content/browser/ruleset_service.h b/components/subresource_filter/content/browser/ruleset_service.h
|
||||
--- a/components/subresource_filter/content/browser/ruleset_service.h
|
||||
+++ b/components/subresource_filter/content/browser/ruleset_service.h
|
||||
@@ -173,7 +173,7 @@ class RulesetService : public base::SupportsWeakPtr<RulesetService> {
|
||||
@@ -181,7 +181,7 @@ class RulesetService : public base::SupportsWeakPtr<RulesetService> {
|
||||
//
|
||||
// Virtual so that it can be mocked out in tests.
|
||||
virtual void IndexAndStoreAndPublishRulesetIfNeeded(
|
||||
|
@ -1110,7 +375,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.h b/c
|
|||
|
||||
// Get the ruleset version associated with the current local_state_.
|
||||
IndexedRulesetVersion GetMostRecentlyIndexedVersion() const;
|
||||
@@ -206,6 +206,11 @@ class RulesetService : public base::SupportsWeakPtr<RulesetService> {
|
||||
@@ -214,6 +214,11 @@ class RulesetService : public base::SupportsWeakPtr<RulesetService> {
|
||||
const base::FilePath& indexed_ruleset_base_dir,
|
||||
const UnindexedRulesetInfo& unindexed_ruleset_info);
|
||||
|
||||
|
@ -1334,9 +599,9 @@ diff --git a/components/subresource_filter/core/common/common_features.cc b/comp
|
|||
+const base::Feature kAdTagging{"AdTagging", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
} // namespace subresource_filter
|
||||
diff --git a/content/browser/frame_host/navigation_throttle_runner.cc b/content/browser/frame_host/navigation_throttle_runner.cc
|
||||
--- a/content/browser/frame_host/navigation_throttle_runner.cc
|
||||
+++ b/content/browser/frame_host/navigation_throttle_runner.cc
|
||||
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
|
||||
@@ -124,11 +124,6 @@ void NavigationThrottleRunner::RegisterNavigationThrottles() {
|
||||
devtools_instrumentation::CreateNavigationThrottles(request)) {
|
||||
AddThrottle(std::move(throttle));
|
||||
|
|
|
@ -27,7 +27,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u
|
|||
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
|
||||
@@ -418,12 +418,13 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
|
||||
@@ -422,12 +422,13 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
|
||||
port_config.enable_nonproxied_udp = false;
|
||||
break;
|
||||
case DEFAULT:
|
||||
|
|
|
@ -1,42 +0,0 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu, 20 Feb 2020 22:44:06 +0100
|
||||
Subject: Disable AImageReader for ARM64/P and ARM64/Q
|
||||
|
||||
---
|
||||
gpu/config/gpu_finch_features.cc | 4 ++++
|
||||
media/base/media_switches.cc | 4 ++++
|
||||
2 files changed, 8 insertions(+)
|
||||
|
||||
diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
|
||||
--- a/gpu/config/gpu_finch_features.cc
|
||||
+++ b/gpu/config/gpu_finch_features.cc
|
||||
@@ -15,7 +15,11 @@ namespace features {
|
||||
|
||||
// Use android AImageReader when playing videos with MediaPlayer.
|
||||
const base::Feature kAImageReaderMediaPlayer{"AImageReaderMediaPlayer",
|
||||
+#ifdef ARCH_CPU_ARM64
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+#else
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+#endif
|
||||
|
||||
#if defined(OS_ANDROID)
|
||||
// Used to limit GL version to 2.0 for skia raster on Android.
|
||||
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
|
||||
@@ -549,7 +549,11 @@ const base::Feature kMediaDrmPreprovisioningAtStartup{
|
||||
|
||||
// Enables the Android Image Reader path for Video decoding(for AVDA and MCVD)
|
||||
const base::Feature kAImageReaderVideoOutput{"AImageReaderVideoOutput",
|
||||
+#ifdef ARCH_CPU_ARM64
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+#else
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+#endif
|
||||
|
||||
// Prevents using SurfaceLayer for videos. This is meant to be used by embedders
|
||||
// that cannot support SurfaceLayer at the moment.
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -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
|
||||
@@ -538,7 +538,7 @@ const base::Feature kMediaDrmPersistentLicense{
|
||||
@@ -557,7 +557,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",
|
||||
|
|
|
@ -11,7 +11,7 @@ Do not consider Jelly Bean unsupported
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java
|
||||
@@ -160,7 +160,7 @@ public class OmahaBase {
|
||||
@@ -159,7 +159,7 @@ public class OmahaBase {
|
||||
|
||||
/** See {@link #sIsDisabled}. */
|
||||
static boolean isDisabled() {
|
||||
|
|
|
@ -9,7 +9,7 @@ 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
|
||||
@@ -406,7 +406,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator implements Native
|
||||
@@ -428,7 +428,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator implements Native
|
||||
* displayed.
|
||||
*/
|
||||
private boolean triggerPromo(boolean intentWithEffect) {
|
||||
|
@ -18,7 +18,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
|
|||
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
|
||||
@@ -437,8 +437,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator implements Native
|
||||
@@ -459,8 +459,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator implements Native
|
||||
preferenceManager.writeBoolean(
|
||||
ChromePreferenceKeys.PROMOS_SKIPPED_ON_FIRST_START, true);
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: Disable feeds support by default
|
|||
diff --git a/components/feed/feed_feature_list.cc b/components/feed/feed_feature_list.cc
|
||||
--- a/components/feed/feed_feature_list.cc
|
||||
+++ b/components/feed/feed_feature_list.cc
|
||||
@@ -7,7 +7,7 @@
|
||||
@@ -11,7 +11,7 @@
|
||||
namespace feed {
|
||||
|
||||
const base::Feature kInterestFeedContentSuggestions{
|
||||
|
|
|
@ -40,19 +40,19 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse
|
|||
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
|
||||
@@ -340,7 +340,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
prefs::kMediaRouterFirstRunFlowAcknowledged,
|
||||
false,
|
||||
@@ -345,7 +345,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
media_router::prefs::kMediaRouterEnableCloudServices, false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
- registry->RegisterBooleanPref(prefs::kMediaRouterMediaRemotingEnabled, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kMediaRouterMediaRemotingEnabled, false);
|
||||
registry->RegisterListPref(prefs::kMediaRouterTabMirroringSources);
|
||||
|
||||
registry->RegisterDictionaryPref(prefs::kWebShareVisitedTargets);
|
||||
registry->RegisterBooleanPref(
|
||||
- media_router::prefs::kMediaRouterMediaRemotingEnabled, true);
|
||||
+ media_router::prefs::kMediaRouterMediaRemotingEnabled, false);
|
||||
registry->RegisterListPref(
|
||||
media_router::prefs::kMediaRouterTabMirroringSources);
|
||||
#endif
|
||||
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
|
||||
@@ -412,7 +412,7 @@ void ProfileImpl::RegisterProfilePrefs(
|
||||
@@ -409,7 +409,7 @@ void ProfileImpl::RegisterProfilePrefs(
|
||||
#endif
|
||||
|
||||
registry->RegisterBooleanPref(prefs::kForceEphemeralProfiles, false);
|
||||
|
|
|
@ -18,7 +18,7 @@ diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/br
|
|||
#include "components/ntp_tiles/most_visited_sites.h"
|
||||
#include "components/ntp_tiles/section_type.h"
|
||||
#include "ui/gfx/android/java_bitmap.h"
|
||||
@@ -44,7 +43,6 @@ using ntp_tiles::NTPTilesVector;
|
||||
@@ -45,7 +44,6 @@ using ntp_tiles::NTPTilesVector;
|
||||
using ntp_tiles::SectionType;
|
||||
using ntp_tiles::TileTitleSource;
|
||||
using ntp_tiles::TileSource;
|
||||
|
@ -26,7 +26,7 @@ diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/br
|
|||
|
||||
namespace {
|
||||
|
||||
@@ -235,7 +233,6 @@ void MostVisitedSitesBridge::RecordPageImpression(
|
||||
@@ -237,7 +235,6 @@ void MostVisitedSitesBridge::RecordPageImpression(
|
||||
JNIEnv* env,
|
||||
const JavaParamRef<jobject>& obj,
|
||||
jint jtiles_count) {
|
||||
|
@ -34,23 +34,23 @@ diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/br
|
|||
}
|
||||
|
||||
void MostVisitedSitesBridge::RecordTileImpression(
|
||||
@@ -248,6 +245,7 @@ void MostVisitedSitesBridge::RecordTileImpression(
|
||||
@@ -250,6 +247,7 @@ void MostVisitedSitesBridge::RecordTileImpression(
|
||||
jint jsource,
|
||||
jlong jdata_generation_time_ms,
|
||||
const JavaParamRef<jstring>& jurl) {
|
||||
const JavaParamRef<jobject>& jurl) {
|
||||
+#if 0
|
||||
GURL url(ConvertJavaStringToUTF8(env, jurl));
|
||||
std::unique_ptr<GURL> url = url::GURLAndroid::ToNativeGURL(env, jurl);
|
||||
TileTitleSource title_source = static_cast<TileTitleSource>(jtitle_source);
|
||||
TileSource source = static_cast<TileSource>(jsource);
|
||||
@@ -258,6 +256,7 @@ void MostVisitedSitesBridge::RecordTileImpression(
|
||||
@@ -260,6 +258,7 @@ void MostVisitedSitesBridge::RecordTileImpression(
|
||||
ntp_tiles::metrics::RecordTileImpression(ntp_tiles::NTPTileImpression(
|
||||
jindex, source, title_source, visual_type, icon_type,
|
||||
base::Time::FromJavaTime(jdata_generation_time_ms), url));
|
||||
base::Time::FromJavaTime(jdata_generation_time_ms), *url));
|
||||
+#endif
|
||||
}
|
||||
|
||||
void MostVisitedSitesBridge::RecordOpenedMostVisitedItem(
|
||||
@@ -268,12 +267,6 @@ void MostVisitedSitesBridge::RecordOpenedMostVisitedItem(
|
||||
@@ -270,12 +269,6 @@ void MostVisitedSitesBridge::RecordOpenedMostVisitedItem(
|
||||
jint title_source,
|
||||
jint source,
|
||||
jlong jdata_generation_time_ms) {
|
||||
|
@ -66,7 +66,7 @@ diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/br
|
|||
diff --git a/components/ntp_tiles/BUILD.gn b/components/ntp_tiles/BUILD.gn
|
||||
--- a/components/ntp_tiles/BUILD.gn
|
||||
+++ b/components/ntp_tiles/BUILD.gn
|
||||
@@ -22,8 +22,6 @@ static_library("ntp_tiles") {
|
||||
@@ -29,8 +29,6 @@ static_library("ntp_tiles") {
|
||||
"icon_cacher.h",
|
||||
"icon_cacher_impl.cc",
|
||||
"icon_cacher_impl.h",
|
||||
|
@ -75,7 +75,7 @@ diff --git a/components/ntp_tiles/BUILD.gn b/components/ntp_tiles/BUILD.gn
|
|||
"most_visited_sites.cc",
|
||||
"most_visited_sites.h",
|
||||
"ntp_tile.cc",
|
||||
@@ -79,7 +77,6 @@ source_set("unit_tests") {
|
||||
@@ -86,7 +84,6 @@ source_set("unit_tests") {
|
||||
"custom_links_manager_impl_unittest.cc",
|
||||
"custom_links_store_unittest.cc",
|
||||
"icon_cacher_impl_unittest.cc",
|
||||
|
|
|
@ -10,15 +10,15 @@ 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
|
||||
@@ -935,7 +935,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
@@ -939,7 +939,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
#endif // defined(OS_CHROMEOS)
|
||||
|
||||
registry->RegisterBooleanPref(metrics::prefs::kMetricsReportingEnabled,
|
||||
- GoogleUpdateSettings::GetCollectStatsConsent());
|
||||
+ false);
|
||||
}
|
||||
|
||||
#if defined(OS_ANDROID)
|
||||
registry->RegisterBooleanPref(
|
||||
DownloadRequestLimiter* BrowserProcessImpl::download_request_limiter() {
|
||||
diff --git a/chrome/browser/profiles/profile_io_data.cc b/chrome/browser/profiles/profile_io_data.cc
|
||||
--- a/chrome/browser/profiles/profile_io_data.cc
|
||||
+++ b/chrome/browser/profiles/profile_io_data.cc
|
||||
|
|
|
@ -9,7 +9,7 @@ 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
|
||||
@@ -1650,10 +1650,8 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
|
||||
@@ -1701,10 +1701,8 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
|
||||
}
|
||||
|
||||
PluginData* LocalFrame::GetPluginData() const {
|
||||
|
|
|
@ -8,15 +8,15 @@ 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 | 124 +-----------------
|
||||
.../browser/signin/SigninPromoController.java | 19 +--
|
||||
5 files changed, 5 insertions(+), 199 deletions(-)
|
||||
.../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
|
||||
@@ -980,7 +980,6 @@ chrome_java_resources = [
|
||||
@@ -931,7 +931,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",
|
||||
|
@ -71,15 +71,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
import org.chromium.chrome.browser.sync.ProfileSyncService;
|
||||
import org.chromium.components.bookmarks.BookmarkId;
|
||||
import org.chromium.components.bookmarks.BookmarkType;
|
||||
@@ -62,7 +61,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkItem>
|
||||
// ViewType.PERSONALIZED_SIGNIN_PROMO, ViewType.SYNC_PROMO, or ViewType.INVALID_PROMO
|
||||
@@ -64,7 +63,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkItem>
|
||||
@ViewType
|
||||
private int mPromoHeaderType = ViewType.INVALID_PROMO;
|
||||
private BookmarkDelegate mDelegate;
|
||||
- private BookmarkPromoHeader mPromoHeaderManager;
|
||||
private String mSearchText;
|
||||
private BookmarkId mCurrentFolder;
|
||||
private ProfileSyncService mProfileSyncService;
|
||||
@@ -185,9 +183,9 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkItem>
|
||||
@@ -187,9 +185,9 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkItem>
|
||||
case ViewType.PERSONALIZED_SIGNIN_PROMO:
|
||||
// fall through
|
||||
case ViewType.PERSONALIZED_SYNC_PROMO:
|
||||
|
@ -91,7 +91,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
case ViewType.FOLDER:
|
||||
return createViewHolderHelper(parent, R.layout.bookmark_folder_row);
|
||||
case ViewType.BOOKMARK:
|
||||
@@ -201,11 +199,7 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkItem>
|
||||
@@ -203,11 +201,7 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkItem>
|
||||
@Override
|
||||
public void onBindViewHolder(ViewHolder holder, int position) {
|
||||
if (holder.getItemViewType() == ViewType.PERSONALIZED_SIGNIN_PROMO) {
|
||||
|
@ -103,7 +103,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
} else if (!(holder.getItemViewType() == ViewType.SYNC_PROMO)) {
|
||||
BookmarkRow row = ((BookmarkRow) holder.itemView);
|
||||
BookmarkId id = getIdByPosition(position);
|
||||
@@ -234,7 +228,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkItem>
|
||||
@@ -236,7 +230,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkItem>
|
||||
case ViewType.PERSONALIZED_SIGNIN_PROMO:
|
||||
// fall through
|
||||
case ViewType.PERSONALIZED_SYNC_PROMO:
|
||||
|
@ -111,7 +111,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
break;
|
||||
default:
|
||||
// Other view holders don't have special recycling code.
|
||||
@@ -260,7 +253,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkItem>
|
||||
@@ -262,7 +255,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkItem>
|
||||
updateHeader(!topLevelFoldersShowing());
|
||||
};
|
||||
|
||||
|
@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
populateTopLevelFoldersList();
|
||||
|
||||
mElements = new ArrayList<>();
|
||||
@@ -275,7 +267,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkItem>
|
||||
@@ -277,7 +269,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkItem>
|
||||
mDelegate.getModel().removeObserver(mBookmarkModelObserver);
|
||||
mDelegate.getSelectionDelegate().removeObserver(this);
|
||||
mDelegate = null;
|
||||
|
@ -127,7 +127,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
mProfileSyncService.removeSyncStateChangedListener(this);
|
||||
}
|
||||
|
||||
@@ -385,23 +376,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkItem>
|
||||
@@ -387,23 +378,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkItem>
|
||||
return;
|
||||
} else if (currentUIState == BookmarkUIState.STATE_SEARCHING) {
|
||||
mPromoHeaderType = ViewType.INVALID_PROMO;
|
||||
|
@ -154,7 +154,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/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
|
||||
@@ -22,15 +22,9 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
||||
@@ -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;
|
||||
|
@ -170,7 +170,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
import org.chromium.components.signin.AccountManagerFacade;
|
||||
import org.chromium.components.signin.AccountManagerFacadeProvider;
|
||||
import org.chromium.components.signin.AccountsChangeObserver;
|
||||
@@ -46,7 +40,7 @@ import java.lang.annotation.RetentionPolicy;
|
||||
@@ -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).
|
||||
*/
|
||||
|
@ -179,7 +179,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
ProfileDataCache.Observer, AccountsChangeObserver {
|
||||
/**
|
||||
* Specifies the various states in which the Bookmarks promo can be.
|
||||
@@ -67,7 +61,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
@@ -65,7 +59,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
private static @Nullable @PromoState Integer sPromoStateForTests;
|
||||
|
||||
private final Context mContext;
|
||||
|
@ -187,7 +187,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
private final AccountManagerFacade mAccountManagerFacade;
|
||||
private final Runnable mPromoHeaderChangeAction;
|
||||
|
||||
@@ -83,12 +76,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
@@ -81,12 +74,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
mContext = context;
|
||||
mPromoHeaderChangeAction = promoHeaderChangeAction;
|
||||
|
||||
|
@ -200,7 +200,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
mAccountManagerFacade = AccountManagerFacadeProvider.getInstance();
|
||||
|
||||
mPromoState = calculatePromoState();
|
||||
@@ -116,15 +103,11 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
@@ -111,15 +98,11 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
* Clean ups the class. Must be called once done using this class.
|
||||
*/
|
||||
void destroy() {
|
||||
|
@ -216,7 +216,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -135,18 +118,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
@@ -130,18 +113,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
return mPromoState;
|
||||
}
|
||||
|
||||
|
@ -235,7 +235,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
/**
|
||||
* @return Sync promo header {@link ViewHolder} instance that can be used with
|
||||
* {@link RecyclerView}.
|
||||
@@ -158,54 +129,11 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
@@ -153,54 +124,11 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
return new ViewHolder(view) {};
|
||||
}
|
||||
|
||||
|
@ -266,7 +266,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
- private void setPersonalizedSigninPromoDeclined() {
|
||||
- SharedPreferencesManager.getInstance().writeBoolean(
|
||||
- ChromePreferenceKeys.SIGNIN_PROMO_PERSONALIZED_DECLINED, true);
|
||||
- updatePromoState();
|
||||
- mPromoState = calculatePromoState();
|
||||
- triggerPromoUpdate();
|
||||
- }
|
||||
-
|
||||
|
@ -291,7 +291,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
}
|
||||
|
||||
private @PromoState int calculatePromoState() {
|
||||
@@ -213,30 +141,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
@@ -208,53 +136,9 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
return sPromoStateForTests;
|
||||
}
|
||||
|
||||
|
@ -322,37 +322,30 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
return PromoState.PROMO_NONE;
|
||||
}
|
||||
|
||||
@@ -258,29 +162,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
mProfileDataCache.addObserver(this);
|
||||
}
|
||||
|
||||
- // AndroidSyncSettingsObserver implementation.
|
||||
- @Override
|
||||
- public void androidSyncSettingsChanged() {
|
||||
- // AndroidSyncSettings calls this method from non-UI threads.
|
||||
- PostTask.runOrPostTask(UiThreadTaskTraits.DEFAULT, () -> {
|
||||
- updatePromoState();
|
||||
- triggerPromoUpdate();
|
||||
- });
|
||||
- mPromoState = calculatePromoState();
|
||||
- triggerPromoUpdate();
|
||||
- }
|
||||
-
|
||||
- // SignInStateObserver implementation.
|
||||
- @Override
|
||||
- public void onSignedIn() {
|
||||
- updatePromoState();
|
||||
- mPromoState = calculatePromoState();
|
||||
- triggerPromoUpdate();
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public void onSignedOut() {
|
||||
- updatePromoState();
|
||||
- mPromoState = calculatePromoState();
|
||||
- triggerPromoUpdate();
|
||||
- }
|
||||
-
|
||||
// ProfileDataCache.Observer implementation.
|
||||
@Override
|
||||
public void onProfileDataUpdated(String accountId) {
|
||||
@@ -294,7 +175,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
@@ -268,7 +152,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
}
|
||||
|
||||
private void triggerPromoUpdate() {
|
||||
|
@ -363,7 +356,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/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
|
||||
@@ -69,24 +69,7 @@ public class SigninPromoController {
|
||||
@@ -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) {
|
||||
|
@ -372,8 +365,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPr
|
|||
- case SigninAccessPoint.BOOKMARK_MANAGER:
|
||||
- return getSigninPromoImpressionsCountBookmarks() < MAX_IMPRESSIONS_BOOKMARKS;
|
||||
- case SigninAccessPoint.NTP_CONTENT_SUGGESTIONS:
|
||||
- // There is no impression limit for NTP content suggestions.
|
||||
- return true;
|
||||
- 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;
|
||||
|
@ -385,7 +382,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPr
|
|||
- assert false : "Unexpected value for access point: " + accessPoint;
|
||||
- return false;
|
||||
- }
|
||||
+ return false;
|
||||
+ return false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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
|
||||
@@ -291,7 +291,7 @@ bool DomDistillerViewerSource::ShouldServiceRequest(
|
||||
@@ -292,7 +292,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
|
@ -1,36 +0,0 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 22 Aug 2020 12:46:20 +0200
|
||||
Subject: Disable scroll-to-text-fragment
|
||||
|
||||
---
|
||||
chrome/browser/ui/prefs/prefs_tab_helper.cc | 2 +-
|
||||
content/child/runtime_features.cc | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
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,
|
||||
!base::FeatureList::IsEnabled(features::kNoReferrers));
|
||||
registry->RegisterBooleanPref(prefs::kEnableEncryptedMedia, true);
|
||||
- registry->RegisterBooleanPref(prefs::kScrollToTextFragmentEnabled, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kScrollToTextFragmentEnabled, false);
|
||||
#if defined(OS_ANDROID)
|
||||
registry->RegisterDoublePref(prefs::kWebKitFontScaleFactor, 1.0);
|
||||
registry->RegisterBooleanPref(prefs::kWebKitForceEnableZoom,
|
||||
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
|
||||
@@ -491,7 +491,7 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) {
|
||||
{wrf::EnableWebGPU, switches::kEnableUnsafeWebGPU, true},
|
||||
{wrf::EnablePresentationAPI, switches::kDisablePresentationAPI, false},
|
||||
{wrf::EnableTextFragmentAnchor, switches::kDisableScrollToTextFragment,
|
||||
- false},
|
||||
+ true},
|
||||
{wrf::EnableRemotePlaybackAPI, switches::kDisableRemotePlaybackAPI,
|
||||
false},
|
||||
{wrf::EnableTimerThrottlingForBackgroundTabs,
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -15,15 +15,15 @@ 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
|
||||
@@ -397,7 +397,7 @@ const base::Feature kChromeSharingHubV15{"ChromeSharingHubV15",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
@@ -440,7 +440,7 @@ const base::Feature kDownloadProgressInfoBar{"DownloadProgressInfoBar",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kChromeSmartSelection{"ChromeSmartSelection",
|
||||
const base::Feature kDownloadFileProvider{"DownloadFileProvider",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kCommandLineOnNonRooted{"CommandLineOnNonRooted",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
const base::Feature kDownloadNotificationBadge{
|
||||
"DownloadNotificationBadge", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
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
|
||||
|
|
|
@ -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
|
||||
@@ -609,7 +609,7 @@ const base::Feature kSignedExchangePrefetchCacheForNavigations{
|
||||
@@ -631,7 +631,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
|
||||
@@ -619,7 +619,7 @@ const base::Feature kSignedExchangeSubresourcePrefetch{
|
||||
@@ -641,7 +641,7 @@ const base::Feature kSignedExchangeSubresourcePrefetch{
|
||||
// Origin-Signed HTTP Exchanges (for WebPackage Loading)
|
||||
// https://www.chromestatus.com/features/5745285984681984
|
||||
const base::Feature kSignedHTTPExchange{"SignedHTTPExchange",
|
||||
|
|
|
@ -23,7 +23,7 @@ diff --git a/chrome/browser/safe_browsing/download_protection/file_analyzer.cc b
|
|||
diff --git a/chrome/common/safe_browsing/BUILD.gn b/chrome/common/safe_browsing/BUILD.gn
|
||||
--- a/chrome/common/safe_browsing/BUILD.gn
|
||||
+++ b/chrome/common/safe_browsing/BUILD.gn
|
||||
@@ -41,38 +41,6 @@ if (safe_browsing_mode == 1) {
|
||||
@@ -48,38 +48,6 @@ if (safe_browsing_mode == 1) {
|
||||
public_deps = [ "//components/safe_browsing/core:csd_proto" ]
|
||||
}
|
||||
|
||||
|
@ -62,7 +62,7 @@ diff --git a/chrome/common/safe_browsing/BUILD.gn b/chrome/common/safe_browsing/
|
|||
source_set("disk_image_type_sniffer_mac") {
|
||||
sources = [
|
||||
"disk_image_type_sniffer_mac.cc",
|
||||
@@ -135,7 +103,6 @@ source_set("safe_browsing") {
|
||||
@@ -142,7 +110,6 @@ source_set("safe_browsing") {
|
||||
":archive_analyzer_results",
|
||||
":binary_feature_extractor",
|
||||
":download_type_util",
|
||||
|
|
|
@ -3,9 +3,10 @@ Date: Mon, 11 Nov 2019 23:09:48 +0100
|
|||
Subject: Disable sync services menu entry
|
||||
|
||||
---
|
||||
chrome/android/java/res/xml/main_preferences.xml | 11 ++---------
|
||||
chrome/android/java/res/xml/privacy_preferences.xml | 5 -----
|
||||
2 files changed, 2 insertions(+), 14 deletions(-)
|
||||
.../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(-)
|
||||
|
||||
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
|
||||
|
@ -44,10 +45,37 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
|||
android:order="5"/>
|
||||
- <org.chromium.components.browser_ui.settings.TextMessagePreference
|
||||
- android:key="sync_and_services_link"
|
||||
- android:summary="@string/privacy_sync_and_services_link"
|
||||
- android:summary="@string/privacy_sync_and_services_link_legacy"
|
||||
- app:allowDividerBelow="false"
|
||||
- android:order="7"/>
|
||||
</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
|
||||
@@ -256,23 +256,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);
|
||||
}
|
||||
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
160
build/patches/Disable-text-fragments-by-default.patch
Normal file
160
build/patches/Disable-text-fragments-by-default.patch
Normal file
|
@ -0,0 +1,160 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 22 Aug 2020 12:46:20 +0200
|
||||
Subject: Disable text fragments by default
|
||||
|
||||
Revert "[Text Fragment] Unflag fragment directive removal."
|
||||
---
|
||||
chrome/browser/about_flags.cc | 1 +
|
||||
chrome/browser/flag-metadata.json | 2 +-
|
||||
chrome/browser/ui/prefs/prefs_tab_helper.cc | 2 +-
|
||||
content/child/runtime_features.cc | 1 +
|
||||
third_party/blink/common/features.cc | 2 +-
|
||||
.../blink/renderer/core/dom/document.cc | 5 ++++
|
||||
.../text_fragment_anchor_metrics_test.cc | 29 +++++++------------
|
||||
.../platform/runtime_enabled_features.json5 | 3 +-
|
||||
8 files changed, 21 insertions(+), 24 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
|
||||
@@ -5258,6 +5258,7 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kEnableCSSOMViewScrollCoordinatesDescription, kOsAll,
|
||||
FEATURE_VALUE_TYPE(blink::features::kCSSOMViewScrollCoordinates)},
|
||||
|
||||
+ // will override runtime text fragment identifiers setting too
|
||||
{"enable-text-fragment-anchor",
|
||||
flag_descriptions::kEnableTextFragmentAnchorName,
|
||||
flag_descriptions::kEnableTextFragmentAnchorDescription, kOsAll,
|
||||
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
|
||||
@@ -2221,7 +2221,7 @@
|
||||
{
|
||||
"name": "enable-text-fragment-anchor",
|
||||
"owners": [ "bokan", "input-dev" ],
|
||||
- "expiry_milestone": 83
|
||||
+ "expiry_milestone": -1
|
||||
},
|
||||
{
|
||||
"name": "enable-tls13-early-data",
|
||||
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,
|
||||
!base::FeatureList::IsEnabled(features::kNoReferrers));
|
||||
registry->RegisterBooleanPref(prefs::kEnableEncryptedMedia, true);
|
||||
- registry->RegisterBooleanPref(prefs::kScrollToTextFragmentEnabled, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kScrollToTextFragmentEnabled, false);
|
||||
#if defined(OS_ANDROID)
|
||||
registry->RegisterDoublePref(prefs::kWebKitFontScaleFactor, 1.0);
|
||||
registry->RegisterBooleanPref(prefs::kWebKitForceEnableZoom,
|
||||
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() {
|
||||
{wf::EnableImplicitRootScroller, blink::features::kImplicitRootScroller},
|
||||
{wf::EnableCSSOMViewScrollCoordinates,
|
||||
blink::features::kCSSOMViewScrollCoordinates},
|
||||
+ // will set the TextFragmentIdentifiers runtime feature
|
||||
{wf::EnableTextFragmentAnchor, blink::features::kTextFragmentAnchor},
|
||||
{wf::EnableBackgroundFetch, features::kBackgroundFetch},
|
||||
{wf::EnableForcedColors, features::kForcedColors},
|
||||
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
|
||||
@@ -286,7 +286,7 @@ const base::Feature kStorageAccessAPI{"StorageAccessAPI",
|
||||
|
||||
// Enable text snippets in URL fragments. https://crbug.com/919204.
|
||||
const base::Feature kTextFragmentAnchor{"TextFragmentAnchor",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
// File handling integration. https://crbug.com/829689
|
||||
const base::Feature kFileHandlingAPI{"FileHandlingAPI",
|
||||
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
|
||||
@@ -4432,6 +4432,10 @@ void Document::SetURL(const KURL& url) {
|
||||
}
|
||||
}
|
||||
|
||||
+ // If text fragment identifiers are enabled, we strip the fragment directive
|
||||
+ // from the URL fragment.
|
||||
+ // E.g. "#id:~:text=a" --> "#id"
|
||||
+ if (RuntimeEnabledFeatures::TextFragmentIdentifiersEnabled(domWindow())) {
|
||||
// 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();
|
||||
@@ -4445,6 +4449,7 @@ void Document::SetURL(const KURL& url) {
|
||||
else
|
||||
new_url.SetFragmentIdentifier(fragment.Substring(0, start_pos));
|
||||
}
|
||||
+ }
|
||||
|
||||
url_ = new_url;
|
||||
access_entry_from_url_ = nullptr;
|
||||
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
|
||||
@@ -952,34 +952,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.
|
||||
+ const int kUncountedOrNotFound = GetParam() ? kUncounted : kNotFound;
|
||||
const int kUncountedOrFound = GetParam() ? kUncounted : kFound;
|
||||
|
||||
- // Note: We'll strip the fragment directive (i.e. anything after :~:) leaving
|
||||
- // just the element anchor. The fragment directive stripping behavior is now
|
||||
- // shipped unflagged so it should always be performed.
|
||||
+ // When the TextFragmentAnchors feature is on, we'll strip the fragment
|
||||
+ // directive (i.e. anything after :~:) leaving just the element anchor.
|
||||
+ const int kFoundIfDirectiveStripped = GetParam() ? kFound : kNotFound;
|
||||
|
||||
Vector<std::pair<String, int>> test_cases = {
|
||||
{"", kUncounted},
|
||||
{"#element", kFound},
|
||||
{"#doesntExist", kNotFound},
|
||||
- // `:~:foo` will be stripped so #element will be found and #doesntexist
|
||||
- // ##element will be not found.
|
||||
- {"#element:~:foo", kFound},
|
||||
+ {"#element:~:foo", kFoundIfDirectiveStripped},
|
||||
{"#doesntexist:~:foo", kNotFound},
|
||||
{"##element", kNotFound},
|
||||
- // If the feature is on, `:~:text=` will parse so we shouldn't count.
|
||||
- // Otherwise, it'll just be stripped so #element will be found.
|
||||
- {"#element:~:text=doesntexist", kUncountedOrFound},
|
||||
- {"#element:~:text=page", kUncountedOrFound},
|
||||
- // If the feature is on, `:~:text` is parsed so we don't count. If it's
|
||||
- // off the entire fragment is a directive that's stripped so no search is
|
||||
- // performed either.
|
||||
- {"#:~:text=doesntexist", kUncounted},
|
||||
- {"#:~:text=page", kUncounted},
|
||||
- {"#:~:text=name", kUncounted},
|
||||
- // If the feature is enabled, `:~:text` parses and we don't count the
|
||||
- // element-id. If the feature is off, we still strip the :~: directive
|
||||
- // and the remaining fragment does match an element id.
|
||||
+ {"#element:~:text=doesntexist", kUncountedOrNotFound},
|
||||
+ {"#element:~:text=page", kUncountedOrNotFound},
|
||||
+ {"#:~:text=doesntexist", kUncountedOrNotFound},
|
||||
+ {"#:~:text=page", kUncountedOrNotFound},
|
||||
+ {"#:~:text=name", kUncountedOrFound},
|
||||
{"#element:~:text=name", kUncountedOrFound}};
|
||||
|
||||
const int kNotFoundSample = 0;
|
||||
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
|
||||
@@ -1862,8 +1862,7 @@
|
||||
},
|
||||
{
|
||||
name: "TextFragmentIdentifiers",
|
||||
- origin_trial_feature_name: "TextFragmentIdentifiers",
|
||||
- status: "stable",
|
||||
+ origin_trial_feature_name: "TextFragmentIdentifiers"
|
||||
},
|
||||
{
|
||||
name: "ThirdPartyOriginTrials",
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -4,21 +4,21 @@ Subject: Disable third-party cookies by default
|
|||
|
||||
author: Chad Miller <chad.miller@canonical.com>
|
||||
---
|
||||
components/content_settings/core/browser/cookie_settings.cc | 2 +-
|
||||
chrome/browser/prefs/browser_prefs.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/components/content_settings/core/browser/cookie_settings.cc b/components/content_settings/core/browser/cookie_settings.cc
|
||||
--- a/components/content_settings/core/browser/cookie_settings.cc
|
||||
+++ b/components/content_settings/core/browser/cookie_settings.cc
|
||||
@@ -65,7 +65,7 @@ void CookieSettings::GetCookieSettings(
|
||||
void CookieSettings::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
- prefs::kBlockThirdPartyCookies, false,
|
||||
+ prefs::kBlockThirdPartyCookies, true,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
registry->RegisterIntegerPref(
|
||||
prefs::kCookieControlsMode,
|
||||
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
|
||||
@@ -535,7 +535,7 @@ void RegisterProfilePrefsForMigration(
|
||||
|
||||
registry->RegisterDictionaryPref(kObservedSessionTime);
|
||||
|
||||
- registry->RegisterBooleanPref(kBlockThirdPartyCookies, false);
|
||||
+ registry->RegisterBooleanPref(kBlockThirdPartyCookies, true);
|
||||
|
||||
registry->RegisterTimePref(kPluginsDeprecationInfobarLastShown, base::Time());
|
||||
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
@ -3,49 +3,22 @@ Date: Thu, 27 Feb 2020 23:23:59 +0100
|
|||
Subject: Do not compile QR code sharing
|
||||
|
||||
---
|
||||
chrome/android/java/AndroidManifest.xml | 16 ---------------
|
||||
.../ChromeProvidedSharingOptionsProvider.java | 20 -------------------
|
||||
chrome/browser/share/android/java_sources.gni | 18 -----------------
|
||||
3 files changed, 54 deletions(-)
|
||||
.../ChromeProvidedSharingOptionsProvider.java | 17 -----------------
|
||||
chrome/browser/share/android/java_sources.gni | 18 ------------------
|
||||
2 files changed, 35 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
|
||||
@@ -740,22 +740,6 @@ by a child template that "extends" this file.
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
- <activity
|
||||
- android:name="org.chromium.chrome.browser.share.qrcode.QrCodeShareActivity"
|
||||
- android:icon="@drawable/ic_launcher"
|
||||
- android:label="@string/qr_code_share_icon_label"
|
||||
- android:enabled="false"
|
||||
- android:excludeFromRecents="true"
|
||||
- android:exported="true"
|
||||
- android:noHistory="true"
|
||||
- android:theme="@android:style/Theme.NoDisplay"
|
||||
- android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize" >
|
||||
- <intent-filter>
|
||||
- <action android:name="android.intent.action.SEND" />
|
||||
- <category android:name="android.intent.category.DEFAULT" />
|
||||
- <data android:mimeType="text/plain" />
|
||||
- </intent-filter>
|
||||
- </activity>
|
||||
|
||||
<activity
|
||||
android:name="org.chromium.chrome.browser.vr.VrCancelAnimationActivity"
|
||||
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
|
||||
@@ -23,7 +23,6 @@ import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.send_tab_to_self.SendTabToSelfShareActivity;
|
||||
@@ -24,7 +24,6 @@ import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.settings.SettingsLauncher;
|
||||
import org.chromium.chrome.browser.share.ChromeShareExtras;
|
||||
import org.chromium.chrome.browser.share.link_to_text.LinkToTextCoordinator;
|
||||
-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;
|
||||
import org.chromium.chrome.browser.tab.Tab;
|
||||
@@ -151,10 +150,6 @@ class ChromeProvidedSharingOptionsProvider {
|
||||
@@ -222,10 +221,6 @@ class ChromeProvidedSharingOptionsProvider {
|
||||
&& ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_SHARE_HIGHLIGHTS_ANDROID)) {
|
||||
mOrderedFirstPartyOptions.add(createHighlightsFirstPartyOption());
|
||||
}
|
||||
|
@ -56,35 +29,32 @@ 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());
|
||||
}
|
||||
@@ -265,21 +260,6 @@ class ChromeProvidedSharingOptionsProvider {
|
||||
ContentType.IMAGE));
|
||||
@@ -344,18 +339,6 @@ class ChromeProvidedSharingOptionsProvider {
|
||||
.build();
|
||||
}
|
||||
|
||||
- private FirstPartyOption createQrCodeFirstPartyOption() {
|
||||
- PropertyModel propertyModel = ShareSheetPropertyModelBuilder.createPropertyModel(
|
||||
- AppCompatResources.getDrawable(mActivity, R.drawable.qr_code),
|
||||
- mActivity.getResources().getString(R.string.qr_code_share_icon_label), (view) -> {
|
||||
- RecordUserAction.record("SharingHubAndroid.QRCodeSelected");
|
||||
- recordTimeToShare(mShareStartTime);
|
||||
- mBottomSheetController.hideContent(mBottomSheetContent, true);
|
||||
- return new FirstPartyOptionBuilder(
|
||||
- ContentType.LINK_PAGE_VISIBLE, ContentType.LINK_PAGE_NOT_VISIBLE, ContentType.IMAGE)
|
||||
- .setIcon(R.drawable.qr_code, R.string.qr_code_share_icon_label)
|
||||
- .setFeatureNameForMetrics("SharingHubAndroid.QRCodeSelected")
|
||||
- .setOnClickCallback((view) -> {
|
||||
- QrCodeCoordinator qrCodeCoordinator = new QrCodeCoordinator(mActivity, mUrl);
|
||||
- qrCodeCoordinator.show();
|
||||
- });
|
||||
- return new FirstPartyOption(propertyModel,
|
||||
- Arrays.asList(ContentType.LINK_PAGE_VISIBLE, ContentType.LINK_PAGE_NOT_VISIBLE,
|
||||
- ContentType.IMAGE));
|
||||
- })
|
||||
- .build();
|
||||
- }
|
||||
-
|
||||
private FirstPartyOption createPrintingFirstPartyOption() {
|
||||
PropertyModel propertyModel = ShareSheetPropertyModelBuilder.createPropertyModel(
|
||||
AppCompatResources.getDrawable(mActivity, R.drawable.sharing_print),
|
||||
return new FirstPartyOptionBuilder(ContentType.LINK_PAGE_VISIBLE)
|
||||
.setIcon(R.drawable.sharing_print, R.string.print_share_activity_title)
|
||||
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
|
||||
@@ -8,24 +8,6 @@ share_java_sources = [
|
||||
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/BitmapDownloadRequest.java",
|
||||
@@ -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",
|
||||
- "//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",
|
||||
|
|
|
@ -15,7 +15,7 @@ Do not tick "Don't show again" by default
|
|||
diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java
|
||||
--- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java
|
||||
+++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java
|
||||
@@ -63,10 +63,6 @@ public class DownloadLocationCustomView
|
||||
@@ -73,10 +73,6 @@ public class DownloadLocationCustomView
|
||||
CharSequence title) {
|
||||
mDialogType = dialogType;
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: Do not store passwords by default
|
|||
diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc
|
||||
--- a/components/password_manager/core/browser/password_manager.cc
|
||||
+++ b/components/password_manager/core/browser/password_manager.cc
|
||||
@@ -207,10 +207,10 @@ FormData SimplifiedFormDataFromFormStructure(
|
||||
@@ -205,10 +205,10 @@ FormData SimplifiedFormDataFromFormStructure(
|
||||
void PasswordManager::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
|
|
46
build/patches/DoH-secure-mode-by-default.patch
Normal file
46
build/patches/DoH-secure-mode-by-default.patch
Normal file
|
@ -0,0 +1,46 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 26 Sep 2020 14:23:19 +0100
|
||||
Subject: DoH secure mode by default
|
||||
|
||||
---
|
||||
.../browser/net/stub_resolver_config_reader.cc | 17 +----------------
|
||||
1 file changed, 1 insertion(+), 16 deletions(-)
|
||||
|
||||
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,
|
||||
if (entries.count("dns-over-https@1")) {
|
||||
// The user has "Enabled" selected.
|
||||
local_state_->SetString(prefs::kDnsOverHttpsMode,
|
||||
- SecureDnsConfig::kModeAutomatic);
|
||||
+ SecureDnsConfig::kModeSecure);
|
||||
} 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(
|
||||
check_parental_controls = false;
|
||||
}
|
||||
|
||||
- // Check parental controls last because it can be expensive and should only be
|
||||
- // checked if necessary for the otherwise-determined mode.
|
||||
if (check_parental_controls) {
|
||||
- if (ShouldDisableDohForParentalControls()) {
|
||||
- forced_management_mode =
|
||||
- SecureDnsConfig::ManagementMode::kDisabledParentalControls;
|
||||
- secure_dns_mode = net::SecureDnsMode::kOff;
|
||||
- mode_details =
|
||||
- SecureDnsModeDetailsForHistogram::kOffByDetectedParentalControls;
|
||||
-
|
||||
- // If parental controls had not previously been checked, need to update
|
||||
- // network service.
|
||||
- if (!parental_controls_checked_)
|
||||
- update_network_service = true;
|
||||
- }
|
||||
-
|
||||
parental_controls_checked_ = true;
|
||||
}
|
||||
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -1,81 +0,0 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 26 Sep 2020 14:23:19 +0100
|
||||
Subject: Enable DoH
|
||||
|
||||
---
|
||||
.../browser/net/stub_resolver_config_reader.cc | 17 +----------------
|
||||
.../privacy/secure_dns/SecureDnsBridge.java | 2 +-
|
||||
chrome/common/chrome_features.cc | 4 ++--
|
||||
3 files changed, 4 insertions(+), 19 deletions(-)
|
||||
|
||||
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,
|
||||
if (entries.count("dns-over-https@1")) {
|
||||
// The user has "Enabled" selected.
|
||||
local_state_->SetString(prefs::kDnsOverHttpsMode,
|
||||
- SecureDnsConfig::kModeAutomatic);
|
||||
+ SecureDnsConfig::kModeSecure);
|
||||
} 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(
|
||||
check_parental_controls = false;
|
||||
}
|
||||
|
||||
- // Check parental controls last because it can be expensive and should only be
|
||||
- // checked if necessary for the otherwise-determined mode.
|
||||
if (check_parental_controls) {
|
||||
- if (ShouldDisableDohForParentalControls()) {
|
||||
- forced_management_mode =
|
||||
- SecureDnsConfig::ManagementMode::kDisabledParentalControls;
|
||||
- secure_dns_mode = net::DnsConfig::SecureDnsMode::OFF;
|
||||
- mode_details =
|
||||
- SecureDnsModeDetailsForHistogram::kOffByDetectedParentalControls;
|
||||
-
|
||||
- // If parental controls had not previously been checked, need to update
|
||||
- // network service.
|
||||
- if (!parental_controls_checked_)
|
||||
- update_network_service = true;
|
||||
- }
|
||||
-
|
||||
parental_controls_checked_ = true;
|
||||
}
|
||||
|
||||
diff --git a/chrome/browser/privacy/java/src/org/chromium/chrome/browser/privacy/secure_dns/SecureDnsBridge.java b/chrome/browser/privacy/java/src/org/chromium/chrome/browser/privacy/secure_dns/SecureDnsBridge.java
|
||||
--- a/chrome/browser/privacy/java/src/org/chromium/chrome/browser/privacy/secure_dns/SecureDnsBridge.java
|
||||
+++ b/chrome/browser/privacy/java/src/org/chromium/chrome/browser/privacy/secure_dns/SecureDnsBridge.java
|
||||
@@ -46,7 +46,7 @@ class SecureDnsBridge {
|
||||
// Must match features::kDnsOverHttpsShowUiParam.
|
||||
final String showUiParam = "ShowUi";
|
||||
// Must match the default value for this param.
|
||||
- final boolean showUiParamDefault = false;
|
||||
+ final boolean showUiParamDefault = true;
|
||||
|
||||
return ChromeFeatureList.getFieldTrialParamByFeatureAsBoolean(
|
||||
ChromeFeatureList.DNS_OVER_HTTPS, showUiParam, showUiParamDefault);
|
||||
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
|
||||
@@ -263,7 +263,7 @@ const base::Feature kDesktopPWAsWithoutExtensions{
|
||||
|
||||
// Enable DNS over HTTPS (DoH).
|
||||
const base::Feature kDnsOverHttps{"DnsOverHttps",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
// Provides a mechanism to remove providers from the dropdown list in the
|
||||
// settings UI. Separate multiple provider ids with commas. See the
|
||||
@@ -278,7 +278,7 @@ const base::FeatureParam<bool> kDnsOverHttpsFallbackParam{&kDnsOverHttps,
|
||||
|
||||
// Sets whether the DoH setting is displayed in the settings UI.
|
||||
const base::FeatureParam<bool> kDnsOverHttpsShowUiParam{&kDnsOverHttps,
|
||||
- "ShowUi", false};
|
||||
+ "ShowUi", true};
|
||||
|
||||
// Supply one or more space-separated DoH server URI templates to use when this
|
||||
// feature is enabled. If no templates are specified, then a hardcoded mapping
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -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
|
||||
@@ -690,11 +690,7 @@ const base::Feature kShowTrustedPublisherURL{"ShowTrustedPublisherURL",
|
||||
@@ -724,11 +724,7 @@ const base::Feature kShowTrustedPublisherURL{"ShowTrustedPublisherURL",
|
||||
// browser_features, as they are only used on the browser side.
|
||||
const base::Feature kSitePerProcess {
|
||||
"site-per-process",
|
||||
|
|
23
build/patches/Enable-SplitCacheByNetworkIsolationKey.patch
Normal file
23
build/patches/Enable-SplitCacheByNetworkIsolationKey.patch
Normal file
|
@ -0,0 +1,23 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu, 10 Dec 2020 21:52:35 +0100
|
||||
Subject: Enable SplitCacheByNetworkIsolationKey
|
||||
|
||||
---
|
||||
net/base/features.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/net/base/features.cc b/net/base/features.cc
|
||||
--- a/net/base/features.cc
|
||||
+++ b/net/base/features.cc
|
||||
@@ -61,7 +61,7 @@ const base::Feature kNetworkQualityEstimator{"NetworkQualityEstimator",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kSplitCacheByNetworkIsolationKey{
|
||||
- "SplitCacheByNetworkIsolationKey", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+ "SplitCacheByNetworkIsolationKey", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kSplitHostCacheByNetworkIsolationKey{
|
||||
"SplitHostCacheByNetworkIsolationKey", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -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
|
||||
@@ -898,7 +898,7 @@
|
||||
@@ -913,7 +913,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
|
||||
@@ -456,7 +456,7 @@ const base::Feature kContextualSearchTranslations{
|
||||
@@ -428,7 +428,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
|
||||
@@ -290,6 +290,10 @@ config("compiler") {
|
||||
@@ -286,6 +286,10 @@ config("compiler") {
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -51,7 +51,7 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
|
|||
+ }
|
||||
+
|
||||
# Linker warnings.
|
||||
if (fatal_linker_warnings && !is_mac && !is_ios && current_os != "aix") {
|
||||
if (fatal_linker_warnings && !is_apple && current_os != "aix") {
|
||||
ldflags += [ "-Wl,--fatal-warnings" ]
|
||||
--
|
||||
2.17.1
|
||||
|
|
|
@ -15,7 +15,7 @@ Expose show-legacy-tls-warnings flag on Android as well
|
|||
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
|
||||
@@ -5798,11 +5798,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -6045,11 +6045,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
FEATURE_VALUE_TYPE(features::kElasticOverscrollWin)},
|
||||
#endif
|
||||
|
||||
|
@ -74,8 +74,8 @@ diff --git a/components/security_state/core/features.cc b/components/security_st
|
|||
diff --git a/net/base/features.cc b/net/base/features.cc
|
||||
--- a/net/base/features.cc
|
||||
+++ b/net/base/features.cc
|
||||
@@ -153,7 +153,7 @@ const base::Feature kTurnOffStreamingMediaCaching{
|
||||
"TurnOffStreamingMediaCaching", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
@@ -152,7 +152,7 @@ const base::Feature kTurnOffStreamingMediaCachingAlways{
|
||||
"TurnOffStreamingMediaCachingAlways", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kLegacyTLSEnforced{"LegacyTLSEnforced",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
|
|
@ -9,7 +9,7 @@ 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
|
||||
@@ -303,7 +303,7 @@ const base::Feature kWebComponentsV0{"WebComponentsV0",
|
||||
@@ -308,7 +308,7 @@ const base::Feature kWebComponentsV0{"WebComponentsV0",
|
||||
// Prefetch request properties are updated to be privacy-preserving. See
|
||||
// crbug.com/988956.
|
||||
const base::Feature kPrefetchPrivacyChanges{"PrefetchPrivacyChanges",
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: Enable reduced-referrer-granularity 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
|
||||
@@ -698,7 +698,7 @@ const base::Feature kCompositingOptimizations{
|
||||
@@ -735,7 +735,7 @@ const base::Feature kCompositingOptimizations{
|
||||
// Reduce the amount of information in the default 'referer' header for
|
||||
// cross-origin requests.
|
||||
const base::Feature kReducedReferrerGranularity{
|
||||
|
|
|
@ -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};
|
||||
|
||||
const base::Feature kMeasureMemoryExperiment{"MeasureMemoryExperiment",
|
||||
base::FEATURE_DISABLED_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
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 20 Jan 2018 19:44:43 +0100
|
||||
Subject: Fix crash when accessing page info / site settings
|
||||
|
||||
---
|
||||
components/permissions/permission_manager.cc | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/components/permissions/permission_manager.cc b/components/permissions/permission_manager.cc
|
||||
--- a/components/permissions/permission_manager.cc
|
||||
+++ b/components/permissions/permission_manager.cc
|
||||
@@ -676,6 +676,10 @@ PermissionResult PermissionManager::GetPermissionStatusHelper(
|
||||
if (status != CONTENT_SETTING_DEFAULT)
|
||||
return PermissionResult(status, PermissionStatusSource::UNSPECIFIED);
|
||||
PermissionContextBase* context = GetPermissionContext(permission);
|
||||
+ if (context == nullptr) {
|
||||
+ return PermissionResult(CONTENT_SETTING_BLOCK, PermissionStatusSource::UNSPECIFIED);
|
||||
+ }
|
||||
+
|
||||
PermissionResult result = context->GetPermissionStatus(
|
||||
render_frame_host, canonical_requesting_origin.GetOrigin(),
|
||||
embedding_origin.GetOrigin());
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -3,25 +3,15 @@ Date: Sat, 5 Sep 2020 21:38:15 +0200
|
|||
Subject: Hardening against incognito mode detection
|
||||
|
||||
---
|
||||
storage/browser/quota/quota_features.cc | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
storage/browser/quota/quota_features.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/storage/browser/quota/quota_features.cc b/storage/browser/quota/quota_features.cc
|
||||
--- a/storage/browser/quota/quota_features.cc
|
||||
+++ b/storage/browser/quota/quota_features.cc
|
||||
@@ -27,15 +27,15 @@ const base::Feature kQuotaUnlimitedPoolSize{"QuotaUnlimitedPoolSize",
|
||||
// IncognitoDynamicQuota enables dynamic assignment of quota to incognito mode
|
||||
// based on the physical memory size and removes the fixed upper cap for it.
|
||||
const base::Feature kIncognitoDynamicQuota{"IncognitoDynamicQuota",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
// Dynamic quota for incognito mode would be set by a random fraction of
|
||||
// physical memory, between |IncognitoQuotaRatioLowerBound| and
|
||||
// |IncognitoQuotaRatioUpperBound|.
|
||||
@@ -19,7 +19,7 @@ const base::Feature kIncognitoDynamicQuota{"IncognitoDynamicQuota",
|
||||
constexpr base::FeatureParam<double> kIncognitoQuotaRatioLowerBound{
|
||||
- &kIncognitoDynamicQuota, "IncognitoQuotaRatioLowerBound", 0.1};
|
||||
+ &kIncognitoDynamicQuota, "IncognitoQuotaRatioLowerBound", 0.15};
|
||||
&kIncognitoDynamicQuota, "IncognitoQuotaRatioLowerBound", 0.15};
|
||||
constexpr base::FeatureParam<double> kIncognitoQuotaRatioUpperBound{
|
||||
- &kIncognitoDynamicQuota, "IncognitoQuotaRatioUpperBound", 0.2};
|
||||
+ &kIncognitoDynamicQuota, "IncognitoQuotaRatioUpperBound", 0.3};
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: Hide passwords manager link
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
|
||||
@@ -316,7 +316,7 @@ public class PasswordSettings
|
||||
@@ -315,7 +315,7 @@ public class PasswordSettings
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -18,7 +18,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
|
|||
|
||||
PreferenceGroup passwordParent;
|
||||
if (mSearchQuery == null) {
|
||||
@@ -392,7 +392,7 @@ public class PasswordSettings
|
||||
@@ -391,7 +391,7 @@ public class PasswordSettings
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
@@ -70,7 +70,8 @@ struct MatchGURLHash {
|
||||
@@ -66,7 +66,8 @@ struct MatchGURLHash {
|
||||
// static
|
||||
size_t AutocompleteResult::GetMaxMatches(bool is_zero_suggest) {
|
||||
#if (defined(OS_ANDROID))
|
||||
|
|
|
@ -40,7 +40,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
|
|||
+#include "extensions/video_bg_play.h"
|
||||
#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/top_document_root_scroller_controller.h"
|
||||
#include "third_party/blink/renderer/core/page/scrolling/text_fragment_selector_generator.h"
|
||||
@@ -338,6 +339,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();
|
||||
@@ -6874,6 +6877,61 @@ void Document::MarkFirstPaint() {
|
||||
@@ -6932,6 +6935,61 @@ void Document::MarkFirstPaint() {
|
||||
MaybeExecuteDelayedAsyncScripts();
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
@@ -6929,6 +6987,10 @@ void Document::FinishedParsing() {
|
||||
@@ -6984,6 +7042,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
|
||||
@@ -1670,6 +1670,9 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
@@ -1694,6 +1694,9 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
void AddAXContext(AXContext*);
|
||||
void RemoveAXContext(AXContext*);
|
||||
|
||||
|
|
|
@ -10,13 +10,12 @@ Subject: Modify default preferences
|
|||
chrome/browser/profiles/profile.cc | 2 +-
|
||||
.../settings/reset_page/reset_profile_dialog.html | 2 +-
|
||||
chrome/browser/ui/browser_ui_prefs.cc | 4 ++--
|
||||
.../ui/webui/local_discovery/local_discovery_ui.cc | 4 ----
|
||||
chrome/service/cloud_print/connector_settings.cc | 2 +-
|
||||
components/autofill/core/browser/autofill_manager.cc | 9 +++------
|
||||
components/autofill/core/common/autofill_prefs.cc | 2 +-
|
||||
components/bookmarks/browser/bookmark_utils.cc | 4 ++--
|
||||
.../safe_browsing/core/common/safe_browsing_prefs.cc | 4 ++--
|
||||
13 files changed, 17 insertions(+), 24 deletions(-)
|
||||
12 files changed, 17 insertions(+), 20 deletions(-)
|
||||
|
||||
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
|
||||
|
@ -33,15 +32,15 @@ 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
|
||||
@@ -1290,7 +1290,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
|
||||
@@ -1314,7 +1314,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
|
||||
void ChromeContentBrowserClient::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false);
|
||||
- registry->RegisterBooleanPref(prefs::kEnableHyperlinkAuditing, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kEnableHyperlinkAuditing, false);
|
||||
registry->RegisterListPref(prefs::kEnableDeprecatedWebPlatformFeatures);
|
||||
// Register user prefs for mapping SitePerProcess and IsolateOrigins in
|
||||
// user policy in addition to the same named ones in Local State (which are
|
||||
// used for mapping the command-line flags).
|
||||
diff --git a/chrome/browser/net/prediction_options.cc b/chrome/browser/net/prediction_options.cc
|
||||
--- a/chrome/browser/net/prediction_options.cc
|
||||
+++ b/chrome/browser/net/prediction_options.cc
|
||||
|
@ -69,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
|
||||
@@ -257,7 +257,7 @@ const char Profile::kProfileKey[] = "__PROFILE__";
|
||||
@@ -266,7 +266,7 @@ const char Profile::kProfileKey[] = "__PROFILE__";
|
||||
void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kSearchSuggestEnabled,
|
||||
|
@ -107,20 +106,6 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u
|
|||
registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacement);
|
||||
registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacementPopup);
|
||||
registry->RegisterDictionaryPref(prefs::kAppWindowPlacement);
|
||||
diff --git a/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc b/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc
|
||||
--- a/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc
|
||||
+++ b/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc
|
||||
@@ -147,10 +147,6 @@ void LocalDiscoveryUI::RegisterProfilePrefs(
|
||||
registry->RegisterBooleanPref(prefs::kLocalDiscoveryEnabled, true);
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kLocalDiscoveryNotificationsEnabled,
|
||||
-#if defined(OS_WIN)
|
||||
false,
|
||||
-#else
|
||||
- true,
|
||||
-#endif
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
}
|
||||
diff --git a/chrome/service/cloud_print/connector_settings.cc b/chrome/service/cloud_print/connector_settings.cc
|
||||
--- a/chrome/service/cloud_print/connector_settings.cc
|
||||
+++ b/chrome/service/cloud_print/connector_settings.cc
|
||||
|
@ -136,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
|
||||
@@ -955,10 +955,7 @@ void AutofillManager::OnQueryFormFieldAutofillImpl(
|
||||
@@ -962,10 +962,7 @@ void AutofillManager::OnQueryFormFieldAutofillImpl(
|
||||
// suggestions available.
|
||||
// TODO(mathp): Differentiate between number of suggestions available
|
||||
// (current metric) and number shown to the user.
|
||||
|
@ -148,10 +133,10 @@ diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/a
|
|||
}
|
||||
}
|
||||
|
||||
@@ -1593,8 +1590,8 @@ void AutofillManager::Reset() {
|
||||
#if defined(OS_ANDROID) || defined(OS_IOS)
|
||||
autofill_assistant_.Reset();
|
||||
#endif
|
||||
@@ -1592,8 +1589,8 @@ void AutofillManager::Reset() {
|
||||
credit_card_access_manager_.reset(new CreditCardAccessManager(
|
||||
driver(), client_, personal_data_, credit_card_form_event_logger_.get()));
|
||||
|
||||
- has_logged_autofill_enabled_ = false;
|
||||
- has_logged_address_suggestions_count_ = false;
|
||||
+ has_logged_autofill_enabled_ = true;
|
||||
|
@ -162,7 +147,7 @@ diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/a
|
|||
diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/autofill/core/common/autofill_prefs.cc
|
||||
--- a/components/autofill/core/common/autofill_prefs.cc
|
||||
+++ b/components/autofill/core/common/autofill_prefs.cc
|
||||
@@ -150,7 +150,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
@@ -154,7 +154,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
prefs::kAutofillLastVersionDisusedAddressesDeleted, 0,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
registry->RegisterBooleanPref(
|
||||
|
@ -192,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
|
||||
@@ -205,9 +205,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||
@@ -210,9 +210,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kSafeBrowsingSawInterstitialScoutReporting, false);
|
||||
registry->RegisterBooleanPref(
|
||||
|
|
|
@ -38,7 +38,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
|
||||
@@ -37,6 +37,13 @@ import org.chromium.ui.text.SpanApplier;
|
||||
@@ -38,6 +38,13 @@ import org.chromium.ui.text.SpanApplier;
|
||||
|
||||
import org.chromium.base.Log;
|
||||
|
||||
|
@ -52,7 +52,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
/**
|
||||
* Fragment to keep track of the all the privacy related preferences.
|
||||
*/
|
||||
@@ -53,6 +60,18 @@ public class PrivacySettings
|
||||
@@ -54,6 +61,18 @@ public class PrivacySettings
|
||||
private static final String PREF_PROXY_OPTIONS = "proxy";
|
||||
public static final String PREF_INCOGNITO_TAB_HISTORY_ENABLED = "incognito_history_enabled";
|
||||
|
||||
|
@ -71,7 +71,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
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,
|
||||
@@ -60,7 +79,8 @@ public class PrivacySettings
|
||||
@@ -61,7 +80,8 @@ public class PrivacySettings
|
||||
PREF_INCOGNITO_TAB_HISTORY_ENABLED,
|
||||
PREF_ALLOW_CUSTOM_TAB_INTENTS,
|
||||
PREF_CLOSE_TABS_ON_EXIT,
|
||||
|
@ -81,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
};
|
||||
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
@@ -86,6 +106,29 @@ public class PrivacySettings
|
||||
@@ -87,6 +107,29 @@ public class PrivacySettings
|
||||
|
||||
mManagedPreferenceDelegate = createManagedPreferenceDelegate();
|
||||
|
||||
|
@ -108,10 +108,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
+ mContextualSearch.setSummary(
|
||||
+ isContextualSearchEnabled ? R.string.text_on : R.string.text_off);
|
||||
+
|
||||
ChromeBaseCheckBoxPreference canMakePaymentPref =
|
||||
(ChromeBaseCheckBoxPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
|
||||
ChromeSwitchPreference canMakePaymentPref =
|
||||
(ChromeSwitchPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
|
||||
canMakePaymentPref.setOnPreferenceChangeListener(this);
|
||||
@@ -118,6 +161,11 @@ public class PrivacySettings
|
||||
@@ -119,6 +162,11 @@ public class PrivacySettings
|
||||
} else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
|
||||
UserPrefs.get(Profile.getLastUsedRegularProfile())
|
||||
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
||||
|
@ -123,7 +123,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
} else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
|
||||
PrivacyPreferencesManager.getInstance().setNetworkPredictionEnabled((boolean) newValue);
|
||||
} else if (PREF_ALLOW_CUSTOM_TAB_INTENTS.equals(key)) {
|
||||
@@ -132,6 +180,16 @@ public class PrivacySettings
|
||||
@@ -133,6 +181,16 @@ public class PrivacySettings
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -140,15 +140,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
@@ -142,7 +200,7 @@ public class PrivacySettings
|
||||
@@ -143,7 +201,7 @@ public class PrivacySettings
|
||||
* Updates the summaries for several preferences.
|
||||
*/
|
||||
public void updateSummaries() {
|
||||
- PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
|
||||
+ mSearchSuggestions.setChecked(prefService.getBoolean(Pref.SEARCH_SUGGEST_ENABLED));
|
||||
|
||||
CheckBoxPreference canMakePaymentPref =
|
||||
(CheckBoxPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
|
||||
ChromeSwitchPreference canMakePaymentPref =
|
||||
(ChromeSwitchPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Fri, 30 Mar 2018 10:09:03 +0200
|
||||
Subject: Multiple fingerprinting mitigations for canvas, text and client
|
||||
rectangles
|
||||
Subject: Multiple fingerprinting mitigations
|
||||
|
||||
1. getClientRects, getBoundingClientRect, measureText: add fingerprinting mitigation
|
||||
|
||||
|
@ -30,7 +29,7 @@ Added flag --fingerprinting-canvas-image-data-noise to disable Canvas image data
|
|||
content/browser/BUILD.gn | 1 +
|
||||
.../renderer_host/render_process_host_impl.cc | 4 +
|
||||
content/child/BUILD.gn | 1 +
|
||||
content/child/runtime_features.cc | 8 +
|
||||
content/child/runtime_features.cc | 9 +
|
||||
.../public/platform/web_runtime_features.h | 3 +
|
||||
.../blink/renderer/core/dom/document.cc | 18 ++
|
||||
.../blink/renderer/core/dom/document.h | 7 +
|
||||
|
@ -42,13 +41,13 @@ Added flag --fingerprinting-canvas-image-data-noise to disable Canvas image data
|
|||
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 | 159 ++++++++++++++++++
|
||||
.../platform/graphics/static_bitmap_image.cc | 160 ++++++++++++++++++
|
||||
.../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, 341 insertions(+), 3 deletions(-)
|
||||
23 files changed, 343 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
|
||||
|
@ -56,7 +55,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
|
||||
@@ -2132,6 +2132,7 @@ static_library("browser") {
|
||||
@@ -2212,6 +2212,7 @@ static_library("browser") {
|
||||
"//services/device/public/cpp:device_features",
|
||||
"//services/device/public/cpp/serial:switches",
|
||||
"//services/device/public/cpp/usb",
|
||||
|
@ -75,7 +74,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"
|
||||
@@ -2281,12 +2282,24 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -2523,6 +2524,18 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
{"enable-webrtc-srtp-aes-gcm", flag_descriptions::kWebrtcSrtpAesGcmName,
|
||||
flag_descriptions::kWebrtcSrtpAesGcmDescription, kOsAll,
|
||||
SINGLE_VALUE_TYPE(switches::kEnableWebRtcSrtpAesGcm)},
|
||||
|
@ -83,12 +82,6 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
+ "Disable Canvas image data fingerprint deception",
|
||||
+ "Slightly modifies at most 20 pixels in Canvas image data extracted via JS APIs",
|
||||
+ kOsAll, SINGLE_DISABLE_VALUE_TYPE(switches::kFingerprintingCanvasImageDataNoise)},
|
||||
{"enable-webrtc-stun-origin", flag_descriptions::kWebrtcStunOriginName,
|
||||
flag_descriptions::kWebrtcStunOriginDescription, kOsAll,
|
||||
SINGLE_VALUE_TYPE(switches::kEnableWebRtcStunOrigin)},
|
||||
{"enable-webrtc-hybrid-agc", flag_descriptions::kWebrtcHybridAgcName,
|
||||
flag_descriptions::kWebrtcHybridAgcDescription, kOsAll,
|
||||
FEATURE_VALUE_TYPE(features::kWebRtcHybridAgc)},
|
||||
+ {"fingerprinting-client-rects-noise",
|
||||
+ "Disable get*ClientRects() fingerprint deception",
|
||||
+ "Scale the output values of Range::getClientRects() and Element::getBoundingClientRect() with a randomly selected factor in the range -0.0003% to 0.0003%, which are recomputed on every document initialization.",
|
||||
|
@ -97,13 +90,13 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
+ "Disable Canvas::measureText() fingerprint deception",
|
||||
+ "Scale the output values of Canvas::measureText() with a randomly selected factor in the range -0.0003% to 0.0003%, which are recomputed on every document initialization.",
|
||||
+ kOsAll, SINGLE_DISABLE_VALUE_TYPE(switches::kFingerprintingCanvasMeasureTextNoise)},
|
||||
{"enable-webrtc-new-encode-cpu-load-estimator",
|
||||
flag_descriptions::kWebrtcNewEncodeCpuLoadEstimatorName,
|
||||
flag_descriptions::kWebrtcNewEncodeCpuLoadEstimatorDescription, kOsAll,
|
||||
{"enable-webrtc-stun-origin", flag_descriptions::kWebrtcStunOriginName,
|
||||
flag_descriptions::kWebrtcStunOriginDescription, kOsAll,
|
||||
SINGLE_VALUE_TYPE(switches::kEnableWebRtcStunOrigin)},
|
||||
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
|
||||
--- a/content/browser/BUILD.gn
|
||||
+++ b/content/browser/BUILD.gn
|
||||
@@ -221,6 +221,7 @@ source_set("browser") {
|
||||
@@ -227,6 +227,7 @@ source_set("browser") {
|
||||
"//third_party/libyuv",
|
||||
"//third_party/re2",
|
||||
"//third_party/sqlite",
|
||||
|
@ -114,7 +107,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
|
||||
@@ -223,6 +223,7 @@
|
||||
@@ -221,6 +221,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"
|
||||
|
@ -122,8 +115,8 @@ 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"
|
||||
@@ -3333,6 +3334,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
|
||||
switches::kDisablePreferCompositingToLCDText,
|
||||
@@ -3324,6 +3325,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
|
||||
switches::kDisableBreakpad,
|
||||
switches::kDisableDatabases,
|
||||
switches::kDisableFileSystem,
|
||||
+ switches::kFingerprintingClientRectsNoise,
|
||||
|
@ -135,7 +128,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content
|
|||
diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn
|
||||
--- a/content/child/BUILD.gn
|
||||
+++ b/content/child/BUILD.gn
|
||||
@@ -125,6 +125,7 @@ target(link_target_type, "child") {
|
||||
@@ -130,6 +130,7 @@ target(link_target_type, "child") {
|
||||
"//third_party/blink/public/common",
|
||||
"//third_party/blink/public/strings",
|
||||
"//third_party/ced",
|
||||
|
@ -146,15 +139,16 @@ diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn
|
|||
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
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "services/network/public/cpp/features.h"
|
||||
#include "services/network/public/cpp/network_switches.h"
|
||||
#include "third_party/blink/public/common/features.h"
|
||||
@@ -36,6 +36,8 @@
|
||||
#include "ui/gl/gl_switches.h"
|
||||
#include "ui/native_theme/native_theme_features.h"
|
||||
|
||||
+#include "third_party/ungoogled/ungoogled_switches.h"
|
||||
#include "third_party/blink/public/common/switches.h"
|
||||
#include "third_party/blink/public/platform/web_runtime_features.h"
|
||||
#include "ui/accessibility/accessibility_features.h"
|
||||
@@ -582,6 +583,13 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs(
|
||||
+
|
||||
#if defined(OS_ANDROID)
|
||||
#include "base/android/build_info.h"
|
||||
#endif
|
||||
@@ -532,6 +534,13 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs(
|
||||
// They're moved here to distinguish them from actual base checks
|
||||
WebRuntimeFeatures::EnableOverlayScrollbars(ui::IsOverlayScrollbarEnabled());
|
||||
|
||||
|
@ -165,9 +159,9 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
|
|||
+ WebRuntimeFeatures::EnableFingerprintingCanvasImageDataNoise(
|
||||
+ !command_line.HasSwitch(switches::kFingerprintingCanvasImageDataNoise));
|
||||
+
|
||||
if (base::FeatureList::GetInstance()->IsFeatureOverriddenFromCommandLine(
|
||||
blink::features::kNativeFileSystemAPI.name,
|
||||
base::FeatureList::OVERRIDE_ENABLE_FEATURE)) {
|
||||
if (base::FeatureList::IsEnabled(blink::features::kFileHandlingAPI)) {
|
||||
WebRuntimeFeatures::EnableFeatureFromString("FileHandling", true);
|
||||
}
|
||||
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
|
||||
|
@ -192,7 +186,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"
|
||||
@@ -2475,6 +2476,23 @@ void Document::UpdateStyleAndLayoutTree() {
|
||||
@@ -2489,6 +2490,23 @@ void Document::UpdateStyleAndLayoutTree() {
|
||||
#if DCHECK_IS_ON()
|
||||
AssertLayoutTreeUpdated(*this);
|
||||
#endif
|
||||
|
@ -215,11 +209,11 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
|
|||
+ return noise_factor_y_;
|
||||
}
|
||||
|
||||
void Document::UpdateActiveStyle() {
|
||||
void Document::InvalidateStyleAndLayoutForFontUpdates() {
|
||||
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
|
||||
@@ -438,6 +438,10 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
@@ -447,6 +447,10 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
has_xml_declaration_ = has_xml_declaration ? 1 : 0;
|
||||
}
|
||||
|
||||
|
@ -227,10 +221,10 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/
|
|||
+ double GetNoiseFactorX();
|
||||
+ double GetNoiseFactorY();
|
||||
+
|
||||
String visibilityState() const;
|
||||
AtomicString visibilityState() const;
|
||||
bool IsPageVisible() const;
|
||||
bool hidden() const;
|
||||
@@ -1943,6 +1947,9 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
@@ -1969,6 +1973,9 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
|
||||
base::ElapsedTimer start_time_;
|
||||
|
||||
|
@ -243,7 +237,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
|
||||
@@ -2019,6 +2019,11 @@ DOMRectList* Element::getClientRects() {
|
||||
@@ -2049,6 +2049,11 @@ DOMRectList* Element::getClientRects() {
|
||||
DCHECK(element_layout_object);
|
||||
GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom(
|
||||
quads, *element_layout_object);
|
||||
|
@ -255,7 +249,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/
|
|||
return MakeGarbageCollected<DOMRectList>(quads);
|
||||
}
|
||||
|
||||
@@ -2036,6 +2041,9 @@ DOMRect* Element::getBoundingClientRect() {
|
||||
@@ -2066,6 +2071,9 @@ DOMRect* Element::getBoundingClientRect() {
|
||||
DCHECK(element_layout_object);
|
||||
GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result,
|
||||
*element_layout_object);
|
||||
|
@ -268,7 +262,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/
|
|||
diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/renderer/core/dom/range.cc
|
||||
--- a/third_party/blink/renderer/core/dom/range.cc
|
||||
+++ b/third_party/blink/renderer/core/dom/range.cc
|
||||
@@ -1614,6 +1614,12 @@ DOMRectList* Range::getClientRects() const {
|
||||
@@ -1615,6 +1615,12 @@ DOMRectList* Range::getClientRects() const {
|
||||
Vector<FloatQuad> quads;
|
||||
GetBorderAndTextQuads(quads);
|
||||
|
||||
|
@ -281,7 +275,7 @@ diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/re
|
|||
return MakeGarbageCollected<DOMRectList>(quads);
|
||||
}
|
||||
|
||||
@@ -1741,7 +1747,11 @@ FloatRect Range::BoundingRect() const {
|
||||
@@ -1742,7 +1748,11 @@ FloatRect Range::BoundingRect() const {
|
||||
|
||||
// If all rects are empty, return the first rect.
|
||||
if (result.IsEmpty() && !quads.IsEmpty())
|
||||
|
@ -337,7 +331,7 @@ diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.h b/third_
|
|||
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
|
||||
@@ -835,9 +835,15 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
|
||||
@@ -838,9 +838,15 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
|
||||
else
|
||||
direction = ToTextDirection(GetState().GetDirection(), canvas());
|
||||
|
||||
|
@ -357,7 +351,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
|
||||
@@ -1548,7 +1548,9 @@ component("platform") {
|
||||
@@ -1575,7 +1575,9 @@ component("platform") {
|
||||
"//third_party/blink/renderer:non_test_config",
|
||||
]
|
||||
|
||||
|
@ -366,9 +360,9 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re
|
|||
+ "//third_party/skia/include/private", # For shuffler in graphics/static_bitmap_image.cc
|
||||
+ ]
|
||||
|
||||
public_deps = [
|
||||
":blink_platform_public_deps",
|
||||
@@ -1592,6 +1594,7 @@ component("platform") {
|
||||
allow_circular_includes_from = [
|
||||
"//third_party/blink/renderer/platform/blob",
|
||||
@@ -1635,6 +1637,7 @@ component("platform") {
|
||||
"//third_party/blink/public/strings",
|
||||
"//third_party/blink/renderer/platform/wtf",
|
||||
"//third_party/ced",
|
||||
|
@ -379,7 +373,7 @@ 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
|
||||
@@ -729,4 +729,16 @@ void WebRuntimeFeatures::EnableConversionMeasurementInfraSupport(bool enable) {
|
||||
@@ -731,4 +731,16 @@ void WebRuntimeFeatures::EnableConversionMeasurementInfraSupport(bool enable) {
|
||||
RuntimeEnabledFeatures::SetConversionMeasurementInfraSupportEnabled(enable);
|
||||
}
|
||||
|
||||
|
@ -408,7 +402,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b
|
|||
#include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
|
||||
#include "third_party/blink/renderer/platform/image-encoders/image_encoder.h"
|
||||
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
|
||||
@@ -137,6 +139,11 @@ bool ImageDataBuffer::EncodeImageInternal(const ImageEncodingMimeType mime_type,
|
||||
@@ -145,6 +147,11 @@ bool ImageDataBuffer::EncodeImageInternal(const ImageEncodingMimeType mime_type,
|
||||
const SkPixmap& pixmap) const {
|
||||
DCHECK(is_valid_);
|
||||
|
||||
|
@ -432,21 +426,17 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
|
|||
#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"
|
||||
@@ -11,11 +13,13 @@
|
||||
#include "third_party/blink/renderer/platform/graphics/image_observer.h"
|
||||
#include "third_party/blink/renderer/platform/graphics/paint/paint_image.h"
|
||||
#include "third_party/blink/renderer/platform/graphics/unaccelerated_static_bitmap_image.h"
|
||||
+#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
|
||||
#include "third_party/skia/include/core/SkCanvas.h"
|
||||
#include "third_party/skia/include/core/SkImage.h"
|
||||
#include "third_party/skia/include/core/SkPaint.h"
|
||||
@@ -17,6 +19,9 @@
|
||||
#include "third_party/skia/include/core/SkSurface.h"
|
||||
#include "third_party/skia/include/gpu/GrContext.h"
|
||||
+#include "third_party/skia/include/private/SkColorData.h"
|
||||
#include "v8/include/v8.h"
|
||||
|
||||
+#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
|
||||
+#include "third_party/skia/include/private/SkColorData.h"
|
||||
+
|
||||
namespace blink {
|
||||
@@ -129,7 +133,162 @@ bool StaticBitmapImage::CopyToByteArray(
|
||||
|
||||
scoped_refptr<StaticBitmapImage> StaticBitmapImage::Create(
|
||||
@@ -128,7 +133,162 @@ bool StaticBitmapImage::CopyToByteArray(
|
||||
.bounds()
|
||||
.intersect(SkIRect::MakeXYWH(rect.X(), rect.Y(), info.width(),
|
||||
info.height())));
|
||||
|
@ -624,7 +614,7 @@ 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
|
||||
@@ -795,6 +795,15 @@
|
||||
@@ -808,6 +808,15 @@
|
||||
origin_trial_feature_name: "FeaturePolicyReporting",
|
||||
status: "experimental"
|
||||
},
|
|
@ -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
|
||||
@@ -243,6 +243,8 @@ std::vector<base::string16> ChromeAutocompleteProviderClient::GetBuiltinURLs() {
|
||||
@@ -314,6 +314,8 @@ std::vector<base::string16> ChromeAutocompleteProviderClient::GetBuiltinURLs() {
|
||||
std::vector<base::string16>
|
||||
ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
|
||||
std::vector<base::string16> builtins_to_provide;
|
||||
|
|
|
@ -11,7 +11,7 @@ Subject: Password service build fixes
|
|||
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
|
||||
@@ -250,8 +250,6 @@ class ChromePasswordProtectionService : public PasswordProtectionService {
|
||||
@@ -255,8 +255,6 @@ class ChromePasswordProtectionService : public PasswordProtectionService {
|
||||
// |NOT_SIGNED_IN|.
|
||||
LoginReputationClientRequest::PasswordReuseEvent::SyncAccountType
|
||||
GetSyncAccountType() const override;
|
||||
|
|
|
@ -11,10 +11,10 @@ Subject: Reduce HTTP headers in DoH requests to bare minimum
|
|||
diff --git a/net/base/load_flags_list.h b/net/base/load_flags_list.h
|
||||
--- a/net/base/load_flags_list.h
|
||||
+++ b/net/base/load_flags_list.h
|
||||
@@ -112,3 +112,12 @@ LOAD_FLAG(RESTRICTED_PREFETCH, 1 << 17)
|
||||
@@ -101,3 +101,12 @@ LOAD_FLAG(RESTRICTED_PREFETCH, 1 << 15)
|
||||
// is considered privileged, and therefore this flag must only be set from a
|
||||
// trusted process.
|
||||
LOAD_FLAG(CAN_USE_RESTRICTED_PREFETCH, 1 << 18)
|
||||
LOAD_FLAG(CAN_USE_RESTRICTED_PREFETCH, 1 << 16)
|
||||
+
|
||||
+
|
||||
+
|
||||
|
@ -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
|
||||
@@ -331,6 +331,7 @@ void URLRequestHttpJob::Start() {
|
||||
@@ -319,6 +319,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()) {
|
||||
@@ -338,11 +339,14 @@ void URLRequestHttpJob::Start() {
|
||||
@@ -326,11 +327,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();
|
||||
@@ -538,10 +542,12 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
@@ -527,10 +531,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
|
|||
}
|
||||
}
|
||||
|
||||
@@ -559,7 +565,7 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
@@ -548,7 +554,7 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,25 +3,11 @@ Date: Sun, 3 Nov 2019 08:22:29 +0100
|
|||
Subject: Remove SMS integration
|
||||
|
||||
---
|
||||
.../PasswordManagerLauncher.java | 3 --
|
||||
.../browser/sms/SmsUserConsentReceiver.java | 42 ++-----------------
|
||||
.../browser/sms/SmsVerificationReceiver.java | 30 +------------
|
||||
.../content/browser/sms/Wrappers.java | 14 +------
|
||||
4 files changed, 7 insertions(+), 82 deletions(-)
|
||||
3 files changed, 7 insertions(+), 79 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java
|
||||
@@ -6,9 +6,6 @@ package org.chromium.chrome.browser.password_manager;
|
||||
|
||||
import android.app.Activity;
|
||||
|
||||
-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.base.metrics.RecordHistogram;
|
||||
diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/SmsUserConsentReceiver.java b/content/public/android/java/src/org/chromium/content/browser/sms/SmsUserConsentReceiver.java
|
||||
--- a/content/public/android/java/src/org/chromium/content/browser/sms/SmsUserConsentReceiver.java
|
||||
+++ b/content/public/android/java/src/org/chromium/content/browser/sms/SmsUserConsentReceiver.java
|
||||
|
|
|
@ -3,13 +3,13 @@ Date: Fri, 21 Aug 2020 22:39:23 +0200
|
|||
Subject: Remove blocklisted URLs upon bookmark creation
|
||||
|
||||
---
|
||||
.../chrome/browser/app/ChromeActivity.java | 15 +++++++++++++++
|
||||
1 file changed, 15 insertions(+)
|
||||
.../chrome/browser/app/ChromeActivity.java | 17 +++++++++++++++++
|
||||
1 file changed, 17 insertions(+)
|
||||
|
||||
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
|
||||
@@ -134,6 +134,8 @@ import org.chromium.chrome.browser.settings.SettingsLauncher;
|
||||
@@ -137,6 +137,8 @@ import org.chromium.chrome.browser.settings.SettingsLauncher;
|
||||
import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
|
||||
import org.chromium.chrome.browser.share.ShareDelegate;
|
||||
import org.chromium.chrome.browser.share.ShareDelegateImpl;
|
||||
|
@ -18,15 +18,24 @@ 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.TabDelegateFactory;
|
||||
@@ -241,6 +243,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
private TabContentManager mTabContentManager;
|
||||
@@ -207,6 +209,8 @@ import org.chromium.ui.widget.Toast;
|
||||
import org.chromium.url.Origin;
|
||||
import org.chromium.webapk.lib.client.WebApkNavigationClient;
|
||||
|
||||
+import org.chromium.url.GURL;
|
||||
+
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
@@ -251,6 +255,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
|
||||
private UmaSessionStats mUmaSessionStats;
|
||||
private ContextReporter mContextReporter;
|
||||
+ private MostVisitedSites mMostVisitedSites;
|
||||
|
||||
private boolean mPartnerBrowserRefreshNeeded;
|
||||
|
||||
@@ -1186,6 +1189,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -1230,6 +1235,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
mCompositorViewHolder = null;
|
||||
}
|
||||
|
||||
|
@ -38,7 +47,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
onDestroyInternal();
|
||||
|
||||
if (mDidAddPolicyChangeListener) {
|
||||
@@ -1416,6 +1424,13 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -1466,6 +1476,13 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -47,7 +56,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
+ mMostVisitedSites =
|
||||
+ SuggestionsDependencyFactory.getInstance().createMostVisitedSites(Profile.getLastUsedRegularProfile());
|
||||
+ }
|
||||
+ mMostVisitedSites.removeBlocklistedUrl(tabToBookmark.getOriginalUrl());
|
||||
+ mMostVisitedSites.removeBlocklistedUrl(new GURL(tabToBookmark.getOriginalUrl()));
|
||||
+
|
||||
// Note we get user bookmark ID over just a bookmark ID here: Managed bookmarks can't be
|
||||
// edited. If the current URL is only bookmarked by managed bookmarks, this will return
|
||||
|
|
|
@ -4,21 +4,19 @@ Subject: Remove dependency on auth, signin, dynamic and tasks
|
|||
|
||||
---
|
||||
chrome/android/BUILD.gn | 8 --
|
||||
chrome/android/features/media_router/BUILD.gn | 2 -
|
||||
.../media/router/ChromeMediaRouter.java | 18 +---
|
||||
chrome/android/java/AndroidManifest.xml | 9 --
|
||||
.../org/chromium/chrome/browser/AppHooks.java | 14 +---
|
||||
.../chrome/browser/ChromeVersionInfo.java | 12 +--
|
||||
.../browser/PlayServicesVersionInfo.java | 12 +--
|
||||
.../component_updater/UpdateScheduler.java | 3 -
|
||||
.../externalauth/ExternalAuthUtils.java | 14 +---
|
||||
.../UserRecoverableErrorHandler.java | 7 --
|
||||
.../gcore/ChromeGoogleApiClientImpl.java | 25 +-----
|
||||
.../browser/gcore/GoogleApiClientHelper.java | 82 +------------------
|
||||
.../browser/omaha/UpdateStatusProvider.java | 10 +--
|
||||
.../PasswordManagerLauncher.java | 18 +---
|
||||
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 -
|
||||
|
@ -29,12 +27,12 @@ Subject: Remove dependency on auth, signin, dynamic and tasks
|
|||
services/device/geolocation/BUILD.gn | 2 -
|
||||
services/shape_detection/BUILD.gn | 2 -
|
||||
third_party/android_deps/BUILD.gn | 41 ----------
|
||||
26 files changed, 16 insertions(+), 282 deletions(-)
|
||||
24 files changed, 15 insertions(+), 263 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
+++ b/chrome/android/BUILD.gn
|
||||
@@ -265,9 +265,6 @@ android_library("chrome_java") {
|
||||
@@ -282,9 +282,6 @@ android_library("chrome_java") {
|
||||
":partner_location_descriptor_proto_java",
|
||||
":update_proto_java",
|
||||
":usage_stats_proto_java",
|
||||
|
@ -44,7 +42,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
|||
"//base:base_java",
|
||||
"//base:jni_java",
|
||||
"//chrome/android/features/keyboard_accessory:public_java",
|
||||
@@ -741,8 +738,6 @@ junit_binary("chrome_junit_tests") {
|
||||
@@ -758,8 +755,6 @@ junit_binary("chrome_junit_tests") {
|
||||
":chrome_app_java_resources",
|
||||
":chrome_java",
|
||||
":partner_location_descriptor_proto_java",
|
||||
|
@ -53,9 +51,9 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
|||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
"//base:base_junit_test_support",
|
||||
@@ -930,9 +925,6 @@ android_library("chrome_test_java") {
|
||||
@@ -951,9 +946,6 @@ android_library("chrome_test_java") {
|
||||
":chrome_app_java_resources",
|
||||
":chrome_test_util_java",
|
||||
":native_java_unittests_java",
|
||||
":partner_location_descriptor_proto_java",
|
||||
- "$google_play_services_package:google_play_services_base_java",
|
||||
- "$google_play_services_package:google_play_services_basement_java",
|
||||
|
@ -63,59 +61,12 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
|||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
"//base:jni_java",
|
||||
diff --git a/chrome/android/features/media_router/BUILD.gn b/chrome/android/features/media_router/BUILD.gn
|
||||
--- a/chrome/android/features/media_router/BUILD.gn
|
||||
+++ b/chrome/android/features/media_router/BUILD.gn
|
||||
@@ -11,8 +11,6 @@ android_library("java") {
|
||||
resources_package = "org.chromium.chrome.media.router"
|
||||
deps = [
|
||||
":java_resources",
|
||||
- "$google_play_services_package:google_play_services_base_java",
|
||||
- "$google_play_services_package:google_play_services_basement_java",
|
||||
"//base:base_java",
|
||||
"//base:jni_java",
|
||||
"//chrome/android:chrome_java",
|
||||
diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/ChromeMediaRouter.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/ChromeMediaRouter.java
|
||||
--- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/ChromeMediaRouter.java
|
||||
+++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/ChromeMediaRouter.java
|
||||
@@ -8,9 +8,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;
|
||||
@@ -39,20 +36,7 @@ public class ChromeMediaRouter 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/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
|
||||
--- a/chrome/android/java/AndroidManifest.xml
|
||||
+++ b/chrome/android/java/AndroidManifest.xml
|
||||
@@ -757,15 +757,6 @@ by a child template that "extends" this file.
|
||||
@@ -786,15 +786,6 @@ by a child template that "extends" this file.
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</activity>
|
||||
|
||||
- <!-- Activity for dispatching intents to Instant Apps. -->
|
||||
- <activity
|
||||
|
@ -142,7 +93,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java b
|
|||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.annotations.CalledByNative;
|
||||
import org.chromium.chrome.browser.banners.AppDetailsDelegate;
|
||||
@@ -325,16 +322,7 @@ public abstract class AppHooks {
|
||||
@@ -333,16 +330,7 @@ public abstract class AppHooks {
|
||||
* same as {@link GoogleApiAvailability#isGooglePlayServicesAvailable()}.
|
||||
*/
|
||||
public int isGoogleApiAvailableWithMinApkVersion(int minApkVersion) {
|
||||
|
@ -160,9 +111,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java b
|
|||
}
|
||||
|
||||
/**
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeVersionInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeVersionInfo.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeVersionInfo.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeVersionInfo.java
|
||||
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;
|
||||
|
@ -172,19 +123,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeVersionIn
|
|||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.annotations.CalledByNative;
|
||||
import org.chromium.chrome.browser.externalauth.ExternalAuthUtils;
|
||||
@@ -95,7 +93,7 @@ public class ChromeVersionInfo {
|
||||
@@ -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 = getPlayServicesApkVersionNumber(context);
|
||||
final long installedGmsVersion = getApkVersionNumber(context);
|
||||
|
||||
final String accessType;
|
||||
@@ -118,12 +116,6 @@ public class ChromeVersionInfo {
|
||||
@@ -53,12 +51,6 @@ public class PlayServicesVersionInfo {
|
||||
* package is not found.
|
||||
*/
|
||||
public static int getPlayServicesApkVersionNumber(Context context) {
|
||||
public static int getApkVersionNumber(Context context) {
|
||||
- try {
|
||||
- return context.getPackageManager()
|
||||
- .getPackageInfo(GoogleApiAvailability.GOOGLE_PLAY_SERVICES_PACKAGE, 0)
|
||||
|
@ -221,7 +172,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/Ex
|
|||
import org.chromium.base.CommandLine;
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.Log;
|
||||
@@ -168,9 +165,7 @@ public class ExternalAuthUtils {
|
||||
@@ -158,9 +155,7 @@ public class ExternalAuthUtils {
|
||||
* when it is updating.
|
||||
*/
|
||||
public boolean isGooglePlayServicesMissing(final Context context) {
|
||||
|
@ -232,7 +183,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/Ex
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -192,7 +187,6 @@ public class ExternalAuthUtils {
|
||||
@@ -182,7 +177,6 @@ public class ExternalAuthUtils {
|
||||
|
||||
Context context = ContextUtils.getApplicationContext();
|
||||
final int resultCode = checkGooglePlayServicesAvailable(context);
|
||||
|
@ -240,7 +191,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/Ex
|
|||
// resultCode is some kind of error.
|
||||
Log.v(TAG, "Unable to use Google Play Services: %s", describeError(resultCode));
|
||||
if (isUserRecoverableError(resultCode)) {
|
||||
@@ -262,7 +256,7 @@ public class ExternalAuthUtils {
|
||||
@@ -251,7 +245,7 @@ public class ExternalAuthUtils {
|
||||
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()) {
|
||||
|
@ -249,7 +200,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/Ex
|
|||
}
|
||||
}
|
||||
|
||||
@@ -274,7 +268,7 @@ public class ExternalAuthUtils {
|
||||
@@ -263,7 +257,7 @@ public class ExternalAuthUtils {
|
||||
* @return true If the code represents a user-recoverable error
|
||||
*/
|
||||
protected boolean isUserRecoverableError(final int errorCode) {
|
||||
|
@ -258,7 +209,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/Ex
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -284,6 +278,6 @@ public class ExternalAuthUtils {
|
||||
@@ -273,6 +267,6 @@ public class ExternalAuthUtils {
|
||||
* @return a textual description of the error code
|
||||
*/
|
||||
protected String describeError(final int errorCode) {
|
||||
|
@ -310,16 +261,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gcore/ChromeGoo
|
|||
-
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.base.TraceEvent;
|
||||
import org.chromium.chrome.browser.externalauth.ExternalAuthUtils;
|
||||
@@ -22,7 +19,6 @@ public class ChromeGoogleApiClientImpl implements ChromeGoogleApiClient {
|
||||
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;
|
||||
|
||||
/**
|
||||
* @param context its application context will be exposed through
|
||||
@@ -31,10 +27,9 @@ public class ChromeGoogleApiClientImpl implements ChromeGoogleApiClient {
|
||||
@@ -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.
|
||||
*/
|
||||
|
@ -328,10 +279,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gcore/ChromeGoo
|
|||
boolean requireFirstPartyBuild) {
|
||||
mApplicationContext = context.getApplicationContext();
|
||||
- mClient = client;
|
||||
if (requireFirstPartyBuild && !ExternalAuthUtils.getInstance().isChromeGoogleSigned()) {
|
||||
mExternalAuthUtils = AppHooks.get().getExternalAuthUtils();
|
||||
if (requireFirstPartyBuild && !mExternalAuthUtils.isChromeGoogleSigned()) {
|
||||
throw new IllegalStateException("GoogleApiClient requires first-party build");
|
||||
}
|
||||
@@ -42,7 +37,6 @@ public class ChromeGoogleApiClientImpl implements ChromeGoogleApiClient {
|
||||
@@ -45,7 +40,6 @@ public class ChromeGoogleApiClientImpl implements ChromeGoogleApiClient {
|
||||
|
||||
@Override
|
||||
public void disconnect() {
|
||||
|
@ -339,7 +290,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gcore/ChromeGoo
|
|||
}
|
||||
|
||||
@Override
|
||||
@@ -58,24 +52,11 @@ public class ChromeGoogleApiClientImpl implements ChromeGoogleApiClient {
|
||||
@@ -61,24 +55,11 @@ public class ChromeGoogleApiClientImpl implements ChromeGoogleApiClient {
|
||||
@Override
|
||||
public boolean connectWithTimeout(long timeout) {
|
||||
TraceEvent.begin("ChromeGoogleApiClientImpl:connectWithTimeout");
|
||||
|
@ -533,39 +484,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateSta
|
|||
}
|
||||
|
||||
private long getSize(StatFs statFs) {
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java
|
||||
@@ -93,22 +93,6 @@ public class PasswordManagerLauncher {
|
||||
}
|
||||
|
||||
private static boolean tryShowingTheGooglePasswordManager(Activity activity) {
|
||||
- GooglePasswordManagerUIProvider googlePasswordManagerUIProvider =
|
||||
- AppHooks.get().createGooglePasswordManagerUIProvider();
|
||||
- if (googlePasswordManagerUIProvider == null) return false;
|
||||
-
|
||||
- int minGooglePlayServicesVersion = ChromeFeatureList.getFieldTrialParamByFeatureAsInt(
|
||||
- GOOGLE_ACCOUNT_PWM_UI, MIN_GOOGLE_PLAY_SERVICES_VERSION_PARAM,
|
||||
- DEFAULT_MIN_GOOGLE_PLAY_SERVICES_APK_VERSION);
|
||||
-
|
||||
- if (GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
|
||||
- ContextUtils.getApplicationContext(), minGooglePlayServicesVersion)
|
||||
- != ConnectionResult.SUCCESS) {
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- if (!ChromeFeatureList.isEnabled(GOOGLE_ACCOUNT_PWM_UI)) return false;
|
||||
-
|
||||
- return googlePasswordManagerUIProvider.showGooglePasswordManager(activity);
|
||||
+ return false;
|
||||
}
|
||||
}
|
||||
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
|
||||
@@ -249,8 +249,6 @@ android_library("chrome_java_test_support") {
|
||||
"javatests/src/org/chromium/chrome/test/util/browser/webapps/WebappTestPage.java",
|
||||
@@ -259,8 +259,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",
|
||||
|
@ -609,6 +533,41 @@ diff --git a/components/background_task_scheduler/internal/BUILD.gn b/components
|
|||
"//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
|
||||
|
@ -644,7 +603,7 @@ diff --git a/components/signin/core/browser/android/java/src/org/chromium/compon
|
|||
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
|
||||
@@ -72,9 +72,6 @@ action_with_pydeps("generate_sandboxed_service_srcjar") {
|
||||
@@ -71,9 +71,6 @@ action_with_pydeps("generate_sandboxed_service_srcjar") {
|
||||
android_library("content_java") {
|
||||
deps = [
|
||||
":content_java_resources",
|
||||
|
@ -657,7 +616,7 @@ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn
|
|||
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
|
||||
--- a/content/test/BUILD.gn
|
||||
+++ b/content/test/BUILD.gn
|
||||
@@ -2535,9 +2535,6 @@ if (is_android) {
|
||||
@@ -2545,9 +2545,6 @@ if (is_android) {
|
||||
testonly = true
|
||||
sources = content_java_sources_needing_jni
|
||||
deps = [
|
||||
|
@ -670,7 +629,7 @@ diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
|
|||
diff --git a/device/BUILD.gn b/device/BUILD.gn
|
||||
--- a/device/BUILD.gn
|
||||
+++ b/device/BUILD.gn
|
||||
@@ -394,8 +394,6 @@ if (is_android) {
|
||||
@@ -405,8 +405,6 @@ if (is_android) {
|
||||
junit_binary("device_junit_tests") {
|
||||
sources = [ "gamepad/android/junit/src/org/chromium/device/gamepad/GamepadMappingsTest.java" ]
|
||||
deps = [
|
||||
|
@ -695,7 +654,7 @@ diff --git a/remoting/android/client_java_tmpl.gni b/remoting/android/client_jav
|
|||
diff --git a/services/BUILD.gn b/services/BUILD.gn
|
||||
--- a/services/BUILD.gn
|
||||
+++ b/services/BUILD.gn
|
||||
@@ -131,8 +131,6 @@ if (is_android) {
|
||||
@@ -133,8 +133,6 @@ if (is_android) {
|
||||
"shape_detection/android/javatests/src/org/chromium/shape_detection/TextDetectionImplTest.java",
|
||||
]
|
||||
deps = [
|
||||
|
@ -707,7 +666,7 @@ diff --git a/services/BUILD.gn b/services/BUILD.gn
|
|||
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
|
||||
@@ -156,8 +156,6 @@ if (is_android) {
|
||||
@@ -164,8 +164,6 @@ if (is_android) {
|
||||
|
||||
deps = [
|
||||
":geolocation_jni_headers",
|
||||
|
@ -719,7 +678,7 @@ diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/
|
|||
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
|
||||
@@ -89,8 +89,6 @@ if (is_android) {
|
||||
@@ -97,8 +97,6 @@ if (is_android) {
|
||||
]
|
||||
|
||||
deps = [
|
||||
|
@ -731,7 +690,7 @@ diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD.
|
|||
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
|
||||
@@ -1137,37 +1137,6 @@ java_prebuilt("com_android_tools_build_jetifier_jetifier_processor_java") {
|
||||
@@ -1061,37 +1061,6 @@ java_prebuilt("com_android_tools_build_jetifier_jetifier_processor_java") {
|
||||
]
|
||||
}
|
||||
|
||||
|
@ -769,7 +728,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.
|
|||
# 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"
|
||||
@@ -1186,16 +1155,6 @@ android_aar_prebuilt("google_play_services_gcm_java") {
|
||||
@@ -1110,16 +1079,6 @@ android_aar_prebuilt("google_play_services_gcm_java") {
|
||||
strip_drawables = true
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ Subject: Remove dependency on com.google.android.gms.auth
|
|||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
+++ b/chrome/android/BUILD.gn
|
||||
@@ -265,7 +265,6 @@ android_library("chrome_java") {
|
||||
@@ -282,7 +282,6 @@ android_library("chrome_java") {
|
||||
":partner_location_descriptor_proto_java",
|
||||
":update_proto_java",
|
||||
":usage_stats_proto_java",
|
||||
|
@ -82,7 +82,7 @@ diff --git a/components/signin/core/browser/android/java/src/org/chromium/compon
|
|||
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
|
||||
@@ -72,7 +72,6 @@ action_with_pydeps("generate_sandboxed_service_srcjar") {
|
||||
@@ -71,7 +71,6 @@ action_with_pydeps("generate_sandboxed_service_srcjar") {
|
||||
android_library("content_java") {
|
||||
deps = [
|
||||
":content_java_resources",
|
||||
|
@ -93,7 +93,7 @@ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn
|
|||
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
|
||||
--- a/content/test/BUILD.gn
|
||||
+++ b/content/test/BUILD.gn
|
||||
@@ -2535,7 +2535,6 @@ if (is_android) {
|
||||
@@ -2545,7 +2545,6 @@ if (is_android) {
|
||||
testonly = true
|
||||
sources = content_java_sources_needing_jni
|
||||
deps = [
|
||||
|
@ -104,7 +104,7 @@ diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
|
|||
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
|
||||
@@ -1138,53 +1138,6 @@ java_prebuilt("com_android_tools_build_jetifier_jetifier_processor_java") {
|
||||
@@ -1062,53 +1062,6 @@ java_prebuilt("com_android_tools_build_jetifier_jetifier_processor_java") {
|
||||
]
|
||||
}
|
||||
|
||||
|
|
|
@ -4,35 +4,35 @@ Subject: Remove dependency on com.google.android.gms.cast
|
|||
|
||||
---
|
||||
chrome/android/BUILD.gn | 7 --
|
||||
chrome/android/features/media_router/BUILD.gn | 5 -
|
||||
.../browser/media/router/CastSessionUtil.java | 35 ------
|
||||
.../browser/media/router/MediaSink.java | 44 +-------
|
||||
.../media/router/MediaStatusBridge.java | 40 ++-----
|
||||
chrome/android/java/AndroidManifest.xml | 26 -----
|
||||
.../settings/PasswordSettings.java | 14 ---
|
||||
.../modules/chrome_feature_modules.gni | 3 -
|
||||
chrome/test/android/cast_emulator/BUILD.gn | 1 -
|
||||
.../media_router/browser/android/BUILD.gn | 7 --
|
||||
.../media_router/CastSessionUtil.java | 35 ------
|
||||
.../components/media_router/MediaSink.java | 44 +-------
|
||||
.../media_router/MediaStatusBridge.java | 40 ++-----
|
||||
.../caf/BaseNotificationController.java | 46 --------
|
||||
.../router/caf/BaseSessionController.java | 100 +----------------
|
||||
.../router/caf/CafBaseMediaRouteProvider.java | 103 +-----------------
|
||||
.../router/caf/CafMediaRouteProvider.java | 16 ---
|
||||
.../media/router/caf/CafMessageHandler.java | 97 +----------------
|
||||
.../media/router/caf/CastMediaSource.java | 10 +-
|
||||
.../media/router/caf/CastOptionsProvider.java | 22 +---
|
||||
.../router/caf/CastSessionController.java | 84 --------------
|
||||
.../browser/media/router/caf/CastUtils.java | 6 -
|
||||
.../caf/BaseSessionController.java | 100 +----------------
|
||||
.../caf/CafBaseMediaRouteProvider.java | 103 +-----------------
|
||||
.../caf/CafMediaRouteProvider.java | 16 ---
|
||||
.../media_router/caf/CafMessageHandler.java | 97 +----------------
|
||||
.../media_router/caf/CastMediaSource.java | 10 +-
|
||||
.../media_router/caf/CastOptionsProvider.java | 22 +---
|
||||
.../caf/CastSessionController.java | 84 --------------
|
||||
.../media_router/caf/CastUtils.java | 6 -
|
||||
.../CafExpandedControllerActivity.java | 33 +-----
|
||||
.../CafRemotingMediaRouteProvider.java | 2 +-
|
||||
.../remoting/FlingingControllerAdapter.java | 74 -------------
|
||||
.../caf/remoting/RemotingMediaSource.java | 8 +-
|
||||
.../remoting/RemotingSessionController.java | 26 -----
|
||||
chrome/android/java/AndroidManifest.xml | 27 -----
|
||||
.../settings/PasswordSettings.java | 14 ---
|
||||
.../modules/chrome_feature_modules.gni | 3 -
|
||||
chrome/test/android/cast_emulator/BUILD.gn | 1 -
|
||||
third_party/android_deps/BUILD.gn | 39 -------
|
||||
24 files changed, 29 insertions(+), 813 deletions(-)
|
||||
24 files changed, 29 insertions(+), 814 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
+++ b/chrome/android/BUILD.gn
|
||||
@@ -267,14 +267,11 @@ android_library("chrome_java") {
|
||||
@@ -284,14 +284,11 @@ android_library("chrome_java") {
|
||||
":usage_stats_proto_java",
|
||||
"$google_play_services_package:google_play_services_base_java",
|
||||
"$google_play_services_package:google_play_services_basement_java",
|
||||
|
@ -47,7 +47,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
|||
"//chrome/android/modules/image_editor/provider:java",
|
||||
"//chrome/android/modules/image_editor/public:java",
|
||||
"//chrome/android/modules/stack_unwinder/provider:java",
|
||||
@@ -746,8 +743,6 @@ junit_binary("chrome_junit_tests") {
|
||||
@@ -763,8 +760,6 @@ junit_binary("chrome_junit_tests") {
|
||||
":partner_location_descriptor_proto_java",
|
||||
"$google_play_services_package:google_play_services_base_java",
|
||||
"$google_play_services_package:google_play_services_basement_java",
|
||||
|
@ -56,7 +56,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
|||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
"//base:base_junit_test_support",
|
||||
@@ -937,8 +932,6 @@ android_library("chrome_test_java") {
|
||||
@@ -958,8 +953,6 @@ android_library("chrome_test_java") {
|
||||
":partner_location_descriptor_proto_java",
|
||||
"$google_play_services_package:google_play_services_base_java",
|
||||
"$google_play_services_package:google_play_services_basement_java",
|
||||
|
@ -65,34 +65,148 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
|||
"$google_play_services_package:google_play_services_tasks_java",
|
||||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
diff --git a/chrome/android/features/media_router/BUILD.gn b/chrome/android/features/media_router/BUILD.gn
|
||||
--- a/chrome/android/features/media_router/BUILD.gn
|
||||
+++ b/chrome/android/features/media_router/BUILD.gn
|
||||
@@ -13,8 +13,6 @@ android_library("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
|
||||
@@ -197,12 +197,6 @@ by a child template that "extends" this file.
|
||||
<meta-data android:name="com.google.ar.core" android:value="optional" />
|
||||
{% endif %}
|
||||
|
||||
- <!-- Cast support -->
|
||||
- <meta-data
|
||||
- android:name=
|
||||
- "com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
|
||||
- android:value="org.chromium.components.media_router.caf.CastOptionsProvider"/>
|
||||
-
|
||||
<!-- Note: All activities directly or indirectly derived from ChromeActivity
|
||||
must specify android:hardwareAccelerated="false".
|
||||
|
||||
@@ -729,16 +723,6 @@ by a child template that "extends" this file.
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
- <activity android:name="org.chromium.components.media_router.caf.remoting.CafExpandedControllerActivity"
|
||||
- android:theme="@style/Theme.Chromium.Activity"
|
||||
- android:label="Chrome.CafExpandedControllerActivity"
|
||||
- android:hardwareAccelerated="true"
|
||||
- android:launchMode="singleTask"
|
||||
- android:noHistory="true"
|
||||
- android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
|
||||
- android:excludeFromRecents="true">
|
||||
- </activity>
|
||||
-
|
||||
<!-- This activity is used to restart the main Chrome process. Should never be exported. -->
|
||||
<activity android:name="org.chromium.chrome.browser.BrowserRestartActivity"
|
||||
android:launchMode="singleInstance"
|
||||
@@ -1100,16 +1084,6 @@ by a child template that "extends" this file.
|
||||
{% endif %}
|
||||
|
||||
{% block extra_application_definitions %}
|
||||
- <!-- Media route controllers to use for remote playback (cast).
|
||||
- This is here, rather than in code, since it varies between upstream and downstream,
|
||||
- yet we need this list of classes in the notification service, which belongs upstream
|
||||
- and doesn't run the downstream startup code. The Cast code will, for each media element,
|
||||
- choose the first MediaRouteController that can play it, so the order of the list can be important.
|
||||
- The most specific MediaRouteControllers should be listed first, followed by more generic ones.
|
||||
- The downstream manifest replaces this block, and hence replaces the list of media route
|
||||
- controllers with its own list. -->
|
||||
- <meta-data android:name="org.chromium.content.browser.REMOTE_MEDIA_PLAYERS"
|
||||
- android:value="org.chromium.chrome.browser.media.remote.DefaultMediaRouteController"/>
|
||||
{% endblock %}
|
||||
{% endmacro %}
|
||||
{% if not definitions_in_split %}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
|
||||
@@ -42,7 +42,6 @@ import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate;
|
||||
import org.chromium.chrome.browser.settings.SettingsLauncher;
|
||||
import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
|
||||
-import org.chromium.chrome.browser.webauthn.CableAuthenticatorModuleProvider;
|
||||
import org.chromium.components.browser_ui.settings.ChromeBasePreference;
|
||||
import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
|
||||
import org.chromium.components.browser_ui.settings.SearchUtils;
|
||||
@@ -557,19 +556,6 @@ public class PasswordSettings
|
||||
}
|
||||
|
||||
private void displaySecurityKeyLink() {
|
||||
- if (mSecurityKey == null) {
|
||||
- mSecurityKey = new ChromeBasePreference(getStyledContext());
|
||||
- mSecurityKey.setKey(PREF_KEY_SECURITY_KEY_LINK);
|
||||
- mSecurityKey.setTitle(R.string.phone_as_security_key_text);
|
||||
- mSecurityKey.setOnPreferenceClickListener(preference -> {
|
||||
- SettingsLauncher settingsLauncher = new SettingsLauncherImpl();
|
||||
- settingsLauncher.launchSettingsActivity(
|
||||
- getActivity(), CableAuthenticatorModuleProvider.class, null);
|
||||
- return true;
|
||||
- });
|
||||
- mSecurityKey.setOrder(ORDER_SECURITY_KEY);
|
||||
- }
|
||||
- getPreferenceScreen().addPreference(mSecurityKey);
|
||||
}
|
||||
|
||||
private Context getStyledContext() {
|
||||
diff --git a/chrome/android/modules/chrome_feature_modules.gni b/chrome/android/modules/chrome_feature_modules.gni
|
||||
--- a/chrome/android/modules/chrome_feature_modules.gni
|
||||
+++ b/chrome/android/modules/chrome_feature_modules.gni
|
||||
@@ -8,8 +8,6 @@ import(
|
||||
import("//chrome/android/features/dev_ui/dev_ui_module.gni")
|
||||
import("//chrome/android/features/tab_ui/tab_ui_module.gni")
|
||||
import("//chrome/android/modules/buildflags.gni")
|
||||
-import(
|
||||
- "//chrome/android/modules/cablev2_authenticator/cablev2_authenticator_module.gni")
|
||||
import("//chrome/android/modules/chime/chime_module.gni")
|
||||
import("//chrome/android/modules/extra_icu/extra_icu_module.gni")
|
||||
import("//chrome/android/modules/image_editor/image_editor_module.gni")
|
||||
@@ -72,7 +70,6 @@ if (!disable_autofill_assistant_dfm) {
|
||||
if (!disable_tab_ui_dfm) {
|
||||
monochrome_module_descs += [ tab_ui_module_desc ]
|
||||
}
|
||||
-monochrome_module_descs += [ cablev2_authenticator_module_desc ]
|
||||
|
||||
# Modules shipped in Trichrome (Android Q+).
|
||||
trichrome_module_descs = monochrome_module_descs
|
||||
diff --git a/chrome/test/android/cast_emulator/BUILD.gn b/chrome/test/android/cast_emulator/BUILD.gn
|
||||
--- a/chrome/test/android/cast_emulator/BUILD.gn
|
||||
+++ b/chrome/test/android/cast_emulator/BUILD.gn
|
||||
@@ -20,7 +20,6 @@ android_library("cast_emulator_java") {
|
||||
"src/org/chromium/chrome/browser/media/router/DummyRoutePublisher.java",
|
||||
]
|
||||
deps = [
|
||||
- "$google_play_services_package:google_play_services_cast_java",
|
||||
"//base:base_java",
|
||||
"//third_party/android_deps:android_support_v7_appcompat_java",
|
||||
"//third_party/android_deps:androidx_mediarouter_mediarouter_java",
|
||||
diff --git a/components/media_router/browser/android/BUILD.gn b/components/media_router/browser/android/BUILD.gn
|
||||
--- a/components/media_router/browser/android/BUILD.gn
|
||||
+++ b/components/media_router/browser/android/BUILD.gn
|
||||
@@ -10,10 +10,6 @@ android_library("java") {
|
||||
resources_package = "org.chromium.components.media_router"
|
||||
deps = [
|
||||
":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_base_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",
|
||||
"//base:base_java",
|
||||
"//base:jni_java",
|
||||
"//chrome/android:chrome_java",
|
||||
@@ -130,9 +128,6 @@ junit_binary("media_router_junit_tests") {
|
||||
|
||||
"//components/browser_ui/media/android:java",
|
||||
@@ -130,9 +126,6 @@ java_library("junit") {
|
||||
deps = [
|
||||
":java",
|
||||
":test_support_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",
|
||||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
"//base:base_junit_test_support",
|
||||
diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/CastSessionUtil.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/CastSessionUtil.java
|
||||
--- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/CastSessionUtil.java
|
||||
+++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/CastSessionUtil.java
|
||||
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/CastSessionUtil.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/CastSessionUtil.java
|
||||
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/CastSessionUtil.java
|
||||
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/CastSessionUtil.java
|
||||
@@ -4,9 +4,6 @@
|
||||
|
||||
package org.chromium.chrome.browser.media.router;
|
||||
package org.chromium.components.media_router;
|
||||
|
||||
-import com.google.android.gms.cast.CastDevice;
|
||||
-import com.google.android.gms.cast.RemoteMediaPlayer;
|
||||
|
@ -137,9 +251,9 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
- if (album != null) notificationMetadata.setAlbum(album);
|
||||
- }
|
||||
}
|
||||
diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/MediaSink.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/MediaSink.java
|
||||
--- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/MediaSink.java
|
||||
+++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/MediaSink.java
|
||||
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaSink.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaSink.java
|
||||
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaSink.java
|
||||
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaSink.java
|
||||
@@ -8,41 +8,24 @@ import androidx.annotation.Nullable;
|
||||
import androidx.mediarouter.media.MediaRouter;
|
||||
import androidx.mediarouter.media.MediaRouter.RouteInfo;
|
||||
|
@ -238,12 +352,12 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
return null;
|
||||
}
|
||||
}
|
||||
diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/MediaStatusBridge.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/MediaStatusBridge.java
|
||||
--- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/MediaStatusBridge.java
|
||||
+++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/MediaStatusBridge.java
|
||||
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaStatusBridge.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaStatusBridge.java
|
||||
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaStatusBridge.java
|
||||
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaStatusBridge.java
|
||||
@@ -4,10 +4,6 @@
|
||||
|
||||
package org.chromium.chrome.browser.media.router;
|
||||
package org.chromium.components.media_router;
|
||||
|
||||
-import com.google.android.gms.cast.MediaInfo;
|
||||
-import com.google.android.gms.cast.MediaMetadata;
|
||||
|
@ -371,10 +485,10 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
+ return 0;
|
||||
}
|
||||
}
|
||||
diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/BaseNotificationController.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/BaseNotificationController.java
|
||||
--- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/BaseNotificationController.java
|
||||
+++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/BaseNotificationController.java
|
||||
@@ -6,10 +6,6 @@ package org.chromium.chrome.browser.media.router.caf;
|
||||
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseNotificationController.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseNotificationController.java
|
||||
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseNotificationController.java
|
||||
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseNotificationController.java
|
||||
@@ -6,10 +6,6 @@ package org.chromium.components.media_router.caf;
|
||||
|
||||
import android.content.Intent;
|
||||
|
||||
|
@ -382,10 +496,10 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
-import com.google.android.gms.cast.MediaStatus;
|
||||
-import com.google.android.gms.cast.framework.media.RemoteMediaClient;
|
||||
-
|
||||
import org.chromium.chrome.browser.media.ui.MediaNotificationManager;
|
||||
import org.chromium.chrome.media.router.R;
|
||||
import org.chromium.components.browser_ui.media.MediaNotificationInfo;
|
||||
@@ -59,20 +55,6 @@ public abstract class BaseNotificationController
|
||||
import org.chromium.components.browser_ui.media.MediaNotificationListener;
|
||||
import org.chromium.components.browser_ui.media.MediaNotificationManager;
|
||||
@@ -61,20 +57,6 @@ public abstract class BaseNotificationController
|
||||
public void onStatusUpdated() {
|
||||
if (mNotificationBuilder == null) return;
|
||||
if (!mSessionController.isConnected()) return;
|
||||
|
@ -402,11 +516,11 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
- } else {
|
||||
- mNotificationBuilder.setActions(MediaNotificationInfo.ACTION_STOP);
|
||||
- }
|
||||
- MediaNotificationManager.show(mNotificationBuilder.build());
|
||||
- MediaRouterClient.getInstance().showNotification(mNotificationBuilder.build());
|
||||
}
|
||||
|
||||
/** Called when media metadata updated. */
|
||||
@@ -88,30 +70,6 @@ public abstract class BaseNotificationController
|
||||
@@ -90,30 +72,6 @@ public abstract class BaseNotificationController
|
||||
mNotificationBuilder.setMetadata(notificationMetadata);
|
||||
|
||||
if (!mSessionController.isConnected()) return;
|
||||
|
@ -437,7 +551,7 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -120,15 +78,11 @@ public abstract class BaseNotificationController
|
||||
@@ -122,15 +80,11 @@ public abstract class BaseNotificationController
|
||||
@Override
|
||||
public void onPlay(int actionSource) {
|
||||
if (!mSessionController.isConnected()) return;
|
||||
|
@ -453,10 +567,10 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
}
|
||||
|
||||
@Override
|
||||
diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/BaseSessionController.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/BaseSessionController.java
|
||||
--- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/BaseSessionController.java
|
||||
+++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/BaseSessionController.java
|
||||
@@ -6,12 +6,7 @@ package org.chromium.chrome.browser.media.router.caf;
|
||||
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseSessionController.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseSessionController.java
|
||||
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseSessionController.java
|
||||
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseSessionController.java
|
||||
@@ -6,12 +6,7 @@ package org.chromium.components.media_router.caf;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
|
@ -465,10 +579,10 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
-import com.google.android.gms.cast.framework.media.RemoteMediaClient;
|
||||
-
|
||||
import org.chromium.base.Log;
|
||||
-import org.chromium.chrome.browser.media.router.CastSessionUtil;
|
||||
import org.chromium.chrome.browser.media.router.FlingingController;
|
||||
import org.chromium.chrome.browser.media.router.MediaSink;
|
||||
import org.chromium.chrome.browser.media.router.MediaSource;
|
||||
-import org.chromium.components.media_router.CastSessionUtil;
|
||||
import org.chromium.components.media_router.FlingingController;
|
||||
import org.chromium.components.media_router.MediaSink;
|
||||
import org.chromium.components.media_router.MediaSource;
|
||||
@@ -42,15 +37,12 @@ public abstract class BaseSessionController {
|
||||
void onMetadataUpdated();
|
||||
}
|
||||
|
@ -618,9 +732,9 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
}
|
||||
|
||||
private void notifyCallback(NotifyCallbackAction action) {
|
||||
diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafBaseMediaRouteProvider.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafBaseMediaRouteProvider.java
|
||||
--- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafBaseMediaRouteProvider.java
|
||||
+++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafBaseMediaRouteProvider.java
|
||||
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafBaseMediaRouteProvider.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafBaseMediaRouteProvider.java
|
||||
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafBaseMediaRouteProvider.java
|
||||
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafBaseMediaRouteProvider.java
|
||||
@@ -12,9 +12,6 @@ import androidx.mediarouter.media.MediaRouteSelector;
|
||||
import androidx.mediarouter.media.MediaRouter;
|
||||
import androidx.mediarouter.media.MediaRouter.RouteInfo;
|
||||
|
@ -629,8 +743,8 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
-import com.google.android.gms.cast.framework.SessionManagerListener;
|
||||
-
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.chrome.browser.media.router.DiscoveryCallback;
|
||||
import org.chromium.chrome.browser.media.router.DiscoveryDelegate;
|
||||
import org.chromium.components.media_router.DiscoveryCallback;
|
||||
import org.chromium.components.media_router.DiscoveryDelegate;
|
||||
@@ -37,7 +34,7 @@ import java.util.Set;
|
||||
* A base provider containing common implementation for CAF-based {@link MediaRouteProvider}s.
|
||||
*/
|
||||
|
@ -640,7 +754,7 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
private static final String TAG = "CafMR";
|
||||
|
||||
protected static final List<MediaSink> NO_SINKS = Collections.emptyList();
|
||||
@@ -154,7 +151,6 @@ public abstract class CafBaseMediaRouteProvider
|
||||
@@ -153,7 +150,6 @@ public abstract class CafBaseMediaRouteProvider
|
||||
// current session and clean up the routes (can't wait for session ending as the signal
|
||||
// might be delayed).
|
||||
sessionController().endSession();
|
||||
|
@ -648,7 +762,7 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
}
|
||||
if (mPendingCreateRouteRequestInfo != null) {
|
||||
cancelPendingRequest("Request replaced");
|
||||
@@ -183,9 +179,6 @@ public abstract class CafBaseMediaRouteProvider
|
||||
@@ -182,9 +178,6 @@ public abstract class CafBaseMediaRouteProvider
|
||||
mManager.onRouteRequestError("The sink does not exist", nativeRequestId);
|
||||
}
|
||||
|
||||
|
@ -658,7 +772,7 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
mPendingCreateRouteRequestInfo = new CreateRouteRequestInfo(source, sink, presentationId,
|
||||
origin, tabId, isOffTheRecord, nativeRequestId, targetRouteInfo);
|
||||
|
||||
@@ -212,100 +205,6 @@ public abstract class CafBaseMediaRouteProvider
|
||||
@@ -211,100 +204,6 @@ public abstract class CafBaseMediaRouteProvider
|
||||
removeRoute(routeId, /* error= */ null);
|
||||
}
|
||||
|
||||
|
@ -759,9 +873,9 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
private void cancelPendingRequest(String error) {
|
||||
if (mPendingCreateRouteRequestInfo == null) return;
|
||||
|
||||
diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafMediaRouteProvider.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafMediaRouteProvider.java
|
||||
--- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafMediaRouteProvider.java
|
||||
+++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafMediaRouteProvider.java
|
||||
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMediaRouteProvider.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMediaRouteProvider.java
|
||||
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMediaRouteProvider.java
|
||||
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMediaRouteProvider.java
|
||||
@@ -11,8 +11,6 @@ import androidx.annotation.Nullable;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.mediarouter.media.MediaRouter;
|
||||
|
@ -769,8 +883,8 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
-import com.google.android.gms.cast.framework.CastSession;
|
||||
-
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.chrome.browser.media.router.ChromeMediaRouter;
|
||||
import org.chromium.chrome.browser.media.router.ClientRecord;
|
||||
import org.chromium.components.media_router.BrowserMediaRouter;
|
||||
import org.chromium.components.media_router.ClientRecord;
|
||||
@@ -147,20 +145,6 @@ public class CafMediaRouteProvider extends CafBaseMediaRouteProvider {
|
||||
return mMessageHandler;
|
||||
}
|
||||
|
@ -792,9 +906,9 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
@Override
|
||||
protected void addRoute(
|
||||
MediaRoute route, String origin, int tabId, int nativeRequestId, boolean wasLaunched) {
|
||||
diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafMessageHandler.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafMessageHandler.java
|
||||
--- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafMessageHandler.java
|
||||
+++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafMessageHandler.java
|
||||
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMessageHandler.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMessageHandler.java
|
||||
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMessageHandler.java
|
||||
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMessageHandler.java
|
||||
@@ -13,10 +13,6 @@ import android.util.SparseArray;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.collection.ArrayMap;
|
||||
|
@ -937,16 +1051,16 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
+ return false;
|
||||
}
|
||||
}
|
||||
diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CastMediaSource.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CastMediaSource.java
|
||||
--- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CastMediaSource.java
|
||||
+++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CastMediaSource.java
|
||||
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastMediaSource.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastMediaSource.java
|
||||
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastMediaSource.java
|
||||
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastMediaSource.java
|
||||
@@ -9,8 +9,6 @@ import android.net.Uri;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.mediarouter.media.MediaRouteSelector;
|
||||
|
||||
-import com.google.android.gms.cast.CastMediaControlIntent;
|
||||
-
|
||||
import org.chromium.chrome.browser.media.router.MediaSource;
|
||||
import org.chromium.components.media_router.MediaSource;
|
||||
|
||||
import java.util.Arrays;
|
||||
@@ -106,13 +104,7 @@ public class CastMediaSource implements MediaSource {
|
||||
|
@ -964,10 +1078,10 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
}
|
||||
|
||||
/**
|
||||
diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CastOptionsProvider.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CastOptionsProvider.java
|
||||
--- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CastOptionsProvider.java
|
||||
+++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CastOptionsProvider.java
|
||||
@@ -6,28 +6,8 @@ package org.chromium.chrome.browser.media.router.caf;
|
||||
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastOptionsProvider.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastOptionsProvider.java
|
||||
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastOptionsProvider.java
|
||||
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastOptionsProvider.java
|
||||
@@ -6,28 +6,8 @@ package org.chromium.components.media_router.caf;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
|
@ -997,10 +1111,10 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
- }
|
||||
+public class CastOptionsProvider {
|
||||
}
|
||||
diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CastSessionController.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CastSessionController.java
|
||||
--- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CastSessionController.java
|
||||
+++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CastSessionController.java
|
||||
@@ -7,11 +7,6 @@ package org.chromium.chrome.browser.media.router.caf;
|
||||
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastSessionController.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastSessionController.java
|
||||
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastSessionController.java
|
||||
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastSessionController.java
|
||||
@@ -7,11 +7,6 @@ package org.chromium.components.media_router.caf;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
|
||||
|
@ -1135,12 +1249,12 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
}
|
||||
|
||||
@NonNull
|
||||
diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CastUtils.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CastUtils.java
|
||||
--- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CastUtils.java
|
||||
+++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CastUtils.java
|
||||
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastUtils.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastUtils.java
|
||||
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastUtils.java
|
||||
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastUtils.java
|
||||
@@ -4,16 +4,10 @@
|
||||
|
||||
package org.chromium.chrome.browser.media.router.caf;
|
||||
package org.chromium.components.media_router.caf;
|
||||
|
||||
-import com.google.android.gms.cast.framework.CastContext;
|
||||
-
|
||||
|
@ -1155,9 +1269,9 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
|
||||
/**
|
||||
* Compares two origins. Empty origin strings correspond to unique origins in
|
||||
diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/CafExpandedControllerActivity.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/CafExpandedControllerActivity.java
|
||||
--- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/CafExpandedControllerActivity.java
|
||||
+++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/CafExpandedControllerActivity.java
|
||||
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafExpandedControllerActivity.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafExpandedControllerActivity.java
|
||||
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafExpandedControllerActivity.java
|
||||
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafExpandedControllerActivity.java
|
||||
@@ -45,53 +45,36 @@ public class CafExpandedControllerActivity
|
||||
@Override
|
||||
public void play() {
|
||||
|
@ -1236,9 +1350,9 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
}
|
||||
|
||||
private void scheduleProgressUpdateTask() {
|
||||
diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/CafRemotingMediaRouteProvider.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/CafRemotingMediaRouteProvider.java
|
||||
--- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/CafRemotingMediaRouteProvider.java
|
||||
+++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/CafRemotingMediaRouteProvider.java
|
||||
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider.java
|
||||
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider.java
|
||||
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider.java
|
||||
@@ -65,6 +65,6 @@ public class CafRemotingMediaRouteProvider extends CafBaseMediaRouteProvider {
|
||||
|
||||
if (!mRoutes.containsKey(routeId)) return null;
|
||||
|
@ -1247,12 +1361,12 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
+ return null;
|
||||
}
|
||||
}
|
||||
diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/FlingingControllerAdapter.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/FlingingControllerAdapter.java
|
||||
--- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/FlingingControllerAdapter.java
|
||||
+++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/FlingingControllerAdapter.java
|
||||
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/FlingingControllerAdapter.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/FlingingControllerAdapter.java
|
||||
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/FlingingControllerAdapter.java
|
||||
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/FlingingControllerAdapter.java
|
||||
@@ -4,11 +4,6 @@
|
||||
|
||||
package org.chromium.chrome.browser.media.router.caf.remoting;
|
||||
package org.chromium.components.media_router.caf.remoting;
|
||||
|
||||
-import com.google.android.gms.cast.MediaInfo;
|
||||
-import com.google.android.gms.cast.MediaStatus;
|
||||
|
@ -1260,8 +1374,8 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
-import com.google.android.gms.common.api.Result;
|
||||
-
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.chrome.browser.media.router.FlingingController;
|
||||
import org.chromium.chrome.browser.media.router.MediaController;
|
||||
import org.chromium.components.media_router.FlingingController;
|
||||
import org.chromium.components.media_router.MediaController;
|
||||
@@ -69,14 +64,6 @@ public class FlingingControllerAdapter implements FlingingController, MediaContr
|
||||
/** Starts loading the media URL, from the given position. */
|
||||
public void load(long position) {
|
||||
|
@ -1367,9 +1481,9 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
- }
|
||||
- }
|
||||
}
|
||||
diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/RemotingMediaSource.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/RemotingMediaSource.java
|
||||
--- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/RemotingMediaSource.java
|
||||
+++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/RemotingMediaSource.java
|
||||
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingMediaSource.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingMediaSource.java
|
||||
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingMediaSource.java
|
||||
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingMediaSource.java
|
||||
@@ -12,8 +12,6 @@ import android.util.Base64;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.mediarouter.media.MediaRouteSelector;
|
||||
|
@ -1378,7 +1492,7 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
-
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.chrome.browser.media.router.MediaSource;
|
||||
import org.chromium.components.media_router.MediaSource;
|
||||
@@ -79,9 +77,7 @@ public class RemotingMediaSource implements MediaSource {
|
||||
*/
|
||||
@Override
|
||||
|
@ -1399,18 +1513,18 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
}
|
||||
|
||||
return sApplicationId;
|
||||
diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/RemotingSessionController.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/RemotingSessionController.java
|
||||
--- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/RemotingSessionController.java
|
||||
+++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/RemotingSessionController.java
|
||||
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingSessionController.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingSessionController.java
|
||||
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingSessionController.java
|
||||
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingSessionController.java
|
||||
@@ -4,8 +4,6 @@
|
||||
|
||||
package org.chromium.chrome.browser.media.router.caf.remoting;
|
||||
package org.chromium.components.media_router.caf.remoting;
|
||||
|
||||
-import com.google.android.gms.cast.framework.CastSession;
|
||||
-
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.chrome.browser.media.router.CastSessionUtil;
|
||||
import org.chromium.chrome.browser.media.router.caf.BaseNotificationController;
|
||||
import org.chromium.components.media_router.CastSessionUtil;
|
||||
import org.chromium.components.media_router.caf.BaseNotificationController;
|
||||
@@ -33,19 +31,6 @@ public class RemotingSessionController extends BaseSessionController {
|
||||
sInstance = new WeakReference<>(this);
|
||||
}
|
||||
|
@ -1449,123 +1563,10 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b
|
|||
@Override
|
||||
public BaseNotificationController getNotificationController() {
|
||||
return mNotificationController;
|
||||
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
|
||||
@@ -165,12 +165,6 @@ by a child template that "extends" this file.
|
||||
<meta-data android:name="com.google.ar.core" android:value="optional" />
|
||||
{% endif %}
|
||||
|
||||
- <!-- Cast support -->
|
||||
- <meta-data
|
||||
- android:name=
|
||||
- "com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
|
||||
- android:value="org.chromium.chrome.browser.media.router.caf.CastOptionsProvider"/>
|
||||
-
|
||||
<!-- Note: All activities directly or indirectly derived from ChromeActivity
|
||||
must specify android:hardwareAccelerated="false".
|
||||
|
||||
@@ -683,16 +677,6 @@ by a child template that "extends" this file.
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
- <activity android:name="org.chromium.chrome.browser.media.router.caf.remoting.CafExpandedControllerActivity"
|
||||
- android:theme="@style/Theme.Chromium.Activity"
|
||||
- android:label="Chrome.CafExpandedControllerActivity"
|
||||
- android:hardwareAccelerated="true"
|
||||
- android:launchMode="singleTask"
|
||||
- android:noHistory="true"
|
||||
- android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
|
||||
- android:excludeFromRecents="true">
|
||||
- </activity>
|
||||
-
|
||||
<!-- This activity is used to restart the main Chrome process. Should never be exported. -->
|
||||
<activity android:name="org.chromium.chrome.browser.BrowserRestartActivity"
|
||||
android:launchMode="singleInstance"
|
||||
@@ -1107,17 +1091,6 @@ by a child template that "extends" this file.
|
||||
|
||||
{% block extra_application_definitions %}
|
||||
|
||||
- <!-- Media route controllers to use for remote playback (cast).
|
||||
- This is here, rather than in code, since it varies between upstream and downstream,
|
||||
- yet we need this list of classes in the notification service, which belongs upstream
|
||||
- and doesn't run the downstream startup code. The Cast code will, for each media element,
|
||||
- choose the first MediaRouteController that can play it, so the order of the list can be important.
|
||||
- The most specific MediaRouteControllers should be listed first, followed by more generic ones.
|
||||
- The downstream manifest replaces this block, and hence replaces the list of media route
|
||||
- controllers with its own list. -->
|
||||
- <meta-data android:name="org.chromium.content.browser.REMOTE_MEDIA_PLAYERS"
|
||||
- android:value="org.chromium.chrome.browser.media.remote.DefaultMediaRouteController"/>
|
||||
-
|
||||
<!-- Downloads Google Sans from GMS Core -->
|
||||
<meta-data android:name="preloaded_fonts"
|
||||
android:resource="@array/preloaded_google_sans_fonts" />
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
|
||||
@@ -42,7 +42,6 @@ import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate;
|
||||
import org.chromium.chrome.browser.settings.SettingsLauncher;
|
||||
import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
|
||||
-import org.chromium.chrome.browser.webauthn.CableAuthenticatorModuleProvider;
|
||||
import org.chromium.components.browser_ui.settings.ChromeBaseCheckBoxPreference;
|
||||
import org.chromium.components.browser_ui.settings.ChromeBasePreference;
|
||||
import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
|
||||
@@ -558,19 +557,6 @@ public class PasswordSettings
|
||||
}
|
||||
|
||||
private void displaySecurityKeyLink() {
|
||||
- if (mSecurityKey == null) {
|
||||
- mSecurityKey = new ChromeBasePreference(getStyledContext());
|
||||
- mSecurityKey.setKey(PREF_KEY_SECURITY_KEY_LINK);
|
||||
- mSecurityKey.setTitle(R.string.phone_as_security_key_text);
|
||||
- mSecurityKey.setOnPreferenceClickListener(preference -> {
|
||||
- SettingsLauncher settingsLauncher = new SettingsLauncherImpl();
|
||||
- settingsLauncher.launchSettingsActivity(
|
||||
- getActivity(), CableAuthenticatorModuleProvider.class, null);
|
||||
- return true;
|
||||
- });
|
||||
- mSecurityKey.setOrder(ORDER_SECURITY_KEY);
|
||||
- }
|
||||
- getPreferenceScreen().addPreference(mSecurityKey);
|
||||
}
|
||||
|
||||
private Context getStyledContext() {
|
||||
diff --git a/chrome/android/modules/chrome_feature_modules.gni b/chrome/android/modules/chrome_feature_modules.gni
|
||||
--- a/chrome/android/modules/chrome_feature_modules.gni
|
||||
+++ b/chrome/android/modules/chrome_feature_modules.gni
|
||||
@@ -8,8 +8,6 @@ import(
|
||||
import("//chrome/android/features/dev_ui/dev_ui_module.gni")
|
||||
import("//chrome/android/features/tab_ui/tab_ui_module.gni")
|
||||
import("//chrome/android/modules/buildflags.gni")
|
||||
-import(
|
||||
- "//chrome/android/modules/cablev2_authenticator/cablev2_authenticator_module.gni")
|
||||
import("//chrome/android/modules/chime/chime_module.gni")
|
||||
import("//chrome/android/modules/extra_icu/extra_icu_module.gni")
|
||||
import("//chrome/android/modules/image_editor/image_editor_module.gni")
|
||||
@@ -71,7 +69,6 @@ if (!disable_autofill_assistant_dfm) {
|
||||
if (!disable_tab_ui_dfm) {
|
||||
monochrome_module_descs += [ tab_ui_module_desc ]
|
||||
}
|
||||
-monochrome_module_descs += [ cablev2_authenticator_module_desc ]
|
||||
|
||||
# Modules shipped in Trichrome (Android Q+).
|
||||
trichrome_module_descs = monochrome_module_descs
|
||||
diff --git a/chrome/test/android/cast_emulator/BUILD.gn b/chrome/test/android/cast_emulator/BUILD.gn
|
||||
--- a/chrome/test/android/cast_emulator/BUILD.gn
|
||||
+++ b/chrome/test/android/cast_emulator/BUILD.gn
|
||||
@@ -20,7 +20,6 @@ android_library("cast_emulator_java") {
|
||||
"src/org/chromium/chrome/browser/media/router/DummyRoutePublisher.java",
|
||||
]
|
||||
deps = [
|
||||
- "$google_play_services_package:google_play_services_cast_java",
|
||||
"//base:base_java",
|
||||
"//third_party/android_deps:android_support_v7_appcompat_java",
|
||||
"//third_party/android_deps:androidx_mediarouter_mediarouter_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
|
||||
@@ -1168,45 +1168,6 @@ android_aar_prebuilt("google_play_services_basement_java") {
|
||||
@@ -1092,45 +1092,6 @@ android_aar_prebuilt("google_play_services_basement_java") {
|
||||
input_jars_paths = [ "$android_sdk/optional/org.apache.http.legacy.jar" ]
|
||||
}
|
||||
|
||||
|
|
|
@ -7,14 +7,13 @@ The snippets are already disabled in native codes, this will disable it on Java
|
|||
---
|
||||
chrome/android/BUILD.gn | 3 -
|
||||
.../browser/ChromeBackgroundService.java | 4 -
|
||||
.../ntp/snippets/SnippetsLauncher.java | 2 +-
|
||||
.../gcm/ChromeGcmListenerService.java | 220 ------------------
|
||||
components/background_task_scheduler/BUILD.gn | 1 -
|
||||
.../internal/BUILD.gn | 3 -
|
||||
.../BackgroundTaskGcmTaskService.java | 160 -------------
|
||||
...ackgroundTaskSchedulerFactoryInternal.java | 6 +-
|
||||
...kgroundTaskSchedulerGcmNetworkManager.java | 55 -----
|
||||
9 files changed, 2 insertions(+), 452 deletions(-)
|
||||
8 files changed, 1 insertion(+), 451 deletions(-)
|
||||
delete mode 100644 chrome/android/java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerService.java
|
||||
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
|
||||
|
@ -22,7 +21,7 @@ The snippets are already disabled in native codes, this will disable it on Java
|
|||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
+++ b/chrome/android/BUILD.gn
|
||||
@@ -270,7 +270,6 @@ android_library("chrome_java") {
|
||||
@@ -287,7 +287,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",
|
||||
|
@ -30,7 +29,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
|||
"$google_play_services_package:google_play_services_iid_java",
|
||||
"$google_play_services_package:google_play_services_tasks_java",
|
||||
"//base:base_java",
|
||||
@@ -945,7 +944,6 @@ android_library("chrome_test_java") {
|
||||
@@ -966,7 +965,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",
|
||||
|
@ -38,7 +37,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
|||
"$google_play_services_package:google_play_services_iid_java",
|
||||
"$google_play_services_package:google_play_services_tasks_java",
|
||||
"//base:base_java",
|
||||
@@ -1872,7 +1870,6 @@ android_library("browser_java_test_support") {
|
||||
@@ -1915,7 +1913,6 @@ android_library("browser_java_test_support") {
|
||||
]
|
||||
deps = [
|
||||
":chrome_java",
|
||||
|
@ -60,18 +59,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroun
|
|||
import org.chromium.base.Log;
|
||||
import org.chromium.base.task.PostTask;
|
||||
import org.chromium.chrome.browser.background_sync.BackgroundSyncBackgroundTaskScheduler;
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java
|
||||
@@ -35,7 +35,7 @@ public class SnippetsLauncher {
|
||||
// If it is non-null then the browser is running.
|
||||
private static SnippetsLauncher sInstance;
|
||||
|
||||
- private boolean mGCMEnabled = true;
|
||||
+ private boolean mGCMEnabled;
|
||||
|
||||
/**
|
||||
* Create a SnippetsLauncher object, which is owned by C++.
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerService.java b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerService.java
|
||||
deleted file mode 100644
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerService.java
|
||||
|
@ -95,7 +82,7 @@ deleted file mode 100644
|
|||
-import org.chromium.base.Log;
|
||||
-import org.chromium.base.ThreadUtils;
|
||||
-import org.chromium.base.task.PostTask;
|
||||
-import org.chromium.chrome.browser.DeviceConditions;
|
||||
-import org.chromium.chrome.browser.device.DeviceConditions;
|
||||
-import org.chromium.chrome.browser.init.ChromeBrowserInitializer;
|
||||
-import org.chromium.chrome.browser.init.ProcessInitializationHandler;
|
||||
-import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory;
|
||||
|
|
|
@ -14,7 +14,7 @@ Subject: Remove dependency on com.google.android.play
|
|||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
+++ b/chrome/android/BUILD.gn
|
||||
@@ -484,7 +484,6 @@ android_library("chrome_java") {
|
||||
@@ -511,7 +511,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",
|
||||
|
|
|
@ -21,7 +21,7 @@ Subject: Remove dependency on fido, iid, instantapps, location
|
|||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
+++ b/chrome/android/BUILD.gn
|
||||
@@ -269,8 +269,6 @@ android_library("chrome_java") {
|
||||
@@ -286,8 +286,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",
|
||||
|
@ -30,7 +30,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
|||
"$google_play_services_package:google_play_services_tasks_java",
|
||||
"//base:base_java",
|
||||
"//base:jni_java",
|
||||
@@ -750,7 +748,6 @@ junit_binary("chrome_junit_tests") {
|
||||
@@ -767,7 +765,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",
|
||||
|
@ -38,7 +38,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
|||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
"//base:base_junit_test_support",
|
||||
@@ -942,8 +939,6 @@ android_library("chrome_test_java") {
|
||||
@@ -963,8 +960,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",
|
||||
|
@ -50,7 +50,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
|||
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
|
||||
@@ -1728,9 +1728,6 @@ chrome_java_sources = [
|
||||
@@ -1695,9 +1695,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",
|
||||
|
@ -59,7 +59,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_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/webshare/ShareServiceImplementationFactory.java",
|
||||
"java/src/org/chromium/chrome/browser/widget/DateDividedAdapter.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
|
||||
|
@ -345,7 +345,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com
|
|||
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 {
|
||||
@@ -805,7 +805,7 @@ const base::Feature kWebContentsOcclusion {
|
||||
// Controls whether the WebAuthentication API is enabled:
|
||||
// https://w3c.github.io/webauthn
|
||||
const base::Feature kWebAuth{"WebAuthentication",
|
||||
|
@ -357,7 +357,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c
|
|||
diff --git a/device/BUILD.gn b/device/BUILD.gn
|
||||
--- a/device/BUILD.gn
|
||||
+++ b/device/BUILD.gn
|
||||
@@ -396,7 +396,6 @@ if (is_android) {
|
||||
@@ -407,7 +407,6 @@ if (is_android) {
|
||||
deps = [
|
||||
"$google_play_services_package:google_play_services_base_java",
|
||||
"$google_play_services_package:google_play_services_basement_java",
|
||||
|
@ -368,7 +368,7 @@ diff --git a/device/BUILD.gn b/device/BUILD.gn
|
|||
diff --git a/services/BUILD.gn b/services/BUILD.gn
|
||||
--- a/services/BUILD.gn
|
||||
+++ b/services/BUILD.gn
|
||||
@@ -103,9 +103,6 @@ if (is_android) {
|
||||
@@ -105,9 +105,6 @@ if (is_android) {
|
||||
"shape_detection/android/junit/src/org/chromium/shape_detection/BitmapUtilsTest.java",
|
||||
]
|
||||
deps = [
|
||||
|
@ -381,7 +381,7 @@ diff --git a/services/BUILD.gn b/services/BUILD.gn
|
|||
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
|
||||
@@ -158,7 +158,6 @@ if (is_android) {
|
||||
@@ -166,7 +166,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",
|
||||
|
@ -542,7 +542,7 @@ diff --git a/services/device/geolocation/android/java/src/org/chromium/device/ge
|
|||
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
|
||||
@@ -52,7 +52,6 @@ java_group("robolectric_all_java") {
|
||||
@@ -49,7 +49,6 @@ java_group("robolectric_all_java") {
|
||||
":org_robolectric_shadowapi_java",
|
||||
":org_robolectric_shadows_framework_java",
|
||||
":org_robolectric_shadows_multidex_java",
|
||||
|
@ -550,7 +550,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.
|
|||
":org_robolectric_utils_java",
|
||||
":org_robolectric_utils_reflector_java",
|
||||
"//third_party/robolectric:android-all-10-robolectric-5803371_java",
|
||||
@@ -1208,20 +1207,6 @@ android_aar_prebuilt("google_play_services_cast_framework_java") {
|
||||
@@ -1132,20 +1131,6 @@ android_aar_prebuilt("google_play_services_cast_framework_java") {
|
||||
strip_resources = !is_java_debug
|
||||
}
|
||||
|
||||
|
@ -571,7 +571,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.
|
|||
# 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"
|
||||
@@ -1240,52 +1225,6 @@ android_aar_prebuilt("google_play_services_gcm_java") {
|
||||
@@ -1164,52 +1149,6 @@ android_aar_prebuilt("google_play_services_gcm_java") {
|
||||
strip_drawables = true
|
||||
}
|
||||
|
||||
|
@ -624,7 +624,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.
|
|||
# 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"
|
||||
@@ -1660,20 +1599,6 @@ java_prebuilt("org_robolectric_shadows_multidex_java") {
|
||||
@@ -1584,20 +1523,6 @@ java_prebuilt("org_robolectric_shadows_multidex_java") {
|
||||
bypass_platform_checks = true
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: Remove dependency on flags, places and stats
|
|||
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
|
||||
@@ -2196,37 +2196,6 @@ java_prebuilt("com_github_kevinstern_software_and_algorithms_java") {
|
||||
@@ -2066,37 +2066,6 @@ java_prebuilt("com_github_kevinstern_software_and_algorithms_java") {
|
||||
visibility = [ ":*" ]
|
||||
}
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ Subject: Remove dependency on vision, clearcut and phenotype
|
|||
diff --git a/services/BUILD.gn b/services/BUILD.gn
|
||||
--- a/services/BUILD.gn
|
||||
+++ b/services/BUILD.gn
|
||||
@@ -106,8 +106,6 @@ if (is_android) {
|
||||
@@ -108,8 +108,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",
|
||||
|
@ -24,7 +24,7 @@ diff --git a/services/BUILD.gn b/services/BUILD.gn
|
|||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
"//base:base_junit_test_support",
|
||||
@@ -138,8 +136,6 @@ if (is_android) {
|
||||
@@ -140,8 +138,6 @@ if (is_android) {
|
||||
deps = [
|
||||
"$google_play_services_package:google_play_services_base_java",
|
||||
"$google_play_services_package:google_play_services_basement_java",
|
||||
|
@ -36,7 +36,7 @@ diff --git a/services/BUILD.gn b/services/BUILD.gn
|
|||
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
|
||||
@@ -91,8 +91,6 @@ if (is_android) {
|
||||
@@ -99,8 +99,6 @@ if (is_android) {
|
||||
deps = [
|
||||
"$google_play_services_package:google_play_services_base_java",
|
||||
"$google_play_services_package:google_play_services_basement_java",
|
||||
|
@ -494,7 +494,7 @@ diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detect
|
|||
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
|
||||
@@ -1296,36 +1296,6 @@ android_aar_prebuilt("google_play_services_tasks_java") {
|
||||
@@ -1220,36 +1220,6 @@ android_aar_prebuilt("google_play_services_tasks_java") {
|
||||
strip_drawables = true
|
||||
}
|
||||
|
||||
|
@ -531,7 +531,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.
|
|||
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
android_aar_prebuilt("com_google_android_material_material_java") {
|
||||
aar_path =
|
||||
@@ -2226,62 +2196,6 @@ java_prebuilt("com_github_kevinstern_software_and_algorithms_java") {
|
||||
@@ -2096,62 +2066,6 @@ java_prebuilt("com_github_kevinstern_software_and_algorithms_java") {
|
||||
visibility = [ ":*" ]
|
||||
}
|
||||
|
||||
|
|
|
@ -3,13 +3,55 @@ Date: Sun, 3 May 2020 12:15:33 +0200
|
|||
Subject: Remove google_services_gcm
|
||||
|
||||
---
|
||||
third_party/android_deps/BUILD.gn | 18 ------------------
|
||||
1 file changed, 18 deletions(-)
|
||||
.../browser/language/AppLocaleUtils.java | 19 -------------------
|
||||
third_party/android_deps/BUILD.gn | 18 ------------------
|
||||
2 files changed, 37 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.chrome.browser.preferences.ChromePreferenceKeys;
|
||||
@@ -75,25 +70,11 @@ 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()) {
|
||||
- SplitCompat.installActivity(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);
|
||||
- }
|
||||
}
|
||||
}
|
||||
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
|
||||
@@ -1137,24 +1137,6 @@ java_prebuilt("com_android_tools_build_jetifier_jetifier_processor_java") {
|
||||
@@ -1061,24 +1061,6 @@ java_prebuilt("com_android_tools_build_jetifier_jetifier_processor_java") {
|
||||
]
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ Subject: Remove help menu item
|
|||
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
|
||||
@@ -108,8 +108,6 @@
|
||||
@@ -111,8 +111,6 @@
|
||||
<item android:id="@+id/preferences_id"
|
||||
android:title="@string/menu_settings"
|
||||
android:icon="@drawable/settings_cog" />
|
||||
|
@ -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
|
||||
@@ -1887,15 +1887,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -1936,15 +1936,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
|
||||
@@ -533,7 +533,7 @@ public abstract class BaseCustomTabActivity extends ChromeActivity<BaseCustomTab
|
||||
@@ -544,7 +544,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.
|
||||
|
|
|
@ -17,26 +17,26 @@ ld.lld: error: undefined symbol: notifier::NotifierOptions::NotifierOptions()
|
|||
>>> 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 ---
|
||||
.../android/java/res/xml/main_preferences.xml | 9 --
|
||||
.../chrome/browser/app/ChromeActivity.java | 34 ------
|
||||
.../DataReductionPreferenceFragment.java | 24 +---
|
||||
.../privacy/settings/PrivacySettings.java | 13 +--
|
||||
.../chrome/browser/settings/MainSettings.java | 108 +-----------------
|
||||
.../chrome/browser/signin/SigninManager.java | 62 ++--------
|
||||
.../browser/sync/AndroidSyncSettings.java | 24 +---
|
||||
.../settings/SyncAndServicesSettings.java | 8 --
|
||||
chrome/android/java/AndroidManifest.xml | 18 --
|
||||
.../android/java/res/xml/main_preferences.xml | 9 -
|
||||
.../chrome/browser/app/ChromeActivity.java | 34 ----
|
||||
.../DataReductionPreferenceFragment.java | 24 +--
|
||||
.../privacy/settings/PrivacySettings.java | 44 +----
|
||||
.../chrome/browser/settings/MainSettings.java | 159 +-----------------
|
||||
.../chrome/browser/signin/SigninManager.java | 74 +-------
|
||||
.../browser/sync/AndroidSyncSettings.java | 34 +---
|
||||
.../settings/SyncAndServicesSettings.java | 8 -
|
||||
.../android/signin/signin_manager_android.cc | 1 -
|
||||
.../strings/android_chrome_strings.grd | 12 --
|
||||
.../signin/SystemAccountManagerDelegate.java | 38 +-----
|
||||
.../net/HttpNegotiateAuthenticator.java | 88 +-------------
|
||||
.../strings/android_chrome_strings.grd | 18 --
|
||||
.../signin/SystemAccountManagerDelegate.java | 38 +----
|
||||
.../net/HttpNegotiateAuthenticator.java | 88 +---------
|
||||
.../chromoting/base/OAuthTokenFetcher.java | 2 -
|
||||
15 files changed, 28 insertions(+), 416 deletions(-)
|
||||
15 files changed, 26 insertions(+), 528 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
+++ b/chrome/android/BUILD.gn
|
||||
@@ -1428,8 +1428,7 @@ jinja_template_resources("chrome_public_apk_template_resources") {
|
||||
@@ -1469,8 +1469,7 @@ jinja_template_resources("chrome_public_apk_template_resources") {
|
||||
resources = [
|
||||
"java/res_template/xml/file_paths.xml",
|
||||
"java/res_template/xml/launchershortcuts.xml",
|
||||
|
@ -49,7 +49,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
|||
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
|
||||
@@ -44,23 +44,17 @@ by a child template that "extends" this file.
|
||||
@@ -48,23 +48,17 @@ 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 %}
|
||||
|
@ -73,7 +73,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+. -->
|
||||
@@ -101,8 +95,6 @@ by a child template that "extends" this file.
|
||||
@@ -105,8 +99,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"/>
|
||||
|
||||
|
@ -82,7 +82,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
|
|||
{% block extra_uses_permissions %}
|
||||
{% endblock %}
|
||||
|
||||
@@ -881,16 +873,6 @@ by a child template that "extends" this file.
|
||||
@@ -910,16 +902,6 @@ by a child template that "extends" this file.
|
||||
android:resource="@xml/file_paths" />
|
||||
</provider>
|
||||
|
||||
|
@ -97,8 +97,8 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
|
|||
- </service>
|
||||
-
|
||||
<!-- Broadcast receiver that will be notified of account changes -->
|
||||
<receiver android:name="org.chromium.chrome.browser.services.AccountsChangedReceiver">
|
||||
<intent-filter>
|
||||
<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
|
||||
|
@ -113,7 +113,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
|
|||
<org.chromium.components.browser_ui.settings.ChromeBasePreference
|
||||
android:key="manage_sync"
|
||||
android:order="5"
|
||||
@@ -108,11 +104,6 @@
|
||||
@@ -109,11 +105,6 @@
|
||||
android:key="languages"
|
||||
android:order="21"
|
||||
android:title="@string/language_settings"/>
|
||||
|
@ -128,7 +128,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
|
||||
@@ -132,8 +132,6 @@ import org.chromium.chrome.browser.settings.SettingsLauncher;
|
||||
@@ -135,8 +135,6 @@ import org.chromium.chrome.browser.settings.SettingsLauncher;
|
||||
import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
|
||||
import org.chromium.chrome.browser.share.ShareDelegate;
|
||||
import org.chromium.chrome.browser.share.ShareDelegateImpl;
|
||||
|
@ -137,7 +137,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.TabDelegateFactory;
|
||||
@@ -257,9 +255,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -267,9 +265,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
private boolean mRemoveWindowBackgroundDone;
|
||||
protected AccessibilityVisibilityHandler mAccessibilityVisibilityHandler;
|
||||
|
||||
|
@ -147,7 +147,7 @@ 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;
|
||||
|
||||
@@ -846,28 +841,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -890,28 +885,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;
|
||||
|
@ -176,7 +176,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
}
|
||||
|
||||
@Override
|
||||
@@ -933,13 +906,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -977,13 +950,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
if (GSAState.getInstance(this).isGsaAvailable() && !SysUtils.isLowEndDevice()) {
|
||||
GSAAccountChangeListener.getInstance().disconnect();
|
||||
}
|
||||
|
@ -234,7 +234,17 @@ 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
|
||||
@@ -42,11 +42,10 @@ public class PrivacySettings
|
||||
@@ -25,9 +25,6 @@ import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate;
|
||||
import org.chromium.chrome.browser.settings.SettingsLauncher;
|
||||
import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
|
||||
import org.chromium.chrome.browser.signin.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;
|
||||
@@ -46,11 +43,10 @@ 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";
|
||||
|
@ -247,23 +257,54 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
};
|
||||
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
@@ -86,16 +85,6 @@ public class PrivacySettings
|
||||
@@ -90,47 +86,9 @@ public class PrivacySettings
|
||||
Preference secureDnsPref = findPreference(PREF_SECURE_DNS);
|
||||
secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled());
|
||||
|
||||
- Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK);
|
||||
- NoUnderlineClickableSpan linkSpan = new NoUnderlineClickableSpan(getResources(), view -> {
|
||||
- SettingsLauncher settingsLauncher = new SettingsLauncherImpl();
|
||||
- settingsLauncher.launchSettingsActivity(getActivity(), SyncAndServicesSettings.class,
|
||||
- SyncAndServicesSettings.createArguments(false));
|
||||
- });
|
||||
- syncAndServicesLink.setSummary(
|
||||
- SpanApplier.applySpans(getString(R.string.privacy_sync_and_services_link),
|
||||
- new SpanApplier.SpanInfo("<link>", "</link>", linkSpan)));
|
||||
- syncAndServicesLink.setSummary(buildSyncAndServicesLink());
|
||||
-
|
||||
updateSummaries();
|
||||
}
|
||||
|
||||
- private SpannableString buildSyncAndServicesLink() {
|
||||
- SettingsLauncher settingsLauncher = new SettingsLauncherImpl();
|
||||
- if (!ChromeFeatureList.isEnabled(ChromeFeatureList.MOBILE_IDENTITY_CONSISTENCY)) {
|
||||
- NoUnderlineClickableSpan syncAndServicesLink =
|
||||
- new NoUnderlineClickableSpan(getResources(), v -> {
|
||||
- settingsLauncher.launchSettingsActivity(getActivity(),
|
||||
- SyncAndServicesSettings.class,
|
||||
- SyncAndServicesSettings.createArguments(false));
|
||||
- });
|
||||
- return SpanApplier.applySpans(getString(R.string.privacy_sync_and_services_link_legacy),
|
||||
- new SpanApplier.SpanInfo("<link>", "</link>", syncAndServicesLink));
|
||||
- }
|
||||
-
|
||||
- NoUnderlineClickableSpan servicesLink = new NoUnderlineClickableSpan(getResources(), v -> {
|
||||
- settingsLauncher.launchSettingsActivity(getActivity(), GoogleServicesSettings.class);
|
||||
- });
|
||||
- if (IdentityServicesProvider.get()
|
||||
- .getIdentityManager(Profile.getLastUsedRegularProfile())
|
||||
- .getPrimaryAccountInfo(ConsentLevel.SYNC)
|
||||
- == null) {
|
||||
- // Sync is off, show the string with one link to "Google Services".
|
||||
- return SpanApplier.applySpans(
|
||||
- getString(R.string.privacy_sync_and_services_link_sync_off),
|
||||
- new SpanApplier.SpanInfo("<link>", "</link>", servicesLink));
|
||||
- }
|
||||
- // Otherwise, show the string with both links to "Sync" and "Google Services".
|
||||
- NoUnderlineClickableSpan syncLink = new NoUnderlineClickableSpan(getResources(), v -> {
|
||||
- settingsLauncher.launchSettingsActivity(getActivity(), ManageSyncSettings.class,
|
||||
- ManageSyncSettings.createArguments(false));
|
||||
- });
|
||||
- return SpanApplier.applySpans(getString(R.string.privacy_sync_and_services_link_sync_on),
|
||||
- new SpanApplier.SpanInfo("<link1>", "</link1>", syncLink),
|
||||
- new SpanApplier.SpanInfo("<link2>", "</link2>", servicesLink));
|
||||
- }
|
||||
-
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
String key = preference.getKey();
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
|
||||
|
@ -278,28 +319,39 @@ 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;
|
||||
@@ -31,10 +29,6 @@ import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher;
|
||||
@@ -31,14 +29,7 @@ import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher;
|
||||
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.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.SyncSettingsUtils;
|
||||
-import org.chromium.chrome.browser.sync.settings.SyncPromoPreference;
|
||||
-import org.chromium.chrome.browser.sync.settings.SyncSettingsUtils;
|
||||
import org.chromium.chrome.browser.tracing.settings.DeveloperSettings;
|
||||
@@ -51,8 +45,7 @@ import java.util.Map;
|
||||
import org.chromium.components.browser_ui.settings.ChromeBasePreference;
|
||||
import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate;
|
||||
@@ -56,23 +47,17 @@ import java.util.Map;
|
||||
* The main settings screen, shown when the user first opens Settings.
|
||||
*/
|
||||
public class MainSettings extends PreferenceFragmentCompat
|
||||
- implements TemplateUrlService.LoadListener, ProfileSyncService.SyncStateChangedListener,
|
||||
- SigninManager.SignInStateObserver {
|
||||
- public static final String PREF_SYNC_PROMO = "sync_promo";
|
||||
+ implements TemplateUrlService.LoadListener {
|
||||
public static final String PREF_SYNC_PROMO = "sync_promo";
|
||||
public static final String PREF_ACCOUNT_SECTION = "account_section";
|
||||
public static final String PREF_ACCOUNT_AND_GOOGLE_SERVICES_SECTION =
|
||||
@@ -67,7 +60,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
"account_and_google_services_section";
|
||||
public static final String PREF_SIGN_IN = "sign_in";
|
||||
- public static final String PREF_SYNC_AND_SERVICES = "sync_and_services";
|
||||
- public static final String PREF_MANAGE_SYNC = "manage_sync";
|
||||
- public static final String PREF_GOOGLE_SERVICES = "google_services";
|
||||
public static final String PREF_SEARCH_ENGINE = "search_engine";
|
||||
public static final String PREF_PASSWORDS = "passwords";
|
||||
public static final String PREF_HOMEPAGE = "homepage";
|
||||
public static final String PREF_UI_THEME = "ui_theme";
|
||||
public static final String PREF_PRIVACY = "privacy";
|
||||
public static final String PREF_SAFETY_CHECK = "safety_check";
|
||||
|
@ -307,23 +359,26 @@ 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";
|
||||
@@ -79,7 +71,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
@@ -83,9 +68,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
|
||||
private final ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
private final Map<String, Preference> mAllPreferences = new HashMap<>();
|
||||
private SyncPromoPreference mSyncPromoPreference;
|
||||
- private SyncPromoPreference mSyncPromoPreference;
|
||||
- private SignInPreference mSignInPreference;
|
||||
private ChromeBasePreference mManageSync;
|
||||
- private ChromeBasePreference mManageSync;
|
||||
private @Nullable PasswordCheck mPasswordCheck;
|
||||
|
||||
@@ -111,7 +102,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
public MainSettings() {
|
||||
@@ -115,8 +97,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
mSyncPromoPreference.onPreferenceFragmentDestroyed();
|
||||
- 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.
|
||||
@@ -121,33 +111,11 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
@@ -126,31 +106,11 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
@Override
|
||||
public void onStart() {
|
||||
super.onStart();
|
||||
|
@ -331,7 +386,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe
|
|||
- Profile.getLastUsedRegularProfile());
|
||||
- if (signinManager.isSigninSupported()) {
|
||||
- signinManager.addSignInStateObserver(this);
|
||||
- mSyncPromoPreference.registerForUpdates();
|
||||
- mSignInPreference.registerForUpdates();
|
||||
- }
|
||||
- ProfileSyncService syncService = ProfileSyncService.get();
|
||||
|
@ -347,7 +401,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe
|
|||
- Profile.getLastUsedRegularProfile());
|
||||
- if (signinManager.isSigninSupported()) {
|
||||
- signinManager.removeSignInStateObserver(this);
|
||||
- mSyncPromoPreference.unregisterForUpdates();
|
||||
- mSignInPreference.unregisterForUpdates();
|
||||
- }
|
||||
- ProfileSyncService syncService = ProfileSyncService.get();
|
||||
|
@ -357,7 +410,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe
|
|||
}
|
||||
|
||||
@Override
|
||||
@@ -182,12 +150,9 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
@@ -185,12 +145,9 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
|
||||
cachePreferences();
|
||||
|
||||
|
@ -370,15 +423,35 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe
|
|||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
// If we are on Android O+ the Notifications preference should lead to the Android
|
||||
@@ -255,7 +220,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
mAllPreferences.put(preference.getKey(), preference);
|
||||
@@ -234,17 +191,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
.setTitle(SafetyCheckSettingsFragment.getSafetyCheckSettingsElementTitle(
|
||||
getContext()));
|
||||
}
|
||||
mSyncPromoPreference = (SyncPromoPreference) mAllPreferences.get(PREF_SYNC_PROMO);
|
||||
- mSignInPreference = (SignInPreference) mAllPreferences.get(PREF_SIGN_IN);
|
||||
mManageSync = (ChromeBasePreference) findPreference(PREF_MANAGE_SYNC);
|
||||
-
|
||||
- // Replace the account section header, replace SyncAndServicesSettings with
|
||||
- // ManageSyncSettings and add GoogleServicesSettings row if this flag is enabled.
|
||||
- if (ChromeFeatureList.isEnabled(ChromeFeatureList.MOBILE_IDENTITY_CONSISTENCY)) {
|
||||
- getPreferenceScreen().removePreference(findPreference(PREF_ACCOUNT_SECTION));
|
||||
- getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES));
|
||||
-
|
||||
- findPreference(PREF_ACCOUNT_AND_GOOGLE_SERVICES_SECTION).setVisible(true);
|
||||
- mManageSync.setVisible(true);
|
||||
- findPreference(PREF_GOOGLE_SERVICES).setVisible(true);
|
||||
- }
|
||||
}
|
||||
|
||||
@@ -265,24 +229,12 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
/**
|
||||
@@ -257,9 +203,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
Preference preference = getPreferenceScreen().getPreference(index);
|
||||
mAllPreferences.put(preference.getKey(), preference);
|
||||
}
|
||||
- mSyncPromoPreference = (SyncPromoPreference) mAllPreferences.get(PREF_SYNC_PROMO);
|
||||
- mSignInPreference = (SignInPreference) mAllPreferences.get(PREF_SIGN_IN);
|
||||
- mManageSync = (ChromeBasePreference) findPreference(PREF_MANAGE_SYNC);
|
||||
}
|
||||
|
||||
private void setManagedPreferenceDelegateForPreference(String key) {
|
||||
@@ -268,15 +211,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
}
|
||||
|
||||
private void updatePreferences() {
|
||||
|
@ -390,22 +463,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe
|
|||
- removePreferenceIfPresent(PREF_SIGN_IN);
|
||||
- }
|
||||
-
|
||||
- boolean hasPrimaryAccount = IdentityServicesProvider.get()
|
||||
- .getIdentityManager(Profile.getLastUsedRegularProfile())
|
||||
- .hasPrimaryAccount();
|
||||
- boolean isSyncPromoHidden =
|
||||
- mSyncPromoPreference.getState() == SyncPromoPreference.State.PROMO_HIDDEN;
|
||||
+ boolean hasPrimaryAccount = false;
|
||||
+ boolean isSyncPromoHidden = true;
|
||||
mManageSync.setVisible(
|
||||
ChromeFeatureList.isEnabled(ChromeFeatureList.MOBILE_IDENTITY_CONSISTENCY)
|
||||
&& hasPrimaryAccount && isSyncPromoHidden);
|
||||
|
||||
- updateSyncAndServicesPreference();
|
||||
- updateSyncPreference();
|
||||
updateSearchEnginePreference();
|
||||
|
||||
Preference homepagePref = addPreferenceIfAbsent(PREF_HOMEPAGE);
|
||||
@@ -299,10 +251,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
@@ -293,10 +227,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
} else {
|
||||
removePreferenceIfPresent(PREF_DEVELOPER);
|
||||
}
|
||||
|
@ -416,23 +478,60 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe
|
|||
}
|
||||
|
||||
private Preference addPreferenceIfAbsent(String key) {
|
||||
@@ -316,15 +264,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
@@ -310,52 +240,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
if (preference != null) getPreferenceScreen().removePreference(preference);
|
||||
}
|
||||
|
||||
- private void updateSyncPreference() {
|
||||
- if (ChromeFeatureList.isEnabled(ChromeFeatureList.MOBILE_IDENTITY_CONSISTENCY)) {
|
||||
- updateManageSyncPreference();
|
||||
- } else {
|
||||
- updateSyncAndServicesPreference();
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- private void updateSyncAndServicesPreference() {
|
||||
- ChromeBasePreference preference = findPreference(
|
||||
- ChromeFeatureList.isEnabled(ChromeFeatureList.MOBILE_IDENTITY_CONSISTENCY)
|
||||
- ? PREF_MANAGE_SYNC
|
||||
- : PREF_SYNC_AND_SERVICES);
|
||||
- ChromeBasePreference preference = findPreference(PREF_SYNC_AND_SERVICES);
|
||||
- preference.setIcon(SyncSettingsUtils.getSyncStatusIcon(getActivity()));
|
||||
- preference.setSummary(SyncSettingsUtils.getSyncStatusSummary(getActivity()));
|
||||
- }
|
||||
-
|
||||
- private void updateManageSyncPreference() {
|
||||
- String primaryAccountName = CoreAccountInfo.getEmailFrom(
|
||||
- IdentityServicesProvider.get()
|
||||
- .getIdentityManager(Profile.getLastUsedRegularProfile())
|
||||
- .getPrimaryAccountInfo(ConsentLevel.NOT_REQUIRED));
|
||||
- boolean showManageSync =
|
||||
- ChromeFeatureList.isEnabled(ChromeFeatureList.MOBILE_IDENTITY_CONSISTENCY)
|
||||
- && primaryAccountName != null;
|
||||
- mManageSync.setVisible(showManageSync);
|
||||
- if (!showManageSync) {
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- boolean isSyncConsentAvailable =
|
||||
- IdentityServicesProvider.get()
|
||||
- .getIdentityManager(Profile.getLastUsedRegularProfile())
|
||||
- .getPrimaryAccountInfo(ConsentLevel.SYNC)
|
||||
- != null;
|
||||
- mManageSync.setIcon(SyncSettingsUtils.getSyncStatusIcon(getActivity()));
|
||||
- mManageSync.setSummary(SyncSettingsUtils.getSyncStatusSummary(getActivity()));
|
||||
- mManageSync.setOnPreferenceClickListener(pref -> {
|
||||
- if (isSyncConsentAvailable) {
|
||||
- SettingsLauncher settingsLauncher = new SettingsLauncherImpl();
|
||||
- settingsLauncher.launchSettingsActivity(getContext(), ManageSyncSettings.class);
|
||||
- } else {
|
||||
- SigninActivityLauncherImpl.get().launchActivityForPromoDefaultFlow(
|
||||
- getContext(), SigninAccessPoint.SETTINGS, primaryAccountName);
|
||||
- }
|
||||
- return true;
|
||||
- });
|
||||
- }
|
||||
-
|
||||
private void updateSearchEnginePreference() {
|
||||
if (!TemplateUrlServiceFactory.get().isLoaded()) {
|
||||
ChromeBasePreference searchEnginePref =
|
||||
@@ -356,34 +295,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
@@ -387,34 +271,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
pref.setSummary(isOn ? R.string.text_on : R.string.text_off);
|
||||
}
|
||||
|
||||
|
@ -467,19 +566,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe
|
|||
// TemplateUrlService.LoadListener implementation.
|
||||
@Override
|
||||
public void onTemplateUrlServiceLoaded() {
|
||||
@@ -391,11 +302,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
@@ -422,11 +278,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
updateSearchEnginePreference();
|
||||
}
|
||||
|
||||
- @Override
|
||||
- public void syncStateChanged() {
|
||||
- updateSyncAndServicesPreference();
|
||||
- updateSyncPreference();
|
||||
- }
|
||||
-
|
||||
@VisibleForTesting
|
||||
public ManagedPreferenceDelegate getManagedPreferenceDelegateForTest() {
|
||||
return mManagedPreferenceDelegate;
|
||||
@@ -405,9 +311,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
@@ -436,9 +287,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
return new ChromeManagedPreferenceDelegate() {
|
||||
@Override
|
||||
public boolean isPreferenceControlledByPolicy(Preference preference) {
|
||||
|
@ -489,7 +588,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe
|
|||
if (PREF_SEARCH_ENGINE.equals(preference.getKey())) {
|
||||
return TemplateUrlServiceFactory.get().isDefaultSearchManaged();
|
||||
}
|
||||
@@ -416,11 +319,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
@@ -447,11 +295,6 @@ public class MainSettings extends PreferenceFragmentCompat
|
||||
|
||||
@Override
|
||||
public boolean isPreferenceClickDisabledByPolicy(Preference preference) {
|
||||
|
@ -504,15 +603,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe
|
|||
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
|
||||
@@ -23,7 +23,6 @@ import org.chromium.base.metrics.RecordUserAction;
|
||||
import org.chromium.base.task.PostTask;
|
||||
@@ -25,7 +25,6 @@ import org.chromium.chrome.browser.AppHooks;
|
||||
import org.chromium.chrome.browser.externalauth.ExternalAuthUtils;
|
||||
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
import org.chromium.chrome.browser.sync.AndroidSyncSettings;
|
||||
-import org.chromium.components.signin.AccountTrackerService;
|
||||
import org.chromium.components.signin.AccountUtils;
|
||||
import org.chromium.components.signin.base.CoreAccountInfo;
|
||||
import org.chromium.components.signin.identitymanager.ClearAccountsAction;
|
||||
@@ -50,7 +49,7 @@ import java.util.List;
|
||||
@@ -52,7 +51,7 @@ import java.util.List;
|
||||
* See chrome/browser/signin/signin_manager_android.h for more details.
|
||||
*/
|
||||
public class SigninManager
|
||||
|
@ -521,7 +620,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa
|
|||
private static final String TAG = "SigninManager";
|
||||
|
||||
/**
|
||||
@@ -168,7 +167,6 @@ public class SigninManager
|
||||
@@ -204,7 +203,6 @@ public class SigninManager
|
||||
* This is not final, as destroy() updates this.
|
||||
*/
|
||||
private long mNativeSigninManagerAndroid;
|
||||
|
@ -529,7 +628,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa
|
|||
private final IdentityManager mIdentityManager;
|
||||
private final IdentityMutator mIdentityMutator;
|
||||
private final AndroidSyncSettings mAndroidSyncSettings;
|
||||
@@ -206,24 +204,22 @@ public class SigninManager
|
||||
@@ -242,24 +240,22 @@ public class SigninManager
|
||||
*/
|
||||
@CalledByNative
|
||||
private static SigninManager create(long nativeSigninManagerAndroid,
|
||||
|
@ -542,7 +641,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa
|
|||
assert identityMutator != null;
|
||||
- return new SigninManager(nativeSigninManagerAndroid, accountTrackerService, identityManager,
|
||||
+ return new SigninManager(nativeSigninManagerAndroid, identityManager,
|
||||
identityMutator, AndroidSyncSettings.get(), ExternalAuthUtils.getInstance());
|
||||
identityMutator, AndroidSyncSettings.get(), AppHooks.get().getExternalAuthUtils());
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
|
@ -557,7 +656,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa
|
|||
mIdentityManager = identityManager;
|
||||
mIdentityMutator = identityMutator;
|
||||
mAndroidSyncSettings = androidSyncSettings;
|
||||
@@ -232,7 +228,6 @@ public class SigninManager
|
||||
@@ -268,7 +264,6 @@ public class SigninManager
|
||||
mSigninAllowedByPolicy =
|
||||
SigninManagerJni.get().isSigninAllowedByPolicy(mNativeSigninManagerAndroid);
|
||||
|
||||
|
@ -565,7 +664,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa
|
|||
mIdentityManager.addObserver(this);
|
||||
|
||||
reloadAllAccountsFromSystem();
|
||||
@@ -245,7 +240,6 @@ public class SigninManager
|
||||
@@ -302,7 +297,6 @@ public class SigninManager
|
||||
@CalledByNative
|
||||
public void destroy() {
|
||||
mIdentityManager.removeObserver(this);
|
||||
|
@ -573,7 +672,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa
|
|||
mNativeSigninManagerAndroid = 0;
|
||||
}
|
||||
|
||||
@@ -284,9 +278,7 @@ public class SigninManager
|
||||
@@ -341,9 +335,7 @@ public class SigninManager
|
||||
* Returns true if signin can be started now.
|
||||
*/
|
||||
public boolean isSignInAllowed() {
|
||||
|
@ -584,7 +683,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -341,17 +333,6 @@ public class SigninManager
|
||||
@@ -398,17 +390,6 @@ public class SigninManager
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -602,41 +701,53 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa
|
|||
/**
|
||||
* Starts the sign-in flow, and executes the callback when finished.
|
||||
*
|
||||
@@ -420,11 +401,8 @@ public class SigninManager
|
||||
}
|
||||
@@ -498,11 +479,8 @@ public class SigninManager
|
||||
mSignInState = signinState;
|
||||
notifySignInAllowedChanged();
|
||||
|
||||
private void progressSignInFlowSeedSystemAccounts() {
|
||||
- if (mAccountTrackerService.checkAndSeedSystemAccounts()) {
|
||||
- progressSignInFlowCheckPolicy();
|
||||
- } else {
|
||||
- mSignInState.mBlockedOnAccountSeeding = true;
|
||||
- }
|
||||
+ Log.w(TAG, "Cancelling the sign-in process as Google Play services is unavailable");
|
||||
+ abortSignIn();
|
||||
+ //mSignInState.mBlockedOnAccountSeeding = true;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -461,19 +439,6 @@ public class SigninManager
|
||||
// The user should not be already signed in
|
||||
assert !mIdentityManager.hasPrimaryAccount();
|
||||
@@ -549,31 +527,6 @@ public class SigninManager
|
||||
mIdentityMutator.reloadAllAccountsFromSystemWithPrimaryAccount(
|
||||
mSignInState.mCoreAccountInfo.getId());
|
||||
|
||||
- if (!mIdentityMutator.setPrimaryAccount(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;
|
||||
- }
|
||||
-
|
||||
- // 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());
|
||||
- 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());
|
||||
-
|
||||
- enableSync(mSignInState.mCoreAccountInfo);
|
||||
- enableSync(mSignInState.mCoreAccountInfo);
|
||||
-
|
||||
- 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();
|
||||
}
|
||||
@@ -629,13 +594,8 @@ public class SigninManager
|
||||
@@ -718,13 +671,8 @@ public class SigninManager
|
||||
|
||||
Log.d(TAG, "On native signout, wipe user data: " + mSignOutState.mShouldWipeUserData);
|
||||
|
||||
|
@ -650,7 +761,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa
|
|||
}
|
||||
|
||||
void finishSignOut() {
|
||||
@@ -695,14 +655,6 @@ public class SigninManager
|
||||
@@ -797,14 +745,6 @@ public class SigninManager
|
||||
SigninManagerJni.get().stopApplyingCloudPolicy(mNativeSigninManagerAndroid);
|
||||
}
|
||||
|
||||
|
@ -668,26 +779,26 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa
|
|||
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
|
||||
@@ -216,13 +216,7 @@ public class AndroidSyncSettings {
|
||||
@@ -224,12 +224,8 @@ public class AndroidSyncSettings {
|
||||
|
||||
private void setChromeSyncEnabled(boolean value) {
|
||||
synchronized (mLock) {
|
||||
- updateSyncability(null);
|
||||
- if (value == mChromeSyncEnabled || mAccount == null) return;
|
||||
- mChromeSyncEnabled = value;
|
||||
updateSyncability();
|
||||
- if (value == mChromeSyncEnabled || mAccount == null) return;
|
||||
+ if (value == mChromeSyncEnabled) return;
|
||||
mChromeSyncEnabled = value;
|
||||
-
|
||||
- StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskWrites();
|
||||
- try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) {
|
||||
- mSyncContentResolverDelegate.setSyncAutomatically(mAccount, mContractAuthority, value);
|
||||
- StrictMode.setThreadPolicy(oldPolicy);
|
||||
+ mChromeSyncEnabled = false;
|
||||
}
|
||||
- }
|
||||
notifyObservers();
|
||||
}
|
||||
@@ -307,19 +301,9 @@ public class AndroidSyncSettings {
|
||||
boolean oldChromeSyncEnabled = mChromeSyncEnabled;
|
||||
boolean oldMasterSyncEnabled = mMasterSyncEnabled;
|
||||
|
||||
- StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskWrites();
|
||||
@@ -282,31 +278,9 @@ public class AndroidSyncSettings {
|
||||
private boolean updateCachedSettings() {
|
||||
boolean oldChromeSyncEnabled = mChromeSyncEnabled;
|
||||
boolean oldMasterSyncEnabled = mMasterSyncEnabled;
|
||||
-
|
||||
- try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) {
|
||||
- if (mAccount != null) {
|
||||
- mIsSyncable =
|
||||
- mSyncContentResolverDelegate.getIsSyncable(mAccount, mContractAuthority)
|
||||
|
@ -699,13 +810,24 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyn
|
|||
- mChromeSyncEnabled = false;
|
||||
- }
|
||||
- mMasterSyncEnabled = mSyncContentResolverDelegate.getMasterSyncAutomatically();
|
||||
- StrictMode.setThreadPolicy(oldPolicy);
|
||||
+ mIsSyncable = false;
|
||||
+ mChromeSyncEnabled = false;
|
||||
+ mMasterSyncEnabled = false;
|
||||
- }
|
||||
-
|
||||
- if (mAccount != null && ProfileSyncService.get() != null
|
||||
- && ChromeFeatureList.isEnabled(
|
||||
- ChromeFeatureList.DECOUPLE_SYNC_FROM_ANDROID_MASTER_SYNC)
|
||||
- && mMasterSyncEnabled && !mShouldDecoupleSyncFromMasterSync) {
|
||||
- // Re-enabling master sync at least once should cause Sync to no longer care whether
|
||||
- // the former is enabled or not. This fact should be persisted via ProfileSyncService
|
||||
- // so it's known on the next startup.
|
||||
- mShouldDecoupleSyncFromMasterSync = true;
|
||||
- ProfileSyncService.get().setDecoupledFromAndroidMasterSync();
|
||||
- }
|
||||
+ mIsSyncable = false;
|
||||
+ mChromeSyncEnabled = false;
|
||||
+ mMasterSyncEnabled = false;
|
||||
|
||||
return oldChromeSyncEnabled != mChromeSyncEnabled
|
||||
|| oldMasterSyncEnabled != mMasterSyncEnabled;
|
||||
return oldChromeSyncEnabled != mChromeSyncEnabled
|
||||
|| oldMasterSyncEnabled != mMasterSyncEnabled;
|
||||
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
|
||||
|
@ -728,7 +850,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/S
|
|||
diff --git a/chrome/browser/android/signin/signin_manager_android.cc b/chrome/browser/android/signin/signin_manager_android.cc
|
||||
--- a/chrome/browser/android/signin/signin_manager_android.cc
|
||||
+++ b/chrome/browser/android/signin/signin_manager_android.cc
|
||||
@@ -140,7 +140,6 @@ SigninManagerAndroid::SigninManagerAndroid(
|
||||
@@ -141,7 +141,6 @@ SigninManagerAndroid::SigninManagerAndroid(
|
||||
|
||||
java_signin_manager_ = Java_SigninManager_create(
|
||||
base::android::AttachCurrentThread(), reinterpret_cast<intptr_t>(this),
|
||||
|
@ -739,7 +861,7 @@ diff --git a/chrome/browser/android/signin/signin_manager_android.cc b/chrome/br
|
|||
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,12 +269,6 @@ CHAR-LIMIT guidelines:
|
||||
@@ -269,21 +269,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>
|
||||
|
@ -749,29 +871,34 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
|||
- <message name="IDS_PREFS_SYNC_AND_SERVICES_CONTENT_DESCRIPTION" desc="The accessibility text to read when the 'Sync and Google services' Settings page is opened from the sign-in page. This text is attached to the 'Navigate Up' button shown at the top of the screen. The first two sentences describe the screen that is currently shown to the user, while 'Navigate up' is a description for the button this text is attached to. 'Navigate up' should match TC ID 6794660482873516081.">
|
||||
- You are currently customizing your Sync and Google service settings. To finish turning on sync, tap the Confirm button near the bottom of the screen. Navigate up
|
||||
- </message>
|
||||
<message name="IDS_SIGNIN_PREF_DISALLOWED_TITLE" desc="Title for the signin entry in Settings when signin is disallowed.">
|
||||
Not signed in
|
||||
</message>
|
||||
<message name="IDS_SIGNIN_PREF_SUMMARY" desc="Summary for the entry in Settings to sign in to Chrome, explaining benefits of signing in.">
|
||||
Sync and personalize across devices
|
||||
</message>
|
||||
@@ -333,9 +327,6 @@ CHAR-LIMIT guidelines:
|
||||
- <message name="IDS_SYNC_AND_SERVICES_SUMMARY_SYNC_ON" desc="Summary for 'Sync and Google services' preference row when sync is enabled.">
|
||||
- Sync is on
|
||||
- </message>
|
||||
<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:
|
||||
<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>
|
||||
- <message name="IDS_PRIVACY_SYNC_AND_SERVICES_LINK" desc="The text for Privacy preferences that is shown after all preference rows.">
|
||||
- <message name="IDS_PRIVACY_SYNC_AND_SERVICES_LINK_LEGACY" desc="The text for Privacy preferences that is shown after all preference rows.">
|
||||
- For more settings that relate to privacy, security, and data collection, see <ph name="BEGIN_LINK"><link></ph>Sync and Google services<ph name="END_LINK"></link></ph>
|
||||
- </message>
|
||||
- <message name="IDS_PRIVACY_SYNC_AND_SERVICES_LINK_SYNC_ON" desc="The text for Privacy preferences that is shown after all preference rows. This version of the text is shown if Sync has been turned on.">
|
||||
- For more settings that relate to privacy, security, and data collection, see <ph name="BEGIN_LINK1"><link1></ph>Sync<ph name="END_LINK1"></link1></ph> and <ph name="BEGIN_LINK2"><link2></ph>Google services<ph name="END_LINK2"></link2></ph>
|
||||
- </message>
|
||||
- <message name="IDS_PRIVACY_SYNC_AND_SERVICES_LINK_SYNC_OFF" desc="The text for Privacy preferences that is shown after all preference rows. This version of the text is shown if Sync hasn't been turned on.">
|
||||
- For more settings that relate to privacy, security, and data collection, see <ph name="BEGIN_LINK"><link></ph>Google services<ph name="END_LINK"></link></ph>
|
||||
- </message>
|
||||
<message name="IDS_CANCEL_SYNC_DIALOG_TITLE" desc="The title of a dialog that is shown when users tries closing 'Sync and Google services' preferences without confirming the changes.">
|
||||
Cancel sync?
|
||||
</message>
|
||||
@@ -1108,9 +1099,6 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
<message name="IDS_DATA_REDUCTION_DESCRIPTION_LITE_MODE" desc="Text describing how the Lite mode feature works. Seen only before the user has enabled the feature.">
|
||||
When Lite mode is on, Chrome uses Google servers to make pages load faster. Lite mode rewrites very slow pages to load only essential content. Lite mode does not apply to Incognito tabs.
|
||||
</message>
|
||||
- <message name="IDS_DATA_REDUCTION_MENU_ITEM_SUMMARY_LITE_MODE" desc="Label that states the percent of mobile data that was saved by Lite mode. Lite mode allows users to to reduce their mobile data usage by compressing network traffic.">
|
||||
- <ph name="PERCENT">%1$s<ex>49%</ex></ph> data savings
|
||||
- </message>
|
||||
<message name="IDS_DATA_REDUCTION_SAVINGS_LABEL" desc="Data Reduction statistics label that states the amount of mobile data that was saved by Lite mode. Lite mode allows users to to reduce their mobile data usage by compressing network traffic.">
|
||||
data saved
|
||||
</message>
|
||||
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
|
||||
|
|
|
@ -1,41 +0,0 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 15 Feb 2020 08:20:40 +0100
|
||||
Subject: Restore GPU bug blacklist for AImageReader on ARM CPUs
|
||||
|
||||
Restore the AImageReader blacklist for ARM/ARM64 devices which causes
|
||||
crashes on Android 9 and 10 (at different code locations).
|
||||
|
||||
See discussion at https://github.com/bromite/bromite/issues/445
|
||||
---
|
||||
gpu/config/gpu_driver_bug_list.json | 16 ++++++++++++++++
|
||||
1 file changed, 16 insertions(+)
|
||||
|
||||
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
|
||||
@@ -3286,6 +3286,22 @@
|
||||
"dont_delete_source_texture_for_egl_image"
|
||||
]
|
||||
},
|
||||
+ {
|
||||
+ "id":335,
|
||||
+ "cr_bugs": [1051705],
|
||||
+ "description": "Disable AImageReader on ARM GPUs",
|
||||
+ "os": {
|
||||
+ "type": "android",
|
||||
+ "version": {
|
||||
+ "op": "<",
|
||||
+ "value": "10"
|
||||
+ }
|
||||
+ },
|
||||
+ "gl_vendor": "ARM.*",
|
||||
+ "features": [
|
||||
+ "disable_aimagereader"
|
||||
+ ]
|
||||
+ },
|
||||
{
|
||||
"id": 336,
|
||||
"cr_bugs": [625785],
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -7,15 +7,15 @@ This reverts commit ae458edcc8422d0815d0e82261e71fe10d7d6fc2.
|
|||
|
||||
Disable search-ready omnibox by default
|
||||
---
|
||||
.../suggestions/DropdownItemViewInfoListBuilder.java | 9 +++++++--
|
||||
chrome/browser/about_flags.cc | 3 +++
|
||||
chrome/browser/flag-metadata.json | 5 +++++
|
||||
chrome/browser/flag_descriptions.cc | 5 +++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
chrome/browser/flags/android/chrome_feature_list.cc | 4 ++++
|
||||
chrome/browser/flags/android/chrome_feature_list.h | 1 +
|
||||
.../chromium/chrome/browser/flags/ChromeFeatureList.java | 1 +
|
||||
8 files changed, 29 insertions(+), 2 deletions(-)
|
||||
.../suggestions/DropdownItemViewInfoListBuilder.java | 10 ++++++++--
|
||||
chrome/browser/about_flags.cc | 3 +++
|
||||
chrome/browser/flag-metadata.json | 5 +++++
|
||||
chrome/browser/flag_descriptions.cc | 5 +++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
chrome/browser/flags/android/chrome_feature_list.cc | 4 ++++
|
||||
chrome/browser/flags/android/chrome_feature_list.h | 1 +
|
||||
.../chrome/browser/flags/ChromeFeatureList.java | 1 +
|
||||
8 files changed, 30 insertions(+), 2 deletions(-)
|
||||
|
||||
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
|
||||
|
@ -26,9 +26,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggest
|
|||
private boolean mBuiltListHasFullyConcealedElements;
|
||||
+ private EditUrlSuggestionProcessor mEditUrlSuggestionProcessor;
|
||||
|
||||
DropdownItemViewInfoListBuilder() {
|
||||
DropdownItemViewInfoListBuilder(AutocompleteController controller) {
|
||||
mPriorityOrderedSuggestionProcessors = new ArrayList<>();
|
||||
@@ -90,8 +91,8 @@ class DropdownItemViewInfoListBuilder {
|
||||
@@ -91,8 +92,9 @@ class DropdownItemViewInfoListBuilder {
|
||||
() -> mShareDelegateSupplier == null ? null : mShareDelegateSupplier.get();
|
||||
|
||||
mHeaderProcessor = new HeaderProcessor(context, host, delegate);
|
||||
|
@ -36,15 +36,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggest
|
|||
- context, host, delegate, iconBridgeSupplier, tabSupplier, shareSupplier));
|
||||
+ mEditUrlSuggestionProcessor = new EditUrlSuggestionProcessor(
|
||||
+ context, host, delegate, iconBridgeSupplier, tabSupplier, shareSupplier);
|
||||
+ registerSuggestionProcessor(mEditUrlSuggestionProcessor);
|
||||
registerSuggestionProcessor(
|
||||
new AnswerSuggestionProcessor(context, host, textProvider, imageFetcherSupplier));
|
||||
registerSuggestionProcessor(
|
||||
@@ -219,6 +220,10 @@ class DropdownItemViewInfoListBuilder {
|
||||
@@ -220,6 +222,10 @@ class DropdownItemViewInfoListBuilder {
|
||||
|
||||
/** Signals that native initialization has completed. */
|
||||
void onNativeInitialized() {
|
||||
+ if (ChromeFeatureList.isEnabled(ChromeFeatureList.SEARCH_READY_OMNIBOX)) {
|
||||
+ registerSuggestionProcessor(mEditUrlSuggestionProcessor);
|
||||
+ if (ChromeFeatureList.isEnabled(ChromeFeatureList.SEARCH_READY_OMNIBOX) == false) {
|
||||
+ mPriorityOrderedSuggestionProcessors.remove(mEditUrlSuggestionProcessor);
|
||||
+ }
|
||||
+
|
||||
mEnableAdaptiveSuggestionsCount =
|
||||
|
@ -53,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
|
||||
@@ -2811,6 +2811,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -3045,6 +3045,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kAndroidAutofillAccessibilityName,
|
||||
flag_descriptions::kAndroidAutofillAccessibilityDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(features::kAndroidAutofillAccessibility)},
|
||||
|
@ -66,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
|
||||
@@ -1884,6 +1884,11 @@
|
||||
@@ -1919,6 +1919,11 @@
|
||||
// with neural net palm detection.
|
||||
"expiry_milestone": 90
|
||||
},
|
||||
|
@ -81,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
|
||||
@@ -3109,6 +3109,11 @@ const char kSafeBrowsingUseLocalBlacklistsV2Description[] =
|
||||
@@ -3153,6 +3153,11 @@ const char kSafeBrowsingUseLocalBlacklistsV2Description[] =
|
||||
"process to check the Safe Browsing reputation of URLs without calling "
|
||||
"into GmsCore for every URL.";
|
||||
|
||||
|
@ -96,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
|
||||
@@ -1791,6 +1791,9 @@ extern const char kSafeBrowsingSecuritySectionUiAndroidDescription[];
|
||||
@@ -1812,6 +1812,9 @@ extern const char kSafeBrowsingSecuritySectionUiAndroidDescription[];
|
||||
extern const char kSafeBrowsingUseLocalBlacklistsV2Name[];
|
||||
extern const char kSafeBrowsingUseLocalBlacklistsV2Description[];
|
||||
|
||||
|
@ -109,29 +110,29 @@ 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
|
||||
@@ -188,6 +188,7 @@ const base::Feature* kFeaturesExposedToJava[] = {
|
||||
@@ -182,6 +182,7 @@ const base::Feature* kFeaturesExposedToJava[] = {
|
||||
&kReachedCodeProfiler,
|
||||
&kReaderModeInCCT,
|
||||
&kReengagementNotification,
|
||||
+ &kSearchReadyOmniboxFeature,
|
||||
&kRelatedSearches,
|
||||
&kRevampedContextMenu,
|
||||
&kSearchEnginePromoExistingDevice,
|
||||
@@ -573,6 +574,9 @@ const base::Feature kRelatedSearches{"RelatedSearches",
|
||||
const base::Feature kRevampedContextMenu{"RevampedContextMenu",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
&kSearchEnginePromoNewDevice,
|
||||
@@ -545,6 +546,9 @@ const base::Feature kReengagementNotification{
|
||||
const base::Feature kRelatedSearches{"RelatedSearches",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
+const base::Feature kSearchReadyOmniboxFeature{
|
||||
+ "SearchReadyOmnibox", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+
|
||||
const base::Feature kServiceManagerForBackgroundPrefetch{
|
||||
"ServiceManagerForBackgroundPrefetch", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
"ServiceManagerForBackgroundPrefetch", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
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
|
||||
@@ -107,6 +107,7 @@ extern const base::Feature kRelatedSearches;
|
||||
extern const base::Feature kRevampedContextMenu;
|
||||
@@ -100,6 +100,7 @@ extern const base::Feature kReaderModeInCCT;
|
||||
extern const base::Feature kRelatedSearches;
|
||||
extern const base::Feature kSearchEnginePromoExistingDevice;
|
||||
extern const base::Feature kSearchEnginePromoNewDevice;
|
||||
+extern const base::Feature kSearchReadyOmniboxFeature;
|
||||
|
@ -141,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
|
||||
@@ -332,6 +332,7 @@ public abstract class ChromeFeatureList {
|
||||
@@ -326,6 +326,7 @@ public abstract class ChromeFeatureList {
|
||||
public static final String OMNIBOX_ADAPTIVE_SUGGESTIONS_COUNT =
|
||||
"OmniboxAdaptiveSuggestionsCount";
|
||||
public static final String OMNIBOX_ASSISTANT_VOICE_SEARCH = "OmniboxAssistantVoiceSearch";
|
||||
|
|
453
build/patches/Restore-Simplified-NTP-launch.patch
Normal file
453
build/patches/Restore-Simplified-NTP-launch.patch
Normal file
|
@ -0,0 +1,453 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 7 Nov 2020 23:51:29 +0100
|
||||
Subject: Restore Simplified NTP launch
|
||||
|
||||
This reverts commit 4d0e4483c5f77c66a8b6193e8a3bec5d0624d6ad.
|
||||
---
|
||||
chrome/android/chrome_java_resources.gni | 1 +
|
||||
chrome/android/chrome_java_sources.gni | 1 +
|
||||
.../java/res/layout/new_tab_page_layout.xml | 7 ++
|
||||
.../android/java/res/layout/ntp_shortcuts.xml | 65 +++++++++++++++++++
|
||||
.../browser/bookmarks/BookmarkUtils.java | 2 +-
|
||||
.../feedback/ChromeFeedbackCollector.java | 1 +
|
||||
.../feedback/SimplifiedNtpFeedbackSource.java | 38 +++++++++++
|
||||
.../chrome/browser/ntp/NewTabPageLayout.java | 30 ++++++++-
|
||||
.../suggestions/SuggestionsConfig.java | 4 +-
|
||||
.../SuggestionsNavigationDelegate.java | 14 ++++
|
||||
chrome/browser/about_flags.cc | 3 +
|
||||
chrome/browser/flag_descriptions.cc | 3 +
|
||||
chrome/browser/flag_descriptions.h | 3 +
|
||||
.../flags/android/chrome_feature_list.cc | 4 ++
|
||||
.../flags/android/chrome_feature_list.h | 1 +
|
||||
.../browser/flags/ChromeFeatureList.java | 1 +
|
||||
components/ntp_snippets/features.cc | 6 +-
|
||||
.../variations/fieldtrial_testing_config.json | 18 +++++
|
||||
18 files changed, 197 insertions(+), 5 deletions(-)
|
||||
create mode 100644 chrome/android/java/res/layout/ntp_shortcuts.xml
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/feedback/SimplifiedNtpFeedbackSource.java
|
||||
|
||||
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
|
||||
@@ -911,6 +911,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",
|
||||
+ "java/res/layout/ntp_shortcuts.xml",
|
||||
"java/res/layout/omnibox_answer_suggestion.xml",
|
||||
"java/res/layout/omnibox_basic_suggestion.xml",
|
||||
"java/res/layout/omnibox_entity_suggestion.xml",
|
||||
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
|
||||
@@ -702,6 +702,7 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/feedback/IMEFeedbackSource.java",
|
||||
"java/src/org/chromium/chrome/browser/feedback/InterestFeedFeedbackSource.java",
|
||||
"java/src/org/chromium/chrome/browser/feedback/LowEndDeviceFeedbackSource.java",
|
||||
+ "java/src/org/chromium/chrome/browser/feedback/SimplifiedNtpFeedbackSource.java",
|
||||
"java/src/org/chromium/chrome/browser/feedback/PermissionFeedbackSource.java",
|
||||
"java/src/org/chromium/chrome/browser/feedback/ProcessIdFeedbackSource.java",
|
||||
"java/src/org/chromium/chrome/browser/feedback/ScreenshotSource.java",
|
||||
diff --git a/chrome/android/java/res/layout/new_tab_page_layout.xml b/chrome/android/java/res/layout/new_tab_page_layout.xml
|
||||
--- a/chrome/android/java/res/layout/new_tab_page_layout.xml
|
||||
+++ b/chrome/android/java/res/layout/new_tab_page_layout.xml
|
||||
@@ -60,6 +60,13 @@
|
||||
android:layout="@layout/video_tutorial_iph_card"
|
||||
android:inflatedId="@+id/video_iph_card"/>
|
||||
|
||||
+ <ViewStub
|
||||
+ android:id="@+id/shortcuts_stub"
|
||||
+ android:layout_width="match_parent"
|
||||
+ android:layout_height="wrap_content"
|
||||
+ android:inflatedId="@+id/shortcuts"
|
||||
+ android:layout="@layout/ntp_shortcuts" />
|
||||
+
|
||||
<!-- Middle spacer -->
|
||||
<View
|
||||
android:id="@+id/ntp_middle_spacer"
|
||||
diff --git a/chrome/android/java/res/layout/ntp_shortcuts.xml b/chrome/android/java/res/layout/ntp_shortcuts.xml
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/chrome/android/java/res/layout/ntp_shortcuts.xml
|
||||
@@ -0,0 +1,65 @@
|
||||
+<?xml version="1.0" encoding="utf-8"?>
|
||||
+<!-- Copyright 2018 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. -->
|
||||
+
|
||||
+<LinearLayout
|
||||
+ xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
+ xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
+ android:id="@+id/shortcuts"
|
||||
+ android:layout_width="match_parent"
|
||||
+ android:layout_height="wrap_content"
|
||||
+ android:paddingStart="16dp"
|
||||
+ android:paddingEnd="16dp"
|
||||
+ android:baselineAligned="false"
|
||||
+ android:gravity="center"
|
||||
+ android:orientation="horizontal" >
|
||||
+
|
||||
+ <FrameLayout
|
||||
+ android:id="@+id/bookmarks_button"
|
||||
+ android:layout_width="0dp"
|
||||
+ android:layout_weight="1"
|
||||
+ android:layout_height="wrap_content"
|
||||
+ android:minHeight="48dp"
|
||||
+ android:background="?attr/selectableItemBackground"
|
||||
+ android:paddingTop="4dp"
|
||||
+ android:paddingBottom="4dp" >
|
||||
+
|
||||
+ <org.chromium.components.browser_ui.widget.text.TextViewWithCompoundDrawables
|
||||
+ android:layout_width="wrap_content"
|
||||
+ android:layout_height="wrap_content"
|
||||
+ android:gravity="center"
|
||||
+ android:layout_gravity="center"
|
||||
+ android:drawablePadding="8dp"
|
||||
+ android:drawableStart="@drawable/btn_star_filled"
|
||||
+ android:text="@string/menu_bookmarks"
|
||||
+ android:textAppearance="@style/TextAppearance.TextSmall.Secondary"
|
||||
+ app:drawableHeight="20sp"
|
||||
+ app:drawableWidth="20sp"
|
||||
+ app:chromeDrawableTint="@color/default_icon_color" />
|
||||
+ </FrameLayout>
|
||||
+
|
||||
+ <FrameLayout
|
||||
+ android:id="@+id/downloads_button"
|
||||
+ android:layout_width="0dp"
|
||||
+ android:layout_weight="1"
|
||||
+ android:layout_height="wrap_content"
|
||||
+ android:minHeight="48dp"
|
||||
+ android:background="?attr/selectableItemBackground"
|
||||
+ android:paddingTop="4dp"
|
||||
+ android:paddingBottom="4dp" >
|
||||
+
|
||||
+ <org.chromium.components.browser_ui.widget.text.TextViewWithCompoundDrawables
|
||||
+ android:layout_width="wrap_content"
|
||||
+ android:layout_height="wrap_content"
|
||||
+ android:gravity="center"
|
||||
+ android:layout_gravity="center"
|
||||
+ android:drawablePadding="8dp"
|
||||
+ android:drawableStart="@drawable/ic_file_download_white_24dp"
|
||||
+ android:text="@string/menu_downloads"
|
||||
+ android:textAppearance="@style/TextAppearance.TextSmall.Secondary"
|
||||
+ app:drawableHeight="20sp"
|
||||
+ app:drawableWidth="20sp"
|
||||
+ app:chromeDrawableTint="@color/default_icon_color" />
|
||||
+ </FrameLayout>
|
||||
+</LinearLayout>
|
||||
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
|
||||
@@ -170,7 +170,7 @@ public class BookmarkUtils {
|
||||
* Shows bookmark main UI.
|
||||
* @param activity An activity to start the manager with.
|
||||
*/
|
||||
- public static void showBookmarkManager(ChromeActivity activity) {
|
||||
+ public static void showBookmarkManager(Activity activity) {
|
||||
ThreadUtils.assertOnUiThread();
|
||||
String url = getFirstUrlToLoad(activity);
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java
|
||||
@@ -55,6 +55,7 @@ public class ChromeFeedbackCollector
|
||||
sources.add(new LowEndDeviceFeedbackSource());
|
||||
sources.add(new IMEFeedbackSource());
|
||||
sources.add(new PermissionFeedbackSource());
|
||||
+ sources.add(new SimplifiedNtpFeedbackSource());
|
||||
sources.add(new FeedbackContextFeedbackSource(initParams.feedbackContext));
|
||||
|
||||
return sources;
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/SimplifiedNtpFeedbackSource.java b/chrome/android/java/src/org/chromium/chrome/browser/feedback/SimplifiedNtpFeedbackSource.java
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/feedback/SimplifiedNtpFeedbackSource.java
|
||||
@@ -0,0 +1,38 @@
|
||||
+// Copyright 2018 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.chrome.browser.feedback;
|
||||
+
|
||||
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
+import org.chromium.chrome.browser.ntp.NewTabPageLayout;
|
||||
+
|
||||
+import java.util.HashMap;
|
||||
+import java.util.Map;
|
||||
+
|
||||
+/**
|
||||
+ * Provides information about whether the simplified NTP is enabled for use in feedback reports.
|
||||
+ */
|
||||
+public class SimplifiedNtpFeedbackSource implements FeedbackSource {
|
||||
+ private static final String SIMPLIFIED_NTP_KEY = "Simplified NTP";
|
||||
+ private static final String ENABLED_VALUE = "Enabled";
|
||||
+ private static final String DISABLED_VALUE = "Disabled";
|
||||
+
|
||||
+ private final HashMap<String, String> mMap;
|
||||
+
|
||||
+ SimplifiedNtpFeedbackSource() {
|
||||
+ mMap = new HashMap<String, String>(1);
|
||||
+
|
||||
+ boolean isEnabled = ChromeFeatureList.isEnabled(ChromeFeatureList.SIMPLIFIED_NTP);
|
||||
+ if (!isEnabled) {
|
||||
+ mMap.put(SIMPLIFIED_NTP_KEY, DISABLED_VALUE);
|
||||
+ } else {
|
||||
+ mMap.put(SIMPLIFIED_NTP_KEY, ENABLED_VALUE);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public Map<String, String> getFeedback() {
|
||||
+ return mMap;
|
||||
+ }
|
||||
+}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
|
||||
@@ -27,6 +27,7 @@ import org.chromium.base.MathUtils;
|
||||
import org.chromium.base.TraceEvent;
|
||||
import org.chromium.base.supplier.Supplier;
|
||||
import org.chromium.chrome.R;
|
||||
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
import org.chromium.chrome.browser.compositor.layouts.content.InvalidationAwareThumbnailProvider;
|
||||
import org.chromium.chrome.browser.cryptids.ProbabilisticCryptidRenderer;
|
||||
import org.chromium.chrome.browser.explore_sites.ExperimentalExploreSitesSection;
|
||||
@@ -94,6 +95,8 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
|
||||
private UiConfig mUiConfig;
|
||||
private CallbackController mCallbackController = new CallbackController();
|
||||
|
||||
+ private ViewGroup mShortcutsView;
|
||||
+
|
||||
/**
|
||||
* 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.
|
||||
@@ -253,6 +256,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
|
||||
}
|
||||
mNoSearchLogoSpacer = findViewById(R.id.no_search_logo_spacer);
|
||||
|
||||
+ initializeShortcuts();
|
||||
initializeSearchBoxTextView();
|
||||
initializeVoiceSearchButton();
|
||||
initializeLayoutChangeListener();
|
||||
@@ -549,10 +553,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() {
|
||||
- // Set a bit more top padding on the tile grid if there is no logo.
|
||||
- int paddingTop = getResources().getDimensionPixelSize(shouldShowLogo()
|
||||
+ int paddingTop;
|
||||
+ if (mShortcutsView != null) {
|
||||
+ // If the shortcuts view is visible, padding will be built into that view.
|
||||
+ paddingTop = 0;
|
||||
+ } else {
|
||||
+ // Set a bit more top padding on the tile grid if there is no logo.
|
||||
+ paddingTop = getResources().getDimensionPixelSize(shouldShowLogo()
|
||||
? R.dimen.tile_grid_layout_padding_top
|
||||
: R.dimen.tile_grid_layout_no_logo_padding_top);
|
||||
+ }
|
||||
mSiteSectionViewHolder.itemView.setPadding(
|
||||
0, paddingTop, 0, mSiteSectionViewHolder.itemView.getPaddingBottom());
|
||||
}
|
||||
@@ -885,6 +895,22 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
|
||||
mSearchBoxCoordinator.destroy();
|
||||
}
|
||||
|
||||
+ private void initializeShortcuts() {
|
||||
+ if (!ChromeFeatureList.isEnabled(ChromeFeatureList.SIMPLIFIED_NTP)) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ ViewStub shortcutsStub = findViewById(R.id.shortcuts_stub);
|
||||
+ mShortcutsView = (ViewGroup) shortcutsStub.inflate();
|
||||
+
|
||||
+ mShortcutsView.findViewById(R.id.bookmarks_button)
|
||||
+ .setOnClickListener(view -> mManager.getNavigationDelegate().navigateToBookmarks());
|
||||
+
|
||||
+ mShortcutsView.findViewById(R.id.downloads_button)
|
||||
+ .setOnClickListener(
|
||||
+ view -> mManager.getNavigationDelegate().navigateToDownloadManager());
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* Makes the Search Box and Logo as wide as Most Visited.
|
||||
*/
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsConfig.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsConfig.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsConfig.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsConfig.java
|
||||
@@ -51,7 +51,9 @@ public final class SuggestionsConfig {
|
||||
// The scroll to load feature does not work well for users who require accessibility mode.
|
||||
if (ChromeAccessibilityUtil.get().isAccessibilityEnabled()) return false;
|
||||
|
||||
- return ChromeFeatureList.isEnabled(ChromeFeatureList.CONTENT_SUGGESTIONS_SCROLL_TO_LOAD);
|
||||
+ return ChromeFeatureList.isEnabled(ChromeFeatureList.SIMPLIFIED_NTP)
|
||||
+ && ChromeFeatureList.isEnabled(
|
||||
+ ChromeFeatureList.CONTENT_SUGGESTIONS_SCROLL_TO_LOAD);
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java
|
||||
@@ -16,6 +16,10 @@ import org.chromium.content_public.browser.LoadUrlParams;
|
||||
import org.chromium.ui.base.PageTransition;
|
||||
import org.chromium.ui.mojom.WindowOpenDisposition;
|
||||
|
||||
+import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
|
||||
+import org.chromium.chrome.browser.download.DownloadUtils;
|
||||
+import org.chromium.chrome.browser.download.DownloadOpenSource;
|
||||
+
|
||||
/**
|
||||
* Extension of {@link NativePageNavigationDelegate} with suggestions-specific methods.
|
||||
*/
|
||||
@@ -35,6 +39,16 @@ public class SuggestionsNavigationDelegate extends NativePageNavigationDelegateI
|
||||
new LoadUrlParams(NEW_TAB_URL_HELP, PageTransition.AUTO_BOOKMARK));
|
||||
}
|
||||
|
||||
+ public void navigateToBookmarks() {
|
||||
+ //RecordUserAction.record("MobileNTPSwitchToBookmarks");
|
||||
+ BookmarkUtils.showBookmarkManager(mActivity);
|
||||
+ }
|
||||
+
|
||||
+ public void navigateToDownloadManager() {
|
||||
+ //RecordUserAction.record("MobileNTPSwitchToDownloadManager");
|
||||
+ DownloadUtils.showDownloadManager(mActivity, null, DownloadOpenSource.NEW_TAB_PAGE);
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* Opens the suggestions page without recording metrics.
|
||||
*
|
||||
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
|
||||
@@ -3564,6 +3564,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
SINGLE_VALUE_TYPE_AND_VALUE(
|
||||
switches::kForceShowUpdateMenuItemCustomSummary,
|
||||
"Custom Summary")},
|
||||
+ {"simplified-ntp", flag_descriptions::kSimplifiedNtpName,
|
||||
+ flag_descriptions::kSimplifiedNtpDescription, kOsAndroid,
|
||||
+ FEATURE_VALUE_TYPE(chrome::android::kSimplifiedNTP)},
|
||||
{"force-show-update-menu-badge", flag_descriptions::kUpdateMenuBadgeName,
|
||||
flag_descriptions::kUpdateMenuBadgeDescription, kOsAndroid,
|
||||
SINGLE_VALUE_TYPE(switches::kForceShowUpdateMenuBadge)},
|
||||
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
|
||||
@@ -3196,6 +3196,9 @@ const char kStartSurfaceAndroidDescription[] =
|
||||
"Enable showing the start surface when launching Chrome via the "
|
||||
"launcher.";
|
||||
|
||||
+const char kSimplifiedNtpName[] = "Simplified NTP";
|
||||
+const char kSimplifiedNtpDescription[] = "Show a simplified New Tab Page.";
|
||||
+
|
||||
const char kStrictSiteIsolationName[] = "Strict site isolation";
|
||||
const char kStrictSiteIsolationDescription[] =
|
||||
"Security mode that enables site isolation for all sites (SitePerProcess). "
|
||||
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
|
||||
@@ -1836,6 +1836,9 @@ extern const char kSiteIsolationForPasswordSitesDescription[];
|
||||
extern const char kSmartSuggestionForLargeDownloadsName[];
|
||||
extern const char kSmartSuggestionForLargeDownloadsDescription[];
|
||||
|
||||
+extern const char kSimplifiedNtpName[];
|
||||
+extern const char kSimplifiedNtpDescription[];
|
||||
+
|
||||
extern const char kStartSurfaceAndroidName[];
|
||||
extern const char kStartSurfaceAndroidDescription[];
|
||||
|
||||
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
|
||||
@@ -173,6 +173,7 @@ const base::Feature* kFeaturesExposedToJava[] = {
|
||||
&kNewPhotoPicker,
|
||||
&kNotificationSuspender,
|
||||
&kOfflineIndicatorV2,
|
||||
+ &kSimplifiedNTP,
|
||||
&kOmniboxSpareRenderer,
|
||||
&kOverlayNewLayout,
|
||||
&kPayWithGoogleV1,
|
||||
@@ -514,6 +515,9 @@ const base::Feature kNotificationSuspender{"NotificationSuspender",
|
||||
const base::Feature kOfflineIndicatorV2{"OfflineIndicatorV2",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
+const base::Feature kSimplifiedNTP{"SimplifiedNTP",
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+
|
||||
const base::Feature kOmniboxSpareRenderer{"OmniboxSpareRenderer",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
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
|
||||
@@ -88,6 +88,7 @@ extern const base::Feature kLanguagesPreference;
|
||||
extern const base::Feature kNewPhotoPicker;
|
||||
extern const base::Feature kNotificationSuspender;
|
||||
extern const base::Feature kOfflineIndicatorV2;
|
||||
+extern const base::Feature kSimplifiedNTP;
|
||||
extern const base::Feature kOmniboxSpareRenderer;
|
||||
extern const base::Feature kOverlayNewLayout;
|
||||
extern const base::Feature kPayWithGoogleV1;
|
||||
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
|
||||
@@ -306,6 +306,7 @@ public abstract class ChromeFeatureList {
|
||||
public static final String LOOKALIKE_NAVIGATION_URL_SUGGESTIONS_UI =
|
||||
"LookalikeUrlNavigationSuggestionsUI";
|
||||
public static final String MARK_HTTP_AS = "MarkHttpAs";
|
||||
+ public static final String SIMPLIFIED_NTP = "SimplifiedNTP";
|
||||
public static final String MESSAGES_FOR_ANDROID_INFRASTRUCTURE =
|
||||
"MessagesForAndroidInfrastructure";
|
||||
public static final String MOBILE_IDENTITY_CONSISTENCY = "MobileIdentityConsistency";
|
||||
diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/features.cc
|
||||
--- a/components/ntp_snippets/features.cc
|
||||
+++ b/components/ntp_snippets/features.cc
|
||||
@@ -13,13 +13,17 @@
|
||||
#include "components/ntp_snippets/category_rankers/constant_category_ranker.h"
|
||||
#include "components/variations/variations_associated_data.h"
|
||||
|
||||
+#if defined(OS_ANDROID)
|
||||
+#include "chrome/browser/flags/android/chrome_feature_list.h"
|
||||
+#endif // OS_ANDROID
|
||||
+
|
||||
namespace ntp_snippets {
|
||||
|
||||
namespace {
|
||||
// All platforms proxy for whether the simplified NTP is enabled.
|
||||
bool IsSimplifiedNtpEnabled() {
|
||||
#if defined(OS_ANDROID)
|
||||
- return true;
|
||||
+ return base::FeatureList::IsEnabled(chrome::android::kSimplifiedNTP);
|
||||
#else
|
||||
return false;
|
||||
#endif // OS_ANDROID
|
||||
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
|
||||
@@ -6669,6 +6669,24 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
+ "SimplifiedNTP": [
|
||||
+ {
|
||||
+ "platforms": [
|
||||
+ "android"
|
||||
+ ],
|
||||
+ "experiments": [
|
||||
+ {
|
||||
+ "name": "Enabled_NoScrollToLoad",
|
||||
+ "enable_features": [
|
||||
+ "SimplifiedNTP"
|
||||
+ ],
|
||||
+ "disable_features": [
|
||||
+ "ContentSuggestionsScrollToLoad"
|
||||
+ ]
|
||||
+ }
|
||||
+ ]
|
||||
+ }
|
||||
+ ],
|
||||
"TabGroupsYourTabsTogether": [
|
||||
{
|
||||
"platforms": [
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -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
|
||||
@@ -1651,7 +1651,7 @@
|
||||
@@ -1671,7 +1671,7 @@
|
||||
{
|
||||
"name": "enable-horizontal-tab-switcher",
|
||||
"owners": [ "memex-team@google.com" ],
|
||||
|
|
|
@ -1,151 +0,0 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Tue, 5 May 2020 07:26:55 +0200
|
||||
Subject: Revert "Remove flags to enable/disable AImageReader."
|
||||
|
||||
This reverts commit 463fa0f2e3b9e418bc26e2c8954463f0b0f76634.
|
||||
---
|
||||
.../service/image_reader_gl_owner_unittest.cc | 5 +++++
|
||||
gpu/config/gpu_finch_features.cc | 4 ++++
|
||||
gpu/config/gpu_finch_features.h | 1 +
|
||||
gpu/ipc/service/stream_texture_android.cc | 11 ++++++++++-
|
||||
media/base/media_switches.cc | 4 ++++
|
||||
media/base/media_switches.h | 1 +
|
||||
media/gpu/android/video_frame_factory_impl.cc | 5 ++++-
|
||||
7 files changed, 29 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/gpu/command_buffer/service/image_reader_gl_owner_unittest.cc b/gpu/command_buffer/service/image_reader_gl_owner_unittest.cc
|
||||
--- a/gpu/command_buffer/service/image_reader_gl_owner_unittest.cc
|
||||
+++ b/gpu/command_buffer/service/image_reader_gl_owner_unittest.cc
|
||||
@@ -8,10 +8,12 @@
|
||||
#include <memory>
|
||||
#include <utility>
|
||||
|
||||
+#include "base/test/scoped_feature_list.h"
|
||||
#include "base/test/task_environment.h"
|
||||
#include "gpu/command_buffer/service/abstract_texture.h"
|
||||
#include "gpu/command_buffer/service/image_reader_gl_owner.h"
|
||||
#include "gpu/command_buffer/service/mock_abstract_texture.h"
|
||||
+#include "media/base/media_switches.h"
|
||||
#include "media/base/android/media_codec_util.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "ui/gl/gl_bindings.h"
|
||||
@@ -31,6 +33,8 @@ class ImageReaderGLOwnerTest : public testing::Test {
|
||||
if (!IsImageReaderSupported())
|
||||
return;
|
||||
|
||||
+ scoped_feature_list_.InitAndEnableFeature(media::kAImageReaderVideoOutput);
|
||||
+
|
||||
gl::init::InitializeStaticGLBindingsImplementation(
|
||||
gl::kGLImplementationEGLGLES2, false);
|
||||
gl::init::InitializeGLOneOffPlatformImplementation(false, false, true);
|
||||
@@ -70,6 +74,7 @@ class ImageReaderGLOwnerTest : public testing::Test {
|
||||
return base::android::AndroidImageReader::GetInstance().IsSupported();
|
||||
}
|
||||
|
||||
+ base::test::ScopedFeatureList scoped_feature_list_;
|
||||
scoped_refptr<TextureOwner> image_reader_;
|
||||
GLuint texture_id_ = 0;
|
||||
|
||||
diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
|
||||
--- a/gpu/config/gpu_finch_features.cc
|
||||
+++ b/gpu/config/gpu_finch_features.cc
|
||||
@@ -13,6 +13,10 @@
|
||||
|
||||
namespace features {
|
||||
|
||||
+// Use android AImageReader when playing videos with MediaPlayer.
|
||||
+const base::Feature kAImageReaderMediaPlayer{"AImageReaderMediaPlayer",
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+
|
||||
#if defined(OS_ANDROID)
|
||||
// Used to limit GL version to 2.0 for skia raster on Android.
|
||||
const base::Feature kUseGles2ForOopR{"UseGles2ForOopR",
|
||||
diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h
|
||||
--- a/gpu/config/gpu_finch_features.h
|
||||
+++ b/gpu/config/gpu_finch_features.h
|
||||
@@ -17,6 +17,7 @@ namespace features {
|
||||
// All features in alphabetical order. The features should be documented
|
||||
// alongside the definition of their values in the .cc file.
|
||||
#if defined(OS_ANDROID)
|
||||
+GPU_EXPORT extern const base::Feature kAImageReaderMediaPlayer;
|
||||
GPU_EXPORT extern const base::Feature kUseGles2ForOopR;
|
||||
GPU_EXPORT extern const base::Feature kAndroidSurfaceControl;
|
||||
GPU_EXPORT extern const base::Feature kAImageReader;
|
||||
diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_texture_android.cc
|
||||
--- a/gpu/ipc/service/stream_texture_android.cc
|
||||
+++ b/gpu/ipc/service/stream_texture_android.cc
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
#include <string.h>
|
||||
|
||||
+#include "base/android/android_image_reader_compat.h"
|
||||
#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(
|
||||
}
|
||||
|
||||
TextureOwner::Mode GetTextureOwnerMode() {
|
||||
- return features::IsAImageReaderEnabled()
|
||||
+ const bool a_image_reader_supported =
|
||||
+ base::android::AndroidImageReader::GetInstance().IsSupported();
|
||||
+
|
||||
+ // TODO(vikassoni) : Currently we have 2 different flags to enable/disable
|
||||
+ // AImageReader - one for MCVD and other for MediaPlayer here. Merge those 2
|
||||
+ // flags into a single flag. Keeping the 2 flags separate for now since finch
|
||||
+ // experiment using this flag is in progress.
|
||||
+ return a_image_reader_supported && features::IsAImageReaderEnabled() &&
|
||||
+ base::FeatureList::IsEnabled(features::kAImageReaderMediaPlayer)
|
||||
? TextureOwner::Mode::kAImageReaderInsecure
|
||||
: TextureOwner::Mode::kSurfaceTextureInsecure;
|
||||
}
|
||||
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
|
||||
@@ -547,6 +547,10 @@ const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning",
|
||||
const base::Feature kMediaDrmPreprovisioningAtStartup{
|
||||
"MediaDrmPreprovisioningAtStartup", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
+// Enables the Android Image Reader path for Video decoding(for AVDA and MCVD)
|
||||
+const base::Feature kAImageReaderVideoOutput{"AImageReaderVideoOutput",
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+
|
||||
// Prevents using SurfaceLayer for videos. This is meant to be used by embedders
|
||||
// that cannot support SurfaceLayer at the moment.
|
||||
const base::Feature kDisableSurfaceLayerForVideo{
|
||||
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
|
||||
@@ -192,6 +192,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;
|
||||
+MEDIA_EXPORT extern const base::Feature kAImageReaderVideoOutput;
|
||||
MEDIA_EXPORT extern const base::Feature kDisableSurfaceLayerForVideo;
|
||||
MEDIA_EXPORT extern const base::Feature kCanPlayHls;
|
||||
MEDIA_EXPORT extern const base::Feature kPictureInPictureAPI;
|
||||
diff --git a/media/gpu/android/video_frame_factory_impl.cc b/media/gpu/android/video_frame_factory_impl.cc
|
||||
--- a/media/gpu/android/video_frame_factory_impl.cc
|
||||
+++ b/media/gpu/android/video_frame_factory_impl.cc
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
#include <memory>
|
||||
|
||||
+#include "base/android/android_image_reader_compat.h"
|
||||
#include "base/bind.h"
|
||||
#include "base/bind_helpers.h"
|
||||
#include "base/callback.h"
|
||||
@@ -65,7 +66,9 @@ gpu::TextureOwner::Mode GetTextureOwnerMode(
|
||||
switch (overlay_mode) {
|
||||
case VideoFrameFactory::OverlayMode::kDontRequestPromotionHints:
|
||||
case VideoFrameFactory::OverlayMode::kRequestPromotionHints:
|
||||
- return features::IsAImageReaderEnabled()
|
||||
+ return base::android::AndroidImageReader::GetInstance().IsSupported() &&
|
||||
+ features::IsAImageReaderEnabled() &&
|
||||
+ base::FeatureList::IsEnabled(media::kAImageReaderVideoOutput)
|
||||
? gpu::TextureOwner::Mode::kAImageReaderInsecure
|
||||
: gpu::TextureOwner::Mode::kSurfaceTextureInsecure;
|
||||
case VideoFrameFactory::OverlayMode::kSurfaceControlSecure:
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -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
|
||||
@@ -2836,6 +2836,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -3070,6 +3070,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
|
||||
@@ -890,6 +890,11 @@
|
||||
@@ -905,6 +905,11 @@
|
||||
// enable-javascript-harmony.
|
||||
"expiry_milestone": -1
|
||||
},
|
||||
|
@ -42,7 +42,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
|
||||
@@ -3053,6 +3053,10 @@ const char kQueryTilesInstantFetchName[] = "Query tile instant fetch";
|
||||
@@ -3086,6 +3086,10 @@ const char kQueryTilesInstantFetchName[] = "Query tile instant fetch";
|
||||
const char kQueryTilesInstantFetchDescription[] =
|
||||
"Immediately schedule background task to fetch query tiles";
|
||||
|
||||
|
@ -56,7 +56,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
|
||||
@@ -1762,6 +1762,9 @@ extern const char kQueryTilesCountryCodeIndonesia[];
|
||||
@@ -1777,6 +1777,9 @@ extern const char kQueryTilesLocalOrderingDescription[];
|
||||
extern const char kQueryTilesInstantFetchName[];
|
||||
extern const char kQueryTilesInstantFetchDescription[];
|
||||
|
||||
|
|
|
@ -1,127 +0,0 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Tue, 5 May 2020 07:22:20 +0200
|
||||
Subject: Revert "gpu/android: Remove setup for disabling AImageReader."
|
||||
|
||||
This reverts commit dcd5a39518246eb999f1cc63bf1ec95d93fd5b2f.
|
||||
---
|
||||
base/android/android_image_reader_compat.cc | 8 +++++++-
|
||||
base/android/android_image_reader_compat.h | 4 ++++
|
||||
gpu/config/gpu_util.cc | 8 ++++++++
|
||||
gpu/config/gpu_workaround_list.txt | 1 +
|
||||
gpu/ipc/service/gpu_init.cc | 11 +++++++++++
|
||||
5 files changed, 31 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/base/android/android_image_reader_compat.cc b/base/android/android_image_reader_compat.cc
|
||||
--- a/base/android/android_image_reader_compat.cc
|
||||
+++ b/base/android/android_image_reader_compat.cc
|
||||
@@ -22,6 +22,8 @@
|
||||
namespace base {
|
||||
namespace android {
|
||||
|
||||
+bool AndroidImageReader::disable_support_ = false;
|
||||
+
|
||||
AndroidImageReader& AndroidImageReader::GetInstance() {
|
||||
// C++11 static local variable initialization is
|
||||
// thread-safe.
|
||||
@@ -29,8 +31,12 @@ AndroidImageReader& AndroidImageReader::GetInstance() {
|
||||
return *instance;
|
||||
}
|
||||
|
||||
+void AndroidImageReader::DisableSupport() {
|
||||
+ disable_support_ = true;
|
||||
+}
|
||||
+
|
||||
bool AndroidImageReader::IsSupported() {
|
||||
- return is_supported_;
|
||||
+ return !disable_support_ && is_supported_;
|
||||
}
|
||||
|
||||
AndroidImageReader::AndroidImageReader() {
|
||||
diff --git a/base/android/android_image_reader_compat.h b/base/android/android_image_reader_compat.h
|
||||
--- a/base/android/android_image_reader_compat.h
|
||||
+++ b/base/android/android_image_reader_compat.h
|
||||
@@ -22,6 +22,9 @@ class BASE_EXPORT AndroidImageReader {
|
||||
// Thread safe GetInstance.
|
||||
static AndroidImageReader& GetInstance();
|
||||
|
||||
+ // Disable image reader support.
|
||||
+ static void DisableSupport();
|
||||
+
|
||||
// Check if the image reader usage is supported. This function returns TRUE
|
||||
// if android version is >=OREO, image reader support is not disabled and all
|
||||
// the required functions are loaded.
|
||||
@@ -64,6 +67,7 @@ class BASE_EXPORT AndroidImageReader {
|
||||
AndroidImageReader();
|
||||
bool LoadFunctions();
|
||||
|
||||
+ static bool disable_support_;
|
||||
bool is_supported_;
|
||||
pAImage_delete AImage_delete_;
|
||||
pAImage_deleteAsync AImage_deleteAsync_;
|
||||
diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
|
||||
--- a/gpu/config/gpu_util.cc
|
||||
+++ b/gpu/config/gpu_util.cc
|
||||
@@ -111,6 +111,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus(
|
||||
#if !defined(OS_ANDROID)
|
||||
return kGpuFeatureStatusDisabled;
|
||||
#else
|
||||
+ if (blocklisted_features.count(GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL))
|
||||
+ return kGpuFeatureStatusBlocklisted;
|
||||
+
|
||||
if (!gpu_preferences.enable_android_surface_control)
|
||||
return kGpuFeatureStatusDisabled;
|
||||
|
||||
@@ -374,6 +377,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) {
|
||||
gpu_feature_info->status_values[GPU_FEATURE_TYPE_ACCELERATED_WEBGL2] =
|
||||
kGpuFeatureStatusBlocklisted;
|
||||
}
|
||||
+
|
||||
+ if (gpu_feature_info->IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) {
|
||||
+ gpu_feature_info->status_values[GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL] =
|
||||
+ kGpuFeatureStatusBlocklisted;
|
||||
+ }
|
||||
}
|
||||
|
||||
// Estimates roughly user total disk space by counting in the drives where
|
||||
diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list.txt
|
||||
--- a/gpu/config/gpu_workaround_list.txt
|
||||
+++ b/gpu/config/gpu_workaround_list.txt
|
||||
@@ -13,6 +13,7 @@ decode_encode_srgb_for_generatemipmap
|
||||
depth_stencil_renderbuffer_resize_emulation
|
||||
disable_2d_canvas_auto_flush
|
||||
disable_accelerated_av1_decode
|
||||
+disable_aimagereader
|
||||
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
|
||||
@@ -710,6 +710,12 @@ void GpuInit::InitializeInProcess(base::CommandLine* command_line,
|
||||
AdjustInfoToSwiftShader();
|
||||
}
|
||||
|
||||
+#if defined(OS_ANDROID)
|
||||
+ // Disable AImageReader if the workaround is enabled.
|
||||
+ if (gpu_feature_info_.IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) {
|
||||
+ base::android::AndroidImageReader::DisableSupport();
|
||||
+ }
|
||||
+#endif
|
||||
#if defined(USE_OZONE)
|
||||
if (features::IsUsingOzonePlatform()) {
|
||||
const std::vector<gfx::BufferFormat>
|
||||
@@ -729,6 +735,11 @@ void GpuInit::InitializeInProcess(base::CommandLine* command_line,
|
||||
gl::DirectCompositionSurfaceWin::DisableDecodeSwapChain();
|
||||
#endif
|
||||
|
||||
+ // Disable AImageReader if the workaround is enabled.
|
||||
+ if (gpu_feature_info_.IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) {
|
||||
+ base::android::AndroidImageReader::DisableSupport();
|
||||
+ }
|
||||
+
|
||||
UMA_HISTOGRAM_ENUMERATION("GPU.GLImplementation", gl::GetGLImplementation());
|
||||
}
|
||||
#endif // OS_ANDROID
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -0,0 +1,698 @@
|
|||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Sat, 7 Nov 2020 21:59:18 +0000
|
||||
Subject: Revert the removal of an option to block autoplay
|
||||
|
||||
---
|
||||
.../browser_ui/site_settings/android/BUILD.gn | 5 ++++
|
||||
.../res/drawable-hdpi/settings_autoplay.png | Bin 0 -> 456 bytes
|
||||
.../res/drawable-mdpi/settings_autoplay.png | Bin 0 -> 296 bytes
|
||||
.../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 | 5 ++++
|
||||
.../site_settings/SingleCategorySettings.java | 4 +++
|
||||
.../site_settings/SingleWebsiteSettings.java | 22 +++++++++++++++++
|
||||
.../site_settings/SiteSettingsCategory.java | 9 +++++--
|
||||
.../browser_ui/site_settings/Website.java | 8 ++++++
|
||||
.../WebsitePermissionsFetcher.java | 1 +
|
||||
.../WebsitePreferenceBridge.java | 14 +++++++++++
|
||||
.../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 ++
|
||||
.../core/common/content_settings.cc | 1 +
|
||||
.../core/common/content_settings.h | 1 +
|
||||
.../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.h | 1 +
|
||||
.../android/page_info_controller_android.cc | 1 +
|
||||
components/page_info/page_info.cc | 6 +++++
|
||||
components/page_info/page_info_ui.cc | 1 +
|
||||
components/page_info_strings.grdp | 3 +++
|
||||
.../platform/web_content_settings_client.h | 3 +++
|
||||
.../core/html/media/autoplay_policy.cc | 12 ++++++++-
|
||||
.../core/html/media/autoplay_policy.h | 4 +++
|
||||
33 files changed, 157 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
|
||||
create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-xxhdpi/settings_autoplay.png
|
||||
create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-xxxhdpi/settings_autoplay.png
|
||||
|
||||
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") {
|
||||
"java/res/drawable-xxxhdpi/settings_storage.png",
|
||||
"java/res/drawable-xxxhdpi/settings_usb.png",
|
||||
"java/res/drawable-xxxhdpi/web_asset.png",
|
||||
+ "java/res/drawable-hdpi/settings_autoplay.png",
|
||||
+ "java/res/drawable-xhdpi/settings_autoplay.png",
|
||||
+ "java/res/drawable-xxhdpi/settings_autoplay.png",
|
||||
+ "java/res/drawable-mdpi/settings_autoplay.png",
|
||||
+ "java/res/drawable-xxxhdpi/settings_autoplay.png",
|
||||
"java/res/drawable/ic_person_24dp.xml",
|
||||
"java/res/drawable/settings_bluetooth.xml",
|
||||
"java/res/layout/add_site_dialog.xml",
|
||||
diff --git a/components/browser_ui/site_settings/android/java/res/drawable-hdpi/settings_autoplay.png b/components/browser_ui/site_settings/android/java/res/drawable-hdpi/settings_autoplay.png
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..a8a9265f14cd8445ad1f55845099e60dc3c4edf1
|
||||
GIT binary patch
|
||||
literal 456
|
||||
zcmV;(0XP1MP)<h;3K|Lk000e1NJLTq001Na001Ni1ONa4O9@aD0004xNkl<Zcmd^>
|
||||
zv2MaJ5QYmZs7m@68Tt%)0T}7#GcJmh4B69}fh}W`x!sUhd4N1chpY%8u@-es;cQTy
|
||||
zGbWY1VQ**q%l&uuT^{am%=;qbIaI7>hvTfF;<*Ut{eMAbL!QB&HFUzBXR~2P41Zx8
|
||||
z)>!6-O>RP(9xN_j-$FSZiy-wPUj)-Jl(4<5Et;Mc!<K5}jwP!>dwn%v3G5VXX+fR6
|
||||
zfpz3x+Y|Y)K6`aNHVw{qdv4}^DAdl0F;g<cu%;M_QeJHg8RVIajV_AK%qV!0vEmv1
|
||||
z#vVbjZa-Q+lSd;emiMaVzX)Z*+nGY^7d%tYY9KFz2z6mO9x2+}RepX<5}`zKxo)iR
|
||||
zz{m)~NhMClXs`4GHM$vG2T_S4KzpqpIGl{BX8{q3sfX5s0TlVSK=Ataj-&0{v9#{N
|
||||
z{;&j_q`#yfB8jBm<%OhAge7edm84b@`b2QRo9WRKN#xNwD<h5zoBL8ri$BDs;tw$`
|
||||
y{$1Kp0i#npN<C~x1#L&}8>IV|-Tf!x{>CqV{oZM{Igf1s0000<MNUMnLSTY>m&@A#
|
||||
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
diff --git a/components/browser_ui/site_settings/android/java/res/drawable-mdpi/settings_autoplay.png b/components/browser_ui/site_settings/android/java/res/drawable-mdpi/settings_autoplay.png
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..49fa10d44f4007532d0d03d15fdcb1a715857e96
|
||||
GIT binary patch
|
||||
literal 296
|
||||
zcmV+@0oVSCP)<h;3K|Lk000e1NJLTq000;O000;W1ONa4N`Cco0002*Nkl<Zc-p;F
|
||||
zu?>ST5R5=Hk+X;yg9#|y{3AI^L4jN_0yR^lp<y0UAY}`bhK9U}6x+c{;s$?XpYHT`
|
||||
z_WQ8+DiaXc!3Y!8NIOv`U+9>_9hQ%}W9}t45w<H~z#4hQDkf8`VbB=1O|%hcI?jda
|
||||
zV;k+`LgB0>TQfw*%xg4TCAk}wycg<C;jW}mI*Sz_g!XRC-~-OCu{Db@O*?8?8^Rj&
|
||||
zS{^N1H6fiLjCAC#fRLNPkP|W*!URjjT!AiQtzvYZ{t%#iA(xXD1Xz-(u@oBGf2}Be
|
||||
u*BbnAfuj*Re80yVxjo)NA1L&T?!2C$I@?4>V>|Ky0000<MNUMnLSTX*1bI&Y
|
||||
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
diff --git a/components/browser_ui/site_settings/android/java/res/drawable-xhdpi/settings_autoplay.png b/components/browser_ui/site_settings/android/java/res/drawable-xhdpi/settings_autoplay.png
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..5a4128a5e02949de754f9cab2635824eda8c539c
|
||||
GIT binary patch
|
||||
literal 551
|
||||
zcmV+?0@(eDP)<h;3K|Lk000e1NJLTq001xm001xu1ONa4{R=S+0005*Nkl<Zc-rk(
|
||||
zy>fy;5RRo0wX?Hwh9Zw(#Vgp}9uO@kj!GT?W_XdLp-A4qiidDg@B~=L$xN`2Fo6Ry
|
||||
zoC`9!!WnNX*>%6WZ+~v@;l6HTnG5Pb03nIUF_Q>F2&iK&{=v0ABR=d&Dwa&+>$CpO
|
||||
zN8o1rO<Uv$u0HDF9##;Ow3|Q-tE-%+18~W?=HLW7u&HLKOxcVLm1<yTUrsfUGq~xX
|
||||
zqx<cUyx0DE0A@`^cGeUaIn=iCwjFlbea(GBJf>jQOd%dgDu@oJ0JqvZU3NJ!T~_A+
|
||||
zw>7k!d)Tk%U1PSM!@i8g3Qx?K@4o3Chv27xSRb|1lL*LZCn{;7NuQNv<q5!Ftw$V!
|
||||
zc)av3R5$TCJ)+DZDSW^ao>676eW3vl6flwYSMx=l(G+1kL4+N%tlEhfAQy}(nDFWr
|
||||
zbXw{Z4tCiO1OTTBcDW68nyP>kgahDIfn8VxO;uQ6Yd8Q-71auD*mMx(DnrEqaH<To
|
||||
z&_)dhyat$p1K?CKh1bGGfX(<C05JbrZN`P>Q#wV`gM2wnZ5*JY22WGzg(js{SktOi
|
||||
z^lWxu_H1_Y+jaYe^U~wOk$z>$zx3sgE%FC1e02PlFgl8cUvcTd1Q~vNjPEQT-<g7p
|
||||
p?=l}ClAlmgAAvHTvG;Wo>j%AMEx!+_@2>y=002ovPDHLkV1fY;_gnw~
|
||||
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
diff --git a/components/browser_ui/site_settings/android/java/res/drawable-xxhdpi/settings_autoplay.png b/components/browser_ui/site_settings/android/java/res/drawable-xxhdpi/settings_autoplay.png
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..7fceb8c2b546970a3720e8ab225799aa03895b7f
|
||||
GIT binary patch
|
||||
literal 792
|
||||
zcmV+z1LypSP)<h;3K|Lk000e1NJLTq002k;002k`1ONa4|Kxkj0008tNkl<ZcmeHN
|
||||
zv2Nl_5Kd(&P^2J2k<wEAFOV*wK{6%nd}~AH7AGB@E1m)cC{TL;PY?@4L47q{DkQ2)
|
||||
zgu;oFPN%!E!Ny}lw9<LD9oFB@H#0js!$l#56r!s*CDlL=Bg|=u6>VsP6)iEx2tCzs
|
||||
zN?!=Ys;Vvm+R!dxZSbnPR`u*)=$?G~q+QDONj}}54UDQIpq+dnupUkhrgMXd90~(9
|
||||
z>D-*sHYV1z%eSyr=BeO3;m5&Ge2@<pO;xiip5YmGMb*%ROFljhg4(L5++aL|o)4Xt
|
||||
z#%NjP*f=bsMdO23efEqzx#k+Py)EC-cdk<X`U-t|-#g6Ixz21IO!tgFux}-M*tcpx
|
||||
z+bE=rR*I5^H|s7_BE7>~l(<Z;9NA<MwvEhAv<UAec5h`y4E^$WnI||NFX<&hz9~zC
|
||||
z>oA;)6G#{m)`C=tNtmpB)?rp!gtK?*J1gwU@xCMXrLcRedOG_Aoa>~>!hiCJ<GzU?
|
||||
zU4g;RFi3>{ojT&^9q|2A6eswfXXRwNew}jUlw`DpvbTS<8sy~{`pMeAwZ6%yL!Xy$
|
||||
zN2*G=JTQ;lS${M|)Hzo?si<yxhaM+sazIk*Xq?iqof0qI(UJg?P=^+O4kR2zHF)`D
|
||||
zl|_IA)LCU-!l_0)@}9u|IUq50<g;J&;sK4Ankxn*pe__Vqj<GBGo&d7B%n^2OnV;x
|
||||
zfh7Y}69W=Zr)o@h8E>K0Up2cT1|*=)t}wk-{0CUjdxjX0fI83Mf&Ybo(3S(znzB<m
|
||||
z^)SCv%fntq6%#ah*z2DdwY@s>U#@89zg#sfKk^r7!;A&m>sd-zwDXs+niu)Z|Ao(>
|
||||
z;TfMn@`obY`5%hfKBYBiHdqh(w`25gSn1i))3E8OQ(Krf&Sz(7oX<QX`)FaR!DvC-
|
||||
z;R|!`ZTxsjnS4B@Ou=|cg8`miBTkKmz^eW)jLCUb2{*+b2?DrQRj0pNXexyiQpitx
|
||||
WnED%yq_MdG0000<MNUMnLSTZmtagO}
|
||||
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
diff --git a/components/browser_ui/site_settings/android/java/res/drawable-xxxhdpi/settings_autoplay.png b/components/browser_ui/site_settings/android/java/res/drawable-xxxhdpi/settings_autoplay.png
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..92a315bb00ac1f4dc675e894bf4af3ba7c68bf39
|
||||
GIT binary patch
|
||||
literal 1064
|
||||
zcmV+@1lRkCP)<h;3K|Lk000e1NJLTq003YB003YJ1ONa4NRhv@000B;Nkl<Zc-rk-
|
||||
zF-Rjp6x}q5UMCS0#3Pl(5mH&l%1Q;{uKI6w6G2RqfI_g2*e8Om;Gwl(ZGDB6<Z@mY
|
||||
z41!h)DtJW--GhTGoY}a$GqZ^U^QZnZ|INPr^Z%bejuk6btXQ$4Pc|mmBCFCqouNZL
|
||||
z+*6<WxThXEbVmEE$`&^!KcwMX<5*@*wCR=nknxH(Yhrn8{DYY8r>Mvd@I-#RfhTrA
|
||||
zML#uC<7*jKp)UCfqsuC_%t(wck71K;$=5J$u~{A)viWQYSLEv(xME8~Gk$Frr{wD&
|
||||
zI9;0^#@?^uf&63!9@uK4#y8Tm7iz{GPOt-V=gT=S+ekOkUbdWb=Rw%P3EhS2?={j1
|
||||
znNJh=@$S+WRQC#g>V2o{6{t=Z?|z3LG~wtMZ-y=hF8Pd>n~yV_n@0=J13_GRGrG;6
|
||||
z!}Wm09<l3XrRL0HmmUXf$+b79b@vCEkE8V|m6_M4a5NCYj5h8ElLt5Mf{yv!1>6J^
|
||||
zi6*pop5R{>=jCZ_r}{L`gMViY9x2#y;<%R48&%;r*r_TXTLH$uVB1MRu#FdSHKn7?
|
||||
z`-}(CeD>8zNbpUBfCq&DBPizKc3=Bf2#S%UBhDc1I|)nBzrdE{;{7Yp^VBj!$TQBx
|
||||
zU|S+zz^3T;B^;-eQx(qzY{qtLVzw3S*uwXXPwGdTn6<_H_N*cX4be2o$8UU5g&+nP
|
||||
ztP-!%(B(t6s4>q!uz#qm24H<k2=lrzDi~B0_J233?tcwcDq&ZkQ87A!4)}QA%f<zu
|
||||
zN+mDL=L_s0dX?>oQ*Am<Tmb4+LW?hjMXctzD}w*YO8`)&lA9OoSdl_b7mgzXK%Gi_
|
||||
z?u=G6wV#{`bvXd)RH8aJPdie9oUbr@1vvofRPqXZWjjJ~o-Oiq9zP`qK%Gi{imxNF
|
||||
z#ZV>GxMfcqM;3rOm2koVsD>M`&n>zm4?vwt*x~f|!wop&79@E9>Qn-8+GpV^zc}AJ
|
||||
zFAqSSO71+T*$FqG_g1BxlLw$qrE-qb>xHV|o^zsEc>wBE^0J)HeYgSrw<?XaJOFhn
|
||||
zHPW0;|APTQNjCuVDP;an+!=-&MJXXSYW_iHekj4JNd|K$X%6Ph52wvfXhcC<e@cl`
|
||||
zVkxC4tod=0da3dbmbI2u4)v8)uq;{FLQA%=g_7RFmf@vE<BPjPEU%+9qVl@=7aZzW
|
||||
zOoyYnVlw}dPjsfExn`|pg0EQ(zvwo+)xh{>55wDS3~zX{EoY-``m=49hBUsaw;r=*
|
||||
z+}2~(e82VBHh+(@{oX!+2n#ThdxByg0maD|^ghF~58(`dil|N~cLlAek3rFLSGLCO
|
||||
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
|
||||
@@ -65,6 +65,10 @@
|
||||
<org.chromium.components.browser_ui.settings.ChromeBasePreference
|
||||
android:fragment="org.chromium.components.browser_ui.site_settings.SingleCategorySettings"
|
||||
android:key="protected_content" />
|
||||
+ <!-- Autoplay -->
|
||||
+ <org.chromium.components.browser_ui.settings.ChromeBasePreference
|
||||
+ android:fragment="org.chromium.components.browser_ui.site_settings.SingleCategorySettings"
|
||||
+ android:key="autoplay" />
|
||||
<!-- Sound -->
|
||||
<org.chromium.components.browser_ui.settings.ChromeBasePreference
|
||||
android:fragment="org.chromium.components.browser_ui.site_settings.SingleCategorySettings"
|
||||
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
|
||||
@@ -112,6 +112,11 @@ public class ContentSettingsResources {
|
||||
R.string.automatic_downloads_permission_title,
|
||||
R.string.automatic_downloads_permission_title, ContentSettingValues.ASK,
|
||||
ContentSettingValues.BLOCK, R.string.website_settings_category_ask, 0));
|
||||
+ localMap.put(ContentSettingsType.AUTOPLAY,
|
||||
+ new ResourceItem(R.drawable.settings_autoplay, R.string.autoplay_title,
|
||||
+ R.string.autoplay_title, ContentSettingValues.ALLOW,
|
||||
+ ContentSettingValues.BLOCK,
|
||||
+ R.string.website_settings_category_autoplay_allowed, 0));
|
||||
localMap.put(ContentSettingsType.BACKGROUND_SYNC,
|
||||
new ResourceItem(R.drawable.permission_background_sync,
|
||||
R.string.background_sync_permission_title,
|
||||
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
|
||||
int resource = 0;
|
||||
if (mCategory.showSites(SiteSettingsCategory.Type.AUTOMATIC_DOWNLOADS)) {
|
||||
resource = R.string.website_settings_add_site_description_automatic_downloads;
|
||||
+ } else if (mCategory.showSites(SiteSettingsCategory.Type.AUTOPLAY)) {
|
||||
+ resource = R.string.website_settings_add_site_description_autoplay;
|
||||
} 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
|
||||
boolean exception = false;
|
||||
if (mCategory.showSites(SiteSettingsCategory.Type.SOUND)) {
|
||||
exception = true;
|
||||
+ } else if (mCategory.showSites(SiteSettingsCategory.Type.AUTOPLAY)) {
|
||||
+ exception = true;
|
||||
} else if (mCategory.showSites(SiteSettingsCategory.Type.JAVASCRIPT)) {
|
||||
exception = true;
|
||||
} else if (mCategory.showSites(SiteSettingsCategory.Type.COOKIES)) {
|
||||
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
|
||||
@@ -100,6 +100,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
return "bluetooth_scanning_permission_list";
|
||||
case ContentSettingsType.COOKIES:
|
||||
return "cookies_permission_list";
|
||||
+ case ContentSettingsType.AUTOPLAY:
|
||||
+ return "autoplay_permission_list";
|
||||
case ContentSettingsType.IDLE_DETECTION:
|
||||
return "idle_detection_permission_list";
|
||||
case ContentSettingsType.JAVASCRIPT:
|
||||
@@ -417,6 +419,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) {
|
||||
@@ -892,6 +896,24 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
}
|
||||
}
|
||||
|
||||
+ private void setUpAutoplayPreference(Preference preference) {
|
||||
+ @ContentSettingValues
|
||||
+ @Nullable
|
||||
+ Integer currentValue = mSite.getContentSetting(
|
||||
+ getSiteSettingsClient().getBrowserContextHandle(), ContentSettingsType.AUTOPLAY);
|
||||
+ // In order to always show the autoplay permission, set it up with the default value if it
|
||||
+ // doesn't have a current value.
|
||||
+ if (currentValue == null) {
|
||||
+ currentValue = WebsitePreferenceBridge.isCategoryEnabled(
|
||||
+ getSiteSettingsClient().getBrowserContextHandle(),
|
||||
+ ContentSettingsType.AUTOPLAY)
|
||||
+ ? ContentSettingValues.ALLOW
|
||||
+ : ContentSettingValues.BLOCK;
|
||||
+ }
|
||||
+ // Not possible to embargo AUTOPLAY.
|
||||
+ setUpListPreference(preference, currentValue, false /* isEmbargoed */);
|
||||
+ }
|
||||
+
|
||||
private void setUpSoundPreference(Preference preference) {
|
||||
BrowserContextHandle browserContextHandle =
|
||||
getSiteSettingsClient().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 {
|
||||
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,
|
||||
- Type.USE_STORAGE, Type.TIMEZONE_OVERRIDE})
|
||||
+ Type.USE_STORAGE, Type.TIMEZONE_OVERRIDE, Type.AUTOPLAY})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface Type {
|
||||
// All updates here must also be reflected in {@link #preferenceKey(int)
|
||||
@@ -72,10 +72,11 @@ public class SiteSettingsCategory {
|
||||
int VIRTUAL_REALITY = 21;
|
||||
int USE_STORAGE = 22;
|
||||
int TIMEZONE_OVERRIDE = 23;
|
||||
+ int AUTOPLAY = 24;
|
||||
/**
|
||||
* Number of handled categories used for calculating array sizes.
|
||||
*/
|
||||
- int NUM_ENTRIES = 24;
|
||||
+ int NUM_ENTRIES = 25;
|
||||
}
|
||||
|
||||
private final BrowserContextHandle mBrowserContextHandle;
|
||||
@@ -181,6 +182,8 @@ public class SiteSettingsCategory {
|
||||
return ContentSettingsType.NFC;
|
||||
case Type.NOTIFICATIONS:
|
||||
return ContentSettingsType.NOTIFICATIONS;
|
||||
+ case Type.AUTOPLAY:
|
||||
+ return ContentSettingsType.AUTOPLAY;
|
||||
case Type.POPUPS:
|
||||
return ContentSettingsType.POPUPS;
|
||||
case Type.PROTECTED_MEDIA:
|
||||
@@ -254,6 +257,8 @@ public class SiteSettingsCategory {
|
||||
return "nfc";
|
||||
case Type.NOTIFICATIONS:
|
||||
return "notifications";
|
||||
+ case Type.AUTOPLAY:
|
||||
+ return "autoplay";
|
||||
case Type.POPUPS:
|
||||
return "popups";
|
||||
case Type.PROTECTED_MEDIA:
|
||||
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");
|
||||
}
|
||||
+ } else if (type == ContentSettingsType.AUTOPLAY) {
|
||||
+ // It is possible to set the permission without having an existing exception,
|
||||
+ // because we always show the autoplay permission in Site Settings.
|
||||
+ if (exception == null) {
|
||||
+ exception = new ContentSettingException(
|
||||
+ ContentSettingsType.AUTOPLAY, getAddress().getHost(), value, "");
|
||||
+ 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.
|
||||
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
|
||||
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
|
||||
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
|
||||
@@ -60,6 +60,7 @@ public class WebsitePermissionsFetcher {
|
||||
case ContentSettingsType.AUTOMATIC_DOWNLOADS:
|
||||
case ContentSettingsType.BACKGROUND_SYNC:
|
||||
case ContentSettingsType.BLUETOOTH_SCANNING:
|
||||
+ case ContentSettingsType.AUTOPLAY:
|
||||
case ContentSettingsType.COOKIES:
|
||||
case ContentSettingsType.JAVASCRIPT:
|
||||
case ContentSettingsType.POPUPS:
|
||||
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
|
||||
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
|
||||
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
|
||||
@@ -62,6 +62,9 @@ public class WebsitePreferenceBridge {
|
||||
WebsitePreferenceBridgeJni.get().getNfcOrigins(browserContextHandle, list);
|
||||
} else if (type == ContentSettingsType.NOTIFICATIONS) {
|
||||
WebsitePreferenceBridgeJni.get().getNotificationOrigins(browserContextHandle, list);
|
||||
+ } else if (type == ContentSettingsType.AUTOPLAY) {
|
||||
+ WebsitePreferenceBridgeJni.get().getAutoplayOrigins(
|
||||
+ browserContextHandle, list, false);
|
||||
} else if (type == ContentSettingsType.PROTECTED_MEDIA_IDENTIFIER) {
|
||||
WebsitePreferenceBridgeJni.get().getProtectedMediaIdentifierOrigins(
|
||||
browserContextHandle, list);
|
||||
@@ -101,6 +104,13 @@ public class WebsitePreferenceBridge {
|
||||
ContentSettingsType.MEDIASTREAM_CAMERA, list, origin, embedder, isEmbargoed);
|
||||
}
|
||||
|
||||
+ @CalledByNative
|
||||
+ private static void insertAutoplayInfoIntoList(
|
||||
+ ArrayList<PermissionInfo> list, String origin, String embedder, boolean isEmbargoed) {
|
||||
+ insertInfoIntoList(
|
||||
+ ContentSettingsType.AUTOPLAY, list, origin, embedder, isEmbargoed);
|
||||
+ }
|
||||
+
|
||||
@CalledByNative
|
||||
private static void insertClipboardInfoIntoList(
|
||||
ArrayList<PermissionInfo> list, String origin, String embedder, boolean isEmbargoed) {
|
||||
@@ -447,6 +457,8 @@ public class WebsitePreferenceBridge {
|
||||
BrowserContextHandle browserContextHandle, Object list, boolean managedOnly);
|
||||
void getMidiOrigins(BrowserContextHandle browserContextHandle, Object list);
|
||||
void getNotificationOrigins(BrowserContextHandle browserContextHandle, Object list);
|
||||
+ void getAutoplayOrigins(
|
||||
+ BrowserContextHandle browserContextHandle, Object list, boolean managedOnly);
|
||||
void getNfcOrigins(BrowserContextHandle browserContextHandle, Object list);
|
||||
void getProtectedMediaIdentifierOrigins(
|
||||
BrowserContextHandle browserContextHandle, Object list);
|
||||
@@ -495,6 +507,8 @@ public class WebsitePreferenceBridge {
|
||||
String embedder, int value);
|
||||
void setNotificationSettingForOrigin(
|
||||
BrowserContextHandle browserContextHandle, String origin, int value);
|
||||
+ void setAutoplaySettingForOrigin(
|
||||
+ BrowserContextHandle browserContextHandle, String origin, int value);
|
||||
void reportNotificationRevokedForOrigin(
|
||||
BrowserContextHandle browserContextHandle, String origin, int newSettingValue);
|
||||
void setProtectedMediaIdentifierSettingForOrigin(BrowserContextHandle browserContextHandle,
|
||||
diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc
|
||||
--- a/components/browser_ui/site_settings/android/website_preference_bridge.cc
|
||||
+++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc
|
||||
@@ -579,6 +579,17 @@ static void JNI_WebsitePreferenceBridge_GetCameraOrigins(
|
||||
managedOnly);
|
||||
}
|
||||
|
||||
+static void JNI_WebsitePreferenceBridge_GetAutoplayOrigins(
|
||||
+ JNIEnv* env,
|
||||
+ const JavaParamRef<jobject>& jbrowser_context_handle,
|
||||
+ const JavaParamRef<jobject>& list,
|
||||
+ jboolean managedOnly) {
|
||||
+ GetOrigins(env, jbrowser_context_handle,
|
||||
+ ContentSettingsType::AUTOPLAY,
|
||||
+ &Java_WebsitePreferenceBridge_insertAutoplayInfoIntoList, list,
|
||||
+ managedOnly);
|
||||
+}
|
||||
+
|
||||
static void JNI_WebsitePreferenceBridge_GetMicrophoneOrigins(
|
||||
JNIEnv* env,
|
||||
const JavaParamRef<jobject>& jbrowser_context_handle,
|
||||
@@ -631,6 +642,17 @@ static void JNI_WebsitePreferenceBridge_SetCameraSettingForOrigin(
|
||||
static_cast<ContentSetting>(value));
|
||||
}
|
||||
|
||||
+static void JNI_WebsitePreferenceBridge_SetAutoplaySettingForOrigin(
|
||||
+ JNIEnv* env,
|
||||
+ const JavaParamRef<jobject>& jbrowser_context_handle,
|
||||
+ const JavaParamRef<jstring>& origin,
|
||||
+ jint value) {
|
||||
+ // Here 'nullptr' indicates that autoplay uses wildcard for embedder.
|
||||
+ SetSettingForOrigin(env, jbrowser_context_handle,
|
||||
+ ContentSettingsType::AUTOPLAY, origin, nullptr,
|
||||
+ static_cast<ContentSetting>(value));
|
||||
+}
|
||||
+
|
||||
static jboolean JNI_WebsitePreferenceBridge_IsContentSettingsPatternValid(
|
||||
JNIEnv* env,
|
||||
const JavaParamRef<jstring>& pattern) {
|
||||
@@ -1113,6 +1135,7 @@ static void JNI_WebsitePreferenceBridge_SetContentSettingEnabled(
|
||||
case ContentSettingsType::POPUPS:
|
||||
case ContentSettingsType::SENSORS:
|
||||
case ContentSettingsType::SOUND:
|
||||
+ case ContentSettingsType::AUTOPLAY:
|
||||
value = CONTENT_SETTING_ALLOW;
|
||||
break;
|
||||
default:
|
||||
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
|
||||
@@ -12,6 +12,15 @@
|
||||
<message name="IDS_ADS_PERMISSION_TITLE" desc="Title for the ads permission [CHAR-LIMIT=32]">
|
||||
Ads
|
||||
</message>
|
||||
+ <message name="IDS_AUTOPLAY_TITLE" desc='Title for the Autoplay settings screen [CHAR-LIMIT=32]'>
|
||||
+ Autoplay
|
||||
+ </message>
|
||||
+ <message name="IDS_WEBSITE_SETTINGS_ADD_SITE_DESCRIPTION_AUTOPLAY" desc="The description for the allow autoplay of muted videos for website dialog.">
|
||||
+ Allow autoplay of muted videos for a specific site.
|
||||
+ </message>
|
||||
+ <message name="IDS_WEBSITE_SETTINGS_CATEGORY_AUTOPLAY_ALLOWED" desc="Summary text explaining that sites are allowed to automatically play muted videos and that it is the recommended setting.">
|
||||
+ Allow sites to automatically play muted videos (recommended)
|
||||
+ </message>
|
||||
<message name="IDS_AR_PERMISSION_TITLE" desc="Title of the permission to use Augmented Reality [CHAR-LIMIT=32]">
|
||||
Augmented reality
|
||||
</message>
|
||||
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() {
|
||||
ContentSettingsInfo::PERSISTENT,
|
||||
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
|
||||
|
||||
- Register(ContentSettingsType::AUTOPLAY, "autoplay", CONTENT_SETTING_ALLOW,
|
||||
+ Register(ContentSettingsType::AUTOPLAY, "autoplay", CONTENT_SETTING_BLOCK,
|
||||
WebsiteSettingsInfo::UNSYNCABLE, WhitelistedSchemes(),
|
||||
ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK),
|
||||
WebsiteSettingsInfo::SINGLE_ORIGIN_ONLY_SCOPE,
|
||||
diff --git a/components/content_settings/core/browser/content_settings_utils.cc b/components/content_settings/core/browser/content_settings_utils.cc
|
||||
--- a/components/content_settings/core/browser/content_settings_utils.cc
|
||||
+++ b/components/content_settings/core/browser/content_settings_utils.cc
|
||||
@@ -143,6 +143,8 @@ void GetRendererContentSettingRules(const HostContentSettingsMap* map,
|
||||
#endif
|
||||
map->GetSettingsForOneType(ContentSettingsType::JAVASCRIPT,
|
||||
ResourceIdentifier(), &(rules->script_rules));
|
||||
+ map->GetSettingsForOneType(ContentSettingsType::AUTOPLAY,
|
||||
+ ResourceIdentifier(), &(rules->autoplay_rules));
|
||||
map->GetSettingsForOneType(ContentSettingsType::POPUPS, ResourceIdentifier(),
|
||||
&(rules->popup_redirect_rules));
|
||||
|
||||
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(
|
||||
ContentSettingsType content_type) {
|
||||
return content_type == ContentSettingsType::IMAGES ||
|
||||
content_type == ContentSettingsType::JAVASCRIPT ||
|
||||
+ content_type == ContentSettingsType::AUTOPLAY ||
|
||||
content_type == ContentSettingsType::CLIENT_HINTS ||
|
||||
content_type == ContentSettingsType::POPUPS ||
|
||||
content_type == ContentSettingsType::MIXEDSCRIPT ||
|
||||
diff --git a/components/content_settings/core/common/content_settings.h b/components/content_settings/core/common/content_settings.h
|
||||
--- a/components/content_settings/core/common/content_settings.h
|
||||
+++ b/components/content_settings/core/common/content_settings.h
|
||||
@@ -76,6 +76,7 @@ struct RendererContentSettingRules {
|
||||
~RendererContentSettingRules();
|
||||
ContentSettingsForOneType image_rules;
|
||||
ContentSettingsForOneType script_rules;
|
||||
+ ContentSettingsForOneType autoplay_rules;
|
||||
ContentSettingsForOneType popup_redirect_rules;
|
||||
ContentSettingsForOneType mixed_content_rules;
|
||||
ContentSettingsForOneType timezone_override_rules;
|
||||
diff --git a/components/content_settings/core/common/content_settings.mojom b/components/content_settings/core/common/content_settings.mojom
|
||||
--- a/components/content_settings/core/common/content_settings.mojom
|
||||
+++ b/components/content_settings/core/common/content_settings.mojom
|
||||
@@ -75,6 +75,7 @@ struct ContentSettingPatternSource {
|
||||
struct RendererContentSettingRules {
|
||||
array<ContentSettingPatternSource> image_rules;
|
||||
array<ContentSettingPatternSource> script_rules;
|
||||
+ array<ContentSettingPatternSource> autoplay_rules;
|
||||
array<ContentSettingPatternSource> popup_redirect_rules;
|
||||
array<ContentSettingPatternSource> mixed_content_rules;
|
||||
array<ContentSettingPatternSource> timezone_override_rules;
|
||||
diff --git a/components/content_settings/core/common/content_settings_mojom_traits.cc b/components/content_settings/core/common/content_settings_mojom_traits.cc
|
||||
--- a/components/content_settings/core/common/content_settings_mojom_traits.cc
|
||||
+++ b/components/content_settings/core/common/content_settings_mojom_traits.cc
|
||||
@@ -99,6 +99,7 @@ bool StructTraits<content_settings::mojom::RendererContentSettingRulesDataView,
|
||||
RendererContentSettingRules* out) {
|
||||
return data.ReadImageRules(&out->image_rules) &&
|
||||
data.ReadScriptRules(&out->script_rules) &&
|
||||
+ data.ReadAutoplayRules(&out->autoplay_rules) &&
|
||||
data.ReadPopupRedirectRules(&out->popup_redirect_rules) &&
|
||||
data.ReadMixedContentRules(&out->mixed_content_rules) &&
|
||||
data.ReadTimezoneOverrideRules(&out->timezone_override_rules) &&
|
||||
diff --git a/components/content_settings/core/common/content_settings_mojom_traits.h b/components/content_settings/core/common/content_settings_mojom_traits.h
|
||||
--- a/components/content_settings/core/common/content_settings_mojom_traits.h
|
||||
+++ b/components/content_settings/core/common/content_settings_mojom_traits.h
|
||||
@@ -135,6 +135,11 @@ struct StructTraits<
|
||||
return r.script_rules;
|
||||
}
|
||||
|
||||
+ static const std::vector<ContentSettingPatternSource>& autoplay_rules(
|
||||
+ const RendererContentSettingRules& r) {
|
||||
+ return r.autoplay_rules;
|
||||
+ }
|
||||
+
|
||||
static const std::vector<ContentSettingPatternSource>& popup_redirect_rules(
|
||||
const RendererContentSettingRules& r) {
|
||||
return r.popup_redirect_rules;
|
||||
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
|
||||
@@ -441,6 +441,17 @@ bool ContentSettingsAgentImpl::AllowRunningInsecureContent(
|
||||
return false;
|
||||
}
|
||||
|
||||
+bool ContentSettingsAgentImpl::AllowAutoplay(bool default_value) {
|
||||
+ if (!content_setting_rules_)
|
||||
+ return default_value;
|
||||
+
|
||||
+ blink::WebLocalFrame* frame = render_frame()->GetWebFrame();
|
||||
+ return GetContentSettingFromRules(
|
||||
+ content_setting_rules_->autoplay_rules, frame,
|
||||
+ url::Origin(frame->GetDocument().GetSecurityOrigin()).GetURL()) ==
|
||||
+ CONTENT_SETTING_ALLOW;
|
||||
+}
|
||||
+
|
||||
bool ContentSettingsAgentImpl::AllowPopupsAndRedirects(bool default_value) {
|
||||
if (!content_setting_rules_)
|
||||
return default_value;
|
||||
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
|
||||
void DidNotAllowScript() override;
|
||||
bool AllowRunningInsecureContent(bool allowed_per_settings,
|
||||
const blink::WebURL& url) override;
|
||||
+ bool AllowAutoplay(bool default_value) override;
|
||||
bool AllowPopupsAndRedirects(bool default_value) override;
|
||||
void PassiveInsecureContentFound(const blink::WebURL& resource_url) override;
|
||||
bool ShouldAutoupgradeMixedContent() override;
|
||||
diff --git a/components/page_info/android/page_info_controller_android.cc b/components/page_info/android/page_info_controller_android.cc
|
||||
--- a/components/page_info/android/page_info_controller_android.cc
|
||||
+++ b/components/page_info/android/page_info_controller_android.cc
|
||||
@@ -134,6 +134,7 @@ void PageInfoControllerAndroid::SetPermissionInfo(
|
||||
permissions_to_display.push_back(ContentSettingsType::ADS);
|
||||
permissions_to_display.push_back(
|
||||
ContentSettingsType::PROTECTED_MEDIA_IDENTIFIER);
|
||||
+ permissions_to_display.push_back(ContentSettingsType::AUTOPLAY);
|
||||
permissions_to_display.push_back(ContentSettingsType::SOUND);
|
||||
if (base::FeatureList::IsEnabled(features::kWebNfc))
|
||||
permissions_to_display.push_back(ContentSettingsType::NFC);
|
||||
diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc
|
||||
--- a/components/page_info/page_info.cc
|
||||
+++ b/components/page_info/page_info.cc
|
||||
@@ -100,6 +100,7 @@ ContentSettingsType kPermissionType[] = {
|
||||
ContentSettingsType::ADS,
|
||||
ContentSettingsType::BACKGROUND_SYNC,
|
||||
ContentSettingsType::SOUND,
|
||||
+ ContentSettingsType::AUTOPLAY,
|
||||
ContentSettingsType::AUTOMATIC_DOWNLOADS,
|
||||
#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
|
||||
ContentSettingsType::PROTECTED_MEDIA_IDENTIFIER,
|
||||
@@ -142,6 +143,11 @@ bool ShouldShowPermission(const PageInfo::PermissionInfo& info,
|
||||
return is_subresource_filter_activated;
|
||||
}
|
||||
|
||||
+ // Always show autoplay when it has a site-specific override
|
||||
+ if (info.type == ContentSettingsType::AUTOPLAY) {
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
if (info.type == ContentSettingsType::SOUND) {
|
||||
// The sound content setting should always show up when the tab has played
|
||||
// audio.
|
||||
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() {
|
||||
IDS_PAGE_INFO_TYPE_PROTECTED_MEDIA_IDENTIFIER},
|
||||
#endif
|
||||
{ContentSettingsType::ADS, IDS_PAGE_INFO_TYPE_ADS},
|
||||
+ {ContentSettingsType::AUTOPLAY, IDS_PAGE_INFO_TYPE_AUTOPLAY},
|
||||
{ContentSettingsType::SOUND, IDS_PAGE_INFO_TYPE_SOUND},
|
||||
{ContentSettingsType::CLIPBOARD_READ_WRITE, IDS_PAGE_INFO_TYPE_CLIPBOARD},
|
||||
{ContentSettingsType::SENSORS,
|
||||
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
|
||||
@@ -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>
|
||||
+ <message name="IDS_PAGE_INFO_TYPE_AUTOPLAY" desc="The label used for the autoplay permission controls in the Page Info popup.">
|
||||
+ Autoplay
|
||||
+ </message>
|
||||
<message name="IDS_PAGE_INFO_TYPE_CLIPBOARD" desc="The label used for the clipboard permission controls in the Page Info popup.">
|
||||
Clipboard
|
||||
</message>
|
||||
diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/third_party/blink/public/platform/web_content_settings_client.h
|
||||
--- a/third_party/blink/public/platform/web_content_settings_client.h
|
||||
+++ b/third_party/blink/public/platform/web_content_settings_client.h
|
||||
@@ -87,6 +87,9 @@ class WebContentSettingsClient {
|
||||
// interface.
|
||||
virtual bool AllowMutationEvents(bool default_value) { return default_value; }
|
||||
|
||||
+ // Controls whether autoplay is allowed for this frame.
|
||||
+ virtual bool AllowAutoplay(bool default_value) { return default_value; }
|
||||
+
|
||||
virtual bool AllowPopupsAndRedirects(bool default_value) {
|
||||
return default_value;
|
||||
}
|
||||
diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/third_party/blink/renderer/core/html/media/autoplay_policy.cc
|
||||
--- a/third_party/blink/renderer/core/html/media/autoplay_policy.cc
|
||||
+++ b/third_party/blink/renderer/core/html/media/autoplay_policy.cc
|
||||
@@ -7,6 +7,7 @@
|
||||
#include "build/build_config.h"
|
||||
#include "third_party/blink/public/mojom/autoplay/autoplay.mojom-blink.h"
|
||||
#include "third_party/blink/public/mojom/feature_policy/feature_policy.mojom-blink.h"
|
||||
+#include "third_party/blink/public/platform/web_content_settings_client.h"
|
||||
#include "third_party/blink/public/platform/web_media_player.h"
|
||||
#include "third_party/blink/public/web/web_local_frame.h"
|
||||
#include "third_party/blink/public/web/web_local_frame_client.h"
|
||||
@@ -311,7 +312,7 @@ bool AutoplayPolicy::IsGestureNeededForPlayback() const {
|
||||
|
||||
// We want to allow muted video to autoplay if the element is allowed to
|
||||
// autoplay muted.
|
||||
- return !IsEligibleForAutoplayMuted();
|
||||
+ return !(IsEligibleForAutoplayMuted() && IsAutoplayAllowedPerSettings());
|
||||
}
|
||||
|
||||
String AutoplayPolicy::GetPlayErrorMessage() const {
|
||||
@@ -380,6 +381,15 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() {
|
||||
}
|
||||
}
|
||||
|
||||
+bool AutoplayPolicy::IsAutoplayAllowedPerSettings() const {
|
||||
+ LocalFrame* frame = element_->GetDocument().GetFrame();
|
||||
+ if (!frame)
|
||||
+ return false;
|
||||
+ if (auto* settings_client = frame->GetContentSettingsClient())
|
||||
+ return settings_client->AllowAutoplay(false /* default_value */);
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
bool AutoplayPolicy::ShouldAutoplay() {
|
||||
if (!element_->GetExecutionContext() ||
|
||||
element_->GetExecutionContext()->IsSandboxed(
|
||||
diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.h b/third_party/blink/renderer/core/html/media/autoplay_policy.h
|
||||
--- a/third_party/blink/renderer/core/html/media/autoplay_policy.h
|
||||
+++ b/third_party/blink/renderer/core/html/media/autoplay_policy.h
|
||||
@@ -131,6 +131,10 @@ class CORE_EXPORT AutoplayPolicy final
|
||||
// should use, if checking to see if an action is allowed.
|
||||
bool IsLockedPendingUserGesture() const;
|
||||
|
||||
+ // Return true if and only if the settings allow autoplay of media on this
|
||||
+ // frame.
|
||||
+ bool IsAutoplayAllowedPerSettings() const;
|
||||
+
|
||||
bool IsAutoplayingMutedInternal(bool muted) const;
|
||||
bool IsOrWillBeAutoplayingMutedInternal(bool muted) const;
|
||||
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -4,23 +4,23 @@ Subject: Show site settings for cookies
|
|||
|
||||
Avoid displaying info about intrusive ads
|
||||
---
|
||||
.../site_settings/SingleWebsiteSettings.java | 58 +++++++++----------
|
||||
.../site_settings/SingleWebsiteSettings.java | 59 +++++++++----------
|
||||
.../browser_ui/site_settings/Website.java | 14 +++--
|
||||
2 files changed, 36 insertions(+), 36 deletions(-)
|
||||
2 files changed, 37 insertions(+), 36 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
|
||||
@@ -418,6 +418,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
@@ -415,6 +415,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
setUpSoundPreference(preference);
|
||||
} else if (type == ContentSettingsType.JAVASCRIPT) {
|
||||
setUpJavascriptPreference(preference);
|
||||
+ } else if (type == ContentSettingsType.COOKIES) {
|
||||
+ setUpCookiePreference(preference);
|
||||
} else {
|
||||
// ContentSettingException can not be embargoed.
|
||||
setUpListPreference(preference, mSite.getContentSettingPermission(type),
|
||||
@@ -727,18 +729,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
} else if (type == ContentSettingsType.GEOLOCATION) {
|
||||
setUpLocationPreference(preference);
|
||||
} else if (type == ContentSettingsType.NOTIFICATIONS) {
|
||||
@@ -732,18 +734,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
}
|
||||
|
||||
private void setUpAdsInformationalBanner() {
|
||||
|
@ -41,16 +41,15 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
}
|
||||
|
||||
private SiteSettingsCategory getWarningCategory() {
|
||||
@@ -899,13 +891,29 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
@ContentSettingValues
|
||||
@@ -906,14 +898,31 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
@Nullable
|
||||
Integer currentValue = mSite.getContentSettingPermission(ContentSettingsType.JAVASCRIPT);
|
||||
Integer currentValue =
|
||||
mSite.getContentSetting(browserContextHandle, ContentSettingsType.JAVASCRIPT);
|
||||
- // If Javascript is blocked by default, then always show a Javascript permission.
|
||||
- // To do this, set it to the default value (blocked).
|
||||
- if ((currentValue == null)
|
||||
- && !WebsitePreferenceBridge.isCategoryEnabled(
|
||||
- getSiteSettingsClient().getBrowserContextHandle(),
|
||||
- ContentSettingsType.JAVASCRIPT)) {
|
||||
- browserContextHandle, ContentSettingsType.JAVASCRIPT)) {
|
||||
- currentValue = ContentSettingValues.BLOCK;
|
||||
+ // Always show the Javascript permission
|
||||
+ if (currentValue == null) {
|
||||
|
@ -59,7 +58,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
+ ContentSettingsType.JAVASCRIPT)
|
||||
+ ? ContentSettingValues.ALLOW
|
||||
+ : ContentSettingValues.BLOCK;
|
||||
+ }
|
||||
}
|
||||
- // Not possible to embargo JAVASCRIPT.
|
||||
+ setUpListPreference(preference, currentValue, false);
|
||||
+ }
|
||||
+
|
||||
|
@ -67,28 +67,30 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
+ @ContentSettingValues
|
||||
+ @Nullable
|
||||
+ Integer currentValue =
|
||||
+ mSite.getContentSettingPermission(ContentSettingsType.COOKIES);
|
||||
+ // Always show the cookies permission
|
||||
+ 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 JAVASCRIPT.
|
||||
+ }
|
||||
+ // Not possible to embargo COOKIES.
|
||||
setUpListPreference(preference, currentValue, false /* isEmbargoed */);
|
||||
@@ -924,22 +932,10 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
}
|
||||
|
||||
@@ -932,22 +941,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(
|
||||
- getSiteSettingsClient().getBrowserContextHandle(), mSite.getAddress().getOrigin());
|
||||
- browserContextHandle, mSite.getAddress().getOrigin());
|
||||
@ContentSettingValues
|
||||
@Nullable
|
||||
Integer permission = mSite.getContentSettingPermission(ContentSettingsType.ADS);
|
||||
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
|
||||
|
@ -104,8 +106,8 @@ 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
|
||||
@@ -197,13 +197,17 @@ public final class Website implements Serializable {
|
||||
// ContentSettingsType.
|
||||
@@ -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,
|
||||
|
|
|
@ -16,7 +16,7 @@ higher memory/cache usage but not by the full 2-3%.
|
|||
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
|
||||
@@ -281,16 +281,12 @@ config("compiler") {
|
||||
@@ -277,16 +277,12 @@ config("compiler") {
|
||||
cflags += [ "-fstack-protector" ]
|
||||
}
|
||||
} else if ((is_posix && !is_chromeos && !is_nacl) || is_fuchsia) {
|
||||
|
|
|
@ -14,16 +14,16 @@ See also: https://github.com/bromite/bromite/wiki/TimezoneOverride
|
|||
.../res/xml/site_settings_preferences.xml | 4 +
|
||||
.../java/res/xml/website_preferences.xml | 9 +
|
||||
.../ContentSettingsResources.java | 29 +++
|
||||
.../site_settings/SingleCategorySettings.java | 73 ++++++-
|
||||
.../site_settings/SingleCategorySettings.java | 72 ++++++-
|
||||
.../site_settings/SingleWebsiteSettings.java | 20 ++
|
||||
.../site_settings/SiteSettings.java | 2 +-
|
||||
.../site_settings/SiteSettingsCategory.java | 11 +-
|
||||
.../site_settings/SiteSettingsCategory.java | 9 +-
|
||||
.../site_settings/SiteSettingsHelpClient.java | 7 +
|
||||
...imezoneOverrideSiteSettingsPreference.java | 193 ++++++++++++++++++
|
||||
.../browser_ui/site_settings/Website.java | 10 +
|
||||
.../WebsitePermissionsFetcher.java | 4 +
|
||||
.../WebsitePermissionsFetcher.java | 3 +
|
||||
.../WebsitePreferenceBridge.java | 12 ++
|
||||
.../android/website_preference_bridge.cc | 16 ++
|
||||
.../android/website_preference_bridge.cc | 15 ++
|
||||
.../strings/android/site_settings.grdp | 35 ++++
|
||||
.../browser/content_settings_pref_provider.cc | 16 ++
|
||||
.../browser/content_settings_pref_provider.h | 5 +
|
||||
|
@ -39,10 +39,10 @@ See also: https://github.com/bromite/bromite/wiki/TimezoneOverride
|
|||
.../core/common/content_settings_types.h | 3 +
|
||||
.../core/common/pref_names.cc | 3 +
|
||||
.../content_settings/core/common/pref_names.h | 2 +
|
||||
.../renderer/content_settings_agent_impl.cc | 88 ++++++++
|
||||
.../renderer/content_settings_agent_impl.cc | 89 ++++++++
|
||||
.../renderer/content_settings_agent_impl.h | 4 +
|
||||
.../WebLayerSiteSettingsClient.java | 3 +
|
||||
36 files changed, 717 insertions(+), 11 deletions(-)
|
||||
36 files changed, 714 insertions(+), 10 deletions(-)
|
||||
create mode 100755 components/browser_ui/site_settings/android/java/res/layout/time_zone_select_dialog.xml
|
||||
create mode 100755 components/browser_ui/site_settings/android/java/res/layout/timezoneoverride_site_settings_preference.xml
|
||||
create mode 100755 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/TimezoneOverrideSiteSettingsPreference.java
|
||||
|
@ -50,7 +50,7 @@ See also: https://github.com/bromite/bromite/wiki/TimezoneOverride
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsHelpClient.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsHelpClient.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsHelpClient.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsHelpClient.java
|
||||
@@ -11,6 +11,12 @@ import org.chromium.chrome.browser.help.HelpAndFeedback;
|
||||
@@ -11,6 +11,12 @@ import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.components.browser_ui.site_settings.SiteSettingsHelpClient;
|
||||
|
||||
|
@ -83,7 +83,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C
|
|||
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
|
||||
@@ -73,6 +73,7 @@ android_library("java") {
|
||||
@@ -74,6 +74,7 @@ android_library("java") {
|
||||
"java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java",
|
||||
"java/src/org/chromium/components/browser_ui/site_settings/WebsitePreference.java",
|
||||
"java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java",
|
||||
|
@ -91,7 +91,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b
|
|||
]
|
||||
annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
|
||||
resources_package = "org.chromium.components.browser_ui.site_settings"
|
||||
@@ -202,6 +203,8 @@ android_resources("java_resources") {
|
||||
@@ -204,6 +205,8 @@ android_resources("java_resources") {
|
||||
"java/res/xml/single_website_preferences.xml",
|
||||
"java/res/xml/site_settings_preferences.xml",
|
||||
"java/res/xml/website_preferences.xml",
|
||||
|
@ -139,7 +139,7 @@ new file mode 100755
|
|||
+ android:layout_marginTop="8dp"
|
||||
+ android:choiceMode="singleChoice"
|
||||
+ android:listSelector="#666666"/>
|
||||
+
|
||||
+
|
||||
+</LinearLayout>
|
||||
\ No newline at end of file
|
||||
diff --git a/components/browser_ui/site_settings/android/java/res/layout/timezoneoverride_site_settings_preference.xml b/components/browser_ui/site_settings/android/java/res/layout/timezoneoverride_site_settings_preference.xml
|
||||
|
@ -218,7 +218,7 @@ new file mode 100755
|
|||
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
|
||||
@@ -57,6 +57,8 @@
|
||||
@@ -59,6 +59,8 @@
|
||||
android:key="push_notifications_list" />
|
||||
<ListPreference
|
||||
android:key="javascript_permission_list" />
|
||||
|
@ -265,12 +265,12 @@ diff --git a/components/browser_ui/site_settings/android/java/res/xml/website_pr
|
|||
+ <org.chromium.components.browser_ui.site_settings.TimezoneOverrideSiteSettingsPreference
|
||||
+ android:key="timeoverride_state_toggle" />
|
||||
|
||||
<!-- A toggle for blocking third-party cookies, only shown for the Cookies category. -->
|
||||
<!-- A checkbox for enabling a quiet ui for notification prompts. Only shown in the Notifications category. -->
|
||||
<org.chromium.components.browser_ui.settings.ChromeBaseCheckBoxPreference
|
||||
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
|
||||
@@ -233,6 +233,11 @@ public class ContentSettingsResources {
|
||||
@@ -240,6 +240,11 @@ public class ContentSettingsResources {
|
||||
R.string.vr_permission_title, ContentSettingValues.ASK,
|
||||
ContentSettingValues.BLOCK, R.string.website_settings_category_vr_ask,
|
||||
R.string.website_settings_category_vr_blocked));
|
||||
|
@ -282,12 +282,12 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
sResourceInfo = localMap;
|
||||
}
|
||||
return sResourceInfo;
|
||||
@@ -315,6 +320,23 @@ public class ContentSettingsResources {
|
||||
@@ -322,6 +327,23 @@ public class ContentSettingsResources {
|
||||
}
|
||||
}
|
||||
|
||||
+ public static int getCategorySummary(int contentType, @ContentSettingValues int value) {
|
||||
+ if(contentType == ContentSettingsType.TIMEZONE_OVERRIDE) {
|
||||
+ if (contentType == ContentSettingsType.TIMEZONE_OVERRIDE) {
|
||||
+ switch (value) {
|
||||
+ case ContentSettingValues.ALLOW:
|
||||
+ return R.string.website_settings_category_timezone_override_allowed;
|
||||
|
@ -301,16 +301,16 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
+ }
|
||||
+ else
|
||||
+ return getCategorySummary(value);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* Returns the string resource id for a content type to show with a permission category.
|
||||
* @param enabled Whether the content type is enabled.
|
||||
@@ -418,6 +440,13 @@ public class ContentSettingsResources {
|
||||
@@ -425,6 +447,13 @@ public class ContentSettingsResources {
|
||||
return descriptionIDs;
|
||||
}
|
||||
}
|
||||
+ else if(contentType == ContentSettingsType.TIMEZONE_OVERRIDE) {
|
||||
+ else if (contentType == ContentSettingsType.TIMEZONE_OVERRIDE) {
|
||||
+ int[] descriptionIDs = {
|
||||
+ R.string.website_settings_category_timezone_override_allowed, // ALLOWED
|
||||
+ R.string.website_settings_category_timezone_override_custom, // ASK
|
||||
|
@ -323,7 +323,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
|
||||
@@ -60,6 +60,10 @@ import org.chromium.components.prefs.PrefService;
|
||||
@@ -54,6 +54,10 @@ import org.chromium.components.prefs.PrefService;
|
||||
import org.chromium.components.user_prefs.UserPrefs;
|
||||
import org.chromium.ui.widget.Toast;
|
||||
|
||||
|
@ -334,15 +334,15 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
@@ -134,6 +138,7 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
@@ -124,6 +128,7 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
public static final String BINARY_TOGGLE_KEY = "binary_toggle";
|
||||
public static final String TRI_STATE_TOGGLE_KEY = "tri_state_toggle";
|
||||
public static final String FOUR_STATE_COOKIE_TOGGLE_KEY = "four_state_cookie_toggle";
|
||||
+ public static final String TIMEOVERRIDE_STATE_TOGGLE_KEY = "timeoverride_state_toggle";
|
||||
|
||||
// Keys for category-specific preferences (toggle, link, button etc.), dynamically shown.
|
||||
public static final String THIRD_PARTY_COOKIES_TOGGLE_KEY = "third_party_cookies";
|
||||
@@ -142,6 +147,7 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
public static final String NOTIFICATIONS_VIBRATE_TOGGLE_KEY = "notifications_vibrate";
|
||||
@@ -131,6 +136,7 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
public static final String EXPLAIN_PROTECTED_MEDIA_KEY = "protected_content_learn_more";
|
||||
private static final String ADD_EXCEPTION_KEY = "add_exception";
|
||||
public static final String COOKIE_INFO_TEXT_KEY = "cookie_info_text";
|
||||
|
@ -350,19 +350,19 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
|
||||
// Keys for Allowed/Blocked preference groups/headers.
|
||||
private static final String ALLOWED_GROUP = "allowed_group";
|
||||
@@ -214,7 +220,10 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
Integer contentSettingPermission = website.site().getContentSettingPermission(
|
||||
SiteSettingsCategory.contentSettingsType(i));
|
||||
if (contentSettingPermission != null) {
|
||||
- return ContentSettingValues.BLOCK == contentSettingPermission;
|
||||
@@ -199,7 +205,10 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
Integer contentSetting = website.site().getContentSetting(
|
||||
browserContextHandle, SiteSettingsCategory.contentSettingsType(i));
|
||||
if (contentSetting != null) {
|
||||
- return ContentSettingValues.BLOCK == contentSetting;
|
||||
+ if (i == SiteSettingsCategory.Type.TIMEZONE_OVERRIDE)
|
||||
+ return ContentSettingValues.ALLOW != contentSettingPermission;
|
||||
+ return ContentSettingValues.ALLOW != contentSetting;
|
||||
+ else
|
||||
+ return ContentSettingValues.BLOCK == contentSettingPermission;
|
||||
+ return ContentSettingValues.BLOCK == contentSetting;
|
||||
}
|
||||
for (@PermissionInfo.Type int j = 0; j < PermissionInfo.Type.NUM_ENTRIES; j++) {
|
||||
if (PermissionInfo.getContentSettingsType(j)
|
||||
@@ -413,7 +422,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
}
|
||||
return false;
|
||||
@@ -359,7 +368,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
if (queryHasChanged) getInfoForOrigins();
|
||||
});
|
||||
|
||||
|
@ -372,7 +372,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
MenuItem help = menu.add(
|
||||
Menu.NONE, R.id.menu_id_site_settings_help, Menu.NONE, R.string.menu_help);
|
||||
help.setIcon(VectorDrawableCompat.create(
|
||||
@@ -424,7 +434,11 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
@@ -370,7 +380,11 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if (item.getItemId() == R.id.menu_id_site_settings_help) {
|
||||
|
@ -385,7 +385,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
getSiteSettingsClient()
|
||||
.getSiteSettingsHelpClient()
|
||||
.launchProtectedContentHelpAndFeedbackActivity(getActivity());
|
||||
@@ -551,6 +565,12 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
@@ -451,6 +465,12 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
WebsitePreferenceBridge.setContentSetting(
|
||||
browserContextHandle, mCategory.getContentSettingsType(), setting);
|
||||
getInfoForOrigins();
|
||||
|
@ -398,7 +398,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
} else if (FOUR_STATE_COOKIE_TOGGLE_KEY.equals(preference.getKey())) {
|
||||
setCookieSettingsPreference((CookieSettingsState) newValue);
|
||||
getInfoForOrigins();
|
||||
@@ -640,6 +660,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
@@ -536,6 +556,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
? R.string.website_settings_add_site_description_cookies_block
|
||||
: R.string.website_settings_add_site_description_cookies_allow;
|
||||
}
|
||||
|
@ -407,13 +407,13 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
}
|
||||
assert resource > 0;
|
||||
return getString(resource);
|
||||
@@ -680,6 +702,13 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
@@ -576,6 +598,13 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
if (mCategory.showSites(SiteSettingsCategory.Type.COOKIES) && mRequiresFourStateSetting) {
|
||||
setting = cookieSettingsExceptionShouldBlock() ? ContentSettingValues.BLOCK
|
||||
: ContentSettingValues.ALLOW;
|
||||
+ } else if(mRequiresTriStateSetting) {
|
||||
+ } else if (mRequiresTriStateSetting) {
|
||||
+ setting = WebsitePreferenceBridge.getContentSetting(browserContextHandle, mCategory.getContentSettingsType());
|
||||
+ if(setting == ContentSettingValues.ALLOW) {
|
||||
+ if (setting == ContentSettingValues.ALLOW) {
|
||||
+ setting = ContentSettingValues.BLOCK;
|
||||
+ } else {
|
||||
+ setting = ContentSettingValues.ALLOW;
|
||||
|
@ -421,7 +421,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
} else {
|
||||
setting = (WebsitePreferenceBridge.isCategoryEnabled(
|
||||
browserContextHandle, mCategory.getContentSettingsType()))
|
||||
@@ -737,6 +766,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
@@ -633,6 +662,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
&& !WebsitePreferenceBridge.isCategoryEnabled(
|
||||
browserContextHandle, ContentSettingsType.AUTOMATIC_DOWNLOADS)) {
|
||||
exception = true;
|
||||
|
@ -430,14 +430,14 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
}
|
||||
if (exception) {
|
||||
getPreferenceScreen().addPreference(new AddExceptionPreference(getStyledContext(),
|
||||
@@ -910,7 +941,14 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
@@ -806,7 +837,14 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
TriStateSiteSettingsPreference triStateToggle =
|
||||
(TriStateSiteSettingsPreference) getPreferenceScreen().findPreference(
|
||||
TRI_STATE_TOGGLE_KEY);
|
||||
- return (triStateToggle.getCheckedSetting() == ContentSettingValues.BLOCK);
|
||||
+ if (triStateToggle != null)
|
||||
+ return (triStateToggle.getCheckedSetting() == ContentSettingValues.BLOCK);
|
||||
+
|
||||
+
|
||||
+ TimezoneOverrideSiteSettingsPreference timeOverrideStatePreference =
|
||||
+ (TimezoneOverrideSiteSettingsPreference) getPreferenceScreen().findPreference(
|
||||
+ TIMEOVERRIDE_STATE_TOGGLE_KEY);
|
||||
|
@ -446,22 +446,18 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
} else if (mRequiresFourStateSetting) {
|
||||
FourStateCookieSettingsPreference fourStateCookieToggle =
|
||||
(FourStateCookieSettingsPreference) getPreferenceScreen().findPreference(
|
||||
@@ -939,6 +977,9 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
@@ -835,6 +873,9 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
(FourStateCookieSettingsPreference) screen.findPreference(
|
||||
FOUR_STATE_COOKIE_TOGGLE_KEY);
|
||||
// TODO(crbug.com/1104836): Remove the old third-party cookie blocking UI
|
||||
+ TimezoneOverrideSiteSettingsPreference timeOverrideStatePreference =
|
||||
+ (TimezoneOverrideSiteSettingsPreference) screen.findPreference(
|
||||
+ TIMEOVERRIDE_STATE_TOGGLE_KEY);
|
||||
Preference thirdPartyCookies = screen.findPreference(THIRD_PARTY_COOKIES_TOGGLE_KEY);
|
||||
Preference notificationsVibrate = screen.findPreference(NOTIFICATIONS_VIBRATE_TOGGLE_KEY);
|
||||
Preference notificationsQuietUi = screen.findPreference(NOTIFICATIONS_QUIET_UI_TOGGLE_KEY);
|
||||
@@ -956,17 +997,27 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
screen.removePreference(binaryToggle);
|
||||
screen.removePreference(triStateToggle);
|
||||
screen.removePreference(fourStateCookieToggle);
|
||||
+ screen.removePreference(timeOverrideStatePreference);
|
||||
} else if (mRequiresTriStateSetting) {
|
||||
Preference explainProtectedMediaKey = screen.findPreference(EXPLAIN_PROTECTED_MEDIA_KEY);
|
||||
@@ -846,20 +887,32 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
if (mRequiresTriStateSetting) {
|
||||
screen.removePreference(binaryToggle);
|
||||
screen.removePreference(fourStateCookieToggle);
|
||||
- configureTriStateToggle(triStateToggle, contentType);
|
||||
|
@ -485,7 +481,6 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
configureBinaryToggle(binaryToggle, contentType);
|
||||
}
|
||||
|
||||
@@ -977,6 +1028,9 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
if (!mCategory.showSites(SiteSettingsCategory.Type.COOKIES)) {
|
||||
screen.removePreference(screen.findPreference(COOKIE_INFO_TEXT_KEY));
|
||||
}
|
||||
|
@ -493,9 +488,9 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
+ screen.removePreference(screen.findPreference(TIMEOVERRIDE_INFO_TEXT));
|
||||
+ }
|
||||
|
||||
if (hideSecondaryToggles) {
|
||||
screen.removePreference(thirdPartyCookies);
|
||||
@@ -1100,6 +1154,15 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
if (permissionBlockedByOs) {
|
||||
maybeShowOsWarning(screen);
|
||||
@@ -974,6 +1027,15 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
|
||||
triStateToggle.initialize(setting, descriptionIds);
|
||||
}
|
||||
|
||||
|
@ -514,16 +509,16 @@ 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
|
||||
@@ -94,6 +94,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
@@ -108,6 +108,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
return "popup_permission_list";
|
||||
case ContentSettingsType.SOUND:
|
||||
return "sound_permission_list";
|
||||
+ case ContentSettingsType.TIMEZONE_OVERRIDE:
|
||||
+ return "timezone_override_permission_list";
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
@@ -809,6 +811,24 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
case ContentSettingsType.AR:
|
||||
return "ar_permission_list";
|
||||
case ContentSettingsType.MEDIASTREAM_CAMERA:
|
||||
@@ -811,6 +813,24 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
|
||||
setUpPreferenceCommon(preference);
|
||||
ListPreference listPreference = (ListPreference) preference;
|
||||
|
||||
|
@ -543,7 +538,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
+ int indexSelected = (value == ContentSettingValues.ASK ? 1 : (value == ContentSettingValues.ALLOW ? 0 : 2));
|
||||
+ listPreference.setValueIndex(indexSelected);
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
CharSequence[] keys = new String[2];
|
||||
CharSequence[] descriptions = new String[2];
|
||||
|
@ -551,7 +546,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/SiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java
|
||||
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java
|
||||
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java
|
||||
@@ -111,7 +111,7 @@ public class SiteSettings
|
||||
@@ -113,7 +113,7 @@ public class SiteSettings
|
||||
} else if (Type.SOUND == prefCategory && !checked) {
|
||||
p.setSummary(ContentSettingsResources.getSoundBlockedListSummary());
|
||||
} else if (requiresTriStateSetting) {
|
||||
|
@ -563,31 +558,29 @@ 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/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
|
||||
@@ -42,7 +42,7 @@ public class SiteSettingsCategory {
|
||||
Type.BACKGROUND_SYNC, Type.BLUETOOTH, Type.BLUETOOTH_SCANNING, Type.CAMERA,
|
||||
Type.CLIPBOARD, Type.COOKIES, 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, Type.USE_STORAGE})
|
||||
+ Type.SOUND, Type.USB, Type.VIRTUAL_REALITY, Type.USE_STORAGE, Type.TIMEZONE_OVERRIDE})
|
||||
@@ -43,7 +43,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,
|
||||
- Type.USE_STORAGE})
|
||||
+ Type.USE_STORAGE, Type.TIMEZONE_OVERRIDE})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface Type {
|
||||
// Values used to address array index - should be enumerated from 0 and can't have gaps.
|
||||
@@ -69,11 +69,12 @@ public class SiteSettingsCategory {
|
||||
int USB = 18;
|
||||
int BLUETOOTH = 19;
|
||||
int VIRTUAL_REALITY = 20;
|
||||
- int USE_STORAGE = 21; // Always last as it should appear in the UI at the bottom.
|
||||
+ int USE_STORAGE = 21;
|
||||
+ int TIMEZONE_OVERRIDE = 22; // Always last as it should appear in the UI at the bottom.
|
||||
// All updates here must also be reflected in {@link #preferenceKey(int)
|
||||
@@ -71,10 +71,11 @@ public class SiteSettingsCategory {
|
||||
int BLUETOOTH = 20;
|
||||
int VIRTUAL_REALITY = 21;
|
||||
int USE_STORAGE = 22;
|
||||
+ int TIMEZONE_OVERRIDE = 23;
|
||||
/**
|
||||
* Number of handled categories used for calculating array sizes.
|
||||
*/
|
||||
- int NUM_ENTRIES = 22;
|
||||
+ int NUM_ENTRIES = 23;
|
||||
- int NUM_ENTRIES = 23;
|
||||
+ int NUM_ENTRIES = 24;
|
||||
}
|
||||
|
||||
private final BrowserContextHandle mBrowserContextHandle;
|
||||
@@ -189,6 +190,8 @@ public class SiteSettingsCategory {
|
||||
@@ -192,6 +193,8 @@ public class SiteSettingsCategory {
|
||||
return ContentSettingsType.USB_GUARD;
|
||||
case Type.VIRTUAL_REALITY:
|
||||
return ContentSettingsType.VR;
|
||||
|
@ -596,7 +589,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
// case Type.ALL_SITES
|
||||
// case Type.USE_STORAGE
|
||||
default:
|
||||
@@ -260,6 +263,8 @@ public class SiteSettingsCategory {
|
||||
@@ -265,6 +268,8 @@ public class SiteSettingsCategory {
|
||||
return "use_storage";
|
||||
case Type.VIRTUAL_REALITY:
|
||||
return "virtual_reality";
|
||||
|
@ -609,7 +602,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsHelpClient.java
|
||||
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsHelpClient.java
|
||||
@@ -28,4 +28,11 @@ public interface SiteSettingsHelpClient {
|
||||
* @see org.chromium.chrome.browser.help.HelpAndFeedback#show
|
||||
* @see org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncher#show
|
||||
*/
|
||||
void launchProtectedContentHelpAndFeedbackActivity(Activity currentActivity);
|
||||
+
|
||||
|
@ -776,9 +769,9 @@ new file mode 100755
|
|||
+ public void run()
|
||||
+ {
|
||||
+ for (int j = 0; j < timezones.size(); j++) {
|
||||
+ if(currentSelected.equals(timezones.get(j))) {
|
||||
+ if (currentSelected.equals(timezones.get(j))) {
|
||||
+ listView.requestFocusFromTouch();
|
||||
+ listView.setSelection(j);
|
||||
+ listView.setSelection(j);
|
||||
+ adapter.notifyDataSetChanged();
|
||||
+ break;
|
||||
+ }
|
||||
|
@ -821,7 +814,7 @@ new file mode 100755
|
|||
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
|
||||
@@ -239,6 +239,16 @@ public final class Website implements Serializable {
|
||||
@@ -229,6 +229,16 @@ public final class Website implements Serializable {
|
||||
} else {
|
||||
RecordUserAction.record("SoundContentSetting.UnmuteBy.SiteSettings");
|
||||
}
|
||||
|
@ -841,28 +834,27 @@ 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/WebsitePermissionsFetcher.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
|
||||
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
|
||||
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
|
||||
@@ -163,6 +163,8 @@ public class WebsitePermissionsFetcher {
|
||||
// AR permission is per-origin and per-embedder.
|
||||
queue.add(new PermissionInfoFetcher(PermissionInfo.Type.AUGMENTED_REALITY));
|
||||
|
||||
@@ -64,6 +64,7 @@ public class WebsitePermissionsFetcher {
|
||||
case ContentSettingsType.JAVASCRIPT:
|
||||
case ContentSettingsType.POPUPS:
|
||||
case ContentSettingsType.SOUND:
|
||||
+ case ContentSettingsType.TIMEZONE_OVERRIDE:
|
||||
return WebsitePermissionsType.CONTENT_SETTING_EXCEPTION;
|
||||
case ContentSettingsType.AR:
|
||||
case ContentSettingsType.CLIPBOARD_READ_WRITE:
|
||||
@@ -144,6 +145,8 @@ public class WebsitePermissionsFetcher {
|
||||
for (@ContentSettingsType int type = 0; type < ContentSettingsType.NUM_TYPES; type++) {
|
||||
addFetcherForContentSettingsType(queue, type);
|
||||
}
|
||||
+ queue.add(new ExceptionInfoFetcher(ContentSettingsType.TIMEZONE_OVERRIDE));
|
||||
+
|
||||
queue.add(new PermissionsAvailableCallbackRunner(callback));
|
||||
|
||||
queue.next();
|
||||
@@ -257,6 +259,8 @@ public class WebsitePermissionsFetcher {
|
||||
} else if (category.showSites(SiteSettingsCategory.Type.AUGMENTED_REALITY)) {
|
||||
// AUGMENTED_REALITY permission is per-origin and per-embedder.
|
||||
queue.add(new PermissionInfoFetcher(PermissionInfo.Type.AUGMENTED_REALITY));
|
||||
+ } else if (category.showSites(SiteSettingsCategory.Type.TIMEZONE_OVERRIDE)) {
|
||||
+ queue.add(new ExceptionInfoFetcher(ContentSettingsType.TIMEZONE_OVERRIDE));
|
||||
}
|
||||
queue.add(new PermissionsAvailableCallbackRunner(callback));
|
||||
queue.next();
|
||||
}
|
||||
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
|
||||
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
|
||||
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
|
||||
@@ -330,6 +330,8 @@ public class WebsitePreferenceBridge {
|
||||
@@ -323,6 +323,8 @@ public class WebsitePreferenceBridge {
|
||||
switch (contentSettingsType) {
|
||||
case ContentSettingsType.PROTECTED_MEDIA_IDENTIFIER:
|
||||
return true;
|
||||
|
@ -871,14 +863,14 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
default:
|
||||
return false;
|
||||
}
|
||||
@@ -594,6 +596,14 @@ public class WebsitePreferenceBridge {
|
||||
@@ -424,6 +426,14 @@ public class WebsitePreferenceBridge {
|
||||
contentSettingType, primaryPattern, secondaryPattern, setting);
|
||||
}
|
||||
|
||||
+ public static String getCustomTimezone(BrowserContextHandle browserContextHandle) {
|
||||
+ return WebsitePreferenceBridgeJni.get().getCustomTimezone(browserContextHandle);
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ public static void setCustomTimezone(BrowserContextHandle browserContextHandle, String timezone) {
|
||||
+ WebsitePreferenceBridgeJni.get().setCustomTimezone(browserContextHandle, timezone);
|
||||
+ }
|
||||
|
@ -886,10 +878,10 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
@NativeMethods
|
||||
public interface Natives {
|
||||
void getArOrigins(BrowserContextHandle browserContextHandle, Object list);
|
||||
@@ -728,5 +738,7 @@ public class WebsitePreferenceBridge {
|
||||
void setSensorsEnabled(BrowserContextHandle browserContextHandle, boolean enabled);
|
||||
void setSoundEnabled(BrowserContextHandle browserContextHandle, boolean enabled);
|
||||
void setVrEnabled(BrowserContextHandle browserContextHandle, boolean enabled);
|
||||
@@ -533,5 +543,7 @@ public class WebsitePreferenceBridge {
|
||||
boolean isContentSettingManagedByCustodian(
|
||||
BrowserContextHandle browserContextHandle, int contentSettingType);
|
||||
boolean getLocationAllowedByPolicy(BrowserContextHandle browserContextHandle);
|
||||
+ String getCustomTimezone(BrowserContextHandle browserContextHandle);
|
||||
+ void setCustomTimezone(BrowserContextHandle browserContextHandle, String timezone);
|
||||
}
|
||||
|
@ -897,15 +889,14 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||
diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc
|
||||
--- a/components/browser_ui/site_settings/android/website_preference_bridge.cc
|
||||
+++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc
|
||||
@@ -1427,3 +1427,19 @@ static jboolean JNI_WebsitePreferenceBridge_GetMicManagedByCustodian(
|
||||
return IsContentSettingManagedByCustodian(
|
||||
jbrowser_context_handle, ContentSettingsType::MEDIASTREAM_MIC);
|
||||
@@ -1214,3 +1214,18 @@ static jboolean JNI_WebsitePreferenceBridge_GetLocationAllowedByPolicy(
|
||||
nullptr) == CONTENT_SETTING_ALLOW;
|
||||
}
|
||||
+
|
||||
|
||||
+static void JNI_WebsitePreferenceBridge_SetCustomTimezone(
|
||||
+ JNIEnv* env,
|
||||
+ const JavaParamRef<jobject>& jbrowser_context_handle,
|
||||
+ const JavaParamRef<jstring>& timezone) {
|
||||
+ const JavaParamRef<jstring>& timezone) {
|
||||
+ std::string new_timezone = ConvertJavaStringToUTF8(env, timezone);
|
||||
+ GetHostContentSettingsMap(jbrowser_context_handle)->SetTimezoneOverrideValue(new_timezone);
|
||||
+}
|
||||
|
@ -920,7 +911,7 @@ diff --git a/components/browser_ui/site_settings/android/website_preference_brid
|
|||
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
|
||||
@@ -66,6 +66,9 @@
|
||||
@@ -69,6 +69,9 @@
|
||||
<message name="IDS_VR_PERMISSION_TITLE" desc="Title of the permission to use Virtual Reality [CHAR-LIMIT=32]">
|
||||
Virtual reality
|
||||
</message>
|
||||
|
@ -930,7 +921,7 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen
|
|||
|
||||
<!-- Site settings global toggles -->
|
||||
|
||||
@@ -468,6 +471,38 @@
|
||||
@@ -475,6 +478,38 @@
|
||||
Block sites from playing protected content
|
||||
</message>
|
||||
|
||||
|
@ -985,7 +976,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
|
|||
num_exceptions);
|
||||
}
|
||||
|
||||
+ custom_timezone_ =
|
||||
+ custom_timezone_ =
|
||||
+ prefs_->GetString(
|
||||
+ prefs::kContentSettingsCustomTimezone);
|
||||
+
|
||||
|
@ -1032,7 +1023,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
|
|||
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
|
||||
@@ -611,6 +611,18 @@ void ContentSettingsRegistry::Init() {
|
||||
@@ -621,6 +621,18 @@ void ContentSettingsRegistry::Init() {
|
||||
ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE,
|
||||
ContentSettingsInfo::PERSISTENT,
|
||||
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
|
||||
|
@ -1071,7 +1062,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc
|
|||
diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc
|
||||
--- a/components/content_settings/core/browser/host_content_settings_map.cc
|
||||
+++ b/components/content_settings/core/browser/host_content_settings_map.cc
|
||||
@@ -663,6 +663,14 @@ void HostContentSettingsMap::SetClockForTesting(base::Clock* clock) {
|
||||
@@ -656,6 +656,14 @@ void HostContentSettingsMap::SetClockForTesting(base::Clock* clock) {
|
||||
provider->SetClockForTesting(clock);
|
||||
}
|
||||
|
||||
|
@ -1089,8 +1080,8 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
|
|||
diff --git a/components/content_settings/core/browser/host_content_settings_map.h b/components/content_settings/core/browser/host_content_settings_map.h
|
||||
--- a/components/content_settings/core/browser/host_content_settings_map.h
|
||||
+++ b/components/content_settings/core/browser/host_content_settings_map.h
|
||||
@@ -336,6 +336,9 @@ class HostContentSettingsMap : public content_settings::Observer,
|
||||
return pref_provider_;
|
||||
@@ -345,6 +345,9 @@ class HostContentSettingsMap : public content_settings::Observer,
|
||||
allow_invalid_secondary_pattern_for_testing_ = allow;
|
||||
}
|
||||
|
||||
+ void GetTimezoneOverrideValue(std::string& timezone) const;
|
||||
|
@ -1102,15 +1093,15 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
|
|||
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
|
||||
@@ -92,6 +92,7 @@ constexpr HistogramValue kHistogramValue[] = {
|
||||
{ContentSettingsType::WINDOW_PLACEMENT, 69},
|
||||
@@ -93,6 +93,7 @@ constexpr HistogramValue kHistogramValue[] = {
|
||||
{ContentSettingsType::INSECURE_PRIVATE_NETWORK, 70},
|
||||
{ContentSettingsType::FONT_ACCESS, 71},
|
||||
+ {ContentSettingsType::TIMEZONE_OVERRIDE, 72},
|
||||
{ContentSettingsType::PERMISSION_AUTOREVOCATION_DATA, 72},
|
||||
+ //{ContentSettingsType::TIMEZONE_OVERRIDE, 73}, should be here
|
||||
};
|
||||
|
||||
} // namespace
|
||||
@@ -178,7 +179,8 @@ bool RendererContentSettingRules::IsRendererContentSetting(
|
||||
@@ -179,7 +180,8 @@ bool RendererContentSettingRules::IsRendererContentSetting(
|
||||
content_type == ContentSettingsType::JAVASCRIPT ||
|
||||
content_type == ContentSettingsType::CLIENT_HINTS ||
|
||||
content_type == ContentSettingsType::POPUPS ||
|
||||
|
@ -1151,7 +1142,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai
|
|||
data.ReadPopupRedirectRules(&out->popup_redirect_rules) &&
|
||||
- data.ReadMixedContentRules(&out->mixed_content_rules);
|
||||
+ data.ReadMixedContentRules(&out->mixed_content_rules) &&
|
||||
+ data.ReadTimezoneOverrideRules(&out->timezone_override_rules) &&
|
||||
+ data.ReadTimezoneOverrideRules(&out->timezone_override_rules) &&
|
||||
+ data.ReadTimezoneOverrideValue(&out->timezone_override_value);
|
||||
}
|
||||
|
||||
|
@ -1159,7 +1150,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai
|
|||
diff --git a/components/content_settings/core/common/content_settings_mojom_traits.h b/components/content_settings/core/common/content_settings_mojom_traits.h
|
||||
--- a/components/content_settings/core/common/content_settings_mojom_traits.h
|
||||
+++ b/components/content_settings/core/common/content_settings_mojom_traits.h
|
||||
@@ -144,6 +144,16 @@ struct StructTraits<
|
||||
@@ -145,6 +145,16 @@ struct StructTraits<
|
||||
return r.mixed_content_rules;
|
||||
}
|
||||
|
||||
|
@ -1186,13 +1177,13 @@ diff --git a/components/content_settings/core/common/content_settings_types.h b/
|
|||
+ // Content setting for timezone customization functionality.
|
||||
+ TIMEZONE_OVERRIDE,
|
||||
+
|
||||
NUM_TYPES,
|
||||
};
|
||||
|
||||
// Stores per-origin state for permission auto-revocation (for all permission
|
||||
// types).
|
||||
PERMISSION_AUTOREVOCATION_DATA,
|
||||
diff --git a/components/content_settings/core/common/pref_names.cc b/components/content_settings/core/common/pref_names.cc
|
||||
--- a/components/content_settings/core/common/pref_names.cc
|
||||
+++ b/components/content_settings/core/common/pref_names.cc
|
||||
@@ -131,4 +131,7 @@ const char kEnableQuietNotificationPermissionUi[] =
|
||||
@@ -127,4 +127,7 @@ const char kEnableQuietNotificationPermissionUi[] =
|
||||
const char kNotificationsVibrateEnabled[] = "notifications.vibrate_enabled";
|
||||
#endif
|
||||
|
||||
|
@ -1203,7 +1194,7 @@ diff --git a/components/content_settings/core/common/pref_names.cc b/components/
|
|||
diff --git a/components/content_settings/core/common/pref_names.h b/components/content_settings/core/common/pref_names.h
|
||||
--- a/components/content_settings/core/common/pref_names.h
|
||||
+++ b/components/content_settings/core/common/pref_names.h
|
||||
@@ -76,6 +76,8 @@ extern const char kEnableQuietNotificationPermissionUi[];
|
||||
@@ -73,6 +73,8 @@ extern const char kEnableQuietNotificationPermissionUi[];
|
||||
extern const char kNotificationsVibrateEnabled[];
|
||||
#endif
|
||||
|
||||
|
@ -1215,15 +1206,18 @@ diff --git a/components/content_settings/core/common/pref_names.h b/components/c
|
|||
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
|
||||
@@ -9,6 +9,7 @@
|
||||
@@ -9,8 +9,10 @@
|
||||
|
||||
#include "base/bind.h"
|
||||
#include "base/feature_list.h"
|
||||
+#include "base/logging.h"
|
||||
#include "base/metrics/histogram_macros.h"
|
||||
#include "base/strings/string_number_conversions.h"
|
||||
+#include "base/rand_util.h"
|
||||
#include "components/content_settings/core/common/content_settings.h"
|
||||
@@ -32,6 +33,10 @@
|
||||
#include "components/content_settings/core/common/content_settings.mojom.h"
|
||||
#include "components/content_settings/core/common/content_settings_pattern.h"
|
||||
@@ -32,6 +34,10 @@
|
||||
#include "third_party/blink/public/web/web_local_frame.h"
|
||||
#include "third_party/blink/public/web/web_local_frame_client.h"
|
||||
#include "third_party/blink/public/web/web_view.h"
|
||||
|
@ -1234,7 +1228,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc
|
|||
#include "url/gurl.h"
|
||||
#include "url/origin.h"
|
||||
#include "url/url_constants.h"
|
||||
@@ -45,6 +50,8 @@ using blink::WebURL;
|
||||
@@ -45,6 +51,8 @@ using blink::WebURL;
|
||||
using blink::WebView;
|
||||
using content::DocumentState;
|
||||
|
||||
|
@ -1243,7 +1237,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc
|
|||
namespace content_settings {
|
||||
namespace {
|
||||
|
||||
@@ -341,6 +348,10 @@ bool ContentSettingsAgentImpl::AllowScript(bool enabled_per_settings) {
|
||||
@@ -377,6 +385,10 @@ bool ContentSettingsAgentImpl::AllowScript(bool enabled_per_settings) {
|
||||
allow = allow || IsWhitelistedForContentSettings();
|
||||
|
||||
cached_script_permissions_[frame] = allow;
|
||||
|
@ -1254,8 +1248,8 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc
|
|||
return allow;
|
||||
}
|
||||
|
||||
@@ -508,4 +519,81 @@ bool ContentSettingsAgentImpl::AllowStorageAccess(
|
||||
return result;
|
||||
@@ -509,4 +521,81 @@ bool ContentSettingsAgentImpl::IsWhitelistedForContentSettings() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
+bool ContentSettingsAgentImpl::UpdateOverrides() {
|
||||
|
@ -1296,7 +1290,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc
|
|||
+ } else if (setting == CONTENT_SETTING_BLOCK) {
|
||||
+ // timezone random
|
||||
+ UErrorCode ec = U_ZERO_ERROR;
|
||||
+ int32_t rawOffset = ((rand() % 24) - 12) * 3600 * 1000;
|
||||
+ int32_t rawOffset = base::RandInt(-12, 11) * 3600 * 1000;
|
||||
+ icu::StringEnumeration* timezones = icu::TimeZone::createEnumeration(
|
||||
+ rawOffset); // Obtain timezones by GMT timezone offset
|
||||
+ if (timezones) {
|
||||
|
@ -1339,7 +1333,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
|
||||
@@ -186,6 +186,10 @@ class ContentSettingsAgentImpl
|
||||
@@ -180,6 +180,10 @@ class ContentSettingsAgentImpl
|
||||
|
||||
mojo::AssociatedReceiverSet<mojom::ContentSettingsAgent> receivers_;
|
||||
|
||||
|
@ -1353,7 +1347,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.h
|
|||
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/WebLayerSiteSettingsClient.java b/weblayer/browser/java/org/chromium/weblayer_private/WebLayerSiteSettingsClient.java
|
||||
--- a/weblayer/browser/java/org/chromium/weblayer_private/WebLayerSiteSettingsClient.java
|
||||
+++ b/weblayer/browser/java/org/chromium/weblayer_private/WebLayerSiteSettingsClient.java
|
||||
@@ -140,6 +140,9 @@ public class WebLayerSiteSettingsClient implements SiteSettingsClient, ManagedPr
|
||||
@@ -147,6 +147,9 @@ public class WebLayerSiteSettingsClient implements SiteSettingsClient, ManagedPr
|
||||
@Override
|
||||
public void launchProtectedContentHelpAndFeedbackActivity(Activity currentActivity) {}
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue