Merge branch 'master' into enable-user-scripts

This commit is contained in:
Carmelo Messina 2021-03-20 10:45:20 +01:00
commit c5fbf8caff
162 changed files with 42329 additions and 21685 deletions

View file

@ -9,6 +9,8 @@ Have you read the README? https://github.com/bromite/bromite/blob/master/README.
Have you searched the issue tracker? https://github.com/bromite/bromite/issues
Are you sure this is not a Chromium bug? You have to test with Chromium before submitting a bug.
Are you using the latest version of Bromite?
If instead of a bug report you want to ask a question then please use the GitHub Discussions: https://github.com/bromite/bromite/discussions
-->
### Bromite version
@ -34,6 +36,9 @@ Please pick the same version of Chromium as Bromite from here: https://github.co
If the bug is reproducible then it might be a configuration issue or an upstream bug. Upstream bugs can be reported on the [Chromium issue tracker](https://bugs.chromium.org/p/chromium/issues/list) and do not forget to read [Chromium project bug reporting guidelines](https://www.chromium.org/for-testers/bug-reporting-guidelines) first.
-->
### Allow ads for the site; is the bug caused by the adblocker?
Yes/No
### Is the bug a crash?
<!--
@ -52,6 +57,8 @@ Steps to reproduce the bug:
3. Scroll down to '...'
4. See error
Do not write "any website", specify which URLs can be used to reproduce the issue.
### Expected behavior
<!-- A clear and concise description of what you expected to happen. -->

View file

@ -9,6 +9,9 @@ Have you searched the issue tracker? https://github.com/bromite/bromite/issues
Have you read the F.A.Q.s? https://github.com/bromite/bromite/blob/master/FAQ.md
Have you read the README? https://github.com/bromite/bromite/blob/master/README.md
Have you read the Wiki? https://github.com/bromite/bromite/wiki
If instead of a feature request you want to ask a question then please use the GitHub Discussions: https://github.com/bromite/bromite/discussions
-->
<!-- Do not submit feature requests for extensions support or adding a search engine. -->

View file

@ -1,3 +1,65 @@
# 89.0.4389.92
* updated zh_CN translations (thanks to @zhmars, https://github.com/bromite/bromite/pull/1000)
* introduce Alt+D hotkey to focus address bar (fixes https://github.com/bromite/bromite/issues/979)
* use 64-bit ABI for webview processes (fixes https://github.com/bromite/bromite/issues/997)
* use dedicated folder for bookmark all tabs
* fix Javascript and cookies permissions missing (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/990)
* fix missing enable save data header flag (fixes https://github.com/bromite/bromite/issues/989)
* fix menu items not properly displayed with tab overflow menu regroup (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/963)
# 89.0.4389.78
* make all favicon requests on-demand
* restored older icon for view source menu item
* prevent adblock filters update check on app start (fixes https://github.com/bromite/bromite/issues/967)
* removed UI for adblock filters (fixes https://github.com/bromite/bromite/issues/941)
* dropped patch for swapped favicons bug
* dropped patch to enable reduced-referrer-granularity by default (already present upstream)
* dropped password reuse detection patch
* dropped UA customization patch
* enabled PartitionExpectCTStateByNetworkIsolationKey and PartitionDomainReliabilityByNetworkIsolationKey (fixes https://github.com/bromite/bromite/issues/985)
# 88.0.4324.207
* add flag for save-data-header
* add option to force tablet UI
* fix bug with adblock filters not being downloaded correctly (fixes https://github.com/bromite/bromite/issues/960)
* move up bookmark all tabs menu item (fixes https://github.com/bromite/bromite/issues/943)
* fix icons for exit and view source menu items
# 88.0.4324.187
* fix exit menu item not working in tablet mode
* add menu item to bookmark all tabs (fixes https://github.com/bromite/bromite/issues/570)
* enable app overflow menu icons by default
* UI for adblock filters (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/811)
* dropped patch to not permit user-installed certificates
* ignore enterprise policies for secure DNS (fixes https://github.com/bromite/bromite/issues/832)
# 88.0.4324.185
* fix favicons fallback search (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/788)
* fix potential DIAL crash when network state changes (thanks to @Ahrotahn)
* fix crash when opening links in incognito-only mode (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/899)
* disallow empty custom user agent (thanks to @uazo)
# 88.0.4324.149
* fix proxy PAC URL option not working (fixes https://github.com/bromite/bromite/issues/908)
* store proxy configuration in LocalState instead of Profile (thanks to @uazo)
* fix toggle for reversing the meaning of bypass rules (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/884)
* do not permit user-installed certificates
# 88.0.4324.141
* fix bookmarks not opening (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/891)
* fix proxy page not loading (fixes https://github.com/bromite/bromite/issues/890)
# 88.0.4324.95
* fix broken recent tabs behaviour (fixes https://github.com/bromite/bromite/issues/886)
* re-introduce flags for number of raster threads (fixes https://github.com/bromite/bromite/issues/875)
* avoid initializing histogram data for the WebView (https://github.com/bromite/bromite/issues/873)
* dropped patch for manifest changes for Q/R (already present upstream)
* fix check for HTML extension in bookmark import dialog
# 87.0.4280.131
* enable all network isolation features (fixes https://github.com/bromite/bromite/issues/836)
* disable unified autoplay feature (fixes https://github.com/bromite/bromite/issues/804)
# 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)
@ -145,6 +207,7 @@
* drop patch for DoH minimum timeout (upstream also implemented it)
* dropped patch for removal of support of CCT dynamic modules (upstream also removed it)
* removed upstream patch for SD card not found issue (upstream merged it)
* enable reporting because of COEP
# 81.0.4044.127
* fix always-incognito crashes (https://github.com/bromite/bromite/issues/135 and https://github.com/bromite/bromite/pull/529)

View file

@ -8,7 +8,7 @@ Bromite is a [Chromium](https://www.chromium.org/Home) fork with support for ad
Bromite is only available for Android Lollipop (v5.0, API level 21) and above.
<img src="https://www.bromite.org/bromite_bromite_gh_downloads.svg" alt="downloads on Github" title="downloads on Github" />
<img src="https://fdroid.bromite.org/fdroid/bromite_bromite_gh_downloads.svg" alt="Downloads on Github" title="Downloads on Github" />
For the Frequently Asked Questions see [F.A.Q.](./FAQ.md).
@ -57,6 +57,7 @@ ETH donations address: `0xf47ff39223d828f99fec5ab53bd068c5c0522042`
## Features not related to privacy
* import/export bookmarks
* bookmark all tabs from tabs regroup menu
* flag to allow screenshots of incognito tabs
* allow playing videos in background tabs and disable pause on switching tabs
* all codecs included (proprietary, open H.264 etc.)
@ -87,6 +88,7 @@ Flags which have been retired from upstream Chromium but are still available in
* `#darken-websites-checkbox-in-themes-setting`
* `#simplified-ntp`
* `#enable-text-fragment-anchor`
* `#num-raster-threads`
New flags:
@ -149,6 +151,14 @@ See upstream documentation: https://github.com/chromium/chromium/blob/master/com
Bromite uses an unindexed filter file, which is periodically published at https://github.com/bromite/filters
# Contributing
Please submit issues following the issue template; beware that GitHub does not display the templates from mobile.
Patches are welcome and accepted if they match the project goals.
For any usage or development discussion please use GitHub Discussions: https://github.com/bromite/bromite/discussions
# Credits
* [Chromium project](https://www.chromium.org/Home) and developers

View file

@ -21,6 +21,7 @@ enable_platform_hevc=true
enable_remoting=false
enable_reporting=true
enable_vr=false
exclude_unwind_tables=false
ffmpeg_branding="Chrome"
fieldtrial_testing_like_official_build=true
icu_use_data_file=true
@ -34,7 +35,8 @@ symbol_level=1
target_os="android"
use_debug_fission=true
use_errorprone_java_compiler=false
use_gnome_keyring=false
use_official_google_api_keys=false
use_openh264=true
use_rtti=false
use_sysroot=false
webview_includes_weblayer=false

View file

@ -1 +1 @@
87.0.4280.106
89.0.4389.92

View file

@ -1,5 +1,4 @@
Disable-third-party-cookies-by-default.patch
Password-service-build-fixes.patch
Restore-classic-new-tab-page.patch
Always-use-new-tab-page-for-default-home-page.patch
Always-allow-partner-customisation.patch
@ -56,7 +55,6 @@ Disable-metrics-on-all-I-O-threads.patch
Always-respect-async-dns-flag-regardless-of-SDK-version.patch
Add-flag-to-configure-maximum-connections-per-host.patch
Add-bookmark-import-export-actions.patch
Disable-promos-displayed-in-bookmarks-manager.patch
Add-an-always-incognito-mode.patch
Add-custom-tab-intents-privacy-option.patch
Add-option-to-not-persist-tabs-across-sessions.patch
@ -74,17 +72,7 @@ kill-TOS-and-metrics-opt-out.patch
kill-Vision.patch
kill-Location-fall-back-to-system.patch
kill-Auth.patch
Remove-dependency-on-com.google.android.gms.auth.patch
kill-GCM.patch
Remove-dependency-on-com.google.android.gcm.patch
Remove-dependency-on-com.google.android.gms.gcm.patch
Remove-dependency-on-com.google.android.play.patch
Remove-dependency-on-vision-clearcut-and-phenotype.patch
Remove-dependency-on-flags-places-and-stats.patch
Remove-dependency-on-fido-iid-instantapps-location.patch
Remove-dependency-on-com.google.android.gms.cast.patch
Remove-dependency-on-auth-signin-dynamic-and-tasks.patch
Remove-google_services_gcm.patch
Remove-binary-blob-integrations.patch
Remove-SMS-integration.patch
Do-not-compile-QR-code-sharing.patch
Allow-website-sign-in-without-account-sign-in.patch
@ -97,6 +85,7 @@ Disable-previews-by-default.patch
Use-4-tile-rows-never-show-logo.patch
Disable-metrics-collection-for-NTP-tiles.patch
Enable-SPPI-for-devices-with-enough-memory.patch
Use-64-bit-WebView-processes.patch
prefs-disable-signinallowed-by-default.patch
prefs-always-prompt-for-download-directory-by-default.patch
Disable-offline-pages-in-the-downloads-home-to-be-opened-in-CCT-by-default.patch
@ -107,7 +96,6 @@ Disable-media-router-and-remoting-by-default.patch
Restore-Search-Ready-Omnibox-flag.patch
disable-AdsBlockedInfoBar.patch
Bromite-AdBlockUpdaterService.patch
Add-option-to-configure-the-ad-blocker-filters-URL.patch
Replace-DoH-probe-domain-with-RIPE-domain.patch
Increase-number-of-autocomplete-matches-from-5-to-10.patch
Disable-HEAD-requests-for-single-word-Omnibar-searches.patch
@ -117,10 +105,9 @@ DoH-secure-mode-by-default.patch
Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch
Revert-flags-remove-disable-pull-to-refresh-effect.patch
Use-dummy-DFM-installer.patch
Disable-password-reuse-detection-on-android.patch
Disable-feeds-support-by-default.patch
Disable-autofill-assistant-by-default.patch
Show-site-settings-for-cookies.patch
Show-site-settings-for-cookies-javascript-and-ads.patch
Restore-enable-horizontal-tab-switcher-flag.patch
Disable-DRM-media-origin-IDs-preprovisioning.patch
Disable-smart-selection-by-default.patch
@ -133,7 +120,6 @@ Add-menu-item-to-view-source.patch
Enable-legacy-TLS-interstitital-warning.patch
Block-gateway-attacks-via-websockets.patch
Enable-prefetch-privacy-changes-by-default.patch
Enable-reduced-referrer-granularity-by-default.patch
Disable-support-for-RAR-files-inspection.patch
Add-history-support-in-incognito-mode.patch
Enable-darken-websites-checkbox-in-themes.patch
@ -147,11 +133,20 @@ Move-some-account-settings-back-to-privacy-settings.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
Enable-network-isolation-features.patch
Disable-unified-autoplay-feature.patch
Revert-flags-remove-num-raster-threads.patch
webview-Hard-no-to-persistent-histograms.patch
Ignore-enterprise-policies-for-secure-DNS.patch
Enable-app-overflow-menu-icons-by-default.patch
Add-menu-item-to-bookmark-all-tabs.patch
Add-flag-for-save-data-header.patch
Add-option-to-force-tablet-UI.patch
Make-all-favicon-requests-on-demand.patch
Add-Alt-D-hotkey-to-focus-address-bar.patch
Automated-domain-substitution.patch
add-user-scripts.v5.patch

View file

@ -1,6 +1,4 @@
AV1-codec-support.patch
Switch-to-fstack-protector-strong.patch
Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch
Disable-password-reuse-detection-on-android.patch
Disable-feeds-support-by-default.patch
Password-service-build-fixes.patch

View file

@ -23,7 +23,7 @@ See discussions at:
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.cc | 11 ++++++++++-
gpu/config/gpu_finch_features.h | 1 +
gpu/config/gpu_util.cc | 8 ++++++++
gpu/config/gpu_workaround_list.txt | 1 +
@ -31,7 +31,7 @@ See discussions at:
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(-)
12 files changed, 68 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
@ -58,7 +58,7 @@ diff --git a/base/android/android_image_reader_compat.cc b/base/android/android_
+ return !disable_support_ && is_supported_;
}
// static
AndroidImageReader::AndroidImageReader() : is_supported_(LoadFunctions()) {}
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
@ -72,7 +72,7 @@ diff --git a/base/android/android_image_reader_compat.h b/base/android/android_i
// 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 {
@@ -59,6 +62,7 @@ class BASE_EXPORT AndroidImageReader {
jobject ANativeWindow_toSurface(JNIEnv* env, ANativeWindow* window);
private:
@ -83,19 +83,19 @@ diff --git a/base/android/android_image_reader_compat.h b/base/android/android_i
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -1681,7 +1681,7 @@
@@ -1724,7 +1724,7 @@
{
"name": "enable-image-reader",
"owners": [ "vikassoni", "khushalsagar" ],
"name": "enable-heavy-ad-intervention",
"owners": [ "johnidel", "jkarlin" ],
- "expiry_milestone": 90
+ "expiry_milestone": -1
},
{
"name": "enable-immersive-fullscreen-toolbar",
"name": "enable-heuristic-stylus-palm-rejection",
diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json
--- a/gpu/config/gpu_driver_bug_list.json
+++ b/gpu/config/gpu_driver_bug_list.json
@@ -3287,6 +3287,22 @@
@@ -3254,6 +3254,22 @@
"dont_delete_source_texture_for_egl_image"
]
},
@ -121,18 +121,19 @@ diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_lis
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 {
@@ -38,6 +38,11 @@ bool FieldIsInBlocklist(const char* current_value, std::string blocklist_str) {
} // namespace
#if defined(OS_ANDROID)
+
+// 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",
base::FEATURE_DISABLED_BY_DEFAULT};
@@ -55,7 +60,11 @@ const base::FeatureParam<std::string> kAndroidSurfaceControlBlocklist{
// Use AImageReader for MediaCodec and MediaPlyer on android.
const base::Feature kAImageReader{"AImageReader",
@ -142,9 +143,9 @@ diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
+#else
+ base::FEATURE_ENABLED_BY_DEFAULT};
+#endif
#endif
// Enable GPU Rasterization by default. This can still be overridden by
// If webview-draw-functor-uses-vulkan is set, use vulkan for composite and
// raster.
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
@ -169,7 +170,7 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
if (!gpu_preferences.enable_android_surface_control)
return kGpuFeatureStatusDisabled;
@@ -374,6 +377,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) {
@@ -316,6 +319,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) {
gpu_feature_info->status_values[GPU_FEATURE_TYPE_ACCELERATED_WEBGL2] =
kGpuFeatureStatusBlocklisted;
}
@ -189,13 +190,13 @@ diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list
disable_2d_canvas_auto_flush
disable_accelerated_av1_decode
+disable_aimagereader
disable_accelerated_av1_decode_d3d11
disable_accelerated_vp8_decode
disable_accelerated_vp8_encode
disable_accelerated_vp9_decode
diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
--- a/gpu/ipc/service/gpu_init.cc
+++ b/gpu/ipc/service/gpu_init.cc
@@ -467,6 +467,11 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
@@ -477,6 +477,11 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
}
}
@ -218,7 +219,7 @@ diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_
#include "base/android/scoped_hardware_buffer_fence_sync.h"
#include "base/bind.h"
#include "base/feature_list.h"
@@ -47,7 +48,15 @@ std::unique_ptr<ui::ScopedMakeCurrent> MakeCurrent(
@@ -48,7 +49,15 @@ std::unique_ptr<ui::ScopedMakeCurrent> MakeCurrent(
}
TextureOwner::Mode GetTextureOwnerMode() {
@ -238,7 +239,7 @@ diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
--- a/media/base/media_switches.cc
+++ b/media/base/media_switches.cc
@@ -566,6 +566,10 @@ const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning",
@@ -604,6 +604,10 @@ const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning",
const base::Feature kMediaDrmPreprovisioningAtStartup{
"MediaDrmPreprovisioningAtStartup", base::FEATURE_ENABLED_BY_DEFAULT};
@ -252,7 +253,7 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
diff --git a/media/base/media_switches.h b/media/base/media_switches.h
--- a/media/base/media_switches.h
+++ b/media/base/media_switches.h
@@ -198,6 +198,7 @@ MEDIA_EXPORT extern const base::Feature kMediaControlsExpandGesture;
@@ -206,6 +206,7 @@ MEDIA_EXPORT extern const base::Feature kMediaControlsExpandGesture;
MEDIA_EXPORT extern const base::Feature kMediaDrmPersistentLicense;
MEDIA_EXPORT extern const base::Feature kMediaDrmPreprovisioning;
MEDIA_EXPORT extern const base::Feature kMediaDrmPreprovisioningAtStartup;

View file

@ -5,7 +5,6 @@ Subject: AV1 codec support
libaom build fixes (requires -fPIC)
Report AV1 as playable on Android
---
media/base/mime_util_internal.cc | 6 +++++-
third_party/libaom/BUILD.gn | 6 ++++--
third_party/libaom/libaom_srcs.gni | 5 +++++
.../config/linux/arm-neon-cpu-detect/config/aom_config.asm | 2 +-
@ -20,26 +19,8 @@ Report AV1 as playable on Android
.../libaom/source/config/linux/generic/config/aom_config.h | 2 +-
.../libaom/source/config/linux/x64/config/aom_config.asm | 2 +-
.../libaom/source/config/linux/x64/config/aom_config.h | 2 +-
15 files changed, 26 insertions(+), 15 deletions(-)
14 files changed, 21 insertions(+), 14 deletions(-)
diff --git a/media/base/mime_util_internal.cc b/media/base/mime_util_internal.cc
--- a/media/base/mime_util_internal.cc
+++ b/media/base/mime_util_internal.cc
@@ -565,9 +565,13 @@ bool MimeUtil::IsCodecSupportedOnAndroid(
case THEORA:
return false;
- // AV1 is not supported on Android yet.
+ // AV1 is supported on Android.
case AV1:
+#if BUILDFLAG(ENABLE_AV1_DECODER)
+ return true;
+#else
return false;
+#endif
// ----------------------------------------------------------------------
// The remaining codecs may be supported depending on platform abilities.
diff --git a/third_party/libaom/BUILD.gn b/third_party/libaom/BUILD.gn
--- a/third_party/libaom/BUILD.gn
+++ b/third_party/libaom/BUILD.gn
@ -73,7 +54,7 @@ diff --git a/third_party/libaom/BUILD.gn b/third_party/libaom/BUILD.gn
diff --git a/third_party/libaom/libaom_srcs.gni b/third_party/libaom/libaom_srcs.gni
--- a/third_party/libaom/libaom_srcs.gni
+++ b/third_party/libaom/libaom_srcs.gni
@@ -671,6 +671,11 @@ aom_mem_sources = [
@@ -616,6 +616,11 @@ aom_mem_sources = [
aom_ports_asm_x86 = [ "//third_party/libaom/source/libaom/aom_ports/emms.asm" ]
@ -95,7 +76,7 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/a
-CONFIG_PIC equ 0
+CONFIG_PIC equ 1
CONFIG_RD_DEBUG equ 0
CONFIG_REALTIME_ONLY equ 0
CONFIG_REALTIME_ONLY equ 1
CONFIG_RUNTIME_CPU_DETECT equ 1
diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h
--- a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h
@ -107,7 +88,7 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/a
-#define CONFIG_PIC 0
+#define CONFIG_PIC 1
#define CONFIG_RD_DEBUG 0
#define CONFIG_REALTIME_ONLY 0
#define CONFIG_REALTIME_ONLY 1
#define CONFIG_RUNTIME_CPU_DETECT 1
diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm
--- a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm
@ -119,7 +100,7 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.a
-CONFIG_PIC equ 0
+CONFIG_PIC equ 1
CONFIG_RD_DEBUG equ 0
CONFIG_REALTIME_ONLY equ 0
CONFIG_REALTIME_ONLY equ 1
CONFIG_RUNTIME_CPU_DETECT equ 0
diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
--- a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
@ -131,7 +112,7 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
-#define CONFIG_PIC 0
+#define CONFIG_PIC 1
#define CONFIG_RD_DEBUG 0
#define CONFIG_REALTIME_ONLY 0
#define CONFIG_REALTIME_ONLY 1
#define CONFIG_RUNTIME_CPU_DETECT 0
diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.asm b/third_party/libaom/source/config/linux/arm/config/aom_config.asm
--- a/third_party/libaom/source/config/linux/arm/config/aom_config.asm
@ -143,7 +124,7 @@ diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.asm b/
-CONFIG_PIC equ 0
+CONFIG_PIC equ 1
CONFIG_RD_DEBUG equ 0
CONFIG_REALTIME_ONLY equ 0
CONFIG_REALTIME_ONLY equ 1
CONFIG_RUNTIME_CPU_DETECT equ 0
diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.h b/third_party/libaom/source/config/linux/arm/config/aom_config.h
--- a/third_party/libaom/source/config/linux/arm/config/aom_config.h
@ -155,7 +136,7 @@ diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.h b/th
-#define CONFIG_PIC 0
+#define CONFIG_PIC 1
#define CONFIG_RD_DEBUG 0
#define CONFIG_REALTIME_ONLY 0
#define CONFIG_REALTIME_ONLY 1
#define CONFIG_RUNTIME_CPU_DETECT 0
diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.asm b/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
--- a/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
@ -167,7 +148,7 @@ diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
-CONFIG_PIC equ 0
+CONFIG_PIC equ 1
CONFIG_RD_DEBUG equ 0
CONFIG_REALTIME_ONLY equ 0
CONFIG_REALTIME_ONLY equ 1
CONFIG_RUNTIME_CPU_DETECT equ 0
diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.h b/third_party/libaom/source/config/linux/arm64/config/aom_config.h
--- a/third_party/libaom/source/config/linux/arm64/config/aom_config.h
@ -179,7 +160,7 @@ diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.h b/
-#define CONFIG_PIC 0
+#define CONFIG_PIC 1
#define CONFIG_RD_DEBUG 0
#define CONFIG_REALTIME_ONLY 0
#define CONFIG_REALTIME_ONLY 1
#define CONFIG_RUNTIME_CPU_DETECT 0
diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.asm b/third_party/libaom/source/config/linux/generic/config/aom_config.asm
--- a/third_party/libaom/source/config/linux/generic/config/aom_config.asm
@ -191,7 +172,7 @@ diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.as
-CONFIG_PIC equ 0
+CONFIG_PIC equ 1
CONFIG_RD_DEBUG equ 0
CONFIG_REALTIME_ONLY equ 0
CONFIG_REALTIME_ONLY equ 1
CONFIG_RUNTIME_CPU_DETECT equ 1
diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.h b/third_party/libaom/source/config/linux/generic/config/aom_config.h
--- a/third_party/libaom/source/config/linux/generic/config/aom_config.h
@ -203,7 +184,7 @@ diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.h
-#define CONFIG_PIC 0
+#define CONFIG_PIC 1
#define CONFIG_RD_DEBUG 0
#define CONFIG_REALTIME_ONLY 0
#define CONFIG_REALTIME_ONLY 1
#define CONFIG_RUNTIME_CPU_DETECT 1
diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.asm b/third_party/libaom/source/config/linux/x64/config/aom_config.asm
--- a/third_party/libaom/source/config/linux/x64/config/aom_config.asm
@ -215,7 +196,7 @@ diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.asm b/
-%define CONFIG_PIC 0
+%define CONFIG_PIC 1
%define CONFIG_RD_DEBUG 0
%define CONFIG_REALTIME_ONLY 0
%define CONFIG_REALTIME_ONLY 1
%define CONFIG_RUNTIME_CPU_DETECT 1
diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.h b/third_party/libaom/source/config/linux/x64/config/aom_config.h
--- a/third_party/libaom/source/config/linux/x64/config/aom_config.h
@ -227,7 +208,7 @@ diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.h b/th
-#define CONFIG_PIC 0
+#define CONFIG_PIC 1
#define CONFIG_RD_DEBUG 0
#define CONFIG_REALTIME_ONLY 0
#define CONFIG_REALTIME_ONLY 1
#define CONFIG_RUNTIME_CPU_DETECT 1
--
2.17.1

View file

@ -0,0 +1,23 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Tue, 9 Mar 2021 19:43:00 +0100
Subject: Add Alt+D hotkey to focus address bar
---
.../java/src/org/chromium/chrome/browser/KeyboardShortcuts.java | 2 ++
1 file changed, 2 insertions(+)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
@@ -147,6 +147,8 @@ public class KeyboardShortcuts {
KeyEvent.KEYCODE_F, KeyEvent.META_CTRL_ON);
addShortcut(context, chromeFeatureShortcutGroup, R.string.keyboard_shortcut_address_bar,
KeyEvent.KEYCODE_L, KeyEvent.META_CTRL_ON);
+ addShortcut(context, chromeFeatureShortcutGroup, R.string.keyboard_shortcut_address_bar,
+ KeyEvent.KEYCODE_D, KeyEvent.META_ALT_ON);
shortcutGroups.add(chromeFeatureShortcutGroup);
KeyboardShortcutGroup webpageShortcutGroup = new KeyboardShortcutGroup(
--
2.17.1

File diff suppressed because it is too large Load diff

View file

@ -44,14 +44,14 @@ diff --git a/components/search_engines/prepopulated_engines.json b/components/se
diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h
--- a/components/search_engines/search_engine_type.h
+++ b/components/search_engines/search_engine_type.h
@@ -75,6 +75,7 @@ enum SearchEngineType {
@@ -74,6 +74,7 @@ enum SearchEngineType {
SEARCH_ENGINE_OCEANHERO,
SEARCH_ENGINE_PRIVACYWALL,
SEARCH_ENGINE_ECOSIA,
+ SEARCH_ENGINE_GOOGLE_EN,
SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro.
};
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
@ -79,8 +79,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
const PrepopulatedEngine* const engines_AL[] = {
- &google,
+ &googleen, &google,
&yahoo,
&bing,
&yahoo,
&duckduckgo,
@@ -56,7 +56,7 @@ const PrepopulatedEngine* const engines_AL[] = {
@ -107,8 +107,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
- &google,
+ &googleen, &google,
&bing,
&duckduckgo,
&yahoo_au,
&duckduckgo,
@@ -83,7 +83,7 @@ const PrepopulatedEngine* const engines_AU[] = {
// Bosnia and Herzegovina
@ -118,7 +118,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
&bing,
&yahoo,
&duckduckgo,
@@ -92,7 +92,7 @@ const PrepopulatedEngine* const engines_BA[] = {
@@ -91,7 +91,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,
@@ -101,7 +101,7 @@ const PrepopulatedEngine* const engines_BE[] = {
@@ -100,7 +100,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,
@@ -110,7 +110,7 @@ const PrepopulatedEngine* const engines_BG[] = {
@@ -109,7 +109,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,
@@ -119,7 +119,7 @@ const PrepopulatedEngine* const engines_BH[] = {
@@ -118,7 +118,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,
@@ -128,7 +128,7 @@ const PrepopulatedEngine* const engines_BI[] = {
@@ -127,7 +127,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,
@@ -137,7 +137,7 @@ const PrepopulatedEngine* const engines_BN[] = {
@@ -136,7 +136,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,
@@ -146,7 +146,7 @@ const PrepopulatedEngine* const engines_BO[] = {
@@ -145,7 +145,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,
@@ -155,7 +155,7 @@ const PrepopulatedEngine* const engines_BR[] = {
@@ -154,7 +154,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,
@@ -164,7 +164,7 @@ const PrepopulatedEngine* const engines_BY[] = {
@@ -163,7 +163,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,
@@ -173,7 +173,7 @@ const PrepopulatedEngine* const engines_BZ[] = {
@@ -172,7 +172,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,
@@ -182,7 +182,7 @@ const PrepopulatedEngine* const engines_CA[] = {
@@ -181,7 +181,7 @@ const PrepopulatedEngine* const engines_CA[] = {
// Switzerland
const PrepopulatedEngine* const engines_CH[] = {
@ -216,24 +216,24 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
+ &googleen, &google,
&bing,
&duckduckgo,
&yahoo_ch,
@@ -191,7 +191,7 @@ const PrepopulatedEngine* const engines_CH[] = {
&ecosia,
@@ -190,7 +190,7 @@ const PrepopulatedEngine* const engines_CH[] = {
// Chile
const PrepopulatedEngine* const engines_CL[] = {
- &google,
+ &googleen, &google,
&bing,
&yahoo_cl,
&yahoo_es,
&duckduckgo,
@@ -202,14 +202,14 @@ const PrepopulatedEngine* const engines_CL[] = {
@@ -201,14 +201,14 @@ const PrepopulatedEngine* const engines_CL[] = {
const PrepopulatedEngine* const engines_CN[] = {
&baidu,
&sogou,
- &google,
+ &googleen, &google,
&so_360,
&bing,
&so_360,
};
// Colombia
@ -241,9 +241,9 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
- &google,
+ &googleen, &google,
&bing,
&yahoo_co,
&yahoo_es,
&ecosia,
@@ -218,7 +218,7 @@ const PrepopulatedEngine* const engines_CO[] = {
@@ -217,7 +217,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,
@@ -227,7 +227,7 @@ const PrepopulatedEngine* const engines_CR[] = {
@@ -226,7 +226,7 @@ const PrepopulatedEngine* const engines_CR[] = {
// Czech Republic
const PrepopulatedEngine* const engines_CZ[] = {
@ -261,16 +261,16 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
&seznam_cz,
&bing,
&yahoo,
@@ -236,7 +236,7 @@ const PrepopulatedEngine* const engines_CZ[] = {
@@ -235,7 +235,7 @@ const PrepopulatedEngine* const engines_CZ[] = {
// Germany
const PrepopulatedEngine* const engines_DE[] = {
- &google,
+ &googleen, &google,
&bing,
&yahoo_de,
&duckduckgo,
@@ -245,7 +245,7 @@ const PrepopulatedEngine* const engines_DE[] = {
&ecosia,
@@ -244,7 +244,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,
@@ -254,7 +254,7 @@ const PrepopulatedEngine* const engines_DK[] = {
@@ -253,7 +253,7 @@ const PrepopulatedEngine* const engines_DK[] = {
// Dominican Republic
const PrepopulatedEngine* const engines_DO[] = {
@ -288,16 +288,16 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
&bing,
&yahoo,
&duckduckgo,
@@ -263,7 +263,7 @@ const PrepopulatedEngine* const engines_DO[] = {
@@ -262,7 +262,7 @@ const PrepopulatedEngine* const engines_DO[] = {
// Algeria
const PrepopulatedEngine* const engines_DZ[] = {
- &google,
+ &googleen, &google,
&yahoo,
&yahoo_uk,
&bing,
&yandex_ru,
@@ -272,7 +272,7 @@ const PrepopulatedEngine* const engines_DZ[] = {
@@ -271,7 +271,7 @@ const PrepopulatedEngine* const engines_DZ[] = {
// Ecuador
const PrepopulatedEngine* const engines_EC[] = {
@ -305,8 +305,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
+ &googleen, &google,
&bing,
&yahoo,
&ecosia,
@@ -281,7 +281,7 @@ const PrepopulatedEngine* const engines_EC[] = {
&duckduckgo,
@@ -280,7 +280,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,
@@ -290,7 +290,7 @@ const PrepopulatedEngine* const engines_EE[] = {
@@ -289,7 +289,7 @@ const PrepopulatedEngine* const engines_EE[] = {
// Egypt
const PrepopulatedEngine* const engines_EG[] = {
@ -323,8 +323,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
+ &googleen, &google,
&yahoo,
&bing,
&yandex_ru,
@@ -299,7 +299,7 @@ const PrepopulatedEngine* const engines_EG[] = {
&yandex_com,
@@ -298,7 +298,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,
@@ -308,7 +308,7 @@ const PrepopulatedEngine* const engines_ES[] = {
@@ -307,7 +307,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,
@@ -317,7 +317,7 @@ const PrepopulatedEngine* const engines_FI[] = {
@@ -316,7 +316,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,
@@ -326,7 +326,7 @@ const PrepopulatedEngine* const engines_FO[] = {
@@ -325,7 +325,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,
@@ -335,7 +335,7 @@ const PrepopulatedEngine* const engines_FR[] = {
@@ -334,7 +334,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,
@@ -344,7 +344,7 @@ const PrepopulatedEngine* const engines_GB[] = {
@@ -343,7 +343,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,
@@ -353,7 +353,7 @@ const PrepopulatedEngine* const engines_GR[] = {
@@ -352,7 +352,7 @@ const PrepopulatedEngine* const engines_GR[] = {
// Guatemala
const PrepopulatedEngine* const engines_GT[] = {
@ -386,8 +386,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
+ &googleen, &google,
&bing,
&yahoo,
&ecosia,
@@ -362,7 +362,7 @@ const PrepopulatedEngine* const engines_GT[] = {
&duckduckgo,
@@ -361,7 +361,7 @@ const PrepopulatedEngine* const engines_GT[] = {
// Hong Kong
const PrepopulatedEngine* const engines_HK[] = {
@ -395,8 +395,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
+ &googleen, &google,
&yahoo_hk,
&bing,
&yandex_com,
@@ -371,7 +371,7 @@ const PrepopulatedEngine* const engines_HK[] = {
&baidu,
@@ -370,7 +370,7 @@ const PrepopulatedEngine* const engines_HK[] = {
// Honduras
const PrepopulatedEngine* const engines_HN[] = {
@ -404,8 +404,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
+ &googleen, &google,
&bing,
&yahoo,
&yandex_ru,
@@ -380,7 +380,7 @@ const PrepopulatedEngine* const engines_HN[] = {
&duckduckgo,
@@ -379,7 +379,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,
@@ -389,7 +389,7 @@ const PrepopulatedEngine* const engines_HR[] = {
@@ -388,7 +388,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,
@@ -398,7 +398,7 @@ const PrepopulatedEngine* const engines_HU[] = {
@@ -397,7 +397,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,
@@ -407,7 +407,7 @@ const PrepopulatedEngine* const engines_ID[] = {
@@ -406,7 +406,7 @@ const PrepopulatedEngine* const engines_ID[] = {
// Ireland
const PrepopulatedEngine* const engines_IE[] = {
@ -441,34 +441,34 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
&bing,
&yahoo,
&duckduckgo,
@@ -416,7 +416,7 @@ const PrepopulatedEngine* const engines_IE[] = {
@@ -415,7 +415,7 @@ const PrepopulatedEngine* const engines_IE[] = {
// Israel
const PrepopulatedEngine* const engines_IL[] = {
- &google,
+ &googleen, &google,
&bing,
&yahoo,
&yandex_ru,
@@ -425,7 +425,7 @@ const PrepopulatedEngine* const engines_IL[] = {
&yahoo,
@@ -424,7 +424,7 @@ const PrepopulatedEngine* const engines_IL[] = {
// India
const PrepopulatedEngine* const engines_IN[] = {
- &google,
+ &googleen, &google,
&yahoo_in,
&bing,
&yahoo_in,
&duckduckgo,
@@ -434,7 +434,7 @@ const PrepopulatedEngine* const engines_IN[] = {
@@ -433,7 +433,7 @@ const PrepopulatedEngine* const engines_IN[] = {
// Iraq
const PrepopulatedEngine* const engines_IQ[] = {
- &google,
+ &googleen, &google,
&yahoo,
&bing,
&yandex_ru,
@@ -443,7 +443,7 @@ const PrepopulatedEngine* const engines_IQ[] = {
&yahoo_uk,
&yandex_com,
@@ -442,7 +442,7 @@ const PrepopulatedEngine* const engines_IQ[] = {
// Iran
const PrepopulatedEngine* const engines_IR[] = {
@ -476,17 +476,17 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
+ &googleen, &google,
&bing,
&yahoo,
&yandex_ru,
@@ -452,7 +452,7 @@ const PrepopulatedEngine* const engines_IR[] = {
&ask,
@@ -451,7 +451,7 @@ const PrepopulatedEngine* const engines_IR[] = {
// Iceland
const PrepopulatedEngine* const engines_IS[] = {
- &google,
+ &googleen, &google,
&bing,
&duckduckgo,
&yahoo,
@@ -461,7 +461,7 @@ const PrepopulatedEngine* const engines_IS[] = {
&duckduckgo,
@@ -460,7 +460,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,
@@ -470,7 +470,7 @@ const PrepopulatedEngine* const engines_IT[] = {
@@ -469,7 +469,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,
@@ -479,7 +479,7 @@ const PrepopulatedEngine* const engines_JM[] = {
@@ -478,7 +478,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,
@@ -488,7 +488,7 @@ const PrepopulatedEngine* const engines_JO[] = {
@@ -487,7 +487,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,
@@ -497,7 +497,7 @@ const PrepopulatedEngine* const engines_JP[] = {
@@ -496,7 +496,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,
@@ -506,7 +506,7 @@ const PrepopulatedEngine* const engines_KE[] = {
@@ -505,7 +505,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,
@@ -515,7 +515,7 @@ const PrepopulatedEngine* const engines_KR[] = {
@@ -514,7 +514,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,
@@ -524,7 +524,7 @@ const PrepopulatedEngine* const engines_KW[] = {
@@ -523,7 +523,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,
@@ -533,7 +533,7 @@ const PrepopulatedEngine* const engines_KZ[] = {
@@ -532,7 +532,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,
@@ -542,7 +542,7 @@ const PrepopulatedEngine* const engines_LB[] = {
@@ -541,7 +541,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,
@@ -551,7 +551,7 @@ const PrepopulatedEngine* const engines_LI[] = {
@@ -550,7 +550,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,
@@ -560,7 +560,7 @@ const PrepopulatedEngine* const engines_LT[] = {
@@ -559,7 +559,7 @@ const PrepopulatedEngine* const engines_LT[] = {
// Luxembourg
const PrepopulatedEngine* const engines_LU[] = {
@ -594,43 +594,43 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
&bing,
&duckduckgo,
&yahoo,
@@ -569,7 +569,7 @@ const PrepopulatedEngine* const engines_LU[] = {
@@ -568,7 +568,7 @@ const PrepopulatedEngine* const engines_LU[] = {
// Latvia
const PrepopulatedEngine* const engines_LV[] = {
- &google,
+ &googleen, &google,
&yandex_ru,
&bing,
&yandex_ru,
&yahoo,
@@ -578,7 +578,7 @@ const PrepopulatedEngine* const engines_LV[] = {
@@ -577,7 +577,7 @@ const PrepopulatedEngine* const engines_LV[] = {
// Libya
const PrepopulatedEngine* const engines_LY[] = {
- &google,
+ &googleen, &google,
&yahoo,
&bing,
&yahoo,
&yandex_com,
@@ -587,7 +587,7 @@ const PrepopulatedEngine* const engines_LY[] = {
@@ -586,7 +586,7 @@ const PrepopulatedEngine* const engines_LY[] = {
// Morocco
const PrepopulatedEngine* const engines_MA[] = {
- &google,
+ &googleen, &google,
&yahoo,
&yahoo_fr,
&bing,
&duckduckgo,
@@ -596,7 +596,7 @@ const PrepopulatedEngine* const engines_MA[] = {
&yandex_com,
@@ -595,7 +595,7 @@ const PrepopulatedEngine* const engines_MA[] = {
// Monaco
const PrepopulatedEngine* const engines_MC[] = {
- &google,
+ &googleen, &google,
&bing,
&duckduckgo,
&yahoo,
@@ -605,7 +605,7 @@ const PrepopulatedEngine* const engines_MC[] = {
&duckduckgo,
@@ -604,7 +604,7 @@ const PrepopulatedEngine* const engines_MC[] = {
// Moldova
const PrepopulatedEngine* const engines_MD[] = {
@ -638,8 +638,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
+ &googleen, &google,
&yandex_ru,
&mail_ru,
&duckduckgo,
@@ -614,7 +614,7 @@ const PrepopulatedEngine* const engines_MD[] = {
&bing,
@@ -613,7 +613,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,
@@ -623,7 +623,7 @@ const PrepopulatedEngine* const engines_ME[] = {
@@ -622,7 +622,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,
@@ -632,7 +632,7 @@ const PrepopulatedEngine* const engines_MK[] = {
@@ -631,7 +631,7 @@ const PrepopulatedEngine* const engines_MK[] = {
// Mexico
const PrepopulatedEngine* const engines_MX[] = {
@ -665,8 +665,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
+ &googleen, &google,
&bing,
&yahoo_mx,
&ecosia,
@@ -641,7 +641,7 @@ const PrepopulatedEngine* const engines_MX[] = {
&duckduckgo,
@@ -640,7 +640,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,
@@ -650,7 +650,7 @@ const PrepopulatedEngine* const engines_MY[] = {
@@ -649,7 +649,7 @@ const PrepopulatedEngine* const engines_MY[] = {
// Nicaragua
const PrepopulatedEngine* const engines_NI[] = {
@ -684,16 +684,16 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
&bing,
&yahoo,
&duckduckgo,
@@ -659,7 +659,7 @@ const PrepopulatedEngine* const engines_NI[] = {
@@ -658,7 +658,7 @@ const PrepopulatedEngine* const engines_NI[] = {
// Netherlands
const PrepopulatedEngine* const engines_NL[] = {
- &google,
+ &googleen, &google,
&bing,
&yahoo_nl,
&duckduckgo,
@@ -668,7 +668,7 @@ const PrepopulatedEngine* const engines_NL[] = {
&yahoo_nl,
@@ -667,7 +667,7 @@ const PrepopulatedEngine* const engines_NL[] = {
// Norway
const PrepopulatedEngine* const engines_NO[] = {
@ -702,16 +702,16 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
&bing,
&yahoo,
&duckduckgo,
@@ -677,7 +677,7 @@ const PrepopulatedEngine* const engines_NO[] = {
@@ -676,7 +676,7 @@ const PrepopulatedEngine* const engines_NO[] = {
// New Zealand
const PrepopulatedEngine* const engines_NZ[] = {
- &google,
+ &googleen, &google,
&bing,
&duckduckgo,
&yahoo_nz,
@@ -686,7 +686,7 @@ const PrepopulatedEngine* const engines_NZ[] = {
&duckduckgo,
@@ -685,7 +685,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,
@@ -695,7 +695,7 @@ const PrepopulatedEngine* const engines_OM[] = {
@@ -694,7 +694,7 @@ const PrepopulatedEngine* const engines_OM[] = {
// Panama
const PrepopulatedEngine* const engines_PA[] = {
@ -729,25 +729,25 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
&bing,
&yahoo,
&duckduckgo,
@@ -704,7 +704,7 @@ const PrepopulatedEngine* const engines_PA[] = {
@@ -703,7 +703,7 @@ const PrepopulatedEngine* const engines_PA[] = {
// Peru
const PrepopulatedEngine* const engines_PE[] = {
- &google,
+ &googleen, &google,
&bing,
&yahoo_pe,
&yahoo_es,
&ecosia,
@@ -713,7 +713,7 @@ const PrepopulatedEngine* const engines_PE[] = {
@@ -712,7 +712,7 @@ const PrepopulatedEngine* const engines_PE[] = {
// Philippines
const PrepopulatedEngine* const engines_PH[] = {
- &google,
+ &googleen, &google,
&yahoo_ph,
&bing,
&yahoo,
&ecosia,
@@ -722,7 +722,7 @@ const PrepopulatedEngine* const engines_PH[] = {
@@ -721,7 +721,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,
@@ -731,7 +731,7 @@ const PrepopulatedEngine* const engines_PK[] = {
@@ -730,7 +730,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,
@@ -740,7 +740,7 @@ const PrepopulatedEngine* const engines_PL[] = {
@@ -738,7 +738,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,
@@ -749,7 +749,7 @@ const PrepopulatedEngine* const engines_PR[] = {
@@ -747,7 +747,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,
@@ -758,7 +758,7 @@ const PrepopulatedEngine* const engines_PT[] = {
@@ -756,7 +756,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,
@@ -767,7 +767,7 @@ const PrepopulatedEngine* const engines_PY[] = {
@@ -765,7 +765,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,
@@ -776,7 +776,7 @@ const PrepopulatedEngine* const engines_QA[] = {
@@ -774,7 +774,7 @@ const PrepopulatedEngine* const engines_QA[] = {
// Romania
const PrepopulatedEngine* const engines_RO[] = {
@ -810,16 +810,16 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
&bing,
&yahoo,
&duckduckgo,
@@ -785,7 +785,7 @@ const PrepopulatedEngine* const engines_RO[] = {
@@ -783,7 +783,7 @@ const PrepopulatedEngine* const engines_RO[] = {
// Serbia
const PrepopulatedEngine* const engines_RS[] = {
- &google,
+ &googleen, &google,
&yahoo,
&bing,
&yahoo,
&duckduckgo,
@@ -794,7 +794,7 @@ const PrepopulatedEngine* const engines_RS[] = {
@@ -792,7 +792,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,
@@ -803,7 +803,7 @@ const PrepopulatedEngine* const engines_RU[] = {
@@ -801,7 +801,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,
@@ -812,7 +812,7 @@ const PrepopulatedEngine* const engines_RW[] = {
@@ -810,7 +810,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,
@@ -821,7 +821,7 @@ const PrepopulatedEngine* const engines_SA[] = {
@@ -819,7 +819,7 @@ const PrepopulatedEngine* const engines_SA[] = {
// Sweden
const PrepopulatedEngine* const engines_SE[] = {
@ -855,16 +855,16 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
&bing,
&yahoo_se,
&duckduckgo,
@@ -830,7 +830,7 @@ const PrepopulatedEngine* const engines_SE[] = {
@@ -828,7 +828,7 @@ const PrepopulatedEngine* const engines_SE[] = {
// Singapore
const PrepopulatedEngine* const engines_SG[] = {
- &google,
+ &googleen, &google,
&bing,
&yandex_com,
&yahoo_sg,
@@ -839,7 +839,7 @@ const PrepopulatedEngine* const engines_SG[] = {
&yahoo,
&baidu,
@@ -837,7 +837,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,
@@ -848,7 +848,7 @@ const PrepopulatedEngine* const engines_SI[] = {
@@ -845,7 +845,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,
@@ -857,7 +857,7 @@ const PrepopulatedEngine* const engines_SK[] = {
@@ -854,7 +854,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,
@@ -866,7 +866,7 @@ const PrepopulatedEngine* const engines_SV[] = {
@@ -863,7 +863,7 @@ const PrepopulatedEngine* const engines_SV[] = {
// Syria
const PrepopulatedEngine* const engines_SY[] = {
@ -900,25 +900,25 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
&bing,
&yahoo,
&yandex_ru,
@@ -875,7 +875,7 @@ const PrepopulatedEngine* const engines_SY[] = {
@@ -872,7 +872,7 @@ const PrepopulatedEngine* const engines_SY[] = {
// Thailand
const PrepopulatedEngine* const engines_TH[] = {
- &google,
+ &googleen, &google,
&yahoo_th,
&bing,
&yahoo,
&duckduckgo,
@@ -884,7 +884,7 @@ const PrepopulatedEngine* const engines_TH[] = {
@@ -881,7 +881,7 @@ const PrepopulatedEngine* const engines_TH[] = {
// Tunisia
const PrepopulatedEngine* const engines_TN[] = {
- &google,
+ &googleen, &google,
&yahoo,
&yahoo_fr,
&bing,
&yandex_ru,
@@ -893,7 +893,7 @@ const PrepopulatedEngine* const engines_TN[] = {
&duckduckgo,
@@ -890,7 +890,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,
@@ -902,7 +902,7 @@ const PrepopulatedEngine* const engines_TR[] = {
@@ -899,7 +899,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,
@@ -911,7 +911,7 @@ const PrepopulatedEngine* const engines_TT[] = {
@@ -908,7 +908,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,
@@ -920,7 +920,7 @@ const PrepopulatedEngine* const engines_TW[] = {
@@ -917,7 +917,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,
@@ -929,7 +929,7 @@ const PrepopulatedEngine* const engines_TZ[] = {
@@ -926,7 +926,7 @@ const PrepopulatedEngine* const engines_TZ[] = {
// Ukraine
const PrepopulatedEngine* const engines_UA[] = {
@ -962,8 +962,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
+ &googleen, &google,
&yandex_ua,
&bing,
&mail_ru,
@@ -938,7 +938,7 @@ const PrepopulatedEngine* const engines_UA[] = {
&duckduckgo,
@@ -935,7 +935,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,
@@ -947,7 +947,7 @@ const PrepopulatedEngine* const engines_US[] = {
@@ -944,7 +944,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,
@@ -956,7 +956,7 @@ const PrepopulatedEngine* const engines_UY[] = {
@@ -953,7 +953,7 @@ const PrepopulatedEngine* const engines_UY[] = {
// Venezuela
const PrepopulatedEngine* const engines_VE[] = {
@ -990,16 +990,16 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
&yahoo_ve,
&bing,
&duckduckgo,
@@ -965,7 +965,7 @@ const PrepopulatedEngine* const engines_VE[] = {
@@ -962,7 +962,7 @@ const PrepopulatedEngine* const engines_VE[] = {
// Vietnam
const PrepopulatedEngine* const engines_VN[] = {
- &google,
+ &googleen, &google,
&coccoc,
&yahoo,
&bing,
@@ -974,7 +974,7 @@ const PrepopulatedEngine* const engines_VN[] = {
&yahoo,
@@ -971,7 +971,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,
@@ -983,7 +983,7 @@ const PrepopulatedEngine* const engines_YE[] = {
@@ -980,7 +980,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,
@@ -992,7 +992,7 @@ const PrepopulatedEngine* const engines_ZA[] = {
@@ -989,7 +989,7 @@ const PrepopulatedEngine* const engines_ZA[] = {
// Zimbabwe
const PrepopulatedEngine* const engines_ZW[] = {
@ -1025,7 +1025,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
+ &googleen, &google,
&bing,
&yahoo,
&ask,
&duckduckgo,
--
2.17.1

View file

@ -17,51 +17,51 @@ See also:
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -5188,6 +5188,12 @@ const FeatureEntry kFeatureEntries[] = {
kOsAll,
FEATURE_VALUE_TYPE(features::kEnableAmbientAuthenticationInIncognito)},
@@ -5387,6 +5387,12 @@ const FeatureEntry kFeatureEntries[] = {
SINGLE_VALUE_TYPE(switches::kEnableGPUServiceLogging)},
#if !defined(OS_ANDROID)
+#if defined(OS_ANDROID)
+ {switches::kEnableIncognitoSnapshotsInAndroidRecents, flag_descriptions::kEnableIncognitoSnapshotsInAndroidRecentsName,
+ flag_descriptions::kEnableIncognitoSnapshotsInAndroidRecentsDescription, kOsAndroid,
+ SINGLE_VALUE_TYPE(switches::kEnableIncognitoSnapshotsInAndroidRecents)},
+#endif
+
{"enable-ambient-authentication-in-guest-session",
flag_descriptions::kEnableAmbientAuthenticationInGuestSessionName,
flag_descriptions::kEnableAmbientAuthenticationInGuestSessionDescription,
{"hardware-media-key-handling",
flag_descriptions::kHardwareMediaKeyHandling,
flag_descriptions::kHardwareMediaKeyHandlingDescription, kOsDesktop,
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -525,6 +525,11 @@ const char kEnableAmbientAuthenticationInIncognitoDescription[] =
"Enables ambient authentication in Incognito mode. This flag may be "
"overriden by policies.";
@@ -533,6 +533,11 @@ const char kEnableAutofillCreditCardAuthenticationDescription[] =
"authenticator (if available) to verify card ownership when retrieving "
"credit cards from Google Payments.";
+const char kEnableIncognitoSnapshotsInAndroidRecentsName[] =
+ "Enable Incognito snapshots in Android Recents";
+const char kEnableIncognitoSnapshotsInAndroidRecentsDescription[] =
+ "Enable the secure flag for Incognito tabs which prevent taking screenshots and seeing snapshots in Android Recents.";
+
const char kEnableAmbientAuthenticationInGuestSessionName[] =
"Enable Ambient Authentication in Guest session.";
const char kEnableAmbientAuthenticationInGuestSessionDescription[] =
const char
kEnableAutofillInfoBarAccountIndicationFooterForSingleAccountUsersName[] =
"Display InfoBar footers with account indication information for "
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -321,6 +321,9 @@ extern const char kEnableAccessibilityObjectModelDescription[];
extern const char kEnableAmbientAuthenticationInIncognitoName[];
extern const char kEnableAmbientAuthenticationInIncognitoDescription[];
@@ -329,6 +329,9 @@ extern const char kEnableAutofillAccountWalletStorageDescription[];
extern const char kEnableAutofillCreditCardAblationExperimentDisplayName[];
extern const char kEnableAutofillCreditCardAblationExperimentDescription[];
+extern const char kEnableIncognitoSnapshotsInAndroidRecentsName[];
+extern const char kEnableIncognitoSnapshotsInAndroidRecentsDescription[];
+
extern const char kEnableAmbientAuthenticationInGuestSessionName[];
extern const char kEnableAmbientAuthenticationInGuestSessionDescription[];
extern const char kEnableAutofillCreditCardAuthenticationName[];
extern const char kEnableAutofillCreditCardAuthenticationDescription[];
diff --git a/chrome/browser/flags/android/java_templates/ChromeSwitches.java.tmpl b/chrome/browser/flags/android/java_templates/ChromeSwitches.java.tmpl
--- a/chrome/browser/flags/android/java_templates/ChromeSwitches.java.tmpl
+++ b/chrome/browser/flags/android/java_templates/ChromeSwitches.java.tmpl
@@ -144,10 +144,6 @@ public abstract class ChromeSwitches {{
@@ -147,10 +147,6 @@ public abstract class ChromeSwitches {{
/** Switch for enabling the Chrome Survey. */
public static final String CHROME_FORCE_ENABLE_SURVEY = "force-enable-chrome-survey";
@ -75,7 +75,7 @@ diff --git a/chrome/browser/flags/android/java_templates/ChromeSwitches.java.tmp
diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc
--- a/chrome/common/chrome_switches.cc
+++ b/chrome/common/chrome_switches.cc
@@ -330,6 +330,9 @@ const char kHomePage[] = "homepage";
@@ -334,6 +334,9 @@ const char kHomePage[] = "homepage";
// Causes the browser to launch directly in incognito mode.
const char kIncognito[] = "incognito";
@ -88,14 +88,14 @@ diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc
diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h
--- a/chrome/common/chrome_switches.h
+++ b/chrome/common/chrome_switches.h
@@ -110,6 +110,7 @@ extern const char kForceFirstRun[];
@@ -113,6 +113,7 @@ extern const char kForceFirstRun[];
extern const char kForceStackedTabStripLayout[];
extern const char kHomePage[];
extern const char kIncognito[];
+extern const char kEnableIncognitoSnapshotsInAndroidRecents[];
extern const char kInstallAutogeneratedTheme[];
extern const char kInstallChromeApp[];
extern const char kInstallSupervisedUserAllowlists[];
extern const char kInstantProcess[];
--
2.17.1

View file

@ -6,28 +6,34 @@ Accessible from proxy settings and chrome://proxy
Allows to use a PAC script URL, automatic configuration and explicit proxy
settings.
Offer auto-complete for the proxy page URL.
Store proxy settings in LocalState instead of Profile, so that proxy is used
for SimpleURLLoaders as well.
---
chrome/android/java/res/values/values.xml | 3 +
.../java/res/xml/privacy_preferences.xml | 4 +
.../privacy/settings/PrivacySettings.java | 5 +-
.../chrome_autocomplete_provider_client.cc | 2 +
chrome/browser/browser_resources.grd | 6 +
chrome/browser/net/proxy_service_factory.cc | 23 +-
chrome/browser/net/proxy_service_factory.h | 3 +
chrome/browser/prefs/browser_prefs.cc | 4 +
.../prefs/chrome_command_line_pref_store.cc | 2 +-
chrome/browser/resources/proxy_config.css | 61 +++
chrome/browser/resources/proxy_config.html | 79 ++++
chrome/browser/resources/proxy_config.js | 262 +++++++++++
chrome/browser/resources/proxy_config.html | 80 ++++
chrome/browser/resources/proxy_config.js | 263 +++++++++++
chrome/browser/ui/BUILD.gn | 2 +
.../webui/chrome_web_ui_controller_factory.cc | 3 +
chrome/browser/ui/webui/proxy_config_ui.cc | 413 ++++++++++++++++++
chrome/browser/ui/webui/proxy_config_ui.cc | 417 ++++++++++++++++++
chrome/browser/ui/webui/proxy_config_ui.h | 33 ++
chrome/common/webui_url_constants.cc | 4 +
chrome/common/webui_url_constants.h | 2 +
.../core/browser/proxy_policy_handler.cc | 2 +-
.../proxy_config/proxy_config_dictionary.cc | 22 +-
.../proxy_config/proxy_config_dictionary.h | 6 +-
.../pref_proxy_config_tracker_impl.cc | 1 +
.../proxy_config/proxy_config_dictionary.cc | 30 +-
.../proxy_config/proxy_config_dictionary.h | 7 +-
net/proxy_resolution/proxy_config.cc | 52 ++-
net/proxy_resolution/proxy_config.h | 3 +
20 files changed, 952 insertions(+), 14 deletions(-)
24 files changed, 997 insertions(+), 15 deletions(-)
create mode 100644 chrome/browser/resources/proxy_config.css
create mode 100644 chrome/browser/resources/proxy_config.html
create mode 100644 chrome/browser/resources/proxy_config.js
@ -64,27 +70,27 @@ 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
@@ -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";
@@ -51,12 +51,15 @@ public class PrivacySettings
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
+ 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,
PREF_ALWAYS_INCOGNITO,
PREF_ALLOW_CUSTOM_TAB_INTENTS,
- PREF_CLOSE_TABS_ON_EXIT
+ PREF_CLOSE_TABS_ON_EXIT,
PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS,
PREF_CLOSE_TABS_ON_EXIT,
PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX,
- PREF_ALLOW_CUSTOM_TAB_INTENTS};
+ PREF_ALLOW_CUSTOM_TAB_INTENTS,
+ 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
@@ -316,6 +316,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
@@ -332,6 +332,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
std::vector<base::string16> builtins_to_provide;
builtins_to_provide.push_back(
base::ASCIIToUTF16(chrome::kChromeUIFlagsURL));
@ -96,7 +102,7 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
--- a/chrome/browser/browser_resources.grd
+++ b/chrome/browser/browser_resources.grd
@@ -117,6 +117,12 @@
@@ -136,6 +136,12 @@
<include name="IDR_VIDEO_PLAYER_JS" file="resources\video_tutorials\video_player.js" type="BINDATA" />
</if>
@ -109,6 +115,91 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou
<if expr="not is_android">
<!-- New Tab Page -->
<part file="resources/local_ntp/icons.grdp" />
diff --git a/chrome/browser/net/proxy_service_factory.cc b/chrome/browser/net/proxy_service_factory.cc
--- a/chrome/browser/net/proxy_service_factory.cc
+++ b/chrome/browser/net/proxy_service_factory.cc
@@ -15,6 +15,9 @@
#include "content/public/browser/browser_thread.h"
#include "net/proxy_resolution/configured_proxy_resolution_service.h"
#include "net/proxy_resolution/proxy_config_service.h"
+#include "components/proxy_config/proxy_config_pref_names.h"
+#include "components/prefs/pref_service.h"
+#include "components/prefs/pref_registry_simple.h"
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "chromeos/network/proxy/proxy_config_service_impl.h"
@@ -59,7 +62,20 @@ ProxyServiceFactory::CreatePrefProxyConfigTrackerOfProfile(
return std::make_unique<chromeos::ProxyConfigServiceImpl>(
profile_prefs, local_state_prefs, nullptr);
#else
- return std::make_unique<PrefProxyConfigTrackerImpl>(profile_prefs, nullptr);
+ // Migrate from profile_prefs to local_state_prefs
+ if (local_state_prefs->GetBoolean("proxy_migrated") == false) {
+ const base::DictionaryValue* dict =
+ profile_prefs->GetDictionary(proxy_config::prefs::kProxy);
+
+ LOG(INFO) << "CreatePrefProxyConfigTrackerOfProfile: Migration from profile to local state";
+
+ const base::Value /*ProxyConfigDictionary*/ proxy_dict(dict->Clone());
+ local_state_prefs->Set(proxy_config::prefs::kProxy, proxy_dict);
+
+ local_state_prefs->SetBoolean("proxy_migrated", true);
+ local_state_prefs->CommitPendingWrite();
+ }
+ return std::make_unique<PrefProxyConfigTrackerImpl>(local_state_prefs, nullptr);
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
}
@@ -75,3 +91,8 @@ ProxyServiceFactory::CreatePrefProxyConfigTrackerOfLocalState(
nullptr);
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
}
+
+// static
+void ProxyServiceFactory::RegisterPrefs(PrefRegistrySimple* registry) {
+ registry->RegisterBooleanPref("proxy_migrated", false);
+}
diff --git a/chrome/browser/net/proxy_service_factory.h b/chrome/browser/net/proxy_service_factory.h
--- a/chrome/browser/net/proxy_service_factory.h
+++ b/chrome/browser/net/proxy_service_factory.h
@@ -8,6 +8,7 @@
#include <memory>
#include "base/macros.h"
+#include "components/prefs/pref_registry_simple.h"
class PrefProxyConfigTracker;
class PrefService;
@@ -37,6 +38,8 @@ class ProxyServiceFactory {
static std::unique_ptr<PrefProxyConfigTracker>
CreatePrefProxyConfigTrackerOfLocalState(PrefService* local_state_prefs);
+ static void RegisterPrefs(PrefRegistrySimple* registry);
+
private:
DISALLOW_IMPLICIT_CONSTRUCTORS(ProxyServiceFactory);
};
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
@@ -410,6 +410,8 @@
#include "chrome/browser/media/feeds/media_feeds_service.h"
#endif
+#include "chrome/browser/net/proxy_service_factory.h"
+
namespace {
#if BUILDFLAG(IS_CHROMEOS_ASH)
@@ -697,6 +699,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
PluginsResourceService::RegisterPrefs(registry);
#endif
+ ProxyServiceFactory::RegisterPrefs(registry);
+
#if defined(OS_ANDROID)
::android::RegisterPrefs(registry);
diff --git a/chrome/browser/prefs/chrome_command_line_pref_store.cc b/chrome/browser/prefs/chrome_command_line_pref_store.cc
--- a/chrome/browser/prefs/chrome_command_line_pref_store.cc
+++ b/chrome/browser/prefs/chrome_command_line_pref_store.cc
@ -191,7 +282,7 @@ diff --git a/chrome/browser/resources/proxy_config.html b/chrome/browser/resourc
new file mode 100644
--- /dev/null
+++ b/chrome/browser/resources/proxy_config.html
@@ -0,0 +1,79 @@
@@ -0,0 +1,80 @@
+<!doctype html>
+<html>
+<head>
@ -205,6 +296,7 @@ new file mode 100644
+<script src="chrome://resources/js/ios/web_ui.js"></script>
+</if>
+
+<script src="chrome://resources/js/assert.js"></script>
+<script src="chrome://resources/js/util.js"></script>
+<script src="chrome://resources/js/cr.js"></script>
+<script src="chrome://proxy/proxy_config.js"></script>
@ -275,7 +367,7 @@ diff --git a/chrome/browser/resources/proxy_config.js b/chrome/browser/resources
new file mode 100644
--- /dev/null
+++ b/chrome/browser/resources/proxy_config.js
@@ -0,0 +1,262 @@
@@ -0,0 +1,263 @@
+/*
+ This file is part of Bromite.
+
@ -435,7 +527,8 @@ new file mode 100644
+ return {
+ "auto_detect": false,
+ "pac_url": $(kIdPacURL).value.trim(),
+ "pac_mandatory": $(kIdPacMandatory).checked
+ "pac_mandatory": $(kIdPacMandatory).checked,
+ "rules": {}
+ };
+ } else if ($(kIdModeUseListPerScheme).checked || $(kIdModeUseSingleList).checked) {
+ var config = {
@ -541,7 +634,7 @@ new file mode 100644
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -250,6 +250,8 @@ static_library("ui") {
@@ -254,6 +254,8 @@ static_library("ui") {
"webui/metrics_handler.h",
"webui/net_export_ui.cc",
"webui/net_export_ui.h",
@ -553,15 +646,15 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
--- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
@@ -64,6 +64,7 @@
@@ -62,6 +62,7 @@
#include "chrome/browser/ui/webui/omnibox/omnibox_ui.h"
#include "chrome/browser/ui/webui/policy_ui.h"
#include "chrome/browser/ui/webui/policy/policy_ui.h"
#include "chrome/browser/ui/webui/predictors/predictors_ui.h"
+#include "chrome/browser/ui/webui/proxy_config_ui.h"
#include "chrome/browser/ui/webui/quota_internals/quota_internals_ui.h"
#include "chrome/browser/ui/webui/settings/settings_ui.h"
#include "chrome/browser/ui/webui/settings_utils.h"
@@ -507,6 +508,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
#include "chrome/browser/ui/webui/settings/settings_utils.h"
@@ -545,6 +546,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
return &NewWebUI<MemoryInternalsUI>;
if (url.host_piece() == chrome::kChromeUINetExportHost)
return &NewWebUI<NetExportUI>;
@ -574,7 +667,7 @@ diff --git a/chrome/browser/ui/webui/proxy_config_ui.cc b/chrome/browser/ui/webu
new file mode 100644
--- /dev/null
+++ b/chrome/browser/ui/webui/proxy_config_ui.cc
@@ -0,0 +1,413 @@
@@ -0,0 +1,417 @@
+/*
+ This file is part of Bromite.
+
@ -675,7 +768,7 @@ new file mode 100644
+
+ private:
+ // Not owned.
+ Profile *profile_;
+ PrefService *pref_service_;
+ std::unique_ptr<net::ProxyConfigService> proxy_config_service_;
+ // Monitors global and Profile prefs related to proxy configuration.
+ std::unique_ptr<PrefProxyConfigTracker> pref_proxy_config_tracker_;
@ -695,7 +788,7 @@ new file mode 100644
+ weak_ptr_factory_(this) {
+
+ // used to set new configuration preferences
+ profile_ = profile->GetOriginalProfile();
+ pref_service_ = g_browser_process->local_state();
+ // observer is explicitly added only later in enableNotifyUIWithState
+ is_observing_ = false;
+
@ -759,12 +852,16 @@ new file mode 100644
+
+ state.SetPath({"config", "auto_detect"}, base::Value(config.auto_detect()));
+
+ auto rules = config.proxy_rules();
+ if (config.has_pac_url()) {
+ state.SetPath({"config", "pac_url"}, base::Value(config.pac_url().spec()));
+ state.SetPath({"config", "pac_mandatory"}, base::Value(config.pac_mandatory()));
+ state.SetPath({"config", "rules", "type"}, base::Value("none"));
+ state.SetPath({"config", "rules", "bypass_rules"}, base::Value(rules.bypass_rules.ToString()));
+ state.SetPath({"config", "rules", "reverse_bypass"}, base::Value(rules.reverse_bypass));
+ return;
+ }
+
+ auto rules = config.proxy_rules();
+ const char *type;
+ switch (rules.type) {
+ case net::ProxyConfig::ProxyRules::Type::EMPTY:
@ -833,7 +930,7 @@ new file mode 100644
+ auto availability = proxy_config_service_->GetLatestProxyConfig(&config);
+
+ const base::DictionaryValue* dict =
+ profile_->GetPrefs()->GetDictionary(proxy_config::prefs::kProxy);
+ pref_service_->GetDictionary(proxy_config::prefs::kProxy);
+ ProxyConfigDictionary proxy_dict(dict->Clone());
+ ProxyPrefs::ProxyMode mode;
+ if (!proxy_dict.GetMode(&mode) || mode == ProxyPrefs::MODE_SYSTEM) {
@ -847,8 +944,8 @@ new file mode 100644
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
+
+ const base::Value cfg = ProxyConfigDictionary::CreateSystem();
+ profile_->GetPrefs()->Set(proxy_config::prefs::kProxy, cfg);
+ profile_->GetPrefs()->CommitPendingWrite();
+ pref_service_->Set(proxy_config::prefs::kProxy, cfg);
+ pref_service_->CommitPendingWrite();
+ OnEnableNotifyUIWithState(nullptr);
+}
+
@ -958,13 +1055,13 @@ new file mode 100644
+void ProxyConfigMessageHandler::apply(const net::ProxyConfig& proxyConfig) {
+ if (proxyConfig.auto_detect()) {
+ const base::Value cfg = ProxyConfigDictionary::CreateAutoDetect();
+ profile_->GetPrefs()->Set(proxy_config::prefs::kProxy, cfg);
+ pref_service_->Set(proxy_config::prefs::kProxy, cfg);
+ } else if (proxyConfig.has_pac_url()) {
+ const base::Value cfg = ProxyConfigDictionary::CreatePacScript(proxyConfig.pac_url().spec(), proxyConfig.pac_mandatory());
+ profile_->GetPrefs()->Set(proxy_config::prefs::kProxy, cfg);
+ pref_service_->Set(proxy_config::prefs::kProxy, cfg);
+ } else if (proxyConfig.proxy_rules().type == net::ProxyConfig::ProxyRules::Type::EMPTY) {
+ const base::Value cfg = ProxyConfigDictionary::CreateDirect();
+ profile_->GetPrefs()->Set(proxy_config::prefs::kProxy, cfg);
+ pref_service_->Set(proxy_config::prefs::kProxy, cfg);
+ } else {
+ auto proxyRulesAsString = proxyConfig.proxy_rules().ToString();
+ auto bypassRulesAsString = proxyConfig.proxy_rules().bypass_rules.ToString();
@ -972,9 +1069,9 @@ new file mode 100644
+ // fixed servers
+ const base::Value cfg = ProxyConfigDictionary::CreateFixedServers(proxyRulesAsString,
+ bypassRulesAsString, proxyConfig.proxy_rules().reverse_bypass);
+ profile_->GetPrefs()->Set(proxy_config::prefs::kProxy, cfg);
+ pref_service_->Set(proxy_config::prefs::kProxy, cfg);
+ }
+ profile_->GetPrefs()->CommitPendingWrite();
+ pref_service_->CommitPendingWrite();
+ OnEnableNotifyUIWithState(nullptr);
+}
+
@ -1029,7 +1126,7 @@ new file mode 100644
diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc
--- a/chrome/common/webui_url_constants.cc
+++ b/chrome/common/webui_url_constants.cc
@@ -32,6 +32,8 @@ const char kChromeUICertificateViewerHost[] = "view-cert";
@@ -33,6 +33,8 @@ const char kChromeUICertificateViewerHost[] = "view-cert";
const char kChromeUICertificateViewerURL[] = "chrome://view-cert/";
const char kChromeUIChromeSigninHost[] = "chrome-signin";
const char kChromeUIChromeSigninURL[] = "chrome://chrome-signin/";
@ -1038,7 +1135,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";
@@ -321,6 +323,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
@@ -325,6 +327,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
kChromeUIMobileSetupHost,
kChromeUIMultiDeviceSetupHost,
kChromeUINetworkHost,
@ -1046,9 +1143,9 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
kChromeUIOobeHost,
kChromeUIOSCreditsHost,
kChromeUIOSSettingsHost,
@@ -511,6 +514,7 @@ const char* const kChromeHostURLs[] = {
@@ -523,6 +526,7 @@ const char* const kChromeHostURLs[] = {
#if !defined(OS_ANDROID)
#if !defined(OS_CHROMEOS)
#if !BUILDFLAG(IS_CHROMEOS_ASH)
kChromeUIAppLauncherPageHost,
+ kChromeUIProxyConfigHost,
#endif
@ -1078,6 +1175,17 @@ diff --git a/components/policy/core/browser/proxy_policy_handler.cc b/components
}
break;
}
diff --git a/components/proxy_config/pref_proxy_config_tracker_impl.cc b/components/proxy_config/pref_proxy_config_tracker_impl.cc
--- a/components/proxy_config/pref_proxy_config_tracker_impl.cc
+++ b/components/proxy_config/pref_proxy_config_tracker_impl.cc
@@ -380,6 +380,7 @@ bool PrefProxyConfigTrackerImpl::PrefConfigToNetConfig(
if (proxy_dict.GetBypassList(&proxy_bypass)) {
proxy_config.proxy_rules().bypass_rules.ParseFromString(proxy_bypass);
}
+ proxy_config.proxy_rules().reverse_bypass = proxy_dict.HasReverseBypass();
*config = net::ProxyConfigWithAnnotation(
proxy_config, kSettingsProxyConfigTrafficAnnotation);
return true;
diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/proxy_config/proxy_config_dictionary.cc
--- a/components/proxy_config/proxy_config_dictionary.cc
+++ b/components/proxy_config/proxy_config_dictionary.cc
@ -1090,7 +1198,22 @@ diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/pro
} // namespace
@@ -79,29 +81,30 @@ const base::Value& ProxyConfigDictionary::GetDictionary() const {
@@ -72,6 +74,14 @@ bool ProxyConfigDictionary::HasBypassList() const {
return dict_.FindKey(kProxyBypassList);
}
+bool ProxyConfigDictionary::HasReverseBypass() const {
+ const base::Value* value = dict_.FindKey(kProxyReverseBypass);
+ if (!value || !value->is_bool()) {
+ return false;
+ }
+ return value->GetBool();
+}
+
const base::Value& ProxyConfigDictionary::GetDictionary() const {
return dict_;
}
@@ -79,29 +89,30 @@ const base::Value& ProxyConfigDictionary::GetDictionary() const {
// static
base::Value ProxyConfigDictionary::CreateDirect() {
return CreateDictionary(ProxyPrefs::MODE_DIRECT, std::string(), false,
@ -1126,7 +1249,7 @@ diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/pro
} else {
return CreateDirect();
}
@@ -110,7 +113,7 @@ base::Value ProxyConfigDictionary::CreateFixedServers(
@@ -110,7 +121,7 @@ base::Value ProxyConfigDictionary::CreateFixedServers(
// static
base::Value ProxyConfigDictionary::CreateSystem() {
return CreateDictionary(ProxyPrefs::MODE_SYSTEM, std::string(), false,
@ -1135,7 +1258,7 @@ diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/pro
}
// static
@@ -119,7 +122,8 @@ base::Value ProxyConfigDictionary::CreateDictionary(
@@ -119,7 +130,8 @@ base::Value ProxyConfigDictionary::CreateDictionary(
const std::string& pac_url,
bool pac_mandatory,
const std::string& proxy_server,
@ -1145,7 +1268,7 @@ diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/pro
base::Value dict(base::Value::Type::DICTIONARY);
dict.SetKey(kProxyMode, base::Value(ProxyModeToString(mode)));
if (!pac_url.empty()) {
@@ -128,8 +132,10 @@ base::Value ProxyConfigDictionary::CreateDictionary(
@@ -128,8 +140,10 @@ base::Value ProxyConfigDictionary::CreateDictionary(
}
if (!proxy_server.empty())
dict.SetKey(kProxyServer, base::Value(proxy_server));
@ -1160,7 +1283,15 @@ diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/pro
diff --git a/components/proxy_config/proxy_config_dictionary.h b/components/proxy_config/proxy_config_dictionary.h
--- a/components/proxy_config/proxy_config_dictionary.h
+++ b/components/proxy_config/proxy_config_dictionary.h
@@ -46,7 +46,8 @@ class PROXY_CONFIG_EXPORT ProxyConfigDictionary {
@@ -38,6 +38,7 @@ class PROXY_CONFIG_EXPORT ProxyConfigDictionary {
bool GetProxyServer(std::string* out) const;
bool GetBypassList(std::string* out) const;
bool HasBypassList() const;
+ bool HasReverseBypass() const;
const base::Value& GetDictionary() const;
@@ -46,7 +47,8 @@ class PROXY_CONFIG_EXPORT ProxyConfigDictionary {
static base::Value CreatePacScript(const std::string& pac_url,
bool pac_mandatory);
static base::Value CreateFixedServers(const std::string& proxy_server,
@ -1170,7 +1301,7 @@ diff --git a/components/proxy_config/proxy_config_dictionary.h b/components/prox
static base::Value CreateSystem();
// Encodes the proxy server as "<url-scheme>=<proxy-scheme>://<proxy>".
@@ -62,7 +63,8 @@ class PROXY_CONFIG_EXPORT ProxyConfigDictionary {
@@ -62,7 +64,8 @@ class PROXY_CONFIG_EXPORT ProxyConfigDictionary {
const std::string& pac_url,
bool pac_mandatory,
const std::string& proxy_server,

View file

@ -9,21 +9,20 @@ Enable incognito custom tabs and fix crashes for incognito/custom tab intents (c
---
chrome/android/chrome_java_sources.gni | 1 +
.../java/res/xml/privacy_preferences.xml | 5 ++
.../AlwaysIncognitoLinkInterceptor.java | 74 +++++++++++++++++++
.../AlwaysIncognitoLinkInterceptor.java | 80 +++++++++++++++++++
.../chrome/browser/ChromeTabbedActivity.java | 6 +-
.../chrome/browser/app/ChromeActivity.java | 4 +
.../AppMenuPropertiesDelegateImpl.java | 6 ++
.../ChromeContextMenuPopulator.java | 9 ++-
.../CustomTabIntentDataProvider.java | 5 +-
.../browser/init/StartupTabPreloader.java | 11 ++-
.../privacy/settings/PrivacySettings.java | 4 +-
.../browser/init/StartupTabPreloader.java | 14 +++-
.../privacy/settings/PrivacySettings.java | 2 +
.../browser/tabmodel/ChromeTabCreator.java | 16 +++-
.../tabmodel/TabModelSelectorBase.java | 8 ++
.../browser/tabmodel/TabPersistentStore.java | 10 +++
.../webapps/WebappIntentDataProvider.java | 14 ++++
.../flags/android/chrome_feature_list.cc | 2 +-
.../strings/android_chrome_strings.grd | 7 ++
16 files changed, 172 insertions(+), 10 deletions(-)
15 files changed, 172 insertions(+), 9 deletions(-)
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
@ -35,8 +34,8 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
chrome_java_sources = [
+ "java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java",
"java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java",
"java/src/com/google/ipc/invalidation/ticl/android2/channel/GcmRegistrationTaskService.java",
"java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
"java/src/org/chromium/chrome/browser/AfterStartupTaskUtils.java",
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
@ -56,7 +55,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognito
new file mode 100644
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
@@ -0,0 +1,74 @@
@@ -0,0 +1,80 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
@ -72,6 +71,7 @@ new file mode 100644
+import org.chromium.chrome.browser.tab.TabLaunchType;
+import org.chromium.chrome.browser.tabmodel.TabModel;
+import org.chromium.content_public.browser.LoadUrlParams;
+import org.chromium.url.GURL;
+
+import java.util.HashMap;
+import java.util.HashSet;
@ -106,14 +106,17 @@ new file mode 100644
+ }
+
+ @Override
+ public void onUpdateUrl(final Tab tab, final String url) {
+ public void onUpdateUrl(Tab tab, GURL gurl) {
+
+ if (tab == null) return;
+ if (url == null) return;
+ if (gurl == null) return;
+ if (tab.isIncognito()) return;
+ if (alwaysIncognitoContainer == null) return;
+
+ final String lastUrl = lastUrls.put(tab, url);
+ String spec = gurl.getValidSpecOrEmpty();
+ if (spec == null) return;
+
+ final String lastUrl = lastUrls.put(tab, spec);
+
+ if (!alwaysIncognitoContainer.getBoolean(PREF_ALWAYS_INCOGNITO, false)) return;
+ if (revertingTabs.contains(tab)) {
@ -121,9 +124,11 @@ new file mode 100644
+ return;
+ }
+
+ ((ChromeTabbedActivity)tab.getWindowAndroid().getActivity().get()).getTabCreator(true).createNewTab(new LoadUrlParams(url), TabLaunchType.FROM_LINK, tab);
+ ((ChromeTabbedActivity)tab.getWindowAndroid().getActivity().get())
+ .getTabCreator(true)
+ .createNewTab(new LoadUrlParams(spec), TabLaunchType.FROM_LINK, tab);
+
+ if ((url.equals(lastUrl)) || (!tab.canGoBack())) {
+ if ((spec.equals(lastUrl)) || (!tab.canGoBack())) {
+ // this call was triggered by a reload
+ } else {
+ revertingTabs.add(tab);
@ -134,15 +139,15 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -49,6 +49,7 @@ import org.chromium.base.supplier.OneshotSupplierImpl;
import org.chromium.base.supplier.Supplier;
@@ -54,6 +54,7 @@ import org.chromium.base.supplier.Supplier;
import org.chromium.base.task.PostTask;
import org.chromium.cc.input.BrowserControlsState;
import org.chromium.chrome.R;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate;
import org.chromium.chrome.browser.IntentHandler.TabOpenType;
import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout;
@@ -1556,8 +1557,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -1633,8 +1634,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 +162,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -86,6 +86,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchFieldTrial;
@@ -88,6 +88,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchFieldTrial;
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager;
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager.ContextualSearchTabPromotionDelegate;
import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsModule;
@ -165,7 +170,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.chrome.browser.dependency_injection.ChromeActivityComponent;
import org.chromium.chrome.browser.dependency_injection.ModuleFactoryOverrides;
import org.chromium.chrome.browser.device.DeviceClassManager;
@@ -1539,6 +1540,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -1590,6 +1591,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
throw new IllegalStateException(
"Attempting to access TabCreator before initialization");
}
@ -178,7 +183,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
@@ -429,6 +429,12 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -539,6 +539,12 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
}
private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) {
@ -194,8 +199,8 @@ 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
@@ -33,7 +33,9 @@ import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.NativeMethods;
@@ -29,7 +29,9 @@ import androidx.annotation.VisibleForTesting;
import org.chromium.base.ContextUtils;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.supplier.Supplier;
+import org.chromium.base.ContextUtils;
@ -203,27 +208,27 @@ 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.contextmenu.RevampedContextMenuCoordinator.ListItemType;
@@ -401,7 +403,12 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
import org.chromium.chrome.browser.contextmenu.ChromeContextMenuPopulator.ContextMenuUma.Action;
@@ -372,7 +374,12 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
if (FirstRunStatus.getFirstRunFlowComplete() && !isEmptyUrl(mParams.getUrl())
&& UrlUtilities.isAcceptedScheme(mParams.getUrl())) {
&& UrlUtilities.isAcceptedScheme(mParams.getUrl().getSpec())) {
if (mMode == ContextMenuMode.NORMAL) {
- linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB));
+ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)
+ && !mDelegate.isIncognito()) {
+ && !mItemDelegate.isIncognito()) {
+ // disallow open in new tab
+ } else
+ linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB));
+
if (!mDelegate.isIncognito() && mDelegate.isIncognitoSupported()) {
if (!mItemDelegate.isIncognito() && mItemDelegate.isIncognitoSupported()) {
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
@@ -53,6 +53,9 @@ import org.chromium.components.embedder_support.util.UrlConstants;
@@ -48,6 +48,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable;
import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.device.mojom.ScreenOrientationLockType;
import org.chromium.ui.util.ColorUtils;
+import org.chromium.base.ContextUtils;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
@ -231,7 +236,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
@@ -779,7 +782,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
@@ -781,7 +784,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
@Override
public boolean isIncognito() {
@ -253,21 +258,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTab
/**
* This class attempts to preload the tab if the url is known from the intent when the profile
* is created. This is done to improve startup latency.
@@ -195,9 +198,11 @@ public class StartupTabPreloader implements ProfileManager.Observer, Destroyable
@@ -195,10 +198,15 @@ public class StartupTabPreloader implements ProfileManager.Observer, Destroyable
Intent intent = mIntentSupplier.get();
GURL url = UrlFormatter.fixupUrl(getUrlFromIntent(intent));
+ boolean isIncognito = ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false);
+
+ Profile profile = Profile.getLastUsedRegularProfile();
ChromeTabCreator chromeTabCreator =
- (ChromeTabCreator) mTabCreatorManager.getTabCreator(false);
- WebContents webContents = WebContentsFactory.createWebContents(false, false);
+ (ChromeTabCreator) mTabCreatorManager.getTabCreator(isIncognito);
+ WebContents webContents = WebContentsFactory.createWebContents(isIncognito, false);
WebContents webContents =
- WebContentsFactory.createWebContents(Profile.getLastUsedRegularProfile(), false);
+ WebContentsFactory.createWebContents(
+ isIncognito ? profile.getPrimaryOTRProfile() : profile,
+ false);
mLoadUrlParams = new LoadUrlParams(url.getValidSpecOrEmpty());
String referrer = IntentHandler.getReferrerUrlIncludingExtraHeaders(intent);
@@ -211,7 +216,7 @@ public class StartupTabPreloader implements ProfileManager.Observer, Destroyable
@@ -212,7 +220,7 @@ public class StartupTabPreloader implements ProfileManager.Observer, Destroyable
// Create a detached tab, but don't add it to the tab model yet. We'll do that
// later if the loadUrlParams etc... match.
mTab = TabBuilder.createLiveTab(false)
@ -279,23 +288,26 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTab
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
@@ -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";
@@ -39,6 +39,7 @@ import org.chromium.ui.text.SpanApplier;
*/
public class PrivacySettings
extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener {
+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito";
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
private static final String PREF_SECURE_DNS = "secure_dns";
@@ -46,6 +47,7 @@ public class PrivacySettings
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
private static final String[] NEW_PRIVACY_PREFERENCE_ORDER = {PREF_CLEAR_BROWSING_DATA,
+ PREF_ALWAYS_INCOGNITO,
PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS,
- PREF_SECURE_DNS, PREF_DO_NOT_TRACK
+ PREF_SECURE_DNS, PREF_DO_NOT_TRACK,
+ PREF_ALWAYS_INCOGNITO
};
PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX};
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
@@ -39,6 +39,10 @@ import org.chromium.ui.base.PageTransition;
@@ -40,6 +40,10 @@ import org.chromium.ui.base.PageTransition;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.url.GURL;
@ -306,7 +318,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
/**
* This class creates various kinds of new tabs and adds them to the right {@link TabModel}.
*/
@@ -59,6 +63,7 @@ public class ChromeTabCreator extends TabCreator {
@@ -61,6 +65,7 @@ public class ChromeTabCreator extends TabCreator {
private final ChromeActivity mActivity;
private final StartupTabPreloader mStartupTabPreloader;
private final boolean mIncognito;
@ -314,7 +326,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
private WindowAndroid mNativeWindow;
private TabModel mTabModel;
@@ -77,6 +82,10 @@ public class ChromeTabCreator extends TabCreator {
@@ -79,6 +84,10 @@ public class ChromeTabCreator extends TabCreator {
mNativeWindow = nativeWindow;
mTabDelegateFactorySupplier = tabDelegateFactory;
mIncognito = incognito;
@ -325,7 +337,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
mOverviewNTPCreator = overviewNTPCreator;
mAsyncTabParamsManager = asyncTabParamsManager;
}
@@ -229,6 +238,8 @@ public class ChromeTabCreator extends TabCreator {
@@ -232,6 +241,8 @@ public class ChromeTabCreator extends TabCreator {
if (creationState == TabCreationState.LIVE_IN_FOREGROUND && !openInForeground) {
creationState = TabCreationState.LIVE_IN_BACKGROUND;
}
@ -334,7 +346,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
mTabModel.addTab(tab, position, type, creationState);
return tab;
} finally {
@@ -263,6 +274,8 @@ public class ChromeTabCreator extends TabCreator {
@@ -266,6 +277,8 @@ public class ChromeTabCreator extends TabCreator {
@TabCreationState
int creationState = openInForeground ? TabCreationState.LIVE_IN_FOREGROUND
: TabCreationState.LIVE_IN_BACKGROUND;
@ -343,7 +355,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
mTabModel.addTab(tab, position, type, creationState);
return true;
}
@@ -306,7 +319,6 @@ public class ChromeTabCreator extends TabCreator {
@@ -309,7 +322,6 @@ public class ChromeTabCreator extends TabCreator {
// TODO(crbug.com/1081924): Clean up the launches from SearchActivity/Chrome.
public Tab launchUrlFromExternalApp(String url, String referer, String headers, String appId,
boolean forceNewTab, Intent intent, long intentTimestamp) {
@ -351,46 +363,27 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
boolean isLaunchedFromChrome = TextUtils.equals(appId, mActivity.getPackageName());
if (forceNewTab && !isLaunchedFromChrome) {
@@ -415,6 +427,8 @@ public class ChromeTabCreator extends TabCreator {
@@ -423,6 +435,8 @@ public class ChromeTabCreator extends TabCreator {
.setSerializedCriticalPersistedTabData(serializedCriticalPersistedTabData)
.build();
}
+ if (mExtraLogic != null)
+ tab.addObserver(mExtraLogic);
if (state.isIncognito() != mIncognito) {
if (isIncognito != mIncognito) {
throw new IllegalStateException("Incognito state mismatch. TabState: "
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/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
@@ -251,7 +251,15 @@ public abstract class TabModelSelectorBase implements TabModelSelector, Incognit
public void markTabStateInitialized() {
if (mTabStateInitialized) return;
mTabStateInitialized = true;
+
for (TabModelSelectorObserver listener : mObservers) listener.onTabStateInitialized();
+
+ if (mStartIncognito) {
+ // profile is not set in always-incognito mode in TabModelSelectorProfileSupplier
+ // so force it
+ selectModel(false); // restore model so next call always set incognito mode
+ selectModel(true);
+ }
}
@Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
@@ -16,6 +16,7 @@ import androidx.annotation.VisibleForTesting;
import androidx.core.util.AtomicFile;
@@ -17,6 +17,7 @@ import androidx.core.util.AtomicFile;
import org.chromium.base.Callback;
import org.chromium.base.CallbackController;
+import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
import org.chromium.base.ObserverList;
import org.chromium.base.StreamUtil;
@@ -49,6 +50,8 @@ import org.chromium.components.embedder_support.util.UrlConstants;
@@ -51,6 +52,8 @@ import org.chromium.components.embedder_support.util.UrlUtilities;
import org.chromium.content_public.browser.LoadUrlParams;
import org.chromium.content_public.browser.UiThreadTaskTraits;
@ -399,10 +392,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -597,6 +600,13 @@ public class TabPersistentStore extends TabPersister {
@@ -615,6 +618,13 @@ public class TabPersistentStore extends TabPersister {
}
}
}
+ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)) {
+ if (!isIncognito) {
+ Log.w(TAG, "Failed to restore tab: not in incognito mode.");
@ -446,7 +439,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI
}
@Override
@@ -129,6 +138,11 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
@@ -138,6 +147,11 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
return mWebApkExtras;
}
@ -461,19 +454,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -347,7 +347,7 @@ const base::Feature kCCTExternalLinkHandling{"CCTExternalLinkHandling",
base::FEATURE_ENABLED_BY_DEFAULT};
@@ -394,7 +394,7 @@ const base::Feature kCCTIncognito{"CCTIncognito",
base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kCCTIncognito{"CCTIncognito",
- base::FEATURE_DISABLED_BY_DEFAULT};
+ base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kCCTIncognitoAvailableToThirdParty{
- "CCTIncognitoAvailableToThirdParty", base::FEATURE_DISABLED_BY_DEFAULT};
+ "CCTIncognitoAvailableToThirdParty", base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kCCTPostMessageAPI{"CCTPostMessageAPI",
base::FEATURE_ENABLED_BY_DEFAULT};
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -803,6 +803,13 @@ Your Google account may have other forms of browsing history like searches and a
@@ -844,6 +844,13 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_CLEAR_BROWSING_HISTORY_SUMMARY" desc="A text for the basic tab explaining browsing history.">
Clears history and autocompletions in the address bar.
</message>

View file

@ -7,33 +7,34 @@ Reduce permissions needed for bookmarks import/export
Completely remove contacts picker permission from the file dialog
---
chrome/android/java/AndroidManifest.xml | 1 -
.../res/menu/bookmark_action_bar_menu.xml | 14 ++
.../res/menu/bookmark_action_bar_menu.xml | 14 +
.../browser/bookmarks/BookmarkActionBar.java | 12 +
.../browser/bookmarks/BookmarkActivity.java | 15 ++
.../browser/bookmarks/BookmarkBridge.java | 47 ++++
.../browser/bookmarks/BookmarkActivity.java | 23 ++
.../browser/bookmarks/BookmarkBridge.java | 63 +++++
.../browser/bookmarks/BookmarkDelegate.java | 10 +
.../browser/bookmarks/BookmarkManager.java | 19 ++
.../browser/bookmarks/BookmarkPage.java | 1 +
.../browser/bookmarks/BookmarkPage.java | 5 +-
.../native_page/NativePageFactory.java | 3 +-
chrome/browser/BUILD.gn | 6 +-
.../android/bookmarks/bookmark_bridge.cc | 217 ++++++++++++++++++
.../android/bookmarks/bookmark_bridge.h | 20 +-
.../android/bookmarks/bookmark_bridge.cc | 242 ++++++++++++++++++
.../android/bookmarks/bookmark_bridge.h | 24 +-
chrome/browser/importer/profile_writer.cc | 12 +
chrome/browser/importer/profile_writer.h | 6 +
.../strings/android_chrome_strings.grd | 6 +
chrome/common/BUILD.gn | 3 +
chrome/utility/BUILD.gn | 7 +-
.../utility/importer/bookmark_html_reader.cc | 27 ++-
.../utility/importer/bookmark_html_reader.cc | 27 +-
.../utility/importer/bookmark_html_reader.h | 8 +
.../chromium/ui/base/SelectFileDialog.java | 18 +-
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(+), 12 deletions(-)
23 files changed, 505 insertions(+), 14 deletions(-)
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
@@ -38,7 +38,6 @@ by a child template that "extends" this file.
@@ -39,7 +39,6 @@ by a child template that "extends" this file.
{% endif %}
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH"/>
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_ADMIN"/>
@ -111,7 +112,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/BookmarkActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActivity.java
@@ -13,6 +13,7 @@ import androidx.annotation.VisibleForTesting;
@@ -15,6 +15,7 @@ import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.SnackbarActivity;
import org.chromium.components.bookmarks.BookmarkId;
import org.chromium.components.embedder_support.util.UrlConstants;
@ -119,7 +120,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/**
* The activity that displays the bookmark UI on the phone. It keeps a {@link BookmarkManager}
@@ -22,6 +23,7 @@ import org.chromium.components.embedder_support.util.UrlConstants;
@@ -24,6 +25,7 @@ import org.chromium.components.embedder_support.util.UrlConstants;
public class BookmarkActivity extends SnackbarActivity {
private BookmarkManager mBookmarkManager;
@ -127,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
static final int EDIT_BOOKMARK_REQUEST_CODE = 14;
public static final String INTENT_VISIT_BOOKMARK_ID = "BookmarkEditActivity.VisitBookmarkId";
@@ -33,6 +35,18 @@ public class BookmarkActivity extends SnackbarActivity {
@@ -38,6 +40,18 @@ public class BookmarkActivity extends SnackbarActivity {
if (TextUtils.isEmpty(url)) url = UrlConstants.BOOKMARKS_URL;
mBookmarkManager.updateForUrl(url);
setContentView(mBookmarkManager.getView());
@ -146,7 +147,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
}
@Override
@@ -49,6 +63,7 @@ public class BookmarkActivity extends SnackbarActivity {
@@ -54,6 +68,7 @@ public class BookmarkActivity extends SnackbarActivity {
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
@ -154,24 +155,41 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
if (requestCode == EDIT_BOOKMARK_REQUEST_CODE && resultCode == RESULT_OK) {
BookmarkId bookmarkId = BookmarkId.getBookmarkIdFromString(data.getStringExtra(
INTENT_VISIT_BOOKMARK_ID));
@@ -61,6 +76,14 @@ public class BookmarkActivity extends SnackbarActivity {
}
}
+ @Override
+ public void onRequestPermissionsResult(
+ int requestCode, String[] permissions, int[] grantResults) {
+ if (mWindowAndroid.handlePermissionResult(requestCode, permissions, grantResults))
+ return;
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+ }
+
/**
* @return The {@link BookmarkManager} for testing purposes.
*/
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
@@ -4,7 +4,11 @@
@@ -4,7 +4,13 @@
package org.chromium.chrome.browser.bookmarks;
+import android.content.Intent;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.net.Uri;
import android.os.SystemClock;
+import android.provider.Browser;
+import android.Manifest.permission;
import android.text.TextUtils;
import android.util.Pair;
@@ -26,6 +30,11 @@ import org.chromium.components.url_formatter.SchemeDisplay;
import org.chromium.components.url_formatter.UrlFormatter;
@@ -27,6 +33,11 @@ import org.chromium.components.url_formatter.UrlFormatter;
import org.chromium.content_public.browser.WebContents;
import org.chromium.url.GURL;
+import org.chromium.chrome.browser.document.ChromeLauncherActivity;
+import org.chromium.chrome.browser.IntentHandler;
@ -181,7 +199,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
import java.util.ArrayList;
import java.util.List;
@@ -561,6 +570,24 @@ public class BookmarkBridge {
@@ -585,6 +596,38 @@ public class BookmarkBridge {
mNativeBookmarkBridge, BookmarkBridge.this, id.getId(), id.getType());
}
@ -198,15 +216,29 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
+ * Export bookmarks to a path selected by the user.
+ * @param window The current window of the bookmarks activity or page.
+ */
+ public void exportBookmarks() {
+ public void exportBookmarks(WindowAndroid window) {
+ assert mIsNativeBookmarkModelLoaded;
+ // check if we have the correct write permission
+ if (window.hasPermission(permission.WRITE_EXTERNAL_STORAGE)) {
+ exportBookmarksImpl();
+ } else {
+ String[] requestPermissions = new String[] {permission.WRITE_EXTERNAL_STORAGE};
+ window.requestPermissions(requestPermissions, (permissions, grantResults) -> {
+ if (grantResults.length >= 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+ exportBookmarksImpl();
+ }
+ });
+ };
+ }
+
+ private void exportBookmarksImpl() {
+ BookmarkBridgeJni.get().exportBookmarks(mNativeBookmarkBridge, BookmarkBridge.this);
+ }
+
/**
* Synchronously gets a list of bookmarks that match the specified search query.
* @param query Keyword used for searching bookmarks.
@@ -941,6 +968,24 @@ public class BookmarkBridge {
@@ -1016,6 +1059,24 @@ public class BookmarkBridge {
depthList.add(depth);
}
@ -231,7 +263,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
private static List<Pair<Integer, Integer>> createPairsList(int[] left, int[] right) {
List<Pair<Integer, Integer>> pairList = new ArrayList<Pair<Integer, Integer>>();
for (int i = 0; i < left.length; i++) {
@@ -1008,6 +1053,8 @@ public class BookmarkBridge {
@@ -1083,6 +1144,8 @@ public class BookmarkBridge {
int getChildCount(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type);
void getChildIDs(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type,
List<BookmarkId> bookmarksList);
@ -263,23 +295,23 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
@@ -32,6 +32,7 @@ import org.chromium.components.browser_ui.util.ConversionUtils;
@@ -33,6 +33,7 @@ import org.chromium.components.browser_ui.util.ConversionUtils;
import org.chromium.components.browser_ui.widget.dragreorder.DragStateDelegate;
import org.chromium.components.browser_ui.widget.selectable_list.SelectableListLayout;
import org.chromium.components.browser_ui.widget.selectable_list.SelectableListToolbar.SearchDelegate;
+import org.chromium.ui.base.ActivityWindowAndroid;
import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate;
import org.chromium.components.favicon.LargeIconBridge;
import org.chromium.url.GURL;
@@ -52,6 +53,7 @@ public class BookmarkManager
private Activity mActivity;
@@ -55,6 +56,7 @@ public class BookmarkManager
private ComponentName mOpenBookmarkComponentName;
private ViewGroup mMainView;
private BookmarkModel mBookmarkModel;
+ private ActivityWindowAndroid mWindowAndroid;
private BookmarkUndoController mUndoController;
private final ObserverList<BookmarkUIObserver> mUIObservers = new ObserverList<>();
private BasicNativePage mNativePage;
@@ -322,6 +324,13 @@ public class BookmarkManager
@@ -328,6 +330,13 @@ public class BookmarkManager
mNativePage = nativePage;
}
@ -293,7 +325,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/**
* @return Current URL representing the UI state of bookmark manager. If no state has been shown
* yet in this session, on phone return last used state stored in preference; on tablet
@@ -494,6 +503,16 @@ public class BookmarkManager
@@ -506,6 +515,16 @@ public class BookmarkManager
}
}
@ -304,7 +336,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
+
+ @Override
+ public void exportBookmarks() {
+ mBookmarkModel.exportBookmarks();
+ mBookmarkModel.exportBookmarks(mWindowAndroid);
+ }
+
@Override
@ -313,18 +345,46 @@ 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/BookmarkPage.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java
@@ -29,6 +29,7 @@ public class BookmarkPage extends BasicNativePage {
@@ -13,6 +13,7 @@ import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
import org.chromium.chrome.browser.ui.native_page.BasicNativePage;
import org.chromium.chrome.browser.ui.native_page.NativePageHost;
import org.chromium.components.embedder_support.util.UrlConstants;
+import org.chromium.chrome.browser.app.ChromeActivity;
mManager = new BookmarkManager(activity, false, activity.getSnackbarManager());
/**
* A native page holding a {@link BookmarkManager} on _tablet_.
@@ -29,11 +30,13 @@ public class BookmarkPage extends BasicNativePage {
* @param host A NativePageHost to load urls.
*/
public BookmarkPage(
- ComponentName componentName, SnackbarManager snackbarManager, NativePageHost host) {
+ ComponentName componentName, SnackbarManager snackbarManager, NativePageHost host,
+ ChromeActivity activity) {
super(host);
mManager = new BookmarkManager(host.getContext(), componentName, false, snackbarManager);
mManager.setBasicNativePage(this);
+ mManager.setWindow(activity.getWindowAndroid());
mTitle = host.getContext().getResources().getString(R.string.bookmarks);
initWithView(mManager.getView());
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java
@@ -95,7 +95,8 @@ public class NativePageFactory {
protected NativePage buildBookmarksPage(Tab tab) {
return new BookmarkPage(mActivity.getComponentName(), mActivity.getSnackbarManager(),
- new TabShim(tab, mActivity));
+ new TabShim(tab, mActivity),
+ mActivity);
}
protected NativePage buildDownloadsPage(Tab tab) {
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -184,6 +184,8 @@ static_library("browser") {
@@ -203,6 +203,8 @@ static_library("browser") {
"bitmap_fetcher/bitmap_fetcher_service.h",
"bitmap_fetcher/bitmap_fetcher_service_factory.cc",
"bitmap_fetcher/bitmap_fetcher_service_factory.h",
@ -333,8 +393,8 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"bluetooth/bluetooth_chooser_context.cc",
"bluetooth/bluetooth_chooser_context.h",
"bluetooth/bluetooth_chooser_context_factory.cc",
@@ -1821,6 +1823,8 @@ static_library("browser") {
"web_data_service_factory.h",
@@ -1895,6 +1897,8 @@ static_library("browser") {
"webapps/chrome_webapps_client.h",
"window_placement/window_placement_permission_context.cc",
"window_placement/window_placement_permission_context.h",
+ "importer/profile_writer.cc",
@ -342,7 +402,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
]
configs += [
@@ -3298,8 +3302,6 @@ static_library("browser") {
@@ -3439,8 +3443,6 @@ static_library("browser") {
"badging/badge_manager_factory.h",
"banners/app_banner_manager_desktop.cc",
"banners/app_banner_manager_desktop.h",
@ -354,7 +414,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
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
@@ -38,6 +38,7 @@
@@ -39,6 +39,7 @@
#include "components/bookmarks/common/android/bookmark_type.h"
#include "components/bookmarks/common/bookmark_pref_names.h"
#include "components/bookmarks/managed/managed_bookmark_service.h"
@ -362,7 +422,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
#include "components/dom_distiller/core/url_utils.h"
#include "components/prefs/pref_service.h"
#include "components/query_parser/query_parser.h"
@@ -47,6 +48,21 @@
@@ -48,6 +49,24 @@
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/web_contents.h"
@ -380,11 +440,14 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
+#include "components/search_engines/template_url.h"
+#include "components/url_formatter/url_fixer.h"
+#include "ui/android/window_android.h"
+#include "base/task/task_traits.h"
+#include "base/task/thread_pool.h"
+#include "content/public/browser/browser_task_traits.h"
+
using base::android::AttachCurrentThread;
using base::android::ConvertUTF8ToJavaString;
using base::android::ConvertUTF16ToJavaString;
@@ -63,6 +79,56 @@ using bookmarks::BookmarkNode;
@@ -64,6 +83,56 @@ using bookmarks::BookmarkNode;
using bookmarks::BookmarkType;
using content::BrowserThread;
@ -441,10 +504,10 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
namespace {
const int kInvalidId = -1;
@@ -141,6 +207,10 @@ BookmarkBridge::~BookmarkBridge() {
bookmark_model_->RemoveObserver(this);
@@ -150,6 +219,10 @@ BookmarkBridge::~BookmarkBridge() {
if (partner_bookmarks_shim_)
partner_bookmarks_shim_->RemoveObserver(this);
reading_list_manager_->RemoveObserver(this);
+ // There may be pending file dialogs, we need to tell them that we've gone
+ // away so they don't try and call back to us.
+ if (select_file_dialog_)
@ -452,7 +515,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
}
void BookmarkBridge::Destroy(JNIEnv*, const JavaParamRef<jobject>&) {
@@ -520,6 +590,153 @@ jint BookmarkBridge::GetTotalBookmarkCount(
@@ -540,6 +613,175 @@ jint BookmarkBridge::GetTotalBookmarkCount(
return count;
}
@ -529,6 +592,17 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
+
+void BookmarkBridge::FileSelected(const base::FilePath& path, int index,
+ void* params) {
+ base::ThreadPool::PostTaskAndReplyWithResult(
+ FROM_HERE, {base::TaskPriority::BEST_EFFORT, base::MayBlock()},
+ base::BindOnce(&BookmarkBridge::FileSelectedImpl,
+ base::Unretained(this),
+ path),
+ base::BindOnce(&BookmarkBridge::FileSelectedImplOnUIThread,
+ base::Unretained(this),
+ path));
+}
+
+const std::string BookmarkBridge::FileSelectedImpl(const base::FilePath& path) {
+ base::File file;
+ if (path.IsContentUri()) {
+ file = base::OpenContentUriForRead(path);
@ -537,32 +611,39 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
+ }
+ if (!file.IsValid()) {
+ select_file_dialog_->ShowToast("Cannot open bookmarks file for import");
+ return;
+ return "";
+ }
+
+ auto fileLength = file.GetLength();
+ if (-1 == fileLength) {
+ select_file_dialog_->ShowToast("Cannot read bookmarks file length");
+ return;
+ return "";
+ }
+
+ if (fileLength > 10 * 1024 * 1024) {
+ select_file_dialog_->ShowToast("Bookmark file is bigger than 10MB");
+ return;
+ return "";
+ }
+
+ std::vector<char> buffer(fileLength);
+ if (-1 == file.ReadAtCurrentPos(buffer.data(), fileLength)) {
+ select_file_dialog_->ShowToast("Could not read bookmarks file");
+ return;
+ return "";
+ }
+
+ if (buffer.empty()) {
+ select_file_dialog_->ShowToast("Empty bookmarks file");
+ return;
+ return "";
+ }
+
+ std::string contents(buffer.begin(), buffer.end());
+ return contents;
+}
+
+void BookmarkBridge::FileSelectedImplOnUIThread(const base::FilePath& path,
+ const std::string& contents) {
+ if (contents.empty())
+ return;
+
+ // the following import logic comes from BookmarksFileImporter class
+ std::vector<ImportedBookmarkEntry> bookmarks;
@ -594,10 +675,14 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
+ writer->AddKeywords(std::move(owned_template_urls), false);
+ }
+
+ select_file_dialog_->ShowToast("Bookmarks import complete");
+
+ LOG(INFO) << "Imported " << bookmarks.size() << " bookmarks and " <<
+ std::stringstream message;
+ message << "Imported " << bookmarks.size() << " bookmarks and " <<
+ search_engines.size() << " search engines from " << path.MaybeAsASCII();
+ auto result = message.str();
+
+ select_file_dialog_->ShowToast(result);
+
+ LOG(INFO) << result;
+}
+
+void BookmarkBridge::FileSelectionCanceled(void* params) {
@ -609,26 +694,27 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser/android/bookmarks/bookmark_bridge.h
--- a/chrome/browser/android/bookmarks/bookmark_bridge.h
+++ b/chrome/browser/android/bookmarks/bookmark_bridge.h
@@ -19,6 +19,8 @@
#include "components/bookmarks/browser/base_bookmark_model_observer.h"
#include "components/bookmarks/common/android/bookmark_id.h"
@@ -25,6 +25,9 @@
#include "components/prefs/pref_change_registrar.h"
#include "url/android/gurl_android.h"
+#include "components/search_engines/template_url.h"
+#include "ui/shell_dialogs/select_file_dialog.h"
+
namespace bookmarks {
class BookmarkModel;
@@ -32,7 +34,8 @@ class Profile;
// bookmark page. This fetches the bookmarks, title, urls, folder
// hierarchy.
class ManagedBookmarkService;
@@ -39,7 +42,8 @@ class Profile;
class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
- public PartnerBookmarksShim::Observer {
+ public PartnerBookmarksShim::Observer,
+ public ui::SelectFileDialog::Listener {
public PartnerBookmarksShim::Observer,
public ReadingListManager::Observer,
- public ProfileObserver {
+ public ProfileObserver,
+ public ui::SelectFileDialog::Listener {
public:
BookmarkBridge(JNIEnv* env,
const base::android::JavaRef<jobject>& obj,
@@ -48,6 +51,12 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
@@ -55,6 +59,12 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
bool IsDoingExtensiveChanges(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
@ -641,7 +727,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser
jboolean IsEditBookmarksEnabled(JNIEnv* env);
void LoadEmptyPartnerBookmarkShimForTesting(
@@ -135,6 +144,13 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
@@ -142,6 +152,13 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
jlong id,
jint type);
@ -655,8 +741,8 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser
void SetBookmarkTitle(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
jlong id,
@@ -280,12 +296,14 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
void ShimBeingDeleted(PartnerBookmarksShim* shim) override;
@@ -315,12 +332,14 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
void DestroyJavaObject();
Profile* profile_;
+ base::FilePath export_path_;
@ -670,10 +756,20 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser
// Information about the Partner bookmarks (must check for IsLoaded()).
// This is owned by profile.
@@ -332,6 +351,9 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
// Observes the profile destruction and creation.
ScopedObserver<Profile, ProfileObserver> profile_observer_{this};
+ const std::string FileSelectedImpl(const base::FilePath& path);
+ void FileSelectedImplOnUIThread(const base::FilePath& path,
+ const std::string& contents);
DISALLOW_COPY_AND_ASSIGN(BookmarkBridge);
};
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
@@ -103,12 +103,14 @@ void ProfileWriter::AddHistoryPage(const history::URLRows& page,
@@ -105,12 +105,14 @@ void ProfileWriter::AddHistoryPage(const history::URLRows& page,
HistoryServiceFactory::GetForProfile(profile_,
ServiceAccessType::EXPLICIT_ACCESS)
->AddPagesWithDetails(page, visit_source);
@ -688,7 +784,7 @@ diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer
}
void ProfileWriter::AddHomepage(const GURL& home_page) {
@@ -129,6 +131,16 @@ void ProfileWriter::AddBookmarks(
@@ -131,6 +133,16 @@ void ProfileWriter::AddBookmarks(
return;
BookmarkModel* model = BookmarkModelFactory::GetForBrowserContext(profile_);
@ -716,7 +812,7 @@ diff --git a/chrome/browser/importer/profile_writer.h b/chrome/browser/importer/
#include "components/favicon_base/favicon_usage_data.h"
#include "components/history/core/browser/history_types.h"
#include "components/search_engines/template_url_service.h"
@@ -67,6 +68,11 @@ class ProfileWriter : public base::RefCountedThreadSafe<ProfileWriter> {
@@ -70,6 +71,11 @@ class ProfileWriter : public base::RefCountedThreadSafe<ProfileWriter> {
const std::vector<ImportedBookmarkEntry>& bookmarks,
const base::string16& top_level_folder_name);
@ -747,7 +843,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
--- a/chrome/common/BUILD.gn
+++ b/chrome/common/BUILD.gn
@@ -405,6 +405,9 @@ static_library("common") {
@@ -402,6 +402,9 @@ static_library("common") {
sources += [
"media/chrome_media_drm_bridge_client.cc",
"media/chrome_media_drm_bridge_client.h",
@ -760,7 +856,7 @@ diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
--- a/chrome/utility/BUILD.gn
+++ b/chrome/utility/BUILD.gn
@@ -78,8 +78,6 @@ static_library("utility") {
@@ -73,8 +73,6 @@ static_library("utility") {
if (!is_android) {
sources += [
@ -768,8 +864,8 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
- "importer/bookmark_html_reader.h",
"importer/bookmarks_file_importer.cc",
"importer/bookmarks_file_importer.h",
"importer/edge_database_reader_win.cc",
@@ -180,6 +178,11 @@ static_library("utility") {
"importer/external_process_importer_bridge.cc",
@@ -191,6 +189,11 @@ static_library("utility") {
}
}
@ -896,7 +992,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
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 HTML_TYPE = "html";
private static final String AUDIO_TYPE = "audio";
private static final String ALL_TYPES = "*/*";
@ -961,7 +1057,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
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
@@ -198,6 +198,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDialog
@@ -204,6 +204,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDialog
void* params);
bool HasMultipleFileTypeChoices();

View file

@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
/**
* Dispatches incoming intents to the appropriate activity based on the current configuration and
* Intent fired.
@@ -242,6 +244,8 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
@@ -269,6 +271,8 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
*/
public static boolean isCustomTabIntent(Intent intent) {
if (intent == null) return false;
@ -48,24 +48,24 @@ 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
@@ -45,10 +45,12 @@ public class PrivacySettings
@@ -46,10 +46,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";
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
+ public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
private static final String[] NEW_PRIVACY_PREFERENCE_ORDER = {PREF_CLEAR_BROWSING_DATA,
PREF_ALWAYS_INCOGNITO,
PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS,
PREF_SECURE_DNS, PREF_DO_NOT_TRACK,
- PREF_ALWAYS_INCOGNITO
+ PREF_ALWAYS_INCOGNITO,
+ PREF_ALLOW_CUSTOM_TAB_INTENTS
};
- PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX};
+ PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX,
+ PREF_ALLOW_CUSTOM_TAB_INTENTS};
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
@@ -99,6 +101,10 @@ public class PrivacySettings
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
@@ -105,6 +107,10 @@ public class PrivacySettings
} else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
PrivacyPreferencesManager.getInstance().setNetworkPredictionEnabled((boolean) newValue);
PrivacyPreferencesManagerImpl.getInstance().setNetworkPredictionEnabled(
(boolean) newValue);
+ } else if (PREF_ALLOW_CUSTOM_TAB_INTENTS.equals(key)) {
+ SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
+ sharedPreferencesEditor.putBoolean(PREF_ALLOW_CUSTOM_TAB_INTENTS, (boolean)newValue);
@ -73,7 +73,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
}
return true;
@@ -122,6 +128,11 @@ public class PrivacySettings
@@ -128,6 +134,11 @@ public class PrivacySettings
canMakePaymentPref.setChecked(prefService.getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
}
@ -88,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
@@ -3851,6 +3851,13 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
@@ -3974,6 +3974,13 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
<message name="IDS_NEAR_OOM_REDUCTION_DECLINE" desc="The text of the button letting the user decline the browser's intervention, so that the page can be reloaded.">
Show original
</message>
@ -101,7 +101,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
+ </message>
<!-- Autofill Assistant preferences -->
<message name="IDS_PREFS_AUTOFILL_ASSISTANT_TITLE" desc="Title for the Autofill Assistant preferences screen. [CHAR-LIMIT=32]">
<!-- TODO(b/168178344): Move to Assistant settings strings section below. -->
--
2.17.1

View file

@ -4,26 +4,28 @@ Subject: Add exit menu item
Corrected Exit functionality
---
chrome/android/java/res/menu/main_menu.xml | 4 ++++
chrome/android/java/res/menu/main_menu.xml | 5 +++++
chrome/android/java/res/menu/main_menu_regroup.xml | 3 +++
.../org/chromium/chrome/browser/ChromeTabbedActivity.java | 3 +++
.../src/org/chromium/chrome/browser/app/ChromeActivity.java | 6 ++++++
.../chrome/browser/init/ChromeLifetimeController.java | 6 +++++-
.../browser/ui/android/strings/android_chrome_strings.grd | 3 +++
5 files changed, 21 insertions(+), 1 deletion(-)
6 files changed, 25 insertions(+), 1 deletion(-)
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
--- a/chrome/android/java/res/menu/main_menu.xml
+++ b/chrome/android/java/res/menu/main_menu.xml
@@ -119,6 +119,8 @@
@@ -119,6 +119,9 @@
android:icon="@drawable/vr_headset" />
<item android:id="@+id/managed_by_menu_id"
android:title="@string/managed" />
+ <item android:id="@+id/exit_id"
+ android:title="@string/menu_exit" />
+ android:title="@string/menu_exit"
+ android:icon="@drawable/ic_exit_to_app_white_24dp" />
</group>
<!-- Items shown only in the tab switcher -->
@@ -142,6 +144,8 @@
@@ -145,6 +148,8 @@
<item android:id="@id/preferences_id"
android:title="@string/menu_settings"
android:icon="@drawable/settings_cog" />
@ -35,20 +37,40 @@ 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
@@ -152,6 +152,9 @@
@@ -181,6 +181,9 @@
android:icon="@drawable/vr_headset" />
<item android:id="@+id/managed_by_menu_id"
android:title="@string/managed" />
+ <item android:id="@+id/exit_id"
+ android:title="@string/menu_exit"
+ android:icon="@drawable/ic_exit_to_app_white_24dp"/>
+ android:icon="@drawable/ic_exit_to_app_white_24dp" />
</group>
<!-- Items shown only in the tab switcher -->
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -58,6 +58,7 @@ import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate;
import org.chromium.chrome.browser.IntentHandler.TabOpenType;
import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout;
import org.chromium.chrome.browser.app.ChromeActivity;
+import org.chromium.chrome.browser.ApplicationLifetime;
import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton;
import org.chromium.chrome.browser.app.tabmodel.ChromeNextTabPolicySupplier;
import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
@@ -1821,6 +1822,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
} else if (id == R.id.close_tab) {
getCurrentTabModel().closeTab(currentTab, true, false, true);
RecordUserAction.record("MobileTabClosed");
+ } else if (id == R.id.exit_id) {
+ ApplicationLifetime.terminate(false);
} else if (id == R.id.close_all_tabs_menu_id) {
// Close both incognito and normal tabs
getTabModelSelector().closeAllTabs();
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
@@ -55,6 +55,7 @@ import org.chromium.base.supplier.OneshotSupplierImpl;
@@ -56,6 +56,7 @@ import org.chromium.base.supplier.OneshotSupplierImpl;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.AppHooks;
@ -56,7 +78,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.chrome.browser.ChromeActivitySessionTracker;
import org.chromium.chrome.browser.ChromeApplication;
import org.chromium.chrome.browser.ChromeWindow;
@@ -1923,6 +1924,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -1978,6 +1979,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
RecordUserAction.record("MobileMenuSettings");
}
@ -87,7 +109,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -2835,6 +2835,9 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
@@ -2916,6 +2916,9 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
<message name="IDS_MENU_SETTINGS" desc="Menu item for opening browser settings. [CHAR-LIMIT=27]">
Settings
</message>

View file

@ -0,0 +1,98 @@
From: Wengling Chen <feiyu2817@gmail.com>
Date: Mon, 1 Feb 2021 19:18:55 +0200
Subject: Add flag for save-data-header
---
chrome/browser/about_flags.cc | 3 +++
chrome/browser/flag_descriptions.cc | 4 ++++
chrome/browser/flag_descriptions.h | 3 +++
content/browser/loader/browser_initiated_resource_request.cc | 5 +++--
services/network/public/cpp/features.cc | 4 ++++
services/network/public/cpp/features.h | 2 ++
6 files changed, 19 insertions(+), 2 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
@@ -4326,6 +4326,9 @@ const FeatureEntry kFeatureEntries[] = {
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
#if defined(OS_ANDROID)
+ {"enable-save-data-header", flag_descriptions::kEnableSaveDataHeaderName,
+ flag_descriptions::kEnableSaveDataHeaderDescription, kOsAndroid,
+ FEATURE_VALUE_TYPE(network::features::kEnableSaveDataHeader)},
{"enable-command-line-on-non-rooted-devices",
flag_descriptions::kEnableCommandLineOnNonRootedName,
flag_descriptions::kEnableCommandLineOnNoRootedDescription, kOsAndroid,
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
@@ -913,6 +913,10 @@ const char kDisableKeepaliveFetchDescription[] =
"Disable fetch with keepalive set "
"(https://fetch.spec.whatwg.org/#request-keepalive-flag).";
+const char kEnableSaveDataHeaderName[] = "Enable save-data header";
+const char kEnableSaveDataHeaderDescription[] =
+ "Enable save-data header without enabling Data Saver.";
+
const char kExperimentalAccessibilityLanguageDetectionName[] =
"Experimental accessibility language detection";
const char kExperimentalAccessibilityLanguageDetectionDescription[] =
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
@@ -518,6 +518,9 @@ extern const char kDiagnosticsAppDescription[];
extern const char kDisableKeepaliveFetchName[];
extern const char kDisableKeepaliveFetchDescription[];
+extern const char kEnableSaveDataHeaderName[];
+extern const char kEnableSaveDataHeaderDescription[];
+
extern const char kMemlogName[];
extern const char kMemlogDescription[];
extern const char kMemlogModeMinimal[];
diff --git a/content/browser/loader/browser_initiated_resource_request.cc b/content/browser/loader/browser_initiated_resource_request.cc
--- a/content/browser/loader/browser_initiated_resource_request.cc
+++ b/content/browser/loader/browser_initiated_resource_request.cc
@@ -40,9 +40,10 @@ void UpdateAdditionalHeadersForBrowserInitiatedRequest(
// Set the Save-Data header if appropriate.
// https://tools.ietf.org/html/draft-grigorik-http-client-hints-03#section-7
- if (GetContentClient()->browser()->IsDataSaverEnabled(browser_context) &&
+ if ((GetContentClient()->browser()->IsDataSaverEnabled(browser_context) &&
!base::GetFieldTrialParamByFeatureAsBool(features::kDataSaverHoldback,
- "holdback_web", false)) {
+ "holdback_web", false)) ||
+ base::FeatureList::IsEnabled(network::features::kEnableSaveDataHeader)) {
if (should_update_existing_headers) {
headers->RemoveHeader("Save-Data");
}
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
@@ -150,6 +150,10 @@ const base::FeatureParam<std::string>
const base::Feature kDisableKeepaliveFetch{"DisableKeepaliveFetch",
base::FEATURE_DISABLED_BY_DEFAULT};
+// Enable save-data header seprately, without enabled data reduction service
+const base::Feature kEnableSaveDataHeader{"EnableSaveDataHeader",
+ base::FEATURE_DISABLED_BY_DEFAULT};
+
// Controls whether a |request_initiator| that mismatches
// |request_initiator_origin_lock| leads to 1) failing the HTTP request and 2)
// calling mojo::ReportBadMessage (on desktop platforms, where NetworkService
diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h
--- a/services/network/public/cpp/features.h
+++ b/services/network/public/cpp/features.h
@@ -58,6 +58,8 @@ extern const base::FeatureParam<std::string>
COMPONENT_EXPORT(NETWORK_CPP)
extern const base::Feature kDisableKeepaliveFetch;
COMPONENT_EXPORT(NETWORK_CPP)
+extern const base::Feature kEnableSaveDataHeader;
+COMPONENT_EXPORT(NETWORK_CPP)
extern const base::Feature kRequestInitiatorSiteLockEnfocement;
COMPONENT_EXPORT(NETWORK_CPP)
extern const base::Feature kCertVerifierService;
--
2.17.1

View file

@ -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
@@ -779,6 +779,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
@@ -816,6 +816,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
net::kEffectiveConnectionType4G},
};
@ -31,7 +31,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
// Ensure that all effective connection types returned by Network Quality
// Estimator (NQE) are also exposed via flags.
static_assert(net::EFFECTIVE_CONNECTION_TYPE_LAST + 2 ==
@@ -3495,6 +3500,9 @@ const FeatureEntry kFeatureEntries[] = {
@@ -3656,6 +3661,9 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kAndroidPictureInPictureAPIName,
flag_descriptions::kAndroidPictureInPictureAPIDescription, kOsAndroid,
FEATURE_VALUE_TYPE(media::kPictureInPictureAPI)},
@ -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
@@ -821,6 +821,9 @@ extern const char kMarkHttpAsWarningAndDangerousOnFormEdits[];
@@ -832,6 +832,9 @@ extern const char kLogJsConsoleMessagesDescription[];
extern const char kMediaHistoryName[];
extern const char kMediaHistoryDescription[];

View file

@ -13,23 +13,23 @@ 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
@@ -2648,6 +2648,10 @@ const FeatureEntry kFeatureEntries[] = {
kOsAura,
FEATURE_VALUE_TYPE(features::kOverlayScrollbarFlashWhenMouseEnter)},
#endif // USE_AURA
@@ -2635,6 +2635,10 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kWebRtcRemoteEventLogName,
flag_descriptions::kWebRtcRemoteEventLogDescription, kOsDesktop,
FEATURE_VALUE_TYPE(features::kWebRtcRemoteEventLog)},
+ {"resume-background-video",
+ flag_descriptions::kResumeBackgroundVideoName,
+ flag_descriptions::kResumeBackgroundVideoDescription, kOsAll,
+ FEATURE_VALUE_TYPE(media::kResumeBackgroundVideo)},
{"enable-quic", flag_descriptions::kQuicName,
flag_descriptions::kQuicDescription, kOsAll,
ENABLE_DISABLE_VALUE_TYPE(switches::kEnableQuic, switches::kDisableQuic)},
#endif
{"enable-webrtc-srtp-aes-gcm", flag_descriptions::kWebrtcSrtpAesGcmName,
flag_descriptions::kWebrtcSrtpAesGcmDescription, kOsAll,
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -969,6 +969,11 @@ const char kMemlogStackModeNative[] = "Native";
const char kMemlogStackModeNativeWithThreadNames[] = "Native with thread names";
const char kMemlogStackModePseudo[] = "Trace events";
@@ -972,6 +972,11 @@ const char kEnableLoginDetectionName[] = "Enable login detection";
const char kEnableLoginDetectionDescription[] =
"Allow user sign-in to be detected based on heuristics.";
+const char kResumeBackgroundVideoName[] = "Resume background video.";
+const char kResumeBackgroundVideoDescription[] =
@ -42,7 +42,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -541,6 +541,9 @@ extern const char kEnablePortalsDescription[];
@@ -558,6 +558,9 @@ extern const char kEnablePortalsDescription[];
extern const char kEnablePortalsCrossOriginName[];
extern const char kEnablePortalsCrossOriginDescription[];
@ -55,7 +55,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
--- a/media/base/media_switches.cc
+++ b/media/base/media_switches.cc
@@ -244,11 +244,7 @@ const base::Feature kPreloadMetadataLazyLoad{"PreloadMetadataLazyLoad",
@@ -246,11 +246,7 @@ const base::Feature kPreloadMetadataLazyLoad{"PreloadMetadataLazyLoad",
// when in background.
const base::Feature kResumeBackgroundVideo {
"resume-background-video",

View file

@ -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
@@ -4439,6 +4439,11 @@ const FeatureEntry kFeatureEntries[] = {
@@ -4604,6 +4604,11 @@ const FeatureEntry kFeatureEntries[] = {
#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) ||
// defined(OS_CHROMEOS)
@ -26,12 +26,12 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+ FEATURE_VALUE_TYPE(network::features::kIPv6Probing)},
+
#if !defined(OS_ANDROID)
{"ntp-dismiss-promos", flag_descriptions::kNtpDismissPromosName,
flag_descriptions::kNtpDismissPromosDescription, kOsDesktop,
{"ntp-cache-one-google-bar", flag_descriptions::kNtpCacheOneGoogleBarName,
flag_descriptions::kNtpCacheOneGoogleBarDescription, kOsDesktop,
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -2767,6 +2767,10 @@ const char kContextualSearchRankerQueryDescription[] =
@@ -2805,6 +2805,10 @@ const char kContextualSearchRankerQueryDescription[] =
const char kContextualSearchSecondTapName[] =
"Contextual Search second tap triggering";
@ -45,7 +45,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -614,6 +614,9 @@ extern const char kEnableWasmThreadsName[];
@@ -625,6 +625,9 @@ extern const char kEnableWasmThreadsName[];
extern const char kEnableWasmThreadsDescription[];
extern const char kEnableWasmTieringName[];
@ -101,7 +101,7 @@ diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/compon
diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
--- a/net/dns/host_resolver_manager.cc
+++ b/net/dns/host_resolver_manager.cc
@@ -93,6 +93,7 @@
@@ -94,6 +94,7 @@
#include "net/log/net_log_event_type.h"
#include "net/log/net_log_source.h"
#include "net/log/net_log_source_type.h"
@ -109,7 +109,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
#include "net/log/net_log_with_source.h"
#include "net/socket/client_socket_factory.h"
#include "net/socket/datagram_client_socket.h"
@@ -3582,8 +3583,14 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) {
@@ -3369,8 +3370,14 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) {
if (last_ipv6_probe_time_.is_null() ||
(tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() >
kIPv6ProbePeriodMs) {
@ -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
@@ -39,6 +39,10 @@ const base::Feature kReporting{"Reporting", base::FEATURE_ENABLED_BY_DEFAULT};
@@ -40,6 +40,10 @@ const base::Feature kReporting{"Reporting", base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kThrottleDelayable{"ThrottleDelayable",
base::FEATURE_ENABLED_BY_DEFAULT};

View file

@ -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
@@ -2482,6 +2482,9 @@ const FeatureEntry kFeatureEntries[] = {
@@ -2588,6 +2588,9 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kAccelerated2dCanvasName,
flag_descriptions::kAccelerated2dCanvasDescription, kOsAll,
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAccelerated2dCanvas)},
@ -24,30 +24,30 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -494,6 +494,10 @@ const char kForceEnableDevicesPageDescription[] =
"content, instead of a warning message. Note: chrome://devices is "
"no longer supported, and this flag will be permanently removed in M88.";
@@ -511,6 +511,10 @@ const char kEnableAudioFocusEnforcementName[] = "Audio Focus Enforcement";
const char kEnableAudioFocusEnforcementDescription[] =
"Enables enforcement of a single media session having audio focus at "
"any one time. Requires #enable-media-session-service to be enabled too.";
+const char kDisableWebGLName[] = "WebGL";
+
+const char kDisableWebGLDescription[] = "Enable or disable all versions of WebGL";
+
+const char kDisableWebGLName[] = "Disable all versions of WebGL";
+
+const char kDisableWebGLDescription[] = "Disable all versions of WebGL";
+
const char kDisableBestEffortTasksName[] = "Skip best effort tasks";
const char kDisableBestEffortTasksDescription[] =
"With this flag on, tasks of the lowest priority will not be executed "
const char kEnableAutofillAccountWalletStorageName[] =
"Enable the account data storage for autofill";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -306,6 +306,9 @@ extern const char kDeviceDiscoveryNotificationsDescription[];
extern const char kForceEnableDevicesPageName[];
extern const char kForceEnableDevicesPageDescription[];
@@ -317,6 +317,9 @@ extern const char kDisallowDocWrittenScriptsUiDescription[];
extern const char kEnableAccessibilityObjectModelName[];
extern const char kEnableAccessibilityObjectModelDescription[];
+extern const char kDisableWebGLName[];
+extern const char kDisableWebGLDescription[];
+
extern const char kDisableBestEffortTasksName[];
extern const char kDisableBestEffortTasksDescription[];
extern const char kEnableAudioFocusEnforcementName[];
extern const char kEnableAudioFocusEnforcementDescription[];
--
2.17.1

View file

@ -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
@@ -2701,6 +2701,12 @@ const FeatureEntry kFeatureEntries[] = {
@@ -2799,6 +2799,12 @@ const FeatureEntry kFeatureEntries[] = {
{"enable-gpu-rasterization", flag_descriptions::kGpuRasterizationName,
flag_descriptions::kGpuRasterizationDescription, kOsAll,
MULTI_VALUE_TYPE(kEnableGpuRasterizationChoices)},
@ -36,7 +36,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -735,6 +735,14 @@ const char kWinrtSensorsImplementationDescription[] =
@@ -755,6 +755,14 @@ const char kWinrtSensorsImplementationDescription[] =
"Enables usage of the Windows.Devices.Sensors WinRT APIs on Windows for "
"sensors";
@ -54,7 +54,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -436,6 +436,12 @@ extern const char kWinrtGeolocationImplementationDescription[];
@@ -455,6 +455,12 @@ extern const char kWinrtGeolocationImplementationDescription[];
extern const char kWinrtSensorsImplementationName[];
extern const char kWinrtSensorsImplementationDescription[];
@ -70,7 +70,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
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
@@ -94,6 +94,9 @@ void SetRuntimeFeatureDefaultsForPlatform(
@@ -89,6 +89,9 @@ void SetRuntimeFeatureDefaultsForPlatform(
command_line.HasSwitch(
blink::switches::kEnableGpuMemoryBufferCompositorResources) &&
!command_line.HasSwitch(switches::kDisableWebGLImageChromium) &&
@ -83,8 +83,8 @@ 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
@@ -856,6 +856,16 @@ const base::Feature kWebOtpBackend{"kWebOtpBackend",
// TODO(rouslan): Remove this.
@@ -837,6 +837,16 @@ const base::Feature kWebOtpBackendAuto{"WebOtpBackendAuto",
// The JavaScript API for payments on the web.
const base::Feature kWebPayments{"WebPayments",
base::FEATURE_ENABLED_BY_DEFAULT};
+// Enables the device motion API used to track device acceleration;
@ -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
@@ -183,6 +183,8 @@ CONTENT_EXPORT extern const base::Feature kWebXrArModule;
@@ -197,6 +197,8 @@ CONTENT_EXPORT extern const base::Feature kWebXrArModule;
CONTENT_EXPORT extern const base::Feature kWebXrHitTest;
CONTENT_EXPORT extern const base::Feature kWebXrIncubations;
@ -115,7 +115,7 @@ diff --git a/content/public/common/content_features.h b/content/public/common/co
diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_party/blink/public/platform/web_runtime_features.h
--- a/third_party/blink/public/platform/web_runtime_features.h
+++ b/third_party/blink/public/platform/web_runtime_features.h
@@ -99,6 +99,8 @@ class WebRuntimeFeatures {
@@ -97,6 +97,8 @@ class WebRuntimeFeatures {
BLINK_PLATFORM_EXPORT static void EnableCSSHexAlphaColor(bool);
BLINK_PLATFORM_EXPORT static void EnableSameSiteByDefaultCookies(bool);
BLINK_PLATFORM_EXPORT static void EnableScrollTopLeftInterop(bool);
@ -127,7 +127,7 @@ diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_pa
diff --git a/third_party/blink/renderer/modules/modules_initializer.cc b/third_party/blink/renderer/modules/modules_initializer.cc
--- a/third_party/blink/renderer/modules/modules_initializer.cc
+++ b/third_party/blink/renderer/modules/modules_initializer.cc
@@ -228,9 +228,13 @@ void ModulesInitializer::OnClearWindowObjectInMainWorld(
@@ -222,9 +222,13 @@ void ModulesInitializer::OnClearWindowObjectInMainWorld(
Document& document,
const Settings& settings) const {
LocalDOMWindow& window = *document.domWindow();
@ -147,7 +147,7 @@ diff --git a/third_party/blink/renderer/modules/modules_initializer.cc b/third_p
diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.cc b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
--- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc
+++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
@@ -187,6 +187,14 @@ void WebRuntimeFeatures::EnableScrollTopLeftInterop(bool enable) {
@@ -175,6 +175,14 @@ void WebRuntimeFeatures::EnableScrollTopLeftInterop(bool enable) {
RuntimeEnabledFeatures::SetScrollTopLeftInteropEnabled(enable);
}
@ -165,7 +165,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -1313,6 +1313,14 @@
@@ -1385,6 +1385,14 @@
name: "OffscreenCanvasCommit",
status: "experimental",
},

View file

@ -31,7 +31,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
@@ -36,6 +36,8 @@ import org.chromium.components.user_prefs.UserPrefs;
@@ -37,12 +37,15 @@ import org.chromium.components.user_prefs.UserPrefs;
import org.chromium.ui.text.NoUnderlineClickableSpan;
import org.chromium.ui.text.SpanApplier;
@ -40,21 +40,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
/**
* Fragment to keep track of the all the privacy related preferences.
*/
@@ -50,11 +52,13 @@ public class PrivacySettings
public class PrivacySettings
extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener {
private static final String PREF_ALWAYS_INCOGNITO = "always_incognito";
public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
private static final String PREF_PROXY_OPTIONS = "proxy";
+ public static final String PREF_INCOGNITO_TAB_HISTORY_ENABLED = "incognito_history_enabled";
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
private static final String PREF_SECURE_DNS = "secure_dns";
@@ -54,6 +57,7 @@ public class PrivacySettings
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,
PREF_ALWAYS_INCOGNITO,
+ PREF_INCOGNITO_TAB_HISTORY_ENABLED,
PREF_ALLOW_CUSTOM_TAB_INTENTS,
PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS,
PREF_CLOSE_TABS_ON_EXIT,
PREF_PROXY_OPTIONS
@@ -97,6 +101,11 @@ public class PrivacySettings
PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX,
@@ -103,6 +107,11 @@ public class PrivacySettings
Preference secureDnsPref = findPreference(PREF_SECURE_DNS);
secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled());
@ -66,7 +67,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
updateSummaries();
}
@@ -116,6 +125,9 @@ public class PrivacySettings
@@ -123,6 +132,9 @@ public class PrivacySettings
SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
sharedPreferencesEditor.putBoolean(PREF_ALLOW_CUSTOM_TAB_INTENTS, (boolean)newValue);
sharedPreferencesEditor.apply();
@ -76,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
}
return true;
@@ -160,6 +172,13 @@ public class PrivacySettings
@@ -167,6 +179,13 @@ public class PrivacySettings
(ChromeSwitchPreference) findPreference(PREF_CLOSE_TABS_ON_EXIT);
closeTabsOnExitPref.setOnPreferenceChangeListener(this);
closeTabsOnExitPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
@ -93,7 +94,7 @@ 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
@@ -29,6 +29,9 @@
@@ -28,6 +28,9 @@
#if defined(OS_ANDROID)
#include "chrome/browser/android/background_tab_manager.h"
#include "components/feed/feed_feature_list.h"
@ -103,7 +104,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
#else
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_finder.h"
@@ -256,6 +259,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
@@ -258,6 +261,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
history::HistoryService* HistoryTabHelper::GetHistoryService() {
Profile* profile =
Profile::FromBrowserContext(web_contents()->GetBrowserContext());
@ -117,7 +118,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
if (profile->IsOffTheRecord())
return NULL;
@@ -263,6 +273,12 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
@@ -265,6 +275,12 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
profile, ServiceAccessType::IMPLICIT_ACCESS);
}
@ -163,7 +164,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
#include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h"
#include "chrome/browser/android/explore_sites/history_statistics_reporter.h"
#include "chrome/browser/android/ntp/recent_tabs_page_prefs.h"
@@ -872,6 +874,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
@@ -968,6 +970,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
variations::VariationsService::RegisterProfilePrefs(registry);
video_tutorials::RegisterPrefs(registry);
feed::prefs::RegisterFeedSharedProfilePrefs(registry);
@ -174,7 +175,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -827,6 +827,12 @@ Your Google account may have other forms of browsing history like searches and a
@@ -868,6 +868,12 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_ALWAYS_INCOGNITO_SUMMARY" desc="Summary for always incognito mode">
Opens links in incognito tabs when you click on new tab or on a link
</message>
@ -190,8 +191,8 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
--- a/chrome/common/pref_names.cc
+++ b/chrome/common/pref_names.cc
@@ -3079,4 +3079,9 @@ const char kShowCaretBrowsingDialog[] =
"settings.a11y.caretbrowsing.show_dialog";
@@ -3155,6 +3155,11 @@ const char kShowCaretBrowsingDialog[] =
const char kLacrosAllowed[] = "lacros_allowed";
#endif
+#if defined(OS_ANDROID)
@ -199,12 +200,14 @@ diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
+ "incognito_tab_history_enabled";
+#endif
+
} // namespace prefs
#if BUILDFLAG(IS_CHROMEOS_ASH)
// String enum pref determining what should happen when a user who authenticates
// via a security token is removing this token. "IGNORE" - nothing happens
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -1078,6 +1078,10 @@ extern const char kCaretBrowsingEnabled[];
extern const char kShowCaretBrowsingDialog[];
@@ -1116,6 +1116,10 @@ extern const char kCartModuleRemoved[];
extern const char kCartModuleWelcomeSurfaceShownTimes[];
#endif
+#if defined(OS_ANDROID)

View file

@ -0,0 +1,488 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Thu, 18 Feb 2021 21:22:52 +0100
Subject: Add menu item to bookmark all tabs
---
chrome/android/java/res/menu/main_menu.xml | 7 +++
.../java/res/menu/main_menu_regroup.xml | 4 ++
.../chrome/browser/ChromeTabbedActivity.java | 26 ++++++++
.../browser/bookmarks/BookmarkBridge.java | 62 +++++++++++++++++++
.../browser/bookmarks/BookmarkUtils.java | 4 ++
.../android/bookmarks/bookmark_bridge.cc | 17 +++++
.../android/bookmarks/bookmark_bridge.h | 4 ++
.../bookmarks/chrome_bookmark_client.cc | 2 +
.../strings/android_chrome_strings.grd | 3 +
components/bookmark_bar_strings.grdp | 6 ++
.../browser/bookmark_load_details.cc | 4 ++
.../bookmarks/browser/bookmark_load_details.h | 2 +
.../bookmarks/browser/bookmark_model.cc | 3 +-
components/bookmarks/browser/bookmark_model.h | 7 +++
components/bookmarks/browser/bookmark_node.cc | 13 ++++
components/bookmarks/browser/bookmark_node.h | 5 ++
16 files changed, 168 insertions(+), 1 deletion(-)
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
--- a/chrome/android/java/res/menu/main_menu.xml
+++ b/chrome/android/java/res/menu/main_menu.xml
@@ -57,6 +57,10 @@
<item android:id="@+id/all_bookmarks_menu_id"
android:title="@string/menu_bookmarks"
android:icon="@drawable/btn_star_filled" />
+ <item android:id="@+id/bookmark_all_tabs_menu_id"
+ android:title="@string/accessibility_menu_bookmark"
+ android:titleCondensed="@string/menu_bookmark_all_tabs"
+ android:icon="@drawable/ic_folder_blue_24dp" />
<item android:id="@+id/recent_tabs_menu_id"
android:title="@string/menu_recent_tabs"
android:icon="@drawable/devices_black_24dp" />
@@ -134,6 +138,9 @@
<item android:id="@id/new_incognito_tab_menu_id"
android:title="@string/menu_new_incognito_tab"
android:icon="@drawable/incognito_simple" />
+ <item android:id="@+id/bookmark_all_tabs_menu_id"
+ android:title="@string/menu_bookmark_all_tabs"
+ android:icon="@drawable/ic_folder_blue_24dp" />
<item android:id="@+id/close_all_tabs_menu_id"
android:title="@string/menu_close_all_tabs"
android:icon="@drawable/btn_close_white" />
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
@@ -32,6 +32,10 @@
android:title="@string/accessibility_menu_bookmark"
android:titleCondensed="@string/menu_bookmark"
android:icon="@drawable/btn_star"/>
+ <item android:id="@+id/bookmark_all_tabs_menu_id"
+ android:title="@string/accessibility_menu_bookmark"
+ android:titleCondensed="@string/menu_bookmark_all_tabs"
+ android:icon="@drawable/ic_folder_blue_24dp" />
<item android:id="@+id/offline_page_id"
android:title="@string/download_page"
android:titleCondensed="@string/menu_download"
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
@@ -63,6 +63,8 @@ import org.chromium.chrome.browser.ApplicationLifetime;
import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton;
import org.chromium.chrome.browser.app.tabmodel.ChromeNextTabPolicySupplier;
import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
+import org.chromium.chrome.browser.bookmarks.BookmarkBridge;
+import org.chromium.chrome.browser.bookmarks.BookmarkModel;
import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator;
@@ -1832,6 +1834,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
// Close both incognito and normal tabs
getTabModelSelector().closeAllTabs();
RecordUserAction.record("MobileMenuCloseAllTabs");
+ } else if (id == R.id.bookmark_all_tabs_menu_id) {
+ bookmarkAllTabs();
} else if (id == R.id.close_all_incognito_tabs_menu_id) {
// Close only incognito tabs
getTabModelSelector().getModel(true).closeAllTabs();
@@ -1868,6 +1872,28 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
mTabModalHandler.onOmniboxFocusChanged(hasFocus);
}
+ private void bookmarkAllTabs() {
+ TabModel tabModel = getTabModelSelector().getCurrentModel();
+ int count = tabModel.getCount();
+ Log.i(TAG, "bookmarkAllTabs(): %d tabs to bookmark", count);
+ if (count == 0) {
+ return;
+ }
+
+ final BookmarkBridge bridge = mBookmarkBridgeSupplier.get();
+ final BookmarkModel bookmarkModel = new BookmarkModel();
+ bookmarkModel.finishLoadingBookmarkModel(() -> {
+ for (int i = 0; i < tabModel.getCount(); i++) {
+ Tab tab = tabModel.getTabAt(i);
+ if (tab.isNativePage()) {
+ continue;
+ }
+ bridge.addToTabsCollection(this, tab);
+ }
+ bridge.finishedAddingToTabsCollection(this, getSnackbarManager());
+ });
+ }
+
private void recordLauncherShortcutAction(boolean isIncognito) {
if (isIncognito) {
RecordUserAction.record("Android.LauncherShortcut.NewIncognitoTab");
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
@@ -4,6 +4,7 @@
package org.chromium.chrome.browser.bookmarks;
+import android.app.Activity;
import android.content.Intent;
import android.content.Context;
import android.content.pm.PackageManager;
@@ -18,6 +19,7 @@ import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import org.chromium.base.ContextUtils;
+import org.chromium.base.Log;
import org.chromium.base.ObserverList;
import org.chromium.base.ThreadUtils;
import org.chromium.base.annotations.CalledByNative;
@@ -26,6 +28,10 @@ import org.chromium.base.metrics.RecordHistogram;
import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.tab.Tab;
+import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarController;
+import org.chromium.chrome.R;
import org.chromium.components.bookmarks.BookmarkId;
import org.chromium.components.bookmarks.BookmarkType;
import org.chromium.components.url_formatter.SchemeDisplay;
@@ -46,6 +52,7 @@ import java.util.List;
* bookmark model stored in native.
*/
public class BookmarkBridge {
+ private static final String TAG = "BookmarkBridge";
private final Profile mProfile;
private boolean mIsDoingExtensiveChanges;
private long mNativeBookmarkBridge;
@@ -527,6 +534,16 @@ public class BookmarkBridge {
mNativeBookmarkBridge, BookmarkBridge.this);
}
+ /**
+ * @return The BookmarkId for the Tabs collecction folder node
+ */
+ public BookmarkId getTabsCollectionFolderId() {
+ ThreadUtils.assertOnUiThread();
+ assert mIsNativeBookmarkModelLoaded;
+ return BookmarkBridgeJni.get().getTabsCollectionFolderId(
+ mNativeBookmarkBridge, BookmarkBridge.this);
+ }
+
/**
* @return Id representing the special "other" folder from bookmark model.
*/
@@ -896,6 +913,50 @@ public class BookmarkBridge {
mNativeBookmarkBridge, BookmarkBridge.this, title, url);
}
+ // Used to bookmark all tabs in a specific folder, created if not existing
+ public BookmarkId addToTabsCollection(Context context, Tab tab) {
+ BookmarkId parent = getTabsCollectionFolderId();
+ long existingId = getUserBookmarkIdForTab(tab);
+ if (existingId != BookmarkId.INVALID_ID) {
+ BookmarkId existingBookmarkId = new BookmarkId(existingId, BookmarkType.NORMAL);
+ BookmarkItem existingBookmark = getBookmarkById(existingBookmarkId);
+ if (parent.equals(existingBookmark.getParentId())) {
+ // bookmark already exists in the tabs collection folder
+ return existingBookmarkId;
+ }
+ }
+ BookmarkId bookmarkId =
+ addBookmark(parent, getChildCount(parent), tab.getTitle(), tab.getUrl().getSpec());
+
+ if (bookmarkId == null) {
+ Log.e(TAG,
+ "Failed to add bookmarks: parentTypeAndId %s", parent);
+ }
+ return bookmarkId;
+ }
+
+ public void finishedAddingToTabsCollection(Activity activity, SnackbarManager snackbarManager) {
+ BookmarkId parent = getTabsCollectionFolderId();
+
+ BookmarkItem bookmarkItem = getBookmarkById(parent);
+ String folderName;
+ if (bookmarkItem != null) {
+ folderName = bookmarkItem.getTitle();
+ } else {
+ folderName = "";
+ }
+ SnackbarController snackbarController = new SnackbarController() {
+ @Override
+ public void onAction(Object actionData) {
+ }
+ };
+ Snackbar snackbar = Snackbar.make(folderName, snackbarController, Snackbar.TYPE_ACTION,
+ Snackbar.UMA_BOOKMARK_ADDED)
+ .setTemplateText(activity.getString(R.string.bookmark_page_saved_folder));
+// snackbar.setSingleLine(false).setAction(activity.getString(R.string.bookmark_item_edit), null);
+ snackbarManager.showSnackbar(snackbar);
+ }
+
/**
* @param url The URL of the reading list item.
* @return The reading list item with the URL, or null if no such reading list item.
@@ -1137,6 +1198,7 @@ public class BookmarkBridge {
void getAllFoldersWithDepths(long nativeBookmarkBridge, BookmarkBridge caller,
List<BookmarkId> folderList, List<Integer> depthList);
BookmarkId getRootFolderId(long nativeBookmarkBridge, BookmarkBridge caller);
+ BookmarkId getTabsCollectionFolderId(long nativeBookmarkBridge, BookmarkBridge caller);
BookmarkId getMobileFolderId(long nativeBookmarkBridge, BookmarkBridge caller);
BookmarkId getOtherFolderId(long nativeBookmarkBridge, BookmarkBridge caller);
BookmarkId getDesktopFolderId(long nativeBookmarkBridge, BookmarkBridge caller);
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
@@ -472,6 +472,7 @@ public class BookmarkUtils {
List<BookmarkId> topLevelFolders = new ArrayList<>();
BookmarkId desktopNodeId = bookmarkModel.getDesktopFolderId();
BookmarkId mobileNodeId = bookmarkModel.getMobileFolderId();
+ BookmarkId tabsCollectionNodeId = bookmarkModel.getTabsCollectionFolderId();
BookmarkId othersNodeId = bookmarkModel.getOtherFolderId();
List<BookmarkId> specialFoldersIds =
@@ -497,6 +498,9 @@ public class BookmarkUtils {
if (bookmarkModel.isFolderVisible(mobileNodeId)) {
topLevelFolders.add(mobileNodeId);
}
+ if (bookmarkModel.isFolderVisible(tabsCollectionNodeId)) {
+ topLevelFolders.add(tabsCollectionNodeId);
+ }
if (bookmarkModel.isFolderVisible(desktopNodeId)) {
topLevelFolders.add(desktopNodeId);
}
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
@@ -387,6 +387,11 @@ void BookmarkBridge::GetTopLevelFolderIDs(
top_level_folders.push_back(node.get());
}
+ for (const auto& node : bookmark_model_->tabs_collection_node()->children()) {
+ if (node->is_folder())
+ top_level_folders.push_back(node.get());
+ }
+
for (const auto& node : bookmark_model_->bookmark_bar_node()->children()) {
if (node->is_folder())
top_level_folders.push_back(node.get());
@@ -425,6 +430,7 @@ void BookmarkBridge::GetAllFoldersWithDepths(
// Vector to temporarily contain all child bookmarks at same level for sorting
std::vector<const BookmarkNode*> bookmarks = {
bookmark_model_->mobile_node(),
+ bookmark_model_->tabs_collection_node(),
bookmark_model_->bookmark_bar_node(),
bookmark_model_->other_node(),
};
@@ -479,6 +485,17 @@ ScopedJavaLocalRef<jobject> BookmarkBridge::GetMobileFolderId(
return folder_id_obj;
}
+ScopedJavaLocalRef<jobject> BookmarkBridge::GetTabsCollectionFolderId(
+ JNIEnv* env,
+ const JavaParamRef<jobject>& obj) {
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ const BookmarkNode* tabs_collection_node = bookmark_model_->tabs_collection_node();
+ ScopedJavaLocalRef<jobject> folder_id_obj =
+ JavaBookmarkIdCreateBookmarkId(
+ env, tabs_collection_node->id(), GetBookmarkType(tabs_collection_node));
+ return folder_id_obj;
+}
+
ScopedJavaLocalRef<jobject> BookmarkBridge::GetOtherFolderId(
JNIEnv* env,
const JavaParamRef<jobject>& obj) {
diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser/android/bookmarks/bookmark_bridge.h
--- a/chrome/browser/android/bookmarks/bookmark_bridge.h
+++ b/chrome/browser/android/bookmarks/bookmark_bridge.h
@@ -109,6 +109,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
+ base::android::ScopedJavaLocalRef<jobject> GetTabsCollectionFolderId(
+ JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& obj);
+
base::android::ScopedJavaLocalRef<jobject> GetOtherFolderId(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
diff --git a/chrome/browser/bookmarks/chrome_bookmark_client.cc b/chrome/browser/bookmarks/chrome_bookmark_client.cc
--- a/chrome/browser/bookmarks/chrome_bookmark_client.cc
+++ b/chrome/browser/bookmarks/chrome_bookmark_client.cc
@@ -105,6 +105,8 @@ bool ChromeBookmarkClient::IsPermanentNodeVisibleWhenEmpty(
return !is_mobile;
case bookmarks::BookmarkNode::MOBILE:
return is_mobile;
+ case bookmarks::BookmarkNode::TABS_COLLECTION:
+ return is_mobile;
}
return false;
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -3002,6 +3002,9 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
<message name="IDS_MENU_TRACK_PRICES" desc="Menu item for tracking prices on tabs. [CHAR-LIMIT=27]">
Track prices
</message>
+ <message name="IDS_MENU_BOOKMARK_ALL_TABS" desc="Menu item to bookmark all tabs. [CHAR-LIMIT=27]">
+ Bookmark all tabs
+ </message>
<message name="IDS_MENU_GET_IMAGE_DESCRIPTIONS" desc="Menu item to start getting alt text accessibility image labels/descriptions [CHAR-LIMIT=27]">
Get image descriptions
</message>
diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_strings.grdp
--- a/components/bookmark_bar_strings.grdp
+++ b/components/bookmark_bar_strings.grdp
@@ -20,6 +20,9 @@
<message name="IDS_BOOKMARK_BAR_MOBILE_FOLDER_NAME" desc="Name shown in the tree for the mobile bookmarks folder">
Mobile bookmarks
</message>
+ <message name="IDS_BOOKMARK_BAR_TABS_COLLECTION_FOLDER_NAME" desc="Name shown in the tree for the tabs collection bookmarks folder">
+ Tabs collection
+ </message>
<message name="IDS_BOOKMARK_BAR_OTHER_FOLDER_NAME" desc="Name shown in the tree for the other bookmarks folder">
Other bookmarks
</message>
@@ -34,6 +37,9 @@
<message name="IDS_BOOKMARK_BAR_MOBILE_FOLDER_NAME" desc="In Title Case: Name shown in the tree for the mobile bookmarks folder">
Mobile Bookmarks
</message>
+ <message name="IDS_BOOKMARK_BAR_TABS_COLLECTION_FOLDER_NAME" desc="Name shown in the tree for the tabs collection bookmarks folder">
+ Tabs Collection
+ </message>
<message name="IDS_BOOKMARK_BAR_OTHER_FOLDER_NAME" desc="In Title Case: Name shown in the tree for the other bookmarks folder">
Other Bookmarks
</message>
diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/bookmarks/browser/bookmark_load_details.cc
--- a/components/bookmarks/browser/bookmark_load_details.cc
+++ b/components/bookmarks/browser/bookmark_load_details.cc
@@ -36,6 +36,10 @@ BookmarkLoadDetails::BookmarkLoadDetails(BookmarkClient* client)
root_node_->Add(BookmarkPermanentNode::CreateMobileBookmarks(
max_id_++,
client->IsPermanentNodeVisibleWhenEmpty(BookmarkNode::MOBILE))));
+ tabs_collection_folder_node_ = static_cast<BookmarkPermanentNode*>(
+ root_node_->Add(BookmarkPermanentNode::CreateTabsCollectionBookmarks(
+ max_id_++,
+ client->IsPermanentNodeVisibleWhenEmpty(BookmarkNode::TABS_COLLECTION))));
}
BookmarkLoadDetails::~BookmarkLoadDetails() = default;
diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/bookmarks/browser/bookmark_load_details.h
--- a/components/bookmarks/browser/bookmark_load_details.h
+++ b/components/bookmarks/browser/bookmark_load_details.h
@@ -42,6 +42,7 @@ class BookmarkLoadDetails {
BookmarkPermanentNode* bb_node() { return bb_node_; }
BookmarkPermanentNode* mobile_folder_node() { return mobile_folder_node_; }
BookmarkPermanentNode* other_folder_node() { return other_folder_node_; }
+ BookmarkPermanentNode* tabs_collection_folder_node() { return tabs_collection_folder_node_; }
TitledUrlIndex* index() { return index_.get(); }
std::unique_ptr<TitledUrlIndex> owned_index() { return std::move(index_); }
@@ -96,6 +97,7 @@ class BookmarkLoadDetails {
BookmarkPermanentNode* bb_node_ = nullptr;
BookmarkPermanentNode* other_folder_node_ = nullptr;
BookmarkPermanentNode* mobile_folder_node_ = nullptr;
+ BookmarkPermanentNode* tabs_collection_folder_node_ = nullptr;
LoadManagedNodeCallback load_managed_node_callback_;
std::unique_ptr<TitledUrlIndex> index_;
BookmarkNode::MetaInfoMap model_meta_info_map_;
diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc
--- a/components/bookmarks/browser/bookmark_model.cc
+++ b/components/bookmarks/browser/bookmark_model.cc
@@ -560,7 +560,7 @@ bool BookmarkModel::HasBookmarks() {
bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
return bookmark_bar_node_->children().empty() &&
- other_node_->children().empty() && mobile_node_->children().empty();
+ other_node_->children().empty() && mobile_node_->children().empty() && tabs_collection_node_->children().empty();
}
bool BookmarkModel::IsBookmarked(const GURL& url) {
@@ -795,6 +795,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
bookmark_bar_node_ = details->bb_node();
other_node_ = details->other_folder_node();
mobile_node_ = details->mobile_folder_node();
+ tabs_collection_node_ = details->tabs_collection_folder_node();
titled_url_index_->SetNodeSorter(
std::make_unique<TypedCountSorter>(client_.get()));
diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmarks/browser/bookmark_model.h
--- a/components/bookmarks/browser/bookmark_model.h
+++ b/components/bookmarks/browser/bookmark_model.h
@@ -117,6 +117,12 @@ class BookmarkModel : public BookmarkUndoProvider,
return mobile_node_;
}
+ // Returns the 'mobile' node. This is NULL until loaded.
+ const BookmarkNode* tabs_collection_node() const {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ return tabs_collection_node_;
+ }
+
bool is_root_node(const BookmarkNode* node) const {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
return node == root_;
@@ -390,6 +396,7 @@ class BookmarkModel : public BookmarkUndoProvider,
BookmarkPermanentNode* bookmark_bar_node_ = nullptr;
BookmarkPermanentNode* other_node_ = nullptr;
BookmarkPermanentNode* mobile_node_ = nullptr;
+ BookmarkPermanentNode* tabs_collection_node_ = nullptr;
// The maximum ID assigned to the bookmark nodes in the model.
int64_t next_node_id_ = 1;
diff --git a/components/bookmarks/browser/bookmark_node.cc b/components/bookmarks/browser/bookmark_node.cc
--- a/components/bookmarks/browser/bookmark_node.cc
+++ b/components/bookmarks/browser/bookmark_node.cc
@@ -42,6 +42,8 @@ const char BookmarkNode::kOtherBookmarksNodeGuid[] =
"00000000-0000-4000-a000-000000000003";
const char BookmarkNode::kMobileBookmarksNodeGuid[] =
"00000000-0000-4000-a000-000000000004";
+const char BookmarkNode::kTabsCollectionBookmarksNodeGuid[] =
+ "00000000-0000-4000-a000-000000000006";
const char BookmarkNode::kManagedNodeGuid[] =
"00000000-0000-4000-a000-000000000005";
@@ -201,6 +203,17 @@ BookmarkPermanentNode::CreateMobileBookmarks(int64_t id,
visible_when_empty));
}
+// static
+std::unique_ptr<BookmarkPermanentNode>
+BookmarkPermanentNode::CreateTabsCollectionBookmarks(int64_t id,
+ bool visible_when_empty) {
+ // base::WrapUnique() used because the constructor is private.
+ return base::WrapUnique(new BookmarkPermanentNode(
+ id, TABS_COLLECTION, base::GUID::ParseLowercase(kTabsCollectionBookmarksNodeGuid),
+ l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_TABS_COLLECTION_FOLDER_NAME),
+ visible_when_empty));
+}
+
BookmarkPermanentNode::BookmarkPermanentNode(int64_t id,
Type type,
const base::GUID& guid,
diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks/browser/bookmark_node.h
--- a/components/bookmarks/browser/bookmark_node.h
+++ b/components/bookmarks/browser/bookmark_node.h
@@ -36,6 +36,7 @@ class BookmarkNode : public ui::TreeNode<BookmarkNode>, public TitledUrlNode {
FOLDER,
BOOKMARK_BAR,
OTHER_NODE,
+ TABS_COLLECTION,
MOBILE
};
@@ -53,6 +54,7 @@ class BookmarkNode : public ui::TreeNode<BookmarkNode>, public TitledUrlNode {
static const char kBookmarkBarNodeGuid[];
static const char kOtherBookmarksNodeGuid[];
static const char kMobileBookmarksNodeGuid[];
+ static const char kTabsCollectionBookmarksNodeGuid[];
static const char kManagedNodeGuid[];
// Creates a new node with |id|, |guid| and |url|.
@@ -244,6 +246,9 @@ class BookmarkPermanentNode : public BookmarkNode {
static std::unique_ptr<BookmarkPermanentNode> CreateMobileBookmarks(
int64_t id,
bool visible_when_empty);
+ static std::unique_ptr<BookmarkPermanentNode> CreateTabsCollectionBookmarks(
+ int64_t id,
+ bool visible_when_empty);
// Constructor is private to disallow the construction of permanent nodes
// other than the well-known ones, see factory methods.
--
2.17.1

View file

@ -4,14 +4,14 @@ Subject: Add menu item to view source
---
chrome/android/java/res/menu/custom_tabs_menu.xml | 3 +++
chrome/android/java/res/menu/main_menu.xml | 2 ++
chrome/android/java/res/menu/main_menu.xml | 3 +++
chrome/android/java/res/menu/main_menu_regroup.xml | 3 +++
.../chrome/browser/ChromeTabbedActivity.java | 2 ++
.../chrome/browser/app/ChromeActivity.java | 2 ++
.../app/appmenu/AppMenuPropertiesDelegateImpl.java | 14 ++++++++++++++
.../CustomTabAppMenuPropertiesDelegate.java | 1 +
.../ui/android/strings/android_chrome_strings.grd | 3 +++
8 files changed, 30 insertions(+)
8 files changed, 31 insertions(+)
diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml
--- a/chrome/android/java/res/menu/custom_tabs_menu.xml
@ -29,19 +29,20 @@ 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
@@ -91,6 +91,8 @@
@@ -91,6 +91,9 @@
<item android:id="@+id/add_to_homescreen_id"
android:title="@string/menu_add_to_homescreen"
android:icon="@drawable/ic_add_to_home_screen" />
+ <item android:id="@+id/view_source_id"
+ android:title="@string/view_source" />
+ android:title="@string/view_source"
+ android:icon="@drawable/ic_drive_document_24dp" />
<item android:id="@+id/open_webapk_id"
android:title="@string/menu_open_webapk"
android:icon="@drawable/ic_add_to_home_screen" />
diff --git a/chrome/android/java/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
@@ -113,6 +113,9 @@
@@ -142,6 +142,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 +55,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
@@ -1760,6 +1760,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -1850,6 +1850,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
}
RecordUserAction.record("MobileMenuDownloadManager");
@ -66,7 +67,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -2018,6 +2018,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -2082,6 +2082,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
} catch (ActivityNotFoundException e) {
Toast.makeText(context, R.string.open_webapk_failed, Toast.LENGTH_SHORT).show();
}
@ -78,15 +79,15 @@ 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
@@ -409,6 +409,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
isChromeScheme, isFileScheme, isContentScheme, isIncognito, url));
@@ -519,6 +519,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
}
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */);
+ updateViewSourceMenuItem(menu, currentTab);
// 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));
@@ -786,6 +787,19 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -932,6 +933,19 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
}
}
@ -109,18 +110,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
@@ -222,6 +222,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
}
@@ -225,6 +225,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
updateRequestDesktopSiteMenuItem(menu, currentTab, requestDesktopSiteVisible);
MenuItem homescreenItem = menu.findItem(R.id.add_to_homescreen_id);
MenuItem openWebApkItem = menu.findItem(R.id.open_webapk_id);
+ updateViewSourceMenuItem(menu, currentTab);
prepareAddToHomescreenMenuItem(menu, currentTab, addToHomeScreenVisible);
prepareAddToHomescreenMenuItem(
homescreenItem, null, openWebApkItem, menu, currentTab, addToHomeScreenVisible);
}
}
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -329,6 +329,9 @@ CHAR-LIMIT guidelines:
@@ -332,6 +332,9 @@ CHAR-LIMIT guidelines:
<message name="IDS_SERVICES_CATEGORY_TITLE" desc="Title for the group of preferences that control non-personalized Google services. This group contains preferences for data that is not tied to user's Google Account.">
Other Google services
</message>

View file

@ -0,0 +1,172 @@
From: Wengling Chen <feiyu2817@gmail.com>
Date: Mon, 1 Feb 2021 19:18:55 +0200
Subject: Add option to force tablet UI
---
.../android/java/res/xml/accessibility_preferences.xml | 5 +++++
.../accessibility/settings/AccessibilitySettings.java | 10 ++++++++++
.../browser/toolbar/top/ToolbarControlContainer.java | 2 +-
.../browser/preferences/ChromePreferenceKeys.java | 1 +
.../preferences/GrandfatheredChromePreferenceKeys.java | 1 +
.../ui/android/strings/android_chrome_strings.grd | 6 ++++++
components/BUILD.gn | 4 ++--
ui/android/BUILD.gn | 1 +
.../src/org/chromium/ui/base/DeviceFormFactor.java | 5 +++++
9 files changed, 32 insertions(+), 3 deletions(-)
diff --git a/chrome/android/java/res/xml/accessibility_preferences.xml b/chrome/android/java/res/xml/accessibility_preferences.xml
--- a/chrome/android/java/res/xml/accessibility_preferences.xml
+++ b/chrome/android/java/res/xml/accessibility_preferences.xml
@@ -29,6 +29,11 @@
android:key="captions"
android:title="@string/accessibility_captions_title"/>
+ <org.chromium.components.browser_ui.settings.ChromeBaseCheckBoxPreference
+ android:key="force_tablet_ui"
+ android:summary="@string/force_tablet_ui_summary"
+ android:title="@string/force_tablet_ui_title" />
+
<Preference
android:fragment="org.chromium.chrome.browser.image_descriptions.ImageDescriptionsSettings"
android:key="image_descriptions"
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
@@ -35,6 +35,7 @@ public class AccessibilitySettings
static final String PREF_CAPTIONS = "captions";
static final String PREF_IMAGE_DESCRIPTIONS = "image_descriptions";
+ static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
private TextScalePreference mTextScalePref;
private ChromeBaseCheckBoxPreference mForceEnableZoomPref;
private boolean mRecordFontSizeChangeOnStop;
@@ -80,6 +81,12 @@ public class AccessibilitySettings
.getBoolean(Pref.READER_FOR_ACCESSIBILITY));
readerForAccessibilityPref.setOnPreferenceChangeListener(this);
+ ChromeBaseCheckBoxPreference forceTabletUiPref =
+ (ChromeBaseCheckBoxPreference) findPreference(PREF_FORCE_TABLET_UI);
+ forceTabletUiPref.setChecked(SharedPreferencesManager.getInstance().readBoolean(
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false));
+ forceTabletUiPref.setOnPreferenceChangeListener(this);
+
ChromeBaseCheckBoxPreference mAccessibilityTabSwitcherPref =
(ChromeBaseCheckBoxPreference) findPreference(
ChromePreferenceKeys.ACCESSIBILITY_TAB_SWITCHER);
@@ -131,6 +138,9 @@ public class AccessibilitySettings
mFontSizePrefs.setUserFontScaleFactor((Float) newValue);
} else if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) {
mFontSizePrefs.setForceEnableZoomFromUser((Boolean) newValue);
+ } else if (PREF_FORCE_TABLET_UI.equals(preference.getKey())) {
+ SharedPreferencesManager.getInstance().writeBoolean(
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, (Boolean) newValue);
} else if (PREF_READER_FOR_ACCESSIBILITY.equals(preference.getKey())) {
UserPrefs.get(Profile.getLastUsedRegularProfile())
.setBoolean(Pref.READER_FOR_ACCESSIBILITY, (Boolean) newValue);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
@@ -107,7 +107,7 @@ public class ToolbarControlContainer extends OptimizedFrameLayout implements Con
// On tablet, draw a fake tab strip and toolbar until the compositor is
// ready to draw the real tab strip. (On phone, the toolbar is made entirely
// of Android views, which are already initialized.)
- setBackgroundResource(R.drawable.toolbar_background);
+// setBackgroundResource(R.drawable.toolbar_background);
}
}
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
@@ -442,6 +442,7 @@ public final class ChromePreferenceKeys {
public static final String FONT_USER_SET_FORCE_ENABLE_ZOOM = "user_set_force_enable_zoom";
public static final String HISTORY_SHOW_HISTORY_INFO = "history_home_show_info";
+ public static final String FLAGS_FORCE_TABLET_UI_ENABLED = "force_tablet_ui_enabled";
/** Keys used to save settings related to homepage. */
public static final String HOMEPAGE_CUSTOM_URI = "homepage_custom_uri";
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/GrandfatheredChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/GrandfatheredChromePreferenceKeys.java
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/GrandfatheredChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/GrandfatheredChromePreferenceKeys.java
@@ -100,6 +100,7 @@ public class GrandfatheredChromePreferenceKeys {
ChromePreferenceKeys.FLAGS_CACHED_SWAP_PIXEL_FORMAT_TO_FIX_CONVERT_FROM_TRANSLUCENT,
ChromePreferenceKeys.FLAGS_CACHED_TAB_GROUPS_ANDROID_ENABLED,
ChromePreferenceKeys.FONT_USER_FONT_SCALE_FACTOR,
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED,
ChromePreferenceKeys.FONT_USER_SET_FORCE_ENABLE_ZOOM,
ChromePreferenceKeys.HISTORY_SHOW_HISTORY_INFO,
ChromePreferenceKeys.HOMEPAGE_CUSTOM_URI,
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
@@ -1152,6 +1152,12 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_SAFE_BROWSING_NO_PROTECTION_CONFIRMATION_DIALOG_CONFIRM" desc="Message for Safe Browsing no protection confirmation button.">
Turn off
</message>
+ <message name="IDS_FORCE_TABLET_UI_SUMMARY" desc="Summary of the preference that allows the user to force chromium to use tablet UI.">
+ Open chromium in Tablet Mode
+ </message>
+ <message name="IDS_FORCE_TABLET_UI_TITLE" desc="Title of the preference that allows the user to update force tablet UI settings.">
+ Force Tablet Mode
+ </message>
<!-- Accessibility preferences -->
<message name="IDS_PREFS_ACCESSIBILITY" desc="Title of Accessibility settings, which allows the user to change webpage font sizes. [CHAR-LIMIT=32]">
diff --git a/components/BUILD.gn b/components/BUILD.gn
--- a/components/BUILD.gn
+++ b/components/BUILD.gn
@@ -488,7 +488,7 @@ test("components_unittests") {
# On LaCrOS, tests use ash-chrome as a window manager, thus the dependency.
# On other platforms, no components should depend on Chrome.
- if (!is_chromeos_lacros) {
+ if (!is_chromeos_lacros && !is_android) {
assert_no_deps = [ "//chrome/*" ]
}
@@ -730,7 +730,7 @@ if (!is_ios && !is_fuchsia) {
# On LaCrOS, tests use ash-chrome as a window manager, thus the dependency.
# On other platforms, no components should depend on Chrome.
- if (!is_chromeos_lacros) {
+ if (!is_chromeos_lacros && !is_android) {
assert_no_deps = [ "//chrome/*" ]
}
}
diff --git a/ui/android/BUILD.gn b/ui/android/BUILD.gn
--- a/ui/android/BUILD.gn
+++ b/ui/android/BUILD.gn
@@ -362,6 +362,7 @@ android_library("ui_no_recycler_view_java") {
":ui_utils_java",
"//base:base_java",
"//base:jni_java",
+ "//chrome/browser/preferences:java",
"//third_party/android_deps:androidx_annotation_annotation_java",
"//third_party/android_deps:androidx_appcompat_appcompat_java",
"//third_party/android_deps:androidx_appcompat_appcompat_resources_java",
diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
--- a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
+++ b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
@@ -11,6 +11,8 @@ import androidx.annotation.UiThread;
import org.chromium.base.ContextUtils;
import org.chromium.base.ThreadUtils;
import org.chromium.base.annotations.CalledByNative;
+import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
+import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.ui.R;
import org.chromium.ui.display.DisplayAndroid;
import org.chromium.ui.display.DisplayUtil;
@@ -60,6 +62,9 @@ public class DeviceFormFactor {
* E.g. http://developer.samsung.com/samsung-dex/testing
*/
public static boolean isNonMultiDisplayContextOnTablet(Context context) {
+ if (SharedPreferencesManager.getInstance().readBoolean(
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false))
+ return true;
return detectScreenWidthBucket(context) >= SCREEN_BUCKET_TABLET;
}
--
2.17.1

View file

@ -3,11 +3,11 @@ Date: Sat, 7 Sep 2019 15:07:42 +0200
Subject: Add option to not persist tabs across sessions
---
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 ++++++
4 files changed, 24 insertions(+), 3 deletions(-)
.../android/java/res/xml/privacy_preferences.xml | 5 +++++
.../chrome/browser/ChromeTabbedActivity.java | 4 +++-
.../privacy/settings/PrivacySettings.java | 16 +++++++++++++++-
.../android/strings/android_chrome_strings.grd | 6 ++++++
4 files changed, 29 insertions(+), 2 deletions(-)
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml
@ -27,7 +27,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -1047,8 +1047,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -1112,8 +1112,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
boolean hadCipherData =
CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
@ -42,41 +42,36 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
@@ -4,6 +4,7 @@
@@ -5,6 +5,7 @@
package org.chromium.chrome.browser.privacy.settings;
import android.os.Build;
+import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.SpannableString;
import android.view.Menu;
@@ -14,6 +15,7 @@ import androidx.preference.Preference;
@@ -15,6 +16,8 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat;
+import org.chromium.base.ContextUtils;
import org.chromium.base.BuildInfo;
+import org.chromium.base.BuildInfo;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl;
@@ -39,6 +41,7 @@ import org.chromium.ui.text.SpanApplier;
*/
public class PrivacySettings
extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener {
import org.chromium.chrome.browser.flags.ChromeFeatureList;
@@ -47,9 +50,11 @@ public class PrivacySettings
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
+ private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
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";
@@ -50,7 +53,8 @@ public class PrivacySettings
PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS,
PREF_SECURE_DNS, PREF_DO_NOT_TRACK,
private static final String[] NEW_PRIVACY_PREFERENCE_ORDER = {PREF_CLEAR_BROWSING_DATA,
PREF_ALWAYS_INCOGNITO,
- PREF_ALLOW_CUSTOM_TAB_INTENTS
+ PREF_ALLOW_CUSTOM_TAB_INTENTS,
+ PREF_CLOSE_TABS_ON_EXIT
};
PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS,
+ PREF_CLOSE_TABS_ON_EXIT,
PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX,
PREF_ALLOW_CUSTOM_TAB_INTENTS};
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
@@ -96,7 +100,11 @@ public class PrivacySettings
@@ -101,7 +106,11 @@ public class PrivacySettings
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String key = preference.getKey();
@ -89,10 +84,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
UserPrefs.get(Profile.getLastUsedRegularProfile())
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
} else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
@@ -150,6 +159,11 @@ public class PrivacySettings
if (secureDnsPref != null && secureDnsPref.isVisible()) {
secureDnsPref.setSummary(SecureDnsSettings.getSummary(getContext()));
}
+
+ ChromeSwitchPreference closeTabsOnExitPref =
+ (ChromeSwitchPreference) findPreference(PREF_CLOSE_TABS_ON_EXIT);
+ closeTabsOnExitPref.setOnPreferenceChangeListener(this);
+ closeTabsOnExitPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
}
private ChromeManagedPreferenceDelegate createManagedPreferenceDelegate() {
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
@@ -3601,6 +3601,12 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
@@ -3724,6 +3724,12 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
<message name="IDS_CONTEXTMENU_IMAGE_TITLE" desc="The title of a context menu tab when the item pressed contains more than one type. This indicates that all the actions are related to the image.">
IMAGE
</message>

View file

@ -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
@@ -1094,6 +1094,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
@@ -1105,6 +1105,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
return pipeline_metadata_.has_audio;
}
@ -23,7 +23,7 @@ diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_imp
void WebMediaPlayerImpl::EnabledAudioTracksChanged(
const blink::WebVector<blink::WebMediaPlayer::TrackId>& enabledTrackIds) {
DCHECK(main_task_runner_->BelongsToCurrentThread());
@@ -3529,7 +3535,11 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
@@ -3528,7 +3534,11 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
// Audio only stream is allowed to play when in background.
// TODO: We should check IsBackgroundOptimizationCandidate here. But we need
// to move the logic of checking video frames out of that function.
@ -39,7 +39,7 @@ diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_imp
diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl.h
--- a/media/blink/webmediaplayer_impl.h
+++ b/media/blink/webmediaplayer_impl.h
@@ -153,6 +153,8 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
@@ -157,6 +157,8 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
// True if the loaded media has a playable video/audio track.
bool HasVideo() const override;
bool HasAudio() const override;

View file

@ -10,7 +10,7 @@ Disable prefs::kSigninAllowedOnNextStartup by default. The setting can be found
diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/browser/signin/account_consistency_mode_manager.cc
--- a/chrome/browser/signin/account_consistency_mode_manager.cc
+++ b/chrome/browser/signin/account_consistency_mode_manager.cc
@@ -118,7 +118,7 @@ void AccountConsistencyModeManager::RegisterProfilePrefs(
@@ -119,7 +119,7 @@ void AccountConsistencyModeManager::RegisterProfilePrefs(
#if BUILDFLAG(ENABLE_DICE_SUPPORT)
registry->RegisterBooleanPref(kDiceMigrationCompletePref, false);
#endif

View file

@ -9,7 +9,7 @@ Subject: Always allow partner customisation
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
@@ -325,14 +325,14 @@ public class PartnerBrowserCustomizations {
@@ -324,14 +324,14 @@ public class PartnerBrowserCustomizations {
@Override
protected Void doInBackground() {
try {

View file

@ -11,7 +11,7 @@ Do not read experiment value for cronet async DNS configuration
diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc
--- a/chrome/browser/net/system_network_context_manager.cc
+++ b/chrome/browser/net/system_network_context_manager.cc
@@ -150,7 +150,7 @@ network::mojom::HttpAuthDynamicParamsPtr CreateHttpAuthDynamicParams(
@@ -156,7 +156,7 @@ network::mojom::HttpAuthDynamicParamsPtr CreateHttpAuthDynamicParams(
local_state->GetBoolean(prefs::kNtlmV2Enabled);
#endif // defined(OS_POSIX)
@ -23,7 +23,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
diff --git a/components/cronet/url_request_context_config.cc b/components/cronet/url_request_context_config.cc
--- a/components/cronet/url_request_context_config.cc
+++ b/components/cronet/url_request_context_config.cc
@@ -555,7 +555,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions(
@@ -561,7 +561,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions(
effective_experimental_options->Remove(it.key(), nullptr);
continue;
}

View file

@ -10,7 +10,7 @@ Ignore any partner-provided home page.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
@@ -135,9 +135,6 @@ public class HomepageManager implements HomepagePolicyManager.HomepagePolicyStat
@@ -146,9 +146,6 @@ public class HomepageManager implements HomepagePolicyManager.HomepagePolicyStat
* if the homepage button is force enabled via flag.
*/
public static String getDefaultHomepageUri() {

View file

@ -46,7 +46,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.idl b/thir
diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc
--- a/third_party/blink/renderer/modules/webaudio/audio_context.cc
+++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc
@@ -398,7 +398,9 @@ double AudioContext::baseLatency() const {
@@ -406,7 +406,9 @@ double AudioContext::baseLatency() const {
DCHECK(IsMainThread());
DCHECK(destination());

File diff suppressed because one or more lines are too long

View file

@ -10,7 +10,7 @@ Include @thestinger's fix for correct charging/unknown values
diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/third_party/blink/renderer/modules/battery/battery_manager.cc
--- a/third_party/blink/renderer/modules/battery/battery_manager.cc
+++ b/third_party/blink/renderer/modules/battery/battery_manager.cc
@@ -45,46 +45,28 @@ ScriptPromise BatteryManager::StartRequest(ScriptState* script_state) {
@@ -69,46 +69,28 @@ ScriptPromise BatteryManager::StartRequest(ScriptState* script_state) {
}
bool BatteryManager::charging() {
@ -37,7 +37,7 @@ diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/thi
DCHECK(battery_property_);
- BatteryStatus old_status = battery_status_;
- battery_status_ = *BatteryDispatcher::Instance().LatestData();
- battery_status_ = *battery_dispatcher_->LatestData();
-
if (battery_property_->GetState() == BatteryProperty::kPending) {
battery_property_->Resolve(this);

View file

@ -27,7 +27,7 @@ This patch is based on Iridium's 'net: add "trk:" scheme and help identify URLs
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc b/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc
--- a/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc
+++ b/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc
@@ -55,6 +55,7 @@ ChromeAutocompleteSchemeClassifier::GetInputTypeForScheme(
@@ -56,6 +56,7 @@ ChromeAutocompleteSchemeClassifier::GetInputTypeForScheme(
if (base::IsStringASCII(scheme) &&
(ProfileIOData::IsHandledProtocol(scheme) ||
base::LowerCaseEqualsASCII(scheme, content::kViewSourceScheme) ||
@ -62,7 +62,7 @@ diff --git a/chrome/browser/ui/singleton_tabs.cc b/chrome/browser/ui/singleton_t
diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnibox/browser/autocomplete_input.cc
--- a/components/omnibox/browser/autocomplete_input.cc
+++ b/components/omnibox/browser/autocomplete_input.cc
@@ -486,7 +486,8 @@ void AutocompleteInput::ParseForEmphasizeComponents(
@@ -526,7 +526,8 @@ void AutocompleteInput::ParseForEmphasizeComponents(
// For the view-source and blob schemes, we should emphasize the host of the
// URL qualified by the view-source or blob prefix.
if ((base::LowerCaseEqualsASCII(scheme_str, kViewSourceScheme) ||
@ -72,7 +72,7 @@ diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnib
(static_cast<int>(text.length()) > after_scheme_and_colon)) {
// Obtain the URL prefixed by view-source or blob and parse it.
base::string16 real_url(text.substr(after_scheme_and_colon));
@@ -559,7 +560,9 @@ int AutocompleteInput::NumNonHostComponents(const url::Parsed& parts) {
@@ -599,7 +600,9 @@ int AutocompleteInput::NumNonHostComponents(const url::Parsed& parts) {
bool AutocompleteInput::HasHTTPScheme(const base::string16& input) {
std::string utf8_input(base::UTF16ToUTF8(input));
url::Component scheme;
@ -100,7 +100,7 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur
diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc
--- a/content/browser/child_process_security_policy_impl.cc
+++ b/content/browser/child_process_security_policy_impl.cc
@@ -760,6 +760,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() {
@@ -772,6 +772,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
@@ -1095,6 +1095,8 @@ component("net") {
@@ -1086,6 +1086,8 @@ component("net") {
"url_request/report_sender.h",
"url_request/static_http_user_agent_settings.cc",
"url_request/static_http_user_agent_settings.h",
@ -205,7 +205,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
using base::Time;
using std::string;
@@ -566,6 +568,12 @@ URLRequest::URLRequest(const GURL& url,
@@ -575,6 +577,12 @@ URLRequest::URLRequest(const GURL& url,
// Sanity check out environment.
DCHECK(base::ThreadTaskRunnerHandle::IsSet());
@ -229,7 +229,7 @@ diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/ur
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_context_storage.h"
#include "net/url_request/url_request_job_factory.h"
@@ -614,6 +615,8 @@ std::unique_ptr<URLRequestContext> URLRequestContextBuilder::Build() {
@@ -605,6 +606,8 @@ std::unique_ptr<URLRequestContext> URLRequestContextBuilder::Build() {
job_factory->SetProtocolHandler(scheme_handler.first,
std::move(scheme_handler.second));
}

View file

@ -18,7 +18,7 @@ Subject: Block gateway attacks via websockets
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
--- a/content/public/common/content_features.cc
+++ b/content/public/common/content_features.cc
@@ -101,7 +101,7 @@ const base::Feature kBlockCredentialedSubresources{
@@ -92,7 +92,7 @@ const base::Feature kBlockCredentialedSubresources{
//
// https://wicg.github.io/cors-rfc1918/#integration-fetch
const base::Feature kBlockInsecurePrivateNetworkRequests{
@ -26,13 +26,13 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c
+ "BlockInsecurePrivateNetworkRequests", base::FEATURE_ENABLED_BY_DEFAULT};
// Use ThreadPriority::DISPLAY for browser UI and IO threads.
#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
#if defined(OS_ANDROID) || BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third_party/blink/renderer/core/loader/base_fetch_context.h
--- a/third_party/blink/renderer/core/loader/base_fetch_context.h
+++ b/third_party/blink/renderer/core/loader/base_fetch_context.h
@@ -66,6 +66,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext {
virtual PreviewsResourceLoadingHints* GetPreviewsResourceLoadingHints()
const = 0;
@@ -81,6 +81,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext {
virtual SubresourceFilter* GetSubresourceFilter() const = 0;
virtual bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const = 0;
+ virtual bool ShouldBlockGateWayAttacks(network::mojom::IPAddressSpace requestor_space, const KURL&) const = 0;
virtual std::unique_ptr<WebSocketHandshakeThrottle>
@ -41,7 +41,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
@@ -749,6 +749,24 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
@@ -556,6 +556,24 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
return should_block_request;
}
@ -69,7 +69,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/third_party/blink/renderer/core/loader/frame_fetch_context.h
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.h
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.h
@@ -159,6 +159,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext,
@@ -162,6 +162,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext,
bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override;
std::unique_ptr<WebSocketHandshakeThrottle> CreateWebSocketHandshakeThrottle()
override;
@ -80,7 +80,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/thir
diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.cc b/third_party/blink/renderer/core/loader/worker_fetch_context.cc
--- a/third_party/blink/renderer/core/loader/worker_fetch_context.cc
+++ b/third_party/blink/renderer/core/loader/worker_fetch_context.cc
@@ -25,6 +25,7 @@
@@ -26,6 +26,7 @@
#include "third_party/blink/renderer/platform/loader/fetch/resource_timing_info.h"
#include "third_party/blink/renderer/platform/loader/fetch/worker_resource_timing_notifier.h"
#include "third_party/blink/renderer/platform/network/network_state_notifier.h"
@ -88,7 +88,7 @@ diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.cc b/th
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
#include "third_party/blink/renderer/platform/supplementable.h"
#include "third_party/blink/renderer/platform/weborigin/security_policy.h"
@@ -96,6 +97,24 @@ bool WorkerFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
@@ -92,6 +93,24 @@ bool WorkerFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
return should_block_request;
}
@ -161,7 +161,7 @@ diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_imp
diff --git a/third_party/blink/renderer/modules/websockets/websocket_common.cc b/third_party/blink/renderer/modules/websockets/websocket_common.cc
--- a/third_party/blink/renderer/modules/websockets/websocket_common.cc
+++ b/third_party/blink/renderer/modules/websockets/websocket_common.cc
@@ -87,6 +87,15 @@ WebSocketCommon::ConnectResult WebSocketCommon::Connect(
@@ -79,6 +79,15 @@ WebSocketCommon::ConnectResult WebSocketCommon::Connect(
return ConnectResult::kException;
}
@ -177,7 +177,7 @@ diff --git a/third_party/blink/renderer/modules/websockets/websocket_common.cc b
if (!execution_context->GetContentSecurityPolicyForCurrentWorld()
->AllowConnectToSource(url_, url_, RedirectStatus::kNoRedirect)) {
state_ = kClosed;
@@ -135,6 +144,24 @@ WebSocketCommon::ConnectResult WebSocketCommon::Connect(
@@ -127,6 +136,24 @@ WebSocketCommon::ConnectResult WebSocketCommon::Connect(
return ConnectResult::kSuccess;
}

File diff suppressed because it is too large Load diff

View file

@ -6,28 +6,13 @@ This prevents leakage of the local IP address.
See also: https://github.com/bromite/bromite/issues/553
---
chrome/browser/ui/browser_ui_prefs.cc | 4 ++--
.../peerconnection/peer_connection_dependency_factory.cc | 7 ++++---
2 files changed, 6 insertions(+), 5 deletions(-)
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
--- a/chrome/browser/ui/browser_ui_prefs.cc
+++ b/chrome/browser/ui/browser_ui_prefs.cc
@@ -87,8 +87,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
false);
#endif
// TODO(guoweis): Remove next 2 options at M50.
- registry->RegisterBooleanPref(prefs::kWebRTCMultipleRoutesEnabled, true);
- registry->RegisterBooleanPref(prefs::kWebRTCNonProxiedUdpEnabled, true);
+ registry->RegisterBooleanPref(prefs::kWebRTCMultipleRoutesEnabled, false);
+ registry->RegisterBooleanPref(prefs::kWebRTCNonProxiedUdpEnabled, false);
registry->RegisterStringPref(prefs::kWebRTCIPHandlingPolicy,
blink::kWebRTCIPHandlingDefault);
registry->RegisterStringPref(prefs::kWebRTCUDPPortRange, std::string());
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
@@ -422,12 +422,13 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
@@ -461,12 +461,13 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
port_config.enable_nonproxied_udp = false;
break;
case DEFAULT:

View file

@ -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
@@ -557,7 +557,7 @@ const base::Feature kMediaDrmPersistentLicense{
@@ -595,7 +595,7 @@ const base::Feature kMediaDrmPersistentLicense{
// MediaDrmBridge. If disabled, MediaDrmBridge will get unprovisioned origin IDs
// which will trigger provisioning process after MediaDrmBridge is created.
const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning",

View file

@ -9,16 +9,16 @@ Subject: Disable all promo dialogs
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
@@ -428,7 +428,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator implements Native
@@ -491,7 +491,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
* displayed.
*/
private boolean triggerPromo(boolean intentWithEffect) {
- try (TraceEvent e = TraceEvent.scoped("TabbedRootUiCoordinator.triggerPromo")) {
+ /*try (TraceEvent e = TraceEvent.scoped("TabbedRootUiCoordinator.triggerPromo")) {
SharedPreferencesManager preferenceManager = SharedPreferencesManager.getInstance();
// Promos can only be shown when we start with ACTION_MAIN intent and
// after FRE is complete. Native initialization can finish before the FRE flow is
@@ -459,8 +459,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator implements Native
if (CommandLine.getInstance().hasSwitch(ChromeSwitches.DISABLE_STARTUP_PROMOS)) {
return false;
}
@@ -526,8 +526,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
preferenceManager.writeBoolean(
ChromePreferenceKeys.PROMOS_SKIPPED_ON_FIRST_START, true);
}

View file

@ -9,7 +9,7 @@ Subject: Disable autofill assistant by default
diff --git a/chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferencesUtil.java b/chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferencesUtil.java
--- a/chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferencesUtil.java
+++ b/chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferencesUtil.java
@@ -22,7 +22,7 @@ class AutofillAssistantPreferencesUtil {
@@ -23,7 +23,7 @@ public class AutofillAssistantPreferencesUtil {
/** Checks whether the Autofill Assistant switch preference in settings is on. */
static boolean isAutofillAssistantSwitchOn() {
return SharedPreferencesManager.getInstance().readBoolean(
@ -17,7 +17,7 @@ diff --git a/chrome/android/features/autofill_assistant/public/java/src/org/chro
+ ChromePreferenceKeys.AUTOFILL_ASSISTANT_ENABLED, false);
}
/** Returns whether the user has seen a lite script before or not. */
/** Checks whether proactive help is enabled. */
--
2.17.1

View file

@ -60,7 +60,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
diff --git a/components/variations/service/variations_service.cc b/components/variations/service/variations_service.cc
--- a/components/variations/service/variations_service.cc
+++ b/components/variations/service/variations_service.cc
@@ -236,17 +236,7 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers,
@@ -239,17 +239,7 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers,
// Variations seed fetching is only enabled in official Chrome builds, if a URL
// is specified on the command line, and for testing.
bool IsFetchingEnabled() {

View file

@ -3,44 +3,54 @@ Date: Thu, 4 Jul 2019 19:08:52 -0400
Subject: Disable media router and remoting by default
---
.../media/router/media_router_feature.cc | 17 ++++++++---------
chrome/browser/profiles/profile.cc | 2 +-
chrome/browser/profiles/profile_impl.cc | 2 +-
3 files changed, 10 insertions(+), 11 deletions(-)
.../browser/media/router/media_router_feature.cc | 15 +++------------
chrome/browser/profiles/profile.cc | 2 +-
chrome/browser/profiles/profile_impl.cc | 2 +-
3 files changed, 5 insertions(+), 14 deletions(-)
diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browser/media/router/media_router_feature.cc
--- a/chrome/browser/media/router/media_router_feature.cc
+++ b/chrome/browser/media/router/media_router_feature.cc
@@ -67,17 +67,16 @@ bool MediaRouterEnabled(content::BrowserContext* context) {
@@ -53,16 +53,6 @@ const base::Feature kAllowAllSitesToInitiateMirroring{
"AllowAllSitesToInitiateMirroring", base::FEATURE_DISABLED_BY_DEFAULT};
#endif // !defined(OS_ANDROID)
-#if defined(OS_ANDROID) || BUILDFLAG(ENABLE_EXTENSIONS)
-namespace {
-const PrefService::Preference* GetMediaRouterPref(
- content::BrowserContext* context) {
- return user_prefs::UserPrefs::Get(context)->FindPreference(
- ::prefs::kEnableMediaRouter);
-}
-} // namespace
-#endif // defined(OS_ANDROID) || BUILDFLAG(ENABLE_EXTENSIONS)
-
bool MediaRouterEnabled(content::BrowserContext* context) {
#if !defined(OFFICIAL_BUILD) && !defined(OS_ANDROID)
if (!base::FeatureList::IsEnabled(kMediaRouter))
@@ -70,7 +60,7 @@ bool MediaRouterEnabled(content::BrowserContext* context) {
#endif // !defined(OFFICIAL_BUILD) && !defined(OS_ANDROID)
#if defined(OS_ANDROID) || BUILDFLAG(ENABLE_EXTENSIONS)
- const PrefService::Preference* pref = GetMediaRouterPref(context);
- // Only use the pref value if it set from a mandatory policy.
- if (pref->IsManaged() && !pref->IsDefaultValue()) {
- bool allowed = false;
- CHECK(pref->GetValue()->GetAsBoolean(&allowed));
- return allowed;
- }
-
- static base::NoDestructor<base::flat_map<content::BrowserContext*, bool>>
+/* static base::NoDestructor<base::flat_map<content::BrowserContext*, bool>>
stored_pref_values;
// If the Media Router was already enabled or disabled for |context|, then it
@@ -91,7 +81,8 @@ bool MediaRouterEnabled(content::BrowserContext* context) {
// The component extension cannot be loaded in guest sessions.
// TODO(crbug.com/756243): Figure out why.
- return !Profile::FromBrowserContext(context)->IsGuestSession();
+ if (Profile::FromBrowserContext(context)->IsGuestSession()) {
+ return false;
+ }
+
+ const PrefService::Preference* pref = GetMediaRouterPref(context);
+ bool allowed = false;
+ pref->GetValue()->GetAsBoolean(&allowed);
+ return allowed;
+ return !Profile::FromBrowserContext(context)->IsGuestSession(); */
+ return false;
#else // !(defined(OS_ANDROID) || BUILDFLAG(ENABLE_EXTENSIONS))
return false;
#endif // defined(OS_ANDROID) || BUILDFLAG(ENABLE_EXTENSIONS)
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
@@ -345,7 +345,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
@@ -327,7 +327,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
media_router::prefs::kMediaRouterEnableCloudServices, false,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
registry->RegisterBooleanPref(
@ -52,15 +62,15 @@ diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profil
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
--- a/chrome/browser/profiles/profile_impl.cc
+++ b/chrome/browser/profiles/profile_impl.cc
@@ -409,7 +409,7 @@ void ProfileImpl::RegisterProfilePrefs(
@@ -455,7 +455,7 @@ void ProfileImpl::RegisterProfilePrefs(
#endif
registry->RegisterBooleanPref(prefs::kForceEphemeralProfiles, false);
- registry->RegisterBooleanPref(prefs::kEnableMediaRouter, true);
+ registry->RegisterBooleanPref(prefs::kEnableMediaRouter, false);
#if defined(OS_CHROMEOS)
registry->RegisterBooleanPref(
prefs::kOobeMarketingOptInScreenFinished, false,
#if !defined(OS_ANDROID)
registry->RegisterBooleanPref(prefs::kShowCastIconInToolbar, false);
#endif // !defined(OS_ANDROID)
--
2.17.1

View file

@ -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
@@ -29,8 +29,6 @@ static_library("ntp_tiles") {
@@ -20,8 +20,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",
@@ -86,7 +84,6 @@ source_set("unit_tests") {
@@ -85,7 +83,6 @@ source_set("unit_tests") {
"custom_links_manager_impl_unittest.cc",
"custom_links_store_unittest.cc",
"icon_cacher_impl_unittest.cc",

View file

@ -3,15 +3,14 @@ Date: Wed, 25 Apr 2018 10:23:51 +0200
Subject: Disable metrics on all I/O threads
---
chrome/browser/browser_process_impl.cc | 2 +-
chrome/browser/profiles/profile_io_data.cc | 2 --
2 files changed, 1 insertion(+), 3 deletions(-)
chrome/browser/browser_process_impl.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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
@@ -939,7 +939,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) {
#endif // defined(OS_CHROMEOS)
@@ -942,7 +942,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) {
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
registry->RegisterBooleanPref(metrics::prefs::kMetricsReportingEnabled,
- GoogleUpdateSettings::GetCollectStatsConsent());
@ -19,18 +18,6 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
}
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
@@ -45,8 +45,6 @@
#include "components/content_settings/core/browser/host_content_settings_map.h"
#include "components/cookie_config/cookie_store_util.h"
#include "components/dom_distiller/core/url_constants.h"
-#include "components/metrics/metrics_pref_names.h"
-#include "components/metrics/metrics_service.h"
#include "components/net_log/chrome_net_log.h"
#include "components/policy/core/common/cloud/user_cloud_policy_manager.h"
#include "components/signin/public/base/signin_pref_names.h"
--
2.17.1

View file

@ -10,7 +10,7 @@ Subject: Disable offline pages in the downloads home to be opened in CCT by
diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/offline_pages/core/offline_page_feature.cc
--- a/components/offline_pages/core/offline_page_feature.cc
+++ b/components/offline_pages/core/offline_page_feature.cc
@@ -51,7 +51,7 @@ const base::Feature kOfflinePagesDescriptivePendingStatusFeature{
@@ -42,7 +42,7 @@ const base::Feature kOfflinePagesDescriptivePendingStatusFeature{
"OfflinePagesDescriptivePendingStatus", base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kOfflinePagesInDownloadHomeOpenInCctFeature{

View file

@ -11,7 +11,7 @@ a corresponding user option to individually disable their usage.
diff --git a/components/url_formatter/url_formatter.cc b/components/url_formatter/url_formatter.cc
--- a/components/url_formatter/url_formatter.cc
+++ b/components/url_formatter/url_formatter.cc
@@ -469,13 +469,13 @@ ComponentResult IDNToUnicodeOneComponent(
@@ -471,13 +471,13 @@ ComponentResult IDNToUnicodeOneComponent(
} // namespace
const FormatUrlType kFormatUrlOmitNothing = 0;

View file

@ -1,117 +0,0 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sun, 15 Dec 2019 22:39:56 +0100
Subject: Disable password reuse detection on android
---
.../android/password_reuse_controller_android.cc | 12 ++++++++++++
.../password_reuse_dialog_view_android.cc | 11 +++++++++--
components/password_manager/core/browser/BUILD.gn | 6 +++---
3 files changed, 24 insertions(+), 5 deletions(-)
diff --git a/chrome/browser/safe_browsing/android/password_reuse_controller_android.cc b/chrome/browser/safe_browsing/android/password_reuse_controller_android.cc
--- a/chrome/browser/safe_browsing/android/password_reuse_controller_android.cc
+++ b/chrome/browser/safe_browsing/android/password_reuse_controller_android.cc
@@ -17,17 +17,25 @@ PasswordReuseControllerAndroid::PasswordReuseControllerAndroid(
ChromePasswordProtectionService* service,
ReusedPasswordAccountType password_type,
OnWarningDone done_callback)
+#if defined(SYNC_PASSWORD_REUSE_WARNING_ENABLED)
: service_(service),
+#else
+ :
+#endif
url_(web_contents->GetLastCommittedURL()),
password_type_(password_type),
window_android_(web_contents->GetTopLevelNativeWindow()),
done_callback_(std::move(done_callback)) {
modal_construction_start_time_ = base::TimeTicks::Now();
+#if defined(SYNC_PASSWORD_REUSE_WARNING_ENABLED)
service_->AddObserver(this);
+#endif
}
PasswordReuseControllerAndroid::~PasswordReuseControllerAndroid() {
+#if defined(SYNC_PASSWORD_REUSE_WARNING_ENABLED)
service_->RemoveObserver(this);
+#endif
dialog_view_.reset();
LogModalWarningDialogLifetime(modal_construction_start_time_);
}
@@ -48,20 +56,24 @@ base::string16 PasswordReuseControllerAndroid::GetButtonText() const {
return l10n_util::GetStringUTF16(IDS_CLOSE);
}
+#if defined(SYNC_PASSWORD_REUSE_WARNING_ENABLED)
base::string16 PasswordReuseControllerAndroid::GetWarningDetailText(
std::vector<size_t>* placeholder_offsets) const {
return service_->GetWarningDetailText(password_type_, placeholder_offsets);
}
+#endif
base::string16 PasswordReuseControllerAndroid::GetTitle() const {
return l10n_util::GetStringUTF16(IDS_PAGE_INFO_CHANGE_PASSWORD_SUMMARY);
}
+#if defined(SYNC_PASSWORD_REUSE_WARNING_ENABLED)
const std::vector<base::string16>
PasswordReuseControllerAndroid::GetPlaceholdersForSavedPasswordWarningText()
const {
return service_->GetPlaceholdersForSavedPasswordWarningText();
}
+#endif
void PasswordReuseControllerAndroid::OnGaiaPasswordChanged() {
delete this;
diff --git a/chrome/browser/ui/android/safe_browsing/password_reuse_dialog_view_android.cc b/chrome/browser/ui/android/safe_browsing/password_reuse_dialog_view_android.cc
--- a/chrome/browser/ui/android/safe_browsing/password_reuse_dialog_view_android.cc
+++ b/chrome/browser/ui/android/safe_browsing/password_reuse_dialog_view_android.cc
@@ -29,6 +29,7 @@ void PasswordReuseDialogViewAndroid::Show(ui::WindowAndroid* window_android) {
java_object_.Reset(Java_SafeBrowsingPasswordReuseDialogBridge_create(
env, window_android->GetJavaObject(), reinterpret_cast<intptr_t>(this)));
+#if defined(SYNC_PASSWORD_REUSE_WARNING_ENABLED)
std::vector<size_t> placeholder_offsets;
base::string16 warning_detail_text =
controller_->GetWarningDetailText(&placeholder_offsets);
@@ -50,14 +51,20 @@ void PasswordReuseDialogViewAndroid::Show(ui::WindowAndroid* window_android) {
base::android::ToJavaIntArray(env, start_ranges, len);
base::android::ScopedJavaLocalRef<jintArray> j_end_ranges =
base::android::ToJavaIntArray(env, end_ranges, len);
-
+#else
+ int start_ranges[0], end_ranges[0];
+ base::android::ScopedJavaLocalRef<jintArray> j_start_ranges =
+ base::android::ToJavaIntArray(env, start_ranges, 0);
+ base::android::ScopedJavaLocalRef<jintArray> j_end_ranges =
+ base::android::ToJavaIntArray(env, end_ranges, 0);
Java_SafeBrowsingPasswordReuseDialogBridge_showDialog(
env, java_object_,
base::android::ConvertUTF16ToJavaString(env, controller_->GetTitle()),
- base::android::ConvertUTF16ToJavaString(env, warning_detail_text),
+ base::android::ConvertUTF16ToJavaString(env, controller_->GetTitle()),
base::android::ConvertUTF16ToJavaString(env,
controller_->GetButtonText()),
j_start_ranges, j_end_ranges);
+#endif
}
void PasswordReuseDialogViewAndroid::Close(
diff --git a/components/password_manager/core/browser/BUILD.gn b/components/password_manager/core/browser/BUILD.gn
--- a/components/password_manager/core/browser/BUILD.gn
+++ b/components/password_manager/core/browser/BUILD.gn
@@ -11,9 +11,9 @@ if (is_android) {
# TODO(crbug.com/1006430): Fix password reuse detection not fully functional on
# Android.
-password_reuse_detection_support = !is_ios
-password_reuse_warning_support = !is_ios
-password_on_focus_ping_support = !is_ios
+password_reuse_detection_support = !is_ios && !is_android
+password_reuse_warning_support = !is_ios && !is_android
+password_on_focus_ping_support = !is_ios && !is_android
config("password_reuse_detection_config") {
defines = []
--
2.17.1

View file

@ -9,11 +9,11 @@ Subject: Disable plugins enumeration
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
--- a/third_party/blink/renderer/core/frame/local_frame.cc
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -1701,10 +1701,8 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
@@ -1864,10 +1864,8 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
}
PluginData* LocalFrame::GetPluginData() const {
- if (!Loader().AllowPlugins(kNotAboutToInstantiatePlugin))
- if (!Loader().AllowPlugins())
- return nullptr;
- return GetPage()->GetPluginData(
- Tree().Top().GetSecurityContext()->GetSecurityOrigin());

View file

@ -21,7 +21,7 @@ diff --git a/components/previews/core/previews_features.cc b/components/previews
-#endif // defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS)
};
// Enables the Offline previews on android slow connections.
// Provides slow page triggering parameters.
--
2.17.1

View file

@ -1,391 +0,0 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sat, 10 Nov 2018 17:20:21 +0100
Subject: Disable promos displayed in bookmarks manager
Remove personalized signin promo view from
bookmarks, never reach signin thresholds.
---
chrome/android/chrome_java_resources.gni | 1 -
...rsonalized_signin_promo_view_bookmarks.xml | 30 -----
.../bookmarks/BookmarkItemsAdapter.java | 30 +----
.../bookmarks/BookmarkPromoHeader.java | 121 +-----------------
.../browser/signin/SigninPromoController.java | 23 +---
5 files changed, 5 insertions(+), 200 deletions(-)
delete mode 100644 chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
@@ -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",
- "java/res/layout/personalized_signin_promo_view_bookmarks.xml",
"java/res/layout/personalized_signin_promo_view_header.xml",
"java/res/layout/personalized_signin_promo_view_modern_content_suggestions.xml",
"java/res/layout/personalized_signin_promo_view_recent_tabs.xml",
diff --git a/chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml b/chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml
deleted file mode 100644
--- a/chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright 2017 The Chromium Authors. All rights reserved.
- Use of this source code is governed by a BSD-style license that can be
- found in the LICENSE file. -->
-
-<org.chromium.chrome.browser.signin.PersonalizedSigninPromoView
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/signin_promo_view_container"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_margin="16dp"
- android:background="@drawable/hairline_border_card_background"
- android:gravity="center_horizontal"
- android:orientation="vertical"
- android:paddingBottom="12dp"
- android:paddingTop="14dp"
- android:paddingStart="16dp"
- android:paddingEnd="16dp">
-
- <FrameLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginBottom="12dp">
-
- <include layout="@layout/personalized_signin_promo_view_header"/>
- </FrameLayout>
-
- <include layout="@layout/personalized_signin_promo_view_body"/>
-
-</org.chromium.chrome.browser.signin.PersonalizedSigninPromoView>
\ No newline at end of file
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
@@ -21,7 +21,6 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.bookmarks.BookmarkBridge.BookmarkItem;
import org.chromium.chrome.browser.bookmarks.BookmarkBridge.BookmarkModelObserver;
import org.chromium.chrome.browser.bookmarks.BookmarkRow.Location;
-import org.chromium.chrome.browser.signin.PersonalizedSigninPromoView;
import org.chromium.chrome.browser.sync.ProfileSyncService;
import org.chromium.components.bookmarks.BookmarkId;
import org.chromium.components.bookmarks.BookmarkType;
@@ -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;
@@ -187,9 +185,9 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkItem>
case ViewType.PERSONALIZED_SIGNIN_PROMO:
// fall through
case ViewType.PERSONALIZED_SYNC_PROMO:
- return mPromoHeaderManager.createPersonalizedSigninAndSyncPromoHolder(parent);
+ return null;
case ViewType.SYNC_PROMO:
- return mPromoHeaderManager.createSyncPromoHolder(parent);
+ return null;
case ViewType.FOLDER:
return createViewHolderHelper(parent, R.layout.bookmark_folder_row);
case ViewType.BOOKMARK:
@@ -203,11 +201,7 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkItem>
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
if (holder.getItemViewType() == ViewType.PERSONALIZED_SIGNIN_PROMO) {
- PersonalizedSigninPromoView view = (PersonalizedSigninPromoView) holder.itemView;
- mPromoHeaderManager.setupPersonalizedSigninPromo(view);
} else if (holder.getItemViewType() == ViewType.PERSONALIZED_SYNC_PROMO) {
- PersonalizedSigninPromoView view = (PersonalizedSigninPromoView) holder.itemView;
- mPromoHeaderManager.setupPersonalizedSyncPromo(view);
} else if (!(holder.getItemViewType() == ViewType.SYNC_PROMO)) {
BookmarkRow row = ((BookmarkRow) holder.itemView);
BookmarkId id = getIdByPosition(position);
@@ -236,7 +230,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkItem>
case ViewType.PERSONALIZED_SIGNIN_PROMO:
// fall through
case ViewType.PERSONALIZED_SYNC_PROMO:
- mPromoHeaderManager.detachPersonalizePromoView();
break;
default:
// Other view holders don't have special recycling code.
@@ -262,7 +255,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkItem>
updateHeader(!topLevelFoldersShowing());
};
- mPromoHeaderManager = new BookmarkPromoHeader(mContext, promoHeaderChangeAction);
populateTopLevelFoldersList();
mElements = new ArrayList<>();
@@ -277,7 +269,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkItem>
mDelegate.getModel().removeObserver(mBookmarkModelObserver);
mDelegate.getSelectionDelegate().removeObserver(this);
mDelegate = null;
- mPromoHeaderManager.destroy();
mProfileSyncService.removeSyncStateChangedListener(this);
}
@@ -387,23 +378,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkItem>
return;
} else if (currentUIState == BookmarkUIState.STATE_SEARCHING) {
mPromoHeaderType = ViewType.INVALID_PROMO;
- } else {
- switch (mPromoHeaderManager.getPromoState()) {
- case BookmarkPromoHeader.PromoState.PROMO_NONE:
- mPromoHeaderType = ViewType.INVALID_PROMO;
- break;
- case BookmarkPromoHeader.PromoState.PROMO_SIGNIN_PERSONALIZED:
- mPromoHeaderType = ViewType.PERSONALIZED_SIGNIN_PROMO;
- break;
- case BookmarkPromoHeader.PromoState.PROMO_SYNC_PERSONALIZED:
- mPromoHeaderType = ViewType.PERSONALIZED_SYNC_PROMO;
- break;
- case BookmarkPromoHeader.PromoState.PROMO_SYNC:
- mPromoHeaderType = ViewType.SYNC_PROMO;
- break;
- default:
- assert false : "Unexpected value for promo state!";
- }
}
boolean willShowPromo = hasPromoHeader();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java
@@ -21,15 +21,9 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.signin.IdentityServicesProvider;
-import org.chromium.chrome.browser.signin.PersonalizedSigninPromoView;
import org.chromium.chrome.browser.signin.ProfileDataCache;
-import org.chromium.chrome.browser.signin.SigninManager;
-import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver;
import org.chromium.chrome.browser.signin.SigninPromoController;
-import org.chromium.chrome.browser.signin.SigninPromoUtil;
import org.chromium.chrome.browser.signin.SyncPromoView;
-import org.chromium.chrome.browser.sync.AndroidSyncSettings;
-import org.chromium.chrome.browser.sync.AndroidSyncSettings.AndroidSyncSettingsObserver;
import org.chromium.components.signin.AccountManagerFacade;
import org.chromium.components.signin.AccountManagerFacadeProvider;
import org.chromium.components.signin.AccountsChangeObserver;
@@ -44,7 +38,7 @@ import java.lang.annotation.RetentionPolicy;
* Class that manages all the logic and UI behind the signin promo header in the bookmark
* content UI. The header is shown only on certain situations, (e.g., not signed in).
*/
-class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObserver,
+class BookmarkPromoHeader implements
ProfileDataCache.Observer, AccountsChangeObserver {
/**
* Specifies the various states in which the Bookmarks promo can be.
@@ -65,7 +59,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
private static @Nullable @PromoState Integer sPromoStateForTests;
private final Context mContext;
- private final SigninManager mSignInManager;
private final AccountManagerFacade mAccountManagerFacade;
private final Runnable mPromoHeaderChangeAction;
@@ -81,12 +74,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
mContext = context;
mPromoHeaderChangeAction = promoHeaderChangeAction;
- AndroidSyncSettings.get().registerObserver(this);
-
- mSignInManager = IdentityServicesProvider.get().getSigninManager(
- Profile.getLastUsedRegularProfile());
- mSignInManager.addSignInStateObserver(this);
-
mAccountManagerFacade = AccountManagerFacadeProvider.getInstance();
mPromoState = calculatePromoState();
@@ -111,15 +98,11 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
* Clean ups the class. Must be called once done using this class.
*/
void destroy() {
- AndroidSyncSettings.get().unregisterObserver(this);
-
if (mSigninPromoController != null) {
mAccountManagerFacade.removeObserver(this);
mProfileDataCache.removeObserver(this);
mSigninPromoController.onPromoDestroyed();
}
-
- mSignInManager.removeSignInStateObserver(this);
}
/**
@@ -130,18 +113,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
return mPromoState;
}
- /**
- * @return Personalized signin promo header {@link ViewHolder} instance that can be used with
- * {@link RecyclerView}.
- */
- ViewHolder createPersonalizedSigninAndSyncPromoHolder(ViewGroup parent) {
- View view = LayoutInflater.from(mContext).inflate(
- R.layout.personalized_signin_promo_view_bookmarks, parent, false);
-
- // ViewHolder is abstract and it cannot be instantiated directly.
- return new ViewHolder(view) {};
- }
-
/**
* @return Sync promo header {@link ViewHolder} instance that can be used with
* {@link RecyclerView}.
@@ -153,54 +124,11 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
return new ViewHolder(view) {};
}
- /**
- * Configures the personalized signin promo and records promo impressions.
- * @param view The view to be configured.
- */
- void setupPersonalizedSigninPromo(PersonalizedSigninPromoView view) {
- SigninPromoUtil.setupSigninPromoViewFromCache(mSigninPromoController, mProfileDataCache,
- view, this::setPersonalizedSigninPromoDeclined);
- }
-
- void setupPersonalizedSyncPromo(PersonalizedSigninPromoView view) {
- SigninPromoUtil.setupSyncPromoViewFromCache(mSigninPromoController, mProfileDataCache, view,
- this::setPersonalizedSigninPromoDeclined);
- }
-
- /**
- * Detaches the previously configured {@link PersonalizedSigninPromoView}.
- */
- void detachPersonalizePromoView() {
- if (mSigninPromoController != null) mSigninPromoController.detach();
- }
-
- /**
- * Saves that the personalized signin promo was declined and updates the UI.
- */
- private void setPersonalizedSigninPromoDeclined() {
- SharedPreferencesManager.getInstance().writeBoolean(
- ChromePreferenceKeys.SIGNIN_PROMO_PERSONALIZED_DECLINED, true);
- mPromoState = calculatePromoState();
- triggerPromoUpdate();
- }
-
- /**
- * @return Whether the user declined the personalized signin promo.
- */
- @VisibleForTesting
- static boolean wasPersonalizedSigninPromoDeclined() {
- return SharedPreferencesManager.getInstance().readBoolean(
- ChromePreferenceKeys.SIGNIN_PROMO_PERSONALIZED_DECLINED, false);
- }
-
/**
* @return Whether the personalized signin promo should be shown to user.
*/
private boolean shouldShowBookmarkSigninPromo() {
- return mSignInManager.isSignInAllowed()
- && SigninPromoController.hasNotReachedImpressionLimit(
- SigninAccessPoint.BOOKMARK_MANAGER)
- && !wasPersonalizedSigninPromoDeclined();
+ return false;
}
private @PromoState int calculatePromoState() {
@@ -208,53 +136,9 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
return sPromoStateForTests;
}
- if (!AndroidSyncSettings.get().doesMasterSyncSettingAllowChromeSync()) {
- return PromoState.PROMO_NONE;
- }
-
- if (!mSignInManager.getIdentityManager().hasPrimaryAccount()) {
- if (ChromeFeatureList.isEnabled(ChromeFeatureList.MOBILE_IDENTITY_CONSISTENCY)) {
- CoreAccountInfo primaryAccount =
- mSignInManager.getIdentityManager().getPrimaryAccountInfo(
- ConsentLevel.NOT_REQUIRED);
- if (primaryAccount != null && !wasPersonalizedSigninPromoDeclined()) {
- return PromoState.PROMO_SYNC_PERSONALIZED;
- }
- }
- return shouldShowBookmarkSigninPromo() ? PromoState.PROMO_SIGNIN_PERSONALIZED
- : PromoState.PROMO_NONE;
- }
-
- boolean impressionLimitNotReached =
- SharedPreferencesManager.getInstance().readInt(
- ChromePreferenceKeys.SIGNIN_AND_SYNC_PROMO_SHOW_COUNT)
- < MAX_SIGNIN_AND_SYNC_PROMO_SHOW_COUNT;
- if (!AndroidSyncSettings.get().isChromeSyncEnabled() && impressionLimitNotReached) {
- return PromoState.PROMO_SYNC;
- }
return PromoState.PROMO_NONE;
}
- // AndroidSyncSettingsObserver implementation.
- @Override
- public void androidSyncSettingsChanged() {
- mPromoState = calculatePromoState();
- triggerPromoUpdate();
- }
-
- // SignInStateObserver implementation.
- @Override
- public void onSignedIn() {
- mPromoState = calculatePromoState();
- triggerPromoUpdate();
- }
-
- @Override
- public void onSignedOut() {
- mPromoState = calculatePromoState();
- triggerPromoUpdate();
- }
-
// ProfileDataCache.Observer implementation.
@Override
public void onProfileDataUpdated(String accountId) {
@@ -268,7 +152,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
}
private void triggerPromoUpdate() {
- detachPersonalizePromoView();
mPromoHeaderChangeAction.run();
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java
@@ -70,28 +70,7 @@ public class SigninPromoController {
* @param accessPoint The access point for which the impression limit is being checked.
*/
public static boolean hasNotReachedImpressionLimit(@AccessPoint int accessPoint) {
- SharedPreferencesManager preferencesManager = SharedPreferencesManager.getInstance();
- switch (accessPoint) {
- case SigninAccessPoint.BOOKMARK_MANAGER:
- return getSigninPromoImpressionsCountBookmarks() < MAX_IMPRESSIONS_BOOKMARKS;
- case SigninAccessPoint.NTP_CONTENT_SUGGESTIONS:
- int maxImpressions = ChromeFeatureList.getFieldTrialParamByFeatureAsInt(
- ChromeFeatureList.ENHANCED_PROTECTION_PROMO_CARD,
- "MaxSigninPromoImpressions", Integer.MAX_VALUE);
- return SharedPreferencesManager.getInstance().readInt(
- ChromePreferenceKeys.SIGNIN_PROMO_IMPRESSIONS_COUNT_NTP)
- < maxImpressions;
- case SigninAccessPoint.RECENT_TABS:
- // There is no impression limit for Recent Tabs.
- return true;
- case SigninAccessPoint.SETTINGS:
- return preferencesManager.readInt(
- ChromePreferenceKeys.SIGNIN_PROMO_IMPRESSIONS_COUNT_SETTINGS)
- < MAX_IMPRESSIONS_SETTINGS;
- default:
- assert false : "Unexpected value for access point: " + accessPoint;
- return false;
- }
+ return false;
}
/**
--
2.17.1

View file

@ -12,7 +12,7 @@ Subject: Disable references to fonts.googleapis.com
diff --git a/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc b/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
--- a/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
+++ b/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
@@ -292,7 +292,7 @@ bool DomDistillerViewerSource::ShouldServiceRequest(
@@ -295,7 +295,7 @@ bool DomDistillerViewerSource::ShouldServiceRequest(
std::string DomDistillerViewerSource::GetContentSecurityPolicy(
network::mojom::CSPDirectiveName directive) {
if (directive == network::mojom::CSPDirectiveName::StyleSrc) {

File diff suppressed because it is too large Load diff

View file

@ -9,17 +9,17 @@ Subject: Disable seed-based field trials
diff --git a/components/variations/service/variations_field_trial_creator.cc b/components/variations/service/variations_field_trial_creator.cc
--- a/components/variations/service/variations_field_trial_creator.cc
+++ b/components/variations/service/variations_field_trial_creator.cc
@@ -521,8 +521,10 @@ bool VariationsFieldTrialCreator::SetupFieldTrials(
@@ -524,8 +524,10 @@ bool VariationsFieldTrialCreator::SetupFieldTrials(
#endif // BUILDFLAG(FIELDTRIAL_TESTING_ENABLED)
bool used_seed = false;
if (!used_testing_config) {
+#if defined(FIELDTRIAL_SEED_ENABLED)
used_seed = CreateTrialsFromSeed(std::move(low_entropy_provider),
feature_list.get(), safe_seed_manager);
used_seed = CreateTrialsFromSeed(*low_entropy_provider, feature_list.get(),
safe_seed_manager);
+#endif
}
platform_field_trials->SetupFeatureControllingFieldTrials(used_seed,
platform_field_trials->SetupFeatureControllingFieldTrials(
--
2.17.1

View file

@ -15,7 +15,7 @@ leak information through the TextClassifier set by OEM, if any
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -440,7 +440,7 @@ const base::Feature kDownloadProgressInfoBar{"DownloadProgressInfoBar",
@@ -502,7 +502,7 @@ const base::Feature kDownloadProgressInfoBar{"DownloadProgressInfoBar",
base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kDownloadFileProvider{"DownloadFileProvider",
@ -27,7 +27,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
@@ -814,7 +814,7 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
@@ -833,7 +833,7 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
menu.removeItem(R.id.select_action_menu_share);
}

View file

@ -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
@@ -631,7 +631,7 @@ const base::Feature kSignedExchangePrefetchCacheForNavigations{
@@ -626,7 +626,7 @@ const base::Feature kSignedExchangePrefetchCacheForNavigations{
// Signed Exchange Reporting for distributors
// https://www.chromestatus.com/features/5687904902840320
const base::Feature kSignedExchangeReportingForDistributors{
@ -18,7 +18,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c
// Subresource prefetching+loading via Signed HTTP Exchange
// https://www.chromestatus.com/features/5126805474246656
@@ -641,7 +641,7 @@ const base::Feature kSignedExchangeSubresourcePrefetch{
@@ -636,7 +636,7 @@ const base::Feature kSignedExchangeSubresourcePrefetch{
// Origin-Signed HTTP Exchanges (for WebPackage Loading)
// https://www.chromestatus.com/features/5745285984681984
const base::Feature kSignedHTTPExchange{"SignedHTTPExchange",

View file

@ -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
@@ -48,38 +48,6 @@ if (safe_browsing_mode == 1) {
@@ -41,38 +41,6 @@ if (safe_browsing_mode == 1) {
public_deps = [ "//components/safe_browsing/core:csd_proto" ]
}
@ -59,9 +59,9 @@ diff --git a/chrome/common/safe_browsing/BUILD.gn b/chrome/common/safe_browsing/
- public_deps = [ "//components/safe_browsing/core:csd_proto" ]
- }
-
source_set("disk_image_type_sniffer_mac") {
sources = [
"disk_image_type_sniffer_mac.cc",
if (is_mac) {
source_set("disk_image_type_sniffer_mac") {
sources = [
@@ -142,7 +110,6 @@ source_set("safe_browsing") {
":archive_analyzer_results",
":binary_feature_extractor",

View file

@ -3,10 +3,9 @@ Date: Mon, 11 Nov 2019 23:09:48 +0100
Subject: Disable sync services menu entry
---
.../android/java/res/xml/main_preferences.xml | 11 ++---------
.../java/res/xml/privacy_preferences.xml | 5 -----
.../sync/settings/SyncSettingsUtils.java | 17 -----------------
3 files changed, 2 insertions(+), 31 deletions(-)
chrome/android/java/res/xml/main_preferences.xml | 11 ++---------
chrome/android/java/res/xml/privacy_preferences.xml | 5 -----
2 files changed, 2 insertions(+), 14 deletions(-)
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
--- a/chrome/android/java/res/xml/main_preferences.xml
@ -39,43 +38,16 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
@@ -34,9 +34,4 @@
android:summary="@string/clear_browsing_data_summary"
android:fragment="org.chromium.chrome.browser.browsing_data.ClearBrowsingDataTabsFragment"
android:order="5"/>
@@ -39,9 +39,4 @@
android:title="@string/prefs_privacy_sandbox"
android:fragment="org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsFragment"
android:order="7"/>
- <org.chromium.components.browser_ui.settings.TextMessagePreference
- android:key="sync_and_services_link"
- android:summary="@string/privacy_sync_and_services_link_legacy"
- app:allowDividerBelow="false"
- android:order="7"/>
- android:order="8"/>
</PreferenceScreen>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncSettingsUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncSettingsUtils.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncSettingsUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncSettingsUtils.java
@@ -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

View file

@ -17,33 +17,33 @@ Revert "[Text Fragment] Unflag fragment directive removal."
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)},
@@ -5164,6 +5164,7 @@ const FeatureEntry kFeatureEntries[] = {
kHappinessTrackingSurveysForDesktopDevToolsIssuesCookiesSameSiteDescription,
kOsDesktop,
FEATURE_VALUE_TYPE(
+ // will override runtime text fragment identifiers setting too
{"enable-text-fragment-anchor",
flag_descriptions::kEnableTextFragmentAnchorName,
flag_descriptions::kEnableTextFragmentAnchorDescription, kOsAll,
features::
kHappinessTrackingSurveysForDesktopDevToolsIssuesCookiesSameSite)},
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -2221,7 +2221,7 @@
@@ -2586,7 +2586,7 @@
{
"name": "enable-text-fragment-anchor",
"owners": [ "bokan", "input-dev" ],
"name": "ev-details-in-page-info",
"owners": [ "cthomp" ],
- "expiry_milestone": 83
+ "expiry_milestone": -1
},
{
"name": "enable-tls13-early-data",
"name": "exo-gamepad-vibration",
diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/prefs/prefs_tab_helper.cc
--- a/chrome/browser/ui/prefs/prefs_tab_helper.cc
+++ b/chrome/browser/ui/prefs/prefs_tab_helper.cc
@@ -357,7 +357,7 @@ void PrefsTabHelper::RegisterProfilePrefs(
prefs::kEnableReferrers,
@@ -360,7 +360,7 @@ void PrefsTabHelper::RegisterProfilePrefs(
!base::FeatureList::IsEnabled(features::kNoReferrers));
registry->RegisterBooleanPref(prefs::kEnableEncryptedMedia, true);
registry->RegisterBooleanPref(prefs::kEnableDRM, true);
- registry->RegisterBooleanPref(prefs::kScrollToTextFragmentEnabled, true);
+ registry->RegisterBooleanPref(prefs::kScrollToTextFragmentEnabled, false);
#if defined(OS_ANDROID)
@ -52,18 +52,18 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
--- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc
@@ -269,6 +269,7 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
{wf::EnableImplicitRootScroller, blink::features::kImplicitRootScroller},
{wf::EnableCSSOMViewScrollCoordinates,
blink::features::kCSSOMViewScrollCoordinates},
+ // will set the TextFragmentIdentifiers runtime feature
{wf::EnableTextFragmentAnchor, blink::features::kTextFragmentAnchor},
@@ -273,6 +273,7 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
{wf::EnableBackgroundFetch, features::kBackgroundFetch},
{wf::EnableForcedColors, features::kForcedColors},
{wf::EnableFractionalScrollOffsets, features::kFractionalScrollOffsets},
+ // will set the TextFragmentIdentifiers runtime feature
#if defined(OS_ANDROID)
{wf::EnableGetDisplayMedia, features::kUserMediaScreenCapturing},
#endif
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",
@@ -301,7 +301,7 @@ const base::Feature kStorageAccessAPI{"StorageAccessAPI",
// Enable text snippets in URL fragments. https://crbug.com/919204.
const base::Feature kTextFragmentAnchor{"TextFragmentAnchor",
@ -75,7 +75,7 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
@@ -4432,6 +4432,10 @@ void Document::SetURL(const KURL& url) {
@@ -4384,6 +4384,10 @@ void Document::SetURL(const KURL& url) {
}
}
@ -86,7 +86,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
// Strip the fragment directive from the URL fragment. E.g. "#id:~:text=a"
// --> "#id". See https://github.com/WICG/scroll-to-text-fragment.
String fragment = new_url.FragmentIdentifier();
@@ -4445,6 +4449,7 @@ void Document::SetURL(const KURL& url) {
@@ -4397,6 +4401,7 @@ void Document::SetURL(const KURL& url) {
else
new_url.SetFragmentIdentifier(fragment.Substring(0, start_pos));
}
@ -97,7 +97,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
diff --git a/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc b/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc
--- a/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc
+++ b/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc
@@ -952,34 +952,25 @@ TEST_P(TextFragmentRelatedMetricTest, ElementIdSuccessFailureCounts) {
@@ -1254,34 +1254,25 @@ TEST_P(TextFragmentRelatedMetricTest, ElementIdSuccessFailureCounts) {
// result of the element-id fragment if a text directive is successfully
// parsed. If the feature is off we treat the text directive as an element-id
// and should count the result.
@ -145,7 +145,7 @@ diff --git a/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -1862,8 +1862,7 @@
@@ -1973,8 +1973,7 @@
},
{
name: "TextFragmentIdentifiers",

View file

@ -4,8 +4,8 @@ Subject: Disable the DIAL repeating discovery
This causes unnecessary SSDP network spam
---
chrome/browser/media/router/discovery/dial/dial_registry.cc | 4 ----
1 file changed, 4 deletions(-)
chrome/browser/media/router/discovery/dial/dial_registry.cc | 6 ------
1 file changed, 6 deletions(-)
diff --git a/chrome/browser/media/router/discovery/dial/dial_registry.cc b/chrome/browser/media/router/discovery/dial/dial_registry.cc
--- a/chrome/browser/media/router/discovery/dial/dial_registry.cc
@ -21,6 +21,15 @@ diff --git a/chrome/browser/media/router/discovery/dial/dial_registry.cc b/chrom
}
void DialRegistry::DoDiscovery() {
@@ -209,8 +205,6 @@ void DialRegistry::StopPeriodicDiscovery() {
if (!dial_)
return;
- repeating_timer_->Stop();
- repeating_timer_.reset();
dial_->RemoveObserver(this);
ClearDialService();
}
--
2.17.1

View file

@ -10,7 +10,7 @@ author: Chad Miller <chad.miller@canonical.com>
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -535,7 +535,7 @@ void RegisterProfilePrefsForMigration(
@@ -591,7 +591,7 @@ void RegisterProfilePrefsForMigration(
registry->RegisterDictionaryPref(kObservedSessionTime);

View file

@ -0,0 +1,23 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sat, 19 Dec 2020 20:04:14 +0100
Subject: Disable unified autoplay feature
---
media/base/media_switches.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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
@@ -448,7 +448,7 @@ const base::Feature kUseR16Texture{"use-r16-texture",
// Enables the Unified Autoplay policy by overriding the platform's default
// autoplay policy.
const base::Feature kUnifiedAutoplay{"UnifiedAutoplay",
- base::FEATURE_ENABLED_BY_DEFAULT};
+ base::FEATURE_DISABLED_BY_DEFAULT};
#if (defined(OS_LINUX) || defined(OS_FREEBSD)) && !defined(OS_CHROMEOS)
// Enable vaapi video decoding on linux. This is already enabled by default on
--
2.17.1

View file

@ -3,20 +3,19 @@ Date: Sat, 27 Oct 2018 17:54:01 +0200
Subject: Disable update scheduler
---
.../chrome/browser/component_updater/UpdateScheduler.java | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
.../chrome/browser/component_updater/UpdateScheduler.java | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/component_updater/UpdateScheduler.java b/chrome/android/java/src/org/chromium/chrome/browser/component_updater/UpdateScheduler.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/component_updater/UpdateScheduler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/component_updater/UpdateScheduler.java
@@ -36,10 +36,7 @@ public class UpdateScheduler {
@@ -34,9 +34,7 @@ public class UpdateScheduler {
@CalledByNative
/* package */ static boolean isAvailable() {
- return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
- || GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
- ContextUtils.getApplicationContext())
- == ConnectionResult.SUCCESS;
- || ChromiumPlayServicesAvailability.isGooglePlayServicesAvailable(
- ContextUtils.getApplicationContext());
+ return false;
}

View file

@ -10,15 +10,15 @@ Subject: Do not compile QR code sharing
diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/share_sheet/ChromeProvidedSharingOptionsProvider.java b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/share_sheet/ChromeProvidedSharingOptionsProvider.java
--- a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/share_sheet/ChromeProvidedSharingOptionsProvider.java
+++ b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/share_sheet/ChromeProvidedSharingOptionsProvider.java
@@ -24,7 +24,6 @@ import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.settings.SettingsLauncher;
@@ -25,7 +25,6 @@ import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.share.ChromeShareExtras;
import org.chromium.chrome.browser.share.link_to_text.LinkToTextCoordinator;
import org.chromium.chrome.browser.share.long_screenshots.LongScreenshotsCoordinator;
-import org.chromium.chrome.browser.share.qrcode.QrCodeCoordinator;
import org.chromium.chrome.browser.share.screenshot.ScreenshotCoordinator;
import org.chromium.chrome.browser.share.send_tab_to_self.SendTabToSelfCoordinator;
import org.chromium.chrome.browser.share.share_sheet.ShareSheetPropertyModelBuilder.ContentType;
@@ -222,10 +221,6 @@ class ChromeProvidedSharingOptionsProvider {
@@ -240,10 +239,6 @@ class ChromeProvidedSharingOptionsProvider {
&& ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_SHARE_HIGHLIGHTS_ANDROID)) {
mOrderedFirstPartyOptions.add(createHighlightsFirstPartyOption());
}
@ -29,7 +29,7 @@ diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/s
if (UserPrefs.get(Profile.getLastUsedRegularProfile()).getBoolean(Pref.PRINTING_ENABLED)) {
mOrderedFirstPartyOptions.add(createPrintingFirstPartyOption());
}
@@ -344,18 +339,6 @@ class ChromeProvidedSharingOptionsProvider {
@@ -390,18 +385,6 @@ class ChromeProvidedSharingOptionsProvider {
.build();
}
@ -51,10 +51,10 @@ diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/s
diff --git a/chrome/browser/share/android/java_sources.gni b/chrome/browser/share/android/java_sources.gni
--- a/chrome/browser/share/android/java_sources.gni
+++ b/chrome/browser/share/android/java_sources.gni
@@ -9,24 +9,6 @@ share_java_sources = [
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/clipboard/ClipboardImageFileProvider.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/link_to_text/LinkToTextCoordinator.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/link_to_text/LinkToTextMetricsBridge.java",
@@ -16,24 +16,6 @@ share_java_sources = [
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/LongScreenshotsEntry.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/LongScreenshotsTabService.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/LongScreenshotsTabServiceFactory.java",
- "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/QRCodeGenerationRequest.java",
- "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/QrCodeCoordinator.java",
- "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/QrCodeDialog.java",
@ -73,9 +73,9 @@ diff --git a/chrome/browser/share/android/java_sources.gni b/chrome/browser/shar
- "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/share_tab/QrCodeShareView.java",
- "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/share_tab/QrCodeShareViewBinder.java",
- "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/share_tab/QrCodeShareViewProperties.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/EditorScreenshotSource.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/EditorScreenshotTask.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/ScreenshotCoordinator.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/ScreenshotShareSheetCoordinator.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/ScreenshotShareSheetDialog.java",
--
2.17.1

View file

@ -9,7 +9,7 @@ Subject: Do not hide component extensions
diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc
--- a/extensions/common/extension.cc
+++ b/extensions/common/extension.cc
@@ -361,9 +361,8 @@ bool Extension::ShouldDisplayInNewTabPage() const {
@@ -380,9 +380,8 @@ bool Extension::ShouldDisplayInNewTabPage() const {
}
bool Extension::ShouldExposeViaManagementAPI() const {

View file

@ -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
@@ -73,10 +73,6 @@ public class DownloadLocationCustomView
@@ -75,10 +75,6 @@ public class DownloadLocationCustomView
CharSequence title) {
mDialogType = dialogType;

View file

@ -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
@@ -205,10 +205,10 @@ FormData SimplifiedFormDataFromFormStructure(
@@ -207,10 +207,10 @@ FormData SimplifiedFormDataFromFormStructure(
void PasswordManager::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(

View file

@ -9,7 +9,7 @@ Subject: DoH secure mode by default
diff --git a/chrome/browser/net/stub_resolver_config_reader.cc b/chrome/browser/net/stub_resolver_config_reader.cc
--- a/chrome/browser/net/stub_resolver_config_reader.cc
+++ b/chrome/browser/net/stub_resolver_config_reader.cc
@@ -153,7 +153,7 @@ StubResolverConfigReader::StubResolverConfigReader(PrefService* local_state,
@@ -154,7 +154,7 @@ StubResolverConfigReader::StubResolverConfigReader(PrefService* local_state,
if (entries.count("dns-over-https@1")) {
// The user has "Enabled" selected.
local_state_->SetString(prefs::kDnsOverHttpsMode,
@ -18,7 +18,7 @@ diff --git a/chrome/browser/net/stub_resolver_config_reader.cc b/chrome/browser/
} else if (entries.count("dns-over-https@2")) {
// The user has "Disabled" selected.
local_state_->SetString(prefs::kDnsOverHttpsMode,
@@ -327,22 +327,7 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration(
@@ -328,22 +328,7 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration(
check_parental_controls = false;
}

View file

@ -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
@@ -724,11 +724,7 @@ const base::Feature kShowTrustedPublisherURL{"ShowTrustedPublisherURL",
@@ -817,11 +817,7 @@ const base::Feature kShow10_10ObsoleteInfobar{
// browser_features, as they are only used on the browser side.
const base::Feature kSitePerProcess {
"site-per-process",
@ -21,7 +21,7 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
-#endif
};
#if defined(OS_CHROMEOS)
#if BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/components/site_isolation/features.cc b/components/site_isolation/features.cc
--- a/components/site_isolation/features.cc
+++ b/components/site_isolation/features.cc

View file

@ -1,23 +0,0 @@
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

View file

@ -0,0 +1,23 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Thu, 18 Feb 2021 22:10:11 +0100
Subject: Enable app overflow menu icons by default
---
chrome/browser/flags/android/chrome_feature_list.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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
@@ -647,7 +647,7 @@ const base::Feature kTabToGTSAnimation{"TabToGTSAnimation",
base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kTabbedAppOverflowMenuIcons{
- "TabbedAppOverflowMenuIcons", base::FEATURE_DISABLED_BY_DEFAULT};
+ "TabbedAppOverflowMenuIcons", base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kTabbedAppOverflowMenuRegroup{
"TabbedAppOverflowMenuRegroup", base::FEATURE_DISABLED_BY_DEFAULT};
--
2.17.1

View file

@ -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
@@ -913,7 +913,7 @@
@@ -976,7 +976,7 @@
{
"name": "disable-keepalive-fetch",
"owners": [ "yhirano" ],
@ -23,7 +23,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -428,7 +428,7 @@ const base::Feature kContextualSearchTranslations{
@@ -490,7 +490,7 @@ const base::Feature kContextualSearchTranslations{
"ContextualSearchTranslations", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kDarkenWebsitesCheckboxInThemesSetting{

View file

@ -42,7 +42,7 @@ Excerpt from https://github.com/bromite/bromite/issues/226
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -286,6 +286,10 @@ config("compiler") {
@@ -311,6 +311,10 @@ config("compiler") {
}
}

View file

@ -7,15 +7,14 @@ Expose show-legacy-tls-warnings flag on Android as well
chrome/browser/about_flags.cc | 2 --
chrome/browser/ssl/tls_deprecation_config.cc | 22 +------------------
components/security_state/core/features.cc | 2 +-
net/base/features.cc | 2 +-
.../network/legacy_tls_config_distributor.cc | 21 +-----------------
services/network/ssl_config_service_mojo.cc | 7 ++----
6 files changed, 6 insertions(+), 50 deletions(-)
5 files changed, 5 insertions(+), 49 deletions(-)
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -6045,11 +6045,9 @@ const FeatureEntry kFeatureEntries[] = {
@@ -6167,11 +6167,9 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(features::kElasticOverscrollWin)},
#endif
@ -25,7 +24,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
FEATURE_VALUE_TYPE(security_state::features::kLegacyTLSWarnings)},
-#endif
#if defined(OS_CHROMEOS)
#if BUILDFLAG(IS_CHROMEOS_ASH)
{"enable-assistant-aec", flag_descriptions::kEnableGoogleAssistantAecName,
diff --git a/chrome/browser/ssl/tls_deprecation_config.cc b/chrome/browser/ssl/tls_deprecation_config.cc
--- a/chrome/browser/ssl/tls_deprecation_config.cc
@ -62,27 +61,15 @@ diff --git a/chrome/browser/ssl/tls_deprecation_config.cc b/chrome/browser/ssl/t
diff --git a/components/security_state/core/features.cc b/components/security_state/core/features.cc
--- a/components/security_state/core/features.cc
+++ b/components/security_state/core/features.cc
@@ -16,7 +16,7 @@ const char kMarkHttpAsParameterWarningAndDangerousOnFormEdits[] =
const char kMarkHttpAsParameterDangerWarning[] = "danger-warning";
@@ -8,7 +8,7 @@ namespace security_state {
namespace features {
const base::Feature kLegacyTLSWarnings{"LegacyTLSWarnings",
- base::FEATURE_DISABLED_BY_DEFAULT};
+ base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kSafetyTipUI{"SafetyTip",
base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/net/base/features.cc b/net/base/features.cc
--- a/net/base/features.cc
+++ b/net/base/features.cc
@@ -152,7 +152,7 @@ const base::Feature kTurnOffStreamingMediaCachingAlways{
"TurnOffStreamingMediaCachingAlways", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kSafetyTipUI{"SafetyTip", base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kLegacyTLSEnforced{"LegacyTLSEnforced",
- base::FEATURE_DISABLED_BY_DEFAULT};
+ base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kSchemefulSameSite{"SchemefulSameSite",
base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/services/network/legacy_tls_config_distributor.cc b/services/network/legacy_tls_config_distributor.cc
--- a/services/network/legacy_tls_config_distributor.cc
+++ b/services/network/legacy_tls_config_distributor.cc

View file

@ -0,0 +1,56 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Thu, 10 Dec 2020 21:52:35 +0100
Subject: Enable network isolation features
Enable SplitCacheByNetworkIsolationKey, kSplitHostCacheByNetworkIsolationKey,
kPartitionConnectionsByNetworkIsolationKey, kPartitionHttpServerPropertiesByNetworkIsolationKey,
kPartitionSSLSessionsByNetworkIsolationKey, PartitionExpectCTStateByNetworkIsolationKey,
PartitionNelAndReportingByNetworkIsolationKey
---
net/base/features.cc | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/net/base/features.cc b/net/base/features.cc
--- a/net/base/features.cc
+++ b/net/base/features.cc
@@ -71,30 +71,30 @@ 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};
+ "SplitHostCacheByNetworkIsolationKey", base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kPartitionConnectionsByNetworkIsolationKey{
"PartitionConnectionsByNetworkIsolationKey",
- base::FEATURE_DISABLED_BY_DEFAULT};
+ base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kPartitionHttpServerPropertiesByNetworkIsolationKey{
"PartitionHttpServerPropertiesByNetworkIsolationKey",
- base::FEATURE_DISABLED_BY_DEFAULT};
+ base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kPartitionSSLSessionsByNetworkIsolationKey{
"PartitionSSLSessionsByNetworkIsolationKey",
- base::FEATURE_DISABLED_BY_DEFAULT};
+ base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kPartitionExpectCTStateByNetworkIsolationKey{
"PartitionExpectCTStateByNetworkIsolationKey",
- base::FEATURE_DISABLED_BY_DEFAULT};
+ base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kPartitionNelAndReportingByNetworkIsolationKey{
"PartitionNelAndReportingByNetworkIsolationKey",
- base::FEATURE_DISABLED_BY_DEFAULT};
+ base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kExpectCTPruning{"ExpectCTPruning",
base::FEATURE_ENABLED_BY_DEFAULT};
--
2.17.1

View file

@ -9,15 +9,15 @@ Subject: Enable prefetch-privacy-changes by default
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -308,7 +308,7 @@ const base::Feature kWebComponentsV0{"WebComponentsV0",
@@ -322,7 +322,7 @@ const base::Feature kFontAccessChooser{"FontAccessChooser",
// Prefetch request properties are updated to be privacy-preserving. See
// crbug.com/988956.
const base::Feature kPrefetchPrivacyChanges{"PrefetchPrivacyChanges",
- base::FEATURE_DISABLED_BY_DEFAULT};
+ base::FEATURE_ENABLED_BY_DEFAULT};
const char kMixedContentAutoupgradeModeParamName[] = "mode";
const char kMixedContentAutoupgradeModeAllPassive[] = "all-passive";
// Decodes jpeg 4:2:0 formatted images to YUV instead of RGBX and stores in this
// format in the image decode cache. See crbug.com/919627 for details on the
--
2.17.1

View file

@ -1,23 +0,0 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Fri, 31 Jul 2020 08:28:35 +0200
Subject: Enable reduced-referrer-granularity by default
---
third_party/blink/common/features.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -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{
- "ReducedReferrerGranularity", base::FEATURE_DISABLED_BY_DEFAULT};
+ "ReducedReferrerGranularity", base::FEATURE_ENABLED_BY_DEFAULT};
// Enables the user activated exponential delay in the ContentCapture task.
const base::Feature kContentCaptureUserActivatedDelay = {
--
2.17.1

View file

@ -9,15 +9,15 @@ Subject: Enable user-agent freeze 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
@@ -52,7 +52,7 @@ const base::Feature kFreezePurgeMemoryAllPagesFrozen{
@@ -53,7 +53,7 @@ const base::Feature kFreezePurgeMemoryAllPagesFrozen{
// Freezes the user-agent as part of https://github.com/WICG/ua-client-hints.
const base::Feature kFreezeUserAgent{"FreezeUserAgent",
- base::FEATURE_DISABLED_BY_DEFAULT};
+ base::FEATURE_ENABLED_BY_DEFAULT};
// Enables support for FTP URLs. When disabled FTP URLs will behave the same as
// any other URL scheme that's unknown to the UA. See https://crbug.com/333943
// Enables the frequency capping for detecting overlay popups. Overlay-popups
// are the interstitials that pop up and block the main content of the page.
--
2.17.1

View file

@ -3,21 +3,21 @@ Date: Sat, 5 Sep 2020 21:38:15 +0200
Subject: Hardening against incognito mode detection
---
storage/browser/quota/quota_features.cc | 2 +-
storage/browser/quota/quota_settings.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
@@ -19,7 +19,7 @@ const base::Feature kIncognitoDynamicQuota{"IncognitoDynamicQuota",
constexpr base::FeatureParam<double> kIncognitoQuotaRatioLowerBound{
&kIncognitoDynamicQuota, "IncognitoQuotaRatioLowerBound", 0.15};
constexpr base::FeatureParam<double> kIncognitoQuotaRatioUpperBound{
- &kIncognitoDynamicQuota, "IncognitoQuotaRatioUpperBound", 0.2};
+ &kIncognitoDynamicQuota, "IncognitoQuotaRatioUpperBound", 0.3};
diff --git a/storage/browser/quota/quota_settings.cc b/storage/browser/quota/quota_settings.cc
--- a/storage/browser/quota/quota_settings.cc
+++ b/storage/browser/quota/quota_settings.cc
@@ -29,7 +29,7 @@ const int kRandomizedPercentage = 10;
const double kDefaultPerHostRatio = 0.75;
const double kDefaultPoolSizeRatio = 0.8;
const double kIncognitoQuotaRatioLowerBound = 0.15;
-const double kIncognitoQuotaRatioUpperBound = 0.2;
+const double kIncognitoQuotaRatioUpperBound = 0.3;
// Enables Storage Pressure Event.
const base::Feature kStoragePressureEvent{"StoragePressureEvent",
// Skews |value| by +/- |percent|.
int64_t RandomizeByPercent(int64_t value, int percent) {
--
2.17.1

View file

@ -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
@@ -315,7 +315,7 @@ public class PasswordSettings
@@ -314,7 +314,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) {
@@ -391,7 +391,7 @@ public class PasswordSettings
@@ -390,7 +390,7 @@ public class PasswordSettings
return;
}

View file

@ -9,15 +9,15 @@ Subject: Hide send reports checkbox
diff --git a/chrome/android/java/res/layout/fre_tosanduma.xml b/chrome/android/java/res/layout/fre_tosanduma.xml
--- a/chrome/android/java/res/layout/fre_tosanduma.xml
+++ b/chrome/android/java/res/layout/fre_tosanduma.xml
@@ -91,7 +91,7 @@
android:layout_height="wrap_content"
@@ -92,7 +92,7 @@
android:lineSpacingMultiplier="1.4"
android:text="@string/fre_send_report_check"
android:paddingStart="@dimen/fre_tos_checkbox_padding"
- android:textAppearance="@style/TextAppearance.TextMedium.Primary" />
+ android:textAppearance="@style/TextAppearance.TextMedium.Primary" android:visibility="gone" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<include
--
2.17.1

View file

@ -0,0 +1,25 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Tue, 26 Jan 2021 00:21:51 +0100
Subject: Ignore enterprise policies for secure DNS
---
.../org/chromium/chrome/browser/policy/EnterpriseInfo.java | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/policy/EnterpriseInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/policy/EnterpriseInfo.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/policy/EnterpriseInfo.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/policy/EnterpriseInfo.java
@@ -90,6 +90,10 @@ public class EnterpriseInfo {
ThreadUtils.assertOnUiThread();
assert callback != null;
+ if (true) {
+ return;
+ }
+
// If there is already a cached result post a task to return it.
if (mOwnedState != null) {
mHandler.post(() -> callback.onResult(mOwnedState));
--
2.17.1

View file

@ -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
@@ -66,7 +66,8 @@ struct MatchGURLHash {
@@ -68,7 +68,8 @@ struct MatchGURLHash {
// static
size_t AutocompleteResult::GetMaxMatches(bool is_zero_suggest) {
#if (defined(OS_ANDROID))
@ -24,21 +24,19 @@ diff --git a/components/omnibox/browser/autocomplete_result.cc b/components/omni
diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omnibox/browser/omnibox_field_trial.cc
--- a/components/omnibox/browser/omnibox_field_trial.cc
+++ b/components/omnibox/browser/omnibox_field_trial.cc
@@ -382,11 +382,11 @@ void OmniboxFieldTrial::GetDemotionsByType(
@@ -330,9 +330,9 @@ void OmniboxFieldTrial::GetDemotionsByType(
size_t OmniboxFieldTrial::GetProviderMaxMatches(
AutocompleteProvider::Type provider) {
- size_t default_max_matches_per_provider = 3;
+ size_t default_max_matches_per_provider = 5; // was 3; this needs to be half the value of kDefaultMaxAutocompleteMatches from components/omnibox/browser/autocomplete_result.cc
// If new search features are disabled, ignore the parameter and use the
// default value.
- if (!base::FeatureList::IsEnabled(omnibox::kNewSearchFeatures))
+ /*if (!base::FeatureList::IsEnabled(omnibox::kNewSearchFeatures))
return default_max_matches_per_provider;
- std::string param_value = base::GetFieldTrialParamValueByFeature(
+/* std::string param_value = base::GetFieldTrialParamValueByFeature(
omnibox::kUIExperimentMaxAutocompleteMatches,
OmniboxFieldTrial::kUIMaxAutocompleteMatchesByProviderParam);
std::string param_value = base::GetFieldTrialParamValueByFeature(
@@ -413,7 +413,7 @@ size_t OmniboxFieldTrial::GetProviderMaxMatches(
@@ -356,7 +356,7 @@ size_t OmniboxFieldTrial::GetProviderMaxMatches(
else if (k == provider)
return v;
}

View file

@ -7,7 +7,7 @@ Break Page Visibility API and Fullscreen API for youtube.com and vimeo.com to al
Set proper injection script nonce
Send a random key press to circumvent idle status detection
---
third_party/blink/renderer/core/dom/BUILD.gn | 2 +
third_party/blink/renderer/core/dom/build.gni | 2 +
.../blink/renderer/core/dom/document.cc | 62 +++++++++++++++++++
.../blink/renderer/core/dom/document.h | 3 +
.../core/dom/extensions/anti_amp_cure.h | 6 ++
@ -18,18 +18,18 @@ Send a random key press to circumvent idle status detection
create mode 100644 third_party/blink/renderer/core/dom/extensions/anti_amp_cure.h
create mode 100644 third_party/blink/renderer/core/dom/extensions/video_bg_play.h
diff --git a/third_party/blink/renderer/core/dom/BUILD.gn b/third_party/blink/renderer/core/dom/BUILD.gn
--- a/third_party/blink/renderer/core/dom/BUILD.gn
+++ b/third_party/blink/renderer/core/dom/BUILD.gn
@@ -178,6 +178,8 @@ blink_core_sources("dom") {
"global_event_handlers.h",
"icon_url.cc",
"icon_url.h",
+ "extensions/anti_amp_cure.h",
+ "extensions/video_bg_play.h",
"id_target_observer.cc",
"id_target_observer.h",
"id_target_observer_registry.cc",
diff --git a/third_party/blink/renderer/core/dom/build.gni b/third_party/blink/renderer/core/dom/build.gni
--- a/third_party/blink/renderer/core/dom/build.gni
+++ b/third_party/blink/renderer/core/dom/build.gni
@@ -165,6 +165,8 @@ blink_core_sources_dom = [
"global_event_handlers.h",
"icon_url.cc",
"icon_url.h",
+ "extensions/anti_amp_cure.h",
+ "extensions/video_bg_play.h",
"id_target_observer.cc",
"id_target_observer.h",
"id_target_observer_registry.cc",
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
@ -50,8 +50,8 @@ 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();
@@ -6932,6 +6935,61 @@ void Document::MarkFirstPaint() {
MaybeExecuteDelayedAsyncScripts();
@@ -6896,6 +6899,61 @@ void Document::setAllowDeclarativeShadowRoots(bool val) {
val ? AllowState::kAllow : AllowState::kDeny;
}
+void Document::injectScripts() {
@ -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);
@@ -6984,6 +7042,10 @@ void Document::FinishedParsing() {
@@ -6948,6 +7006,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
@@ -1694,6 +1694,9 @@ class CORE_EXPORT Document : public ContainerNode,
@@ -1695,6 +1695,9 @@ class CORE_EXPORT Document : public ContainerNode,
void AddAXContext(AXContext*);
void RemoveAXContext(AXContext*);

View file

@ -0,0 +1,54 @@
From: Francois Marier <francois@brave.com>
Date: Tue, 14 Jul 2020 17:39:44 -0700
Subject: Make all favicon requests on-demand
This patch can be dropped once https://crbug.com/1096660 is fixed
as long as the test is retained and still passes.
---
components/favicon/core/favicon_database.cc | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/components/favicon/core/favicon_database.cc b/components/favicon/core/favicon_database.cc
--- a/components/favicon/core/favicon_database.cc
+++ b/components/favicon/core/favicon_database.cc
@@ -504,6 +504,7 @@ FaviconBitmapID FaviconDatabase::AddFaviconBitmap(
base::Time time,
const gfx::Size& pixel_size) {
DCHECK(icon_id);
+ type = FaviconBitmapType::ON_DEMAND; // Make all icons ON_DEMAND.
sql::Statement statement(db_.GetCachedStatement(
SQL_FROM_HERE,
@@ -558,8 +559,8 @@ bool FaviconDatabase::SetFaviconBitmap(
} else {
statement.BindNull(0);
}
- statement.BindInt64(1, time.ToDeltaSinceWindowsEpoch().InMicroseconds());
- statement.BindInt64(2, 0);
+ statement.BindInt64(1, 0);
+ statement.BindInt64(2, time.ToDeltaSinceWindowsEpoch().InMicroseconds());
statement.BindInt64(3, bitmap_id);
return statement.Run();
@@ -568,7 +569,7 @@ bool FaviconDatabase::SetFaviconBitmap(
bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id,
base::Time time) {
DCHECK(bitmap_id);
- // By updating last_updated timestamp, we assume the icon is of type ON_VISIT.
+ /* By updating last_updated timestamp, we assume the icon is of type ON_VISIT.
// If it is ON_DEMAND, reset last_requested to 0 and thus silently change the
// type to ON_VISIT.
sql::Statement statement(
@@ -578,7 +579,8 @@ bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id,
statement.BindInt64(0, time.ToDeltaSinceWindowsEpoch().InMicroseconds());
statement.BindInt64(1, 0);
statement.BindInt64(2, bitmap_id);
- return statement.Run();
+ return statement.Run(); */
+ return true;
}
bool FaviconDatabase::TouchOnDemandFavicon(const GURL& icon_url,
--
2.17.1

View file

@ -20,7 +20,7 @@ Subject: Modify default preferences
diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/browser/background/background_mode_manager.cc
--- a/chrome/browser/background/background_mode_manager.cc
+++ b/chrome/browser/background/background_mode_manager.cc
@@ -339,7 +339,7 @@ void BackgroundModeManager::RegisterPrefs(PrefRegistrySimple* registry) {
@@ -360,7 +360,7 @@ void BackgroundModeManager::RegisterPrefs(PrefRegistrySimple* registry) {
registry->RegisterBooleanPref(prefs::kChromeCreatedLoginItem, false);
registry->RegisterBooleanPref(prefs::kMigratedLoginItemPref, false);
#endif
@ -32,7 +32,7 @@ diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/brows
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -1314,7 +1314,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
@@ -1364,7 +1364,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
void ChromeContentBrowserClient::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false);
@ -68,7 +68,7 @@ diff --git a/chrome/browser/net/prediction_options.h b/chrome/browser/net/predic
diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc
--- a/chrome/browser/profiles/profile.cc
+++ b/chrome/browser/profiles/profile.cc
@@ -266,7 +266,7 @@ const char Profile::kProfileKey[] = "__PROFILE__";
@@ -248,7 +248,7 @@ const char Profile::kProfileKey[] = "__PROFILE__";
void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(
prefs::kSearchSuggestEnabled,
@ -80,7 +80,7 @@ diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profil
diff --git a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html b/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html
--- a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html
+++ b/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html
@@ -34,7 +34,7 @@
@@ -36,7 +36,7 @@
</cr-button>
</div>
<div slot="footer">
@ -121,7 +121,7 @@ diff --git a/chrome/service/cloud_print/connector_settings.cc b/chrome/service/c
diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc
--- a/components/autofill/core/browser/autofill_manager.cc
+++ b/components/autofill/core/browser/autofill_manager.cc
@@ -962,10 +962,7 @@ void AutofillManager::OnQueryFormFieldAutofillImpl(
@@ -990,10 +990,7 @@ void AutofillManager::OnQueryFormFieldAutofillImpl(
// suggestions available.
// TODO(mathp): Differentiate between number of suggestions available
// (current metric) and number shown to the user.
@ -133,9 +133,9 @@ diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/a
}
}
@@ -1592,8 +1589,8 @@ void AutofillManager::Reset() {
credit_card_access_manager_.reset(new CreditCardAccessManager(
driver(), client_, personal_data_, credit_card_form_event_logger_.get()));
@@ -1576,8 +1573,8 @@ void AutofillManager::Reset() {
credit_card_access_manager_ = std::make_unique<CreditCardAccessManager>(
driver(), client_, personal_data_, credit_card_form_event_logger_.get());
- has_logged_autofill_enabled_ = false;
- has_logged_address_suggestions_count_ = false;
@ -159,7 +159,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto
diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmarks/browser/bookmark_utils.cc
--- a/components/bookmarks/browser/bookmark_utils.cc
+++ b/components/bookmarks/browser/bookmark_utils.cc
@@ -439,12 +439,12 @@ bool DoesBookmarkContainWords(const base::string16& title,
@@ -442,12 +442,12 @@ bool DoesBookmarkContainWords(const base::string16& title,
void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(
prefs::kShowBookmarkBar,
@ -177,7 +177,7 @@ diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmar
diff --git a/components/safe_browsing/core/common/safe_browsing_prefs.cc b/components/safe_browsing/core/common/safe_browsing_prefs.cc
--- a/components/safe_browsing/core/common/safe_browsing_prefs.cc
+++ b/components/safe_browsing/core/common/safe_browsing_prefs.cc
@@ -210,9 +210,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
@@ -192,9 +192,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
registry->RegisterBooleanPref(
prefs::kSafeBrowsingSawInterstitialScoutReporting, false);
registry->RegisterBooleanPref(

View file

@ -4,17 +4,17 @@ Subject: Move some account settings back to privacy settings
Search suggestions, autofill assistant and contextual search
---
.../java/res/xml/privacy_preferences.xml | 19 ++++++
.../privacy/settings/PrivacySettings.java | 62 ++++++++++++++++++-
2 files changed, 79 insertions(+), 2 deletions(-)
.../java/res/xml/privacy_preferences.xml | 20 ++++++
.../privacy/settings/PrivacySettings.java | 64 ++++++++++++++++++-
2 files changed, 82 insertions(+), 2 deletions(-)
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
@@ -58,4 +58,23 @@
android:summary="@string/clear_browsing_data_summary"
android:fragment="org.chromium.chrome.browser.browsing_data.ClearBrowsingDataTabsFragment"
android:order="5"/>
@@ -63,4 +63,24 @@
android:title="@string/prefs_privacy_sandbox"
android:fragment="org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsFragment"
android:order="7"/>
+
+ <PreferenceCategory
+ android:key="services_category"
@ -34,11 +34,12 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
+ android:title="@string/contextual_search_title"
+ android:fragment="org.chromium.chrome.browser.contextualsearch.ContextualSearchPreferenceFragment"/>
+ </PreferenceCategory>
+
</PreferenceScreen>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
@@ -38,6 +38,13 @@ import org.chromium.ui.text.SpanApplier;
@@ -39,6 +39,13 @@ import org.chromium.ui.text.SpanApplier;
import org.chromium.base.Log;
@ -52,15 +53,31 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
/**
* Fragment to keep track of the all the privacy related preferences.
*/
@@ -54,6 +61,18 @@ public class PrivacySettings
@@ -55,6 +62,13 @@ public class PrivacySettings
public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
private static final String PREF_PROXY_OPTIONS = "proxy";
public static final String PREF_INCOGNITO_TAB_HISTORY_ENABLED = "incognito_history_enabled";
+
+ // moved from SyncAndServicesSettings.java
+ private static final String PREF_SERVICES_CATEGORY = "services_category";
+ private static final String PREF_SEARCH_SUGGESTIONS = "search_suggestions";
+ private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search";
+ public static final String PREF_AUTOFILL_ASSISTANT = "autofill_assistant";
+
private static final String[] NEW_PRIVACY_PREFERENCE_ORDER = {PREF_CLEAR_BROWSING_DATA,
PREF_ALWAYS_INCOGNITO,
PREF_INCOGNITO_TAB_HISTORY_ENABLED,
@@ -62,11 +76,19 @@ public class PrivacySettings
PREF_CLOSE_TABS_ON_EXIT,
PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX,
PREF_ALLOW_CUSTOM_TAB_INTENTS,
- PREF_PROXY_OPTIONS
+ PREF_PROXY_OPTIONS,
+ PREF_SERVICES_CATEGORY
};
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
+ private ChromeSwitchPreference mSearchSuggestions;
+ private @Nullable ChromeSwitchPreference mAutofillAssistant;
+ private @Nullable Preference mContextualSearch;
@ -68,20 +85,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
+ SharedPreferencesManager.getInstance();
+ private final PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
+
private static final String[] NEW_PRIVACY_PREFERENCE_ORDER = {PREF_CLEAR_BROWSING_DATA,
PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS,
PREF_SECURE_DNS, PREF_DO_NOT_TRACK,
@@ -61,7 +80,8 @@ public class PrivacySettings
PREF_INCOGNITO_TAB_HISTORY_ENABLED,
PREF_ALLOW_CUSTOM_TAB_INTENTS,
PREF_CLOSE_TABS_ON_EXIT,
- PREF_PROXY_OPTIONS
+ PREF_PROXY_OPTIONS,
+ PREF_SERVICES_CATEGORY
};
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
@@ -87,6 +107,29 @@ public class PrivacySettings
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
PrivacyPreferencesManagerImpl privacyPrefManager =
@@ -93,6 +115,29 @@ public class PrivacySettings
mManagedPreferenceDelegate = createManagedPreferenceDelegate();
@ -111,7 +118,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
ChromeSwitchPreference canMakePaymentPref =
(ChromeSwitchPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
canMakePaymentPref.setOnPreferenceChangeListener(this);
@@ -119,6 +162,11 @@ public class PrivacySettings
@@ -125,6 +170,11 @@ public class PrivacySettings
} else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
UserPrefs.get(Profile.getLastUsedRegularProfile())
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
@ -121,9 +128,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
+ mSharedPreferencesManager.writeBoolean(
+ ChromePreferenceKeys.AUTOFILL_ASSISTANT_ENABLED, (boolean) newValue);
} else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
PrivacyPreferencesManager.getInstance().setNetworkPredictionEnabled((boolean) newValue);
} else if (PREF_ALLOW_CUSTOM_TAB_INTENTS.equals(key)) {
@@ -133,6 +181,16 @@ public class PrivacySettings
PrivacyPreferencesManagerImpl.getInstance().setNetworkPredictionEnabled(
(boolean) newValue);
@@ -140,6 +190,16 @@ public class PrivacySettings
return true;
}
@ -140,7 +147,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
@Override
public void onResume() {
super.onResume();
@@ -143,7 +201,7 @@ public class PrivacySettings
@@ -150,7 +210,7 @@ public class PrivacySettings
* Updates the summaries for several preferences.
*/
public void updateSummaries() {

View file

@ -37,17 +37,18 @@ Added flag --fingerprinting-canvas-image-data-noise to disable Canvas image data
third_party/blink/renderer/core/dom/range.cc | 12 +-
.../renderer/core/html/canvas/text_metrics.cc | 18 ++
.../renderer/core/html/canvas/text_metrics.h | 2 +
.../canvas2d/base_rendering_context_2d.cc | 7 +
.../canvas2d/canvas_rendering_context_2d.cc | 8 +-
third_party/blink/renderer/platform/BUILD.gn | 5 +-
.../platform/exported/web_runtime_features.cc | 12 ++
.../platform/graphics/image_data_buffer.cc | 7 +
.../platform/graphics/static_bitmap_image.cc | 160 ++++++++++++++++++
.../platform/graphics/static_bitmap_image.cc | 155 ++++++++++++++++++
.../platform/graphics/static_bitmap_image.h | 2 +
.../platform/runtime_enabled_features.json5 | 9 +
third_party/ungoogled/BUILD.gn | 10 ++
third_party/ungoogled/ungoogled_switches.cc | 18 ++
third_party/ungoogled/ungoogled_switches.h | 18 ++
23 files changed, 343 insertions(+), 3 deletions(-)
24 files changed, 345 insertions(+), 3 deletions(-)
create mode 100644 third_party/ungoogled/BUILD.gn
create mode 100644 third_party/ungoogled/ungoogled_switches.cc
create mode 100644 third_party/ungoogled/ungoogled_switches.h
@ -55,7 +56,7 @@ Added flag --fingerprinting-canvas-image-data-noise to disable Canvas image data
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -2212,6 +2212,7 @@ static_library("browser") {
@@ -2301,6 +2301,7 @@ static_library("browser") {
"//services/device/public/cpp:device_features",
"//services/device/public/cpp/serial:switches",
"//services/device/public/cpp/usb",
@ -66,7 +67,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -164,6 +164,7 @@
@@ -171,6 +171,7 @@
#include "services/media_session/public/cpp/features.h"
#include "services/network/public/cpp/features.h"
#include "services/network/public/cpp/network_switches.h"
@ -74,7 +75,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
#include "storage/browser/quota/quota_features.h"
#include "third_party/blink/public/common/experiments/memory_ablation_experiment.h"
#include "third_party/blink/public/common/features.h"
@@ -2523,6 +2524,18 @@ const FeatureEntry kFeatureEntries[] = {
@@ -2643,6 +2644,18 @@ const FeatureEntry kFeatureEntries[] = {
{"enable-webrtc-srtp-aes-gcm", flag_descriptions::kWebrtcSrtpAesGcmName,
flag_descriptions::kWebrtcSrtpAesGcmDescription, kOsAll,
SINGLE_VALUE_TYPE(switches::kEnableWebRtcSrtpAesGcm)},
@ -96,18 +97,18 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -227,6 +227,7 @@ source_set("browser") {
@@ -219,6 +219,7 @@ source_set("browser") {
"//third_party/libyuv",
"//third_party/re2",
"//third_party/sqlite",
+ "//third_party/ungoogled:switches",
"//third_party/webrtc_overrides:webrtc_component",
"//third_party/wtl",
"//third_party/zlib",
"//third_party/zlib/google:zip",
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
@@ -221,6 +221,7 @@
@@ -214,6 +214,7 @@
#include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
#include "third_party/blink/public/mojom/disk_allocator.mojom.h"
#include "third_party/blink/public/public_buildflags.h"
@ -115,7 +116,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content
#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/accessibility/accessibility_switches.h"
#include "ui/base/ui_base_switches.h"
@@ -3324,6 +3325,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
@@ -3184,6 +3185,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
switches::kDisableBreakpad,
switches::kDisableDatabases,
switches::kDisableFileSystem,
@ -128,7 +129,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
@@ -130,6 +130,7 @@ target(link_target_type, "child") {
@@ -103,6 +103,7 @@ target(link_target_type, "child") {
"//third_party/blink/public/common",
"//third_party/blink/public/strings",
"//third_party/ced",
@ -139,7 +140,7 @@ 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
@@ -36,6 +36,8 @@
@@ -37,6 +37,8 @@
#include "ui/gl/gl_switches.h"
#include "ui/native_theme/native_theme_features.h"
@ -148,7 +149,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
#if defined(OS_ANDROID)
#include "base/android/build_info.h"
#endif
@@ -532,6 +534,13 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs(
@@ -540,6 +542,13 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs(
// They're moved here to distinguish them from actual base checks
WebRuntimeFeatures::EnableOverlayScrollbars(ui::IsOverlayScrollbarEnabled());
@ -165,28 +166,28 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_party/blink/public/platform/web_runtime_features.h
--- a/third_party/blink/public/platform/web_runtime_features.h
+++ b/third_party/blink/public/platform/web_runtime_features.h
@@ -224,6 +224,9 @@ class WebRuntimeFeatures {
BLINK_PLATFORM_EXPORT static void EnableTranslateService(bool);
@@ -199,6 +199,9 @@ class WebRuntimeFeatures {
BLINK_PLATFORM_EXPORT static void EnableGetDisplayMedia(bool);
BLINK_PLATFORM_EXPORT static void EnableGetCurrentBrowsingContextMedia(bool);
BLINK_PLATFORM_EXPORT static void EnableAllowSyncXHRInPageDismissal(bool);
+ BLINK_PLATFORM_EXPORT static void EnableFingerprintingClientRectsNoise(bool);
+ BLINK_PLATFORM_EXPORT static void EnableFingerprintingCanvasMeasureTextNoise(bool);
+ BLINK_PLATFORM_EXPORT static void EnableFingerprintingCanvasImageDataNoise(bool);
BLINK_PLATFORM_EXPORT static void EnableShadowDOMV0(bool);
BLINK_PLATFORM_EXPORT static void EnableCustomElementsV0(bool);
BLINK_PLATFORM_EXPORT static void EnableHTMLImports(bool);
BLINK_PLATFORM_EXPORT static void
EnableSignedExchangePrefetchCacheForNavigations(bool);
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
@@ -41,6 +41,7 @@
#include "base/auto_reset.h"
@@ -42,6 +42,7 @@
#include "base/macros.h"
#include "base/metrics/histogram_functions.h"
#include "base/optional.h"
+#include "base/rand_util.h"
#include "base/time/time.h"
#include "cc/input/overscroll_behavior.h"
#include "cc/input/scroll_snap_data.h"
@@ -2489,6 +2490,23 @@ void Document::UpdateStyleAndLayoutTree() {
@@ -2433,6 +2434,23 @@ void Document::UpdateStyleAndLayoutTree() {
#if DCHECK_IS_ON()
AssertLayoutTreeUpdated(*this);
#endif
@ -213,7 +214,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h
--- a/third_party/blink/renderer/core/dom/document.h
+++ b/third_party/blink/renderer/core/dom/document.h
@@ -447,6 +447,10 @@ class CORE_EXPORT Document : public ContainerNode,
@@ -442,6 +442,10 @@ class CORE_EXPORT Document : public ContainerNode,
has_xml_declaration_ = has_xml_declaration ? 1 : 0;
}
@ -224,7 +225,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/
AtomicString visibilityState() const;
bool IsPageVisible() const;
bool hidden() const;
@@ -1969,6 +1973,9 @@ class CORE_EXPORT Document : public ContainerNode,
@@ -1970,6 +1974,9 @@ class CORE_EXPORT Document : public ContainerNode,
base::ElapsedTimer start_time_;
@ -237,7 +238,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc
--- a/third_party/blink/renderer/core/dom/element.cc
+++ b/third_party/blink/renderer/core/dom/element.cc
@@ -2049,6 +2049,11 @@ DOMRectList* Element::getClientRects() {
@@ -2057,6 +2057,11 @@ DOMRectList* Element::getClientRects() {
DCHECK(element_layout_object);
GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom(
quads, *element_layout_object);
@ -249,7 +250,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/
return MakeGarbageCollected<DOMRectList>(quads);
}
@@ -2066,6 +2071,9 @@ DOMRect* Element::getBoundingClientRect() {
@@ -2074,6 +2079,9 @@ DOMRect* Element::getBoundingClientRect() {
DCHECK(element_layout_object);
GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result,
*element_layout_object);
@ -275,7 +276,7 @@ diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/re
return MakeGarbageCollected<DOMRectList>(quads);
}
@@ -1742,7 +1748,11 @@ FloatRect Range::BoundingRect() const {
@@ -1741,7 +1747,11 @@ FloatRect Range::BoundingRect() const {
// If all rects are empty, return the first rect.
if (result.IsEmpty() && !quads.IsEmpty())
@ -328,10 +329,34 @@ diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.h b/third_
private:
void Update(const Font&,
const TextDirection&,
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
@@ -26,6 +26,7 @@
#include "third_party/blink/renderer/platform/graphics/skia/skia_utils.h"
#include "third_party/blink/renderer/platform/graphics/stroke_data.h"
#include "third_party/blink/renderer/platform/heap/heap.h"
+#include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
namespace blink {
@@ -1772,6 +1773,12 @@ ImageData* BaseRenderingContext2D::getImageDataInternal(
snapshot->PaintImageForCurrentFrame().GetSkImageInfo().bounds();
DCHECK(!bounds.intersect(SkIRect::MakeXYWH(sx, sy, sw, sh)));
}
+
+ if (read_pixels_successful && RuntimeEnabledFeatures::FingerprintingCanvasImageDataNoiseEnabled()) {
+ base::span<uint8_t> dst = base::span<uint8_t>(reinterpret_cast<uint8_t*>(contents.Data()),
+ contents.DataLength());
+ StaticBitmapImage::ShuffleSubchannelColorData(dst.data(), image_info, sx, sy);
+ }
}
// Wrap |contents| in an ImageData.
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
@@ -838,9 +838,15 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
@@ -974,9 +974,15 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
else
direction = ToTextDirection(GetState().GetDirection(), canvas());
@ -351,7 +376,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
--- a/third_party/blink/renderer/platform/BUILD.gn
+++ b/third_party/blink/renderer/platform/BUILD.gn
@@ -1575,7 +1575,9 @@ component("platform") {
@@ -1602,7 +1602,9 @@ component("platform") {
"//third_party/blink/renderer:non_test_config",
]
@ -362,9 +387,9 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re
allow_circular_includes_from = [
"//third_party/blink/renderer/platform/blob",
@@ -1635,6 +1637,7 @@ component("platform") {
"//third_party/blink/public/strings",
@@ -1666,6 +1668,7 @@ component("platform") {
"//third_party/blink/renderer/platform/wtf",
"//third_party/blink/renderer/platform/wtf:buildflags",
"//third_party/ced",
+ "//third_party/ungoogled:switches",
"//third_party/emoji-segmenter",
@ -373,8 +398,8 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re
diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.cc b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
--- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc
+++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
@@ -731,4 +731,16 @@ void WebRuntimeFeatures::EnableConversionMeasurementInfraSupport(bool enable) {
RuntimeEnabledFeatures::SetConversionMeasurementInfraSupportEnabled(enable);
@@ -643,4 +643,16 @@ void WebRuntimeFeatures::EnableCSSColorSchemeUARendering(bool enable) {
RuntimeEnabledFeatures::SetCSSColorSchemeUARenderingEnabled(enable);
}
+void WebRuntimeFeatures::EnableFingerprintingClientRectsNoise(bool enable) {
@ -421,8 +446,8 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
#include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
+#include "base/rand_util.h"
+#include "base/logging.h"
+#include "base/rand_util.h"
#include "base/numerics/checked_math.h"
#include "gpu/command_buffer/client/gles2_interface.h"
#include "third_party/blink/renderer/platform/graphics/accelerated_static_bitmap_image.h"
@ -436,16 +461,8 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
namespace blink {
scoped_refptr<StaticBitmapImage> StaticBitmapImage::Create(
@@ -128,7 +133,162 @@ bool StaticBitmapImage::CopyToByteArray(
.bounds()
.intersect(SkIRect::MakeXYWH(rect.X(), rect.Y(), info.width(),
info.height())));
+
+ if (read_pixels_successful && RuntimeEnabledFeatures::FingerprintingCanvasImageDataNoiseEnabled()) {
+ ShuffleSubchannelColorData(dst.data(), info, rect.X(), rect.Y());
+ }
+
return true;
@@ -79,4 +84,154 @@ void StaticBitmapImage::DrawHelper(
WebCoreClampingModeToSkiaRectConstraint(clamp_mode));
}
+// set the component to maximum-delta if it is >= maximum, or add to existing color component (color + delta)
@ -614,8 +631,8 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -808,6 +808,15 @@
origin_trial_feature_name: "FeaturePolicyReporting",
@@ -863,6 +863,15 @@
name: "FeaturePolicyReporting",
status: "experimental"
},
+ {

View file

@ -9,7 +9,7 @@ Subject: Never send any crash upload data
diff --git a/chrome/browser/tracing/crash_service_uploader.cc b/chrome/browser/tracing/crash_service_uploader.cc
--- a/chrome/browser/tracing/crash_service_uploader.cc
+++ b/chrome/browser/tracing/crash_service_uploader.cc
@@ -126,14 +126,16 @@ void TraceCrashServiceUploader::DoUpload(
@@ -127,14 +127,16 @@ void TraceCrashServiceUploader::DoUpload(
UploadDoneCallback done_callback) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);

View file

@ -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
@@ -314,6 +314,8 @@ std::vector<base::string16> ChromeAutocompleteProviderClient::GetBuiltinURLs() {
@@ -330,6 +330,8 @@ std::vector<base::string16> ChromeAutocompleteProviderClient::GetBuiltinURLs() {
std::vector<base::string16>
ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
std::vector<base::string16> builtins_to_provide;

View file

@ -9,23 +9,23 @@ Subject: Open YouTube links in Bromite
diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
--- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
+++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
@@ -499,6 +499,7 @@ public class ExternalNavigationHandler {
@@ -571,6 +571,7 @@ public class ExternalNavigationHandler {
startActivity(intent, false, mDelegate);
return OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT;
return OverrideUrlLoadingResult.forExternalIntent();
}
+
}
private static void loadUrlWithReferrer(
@@ -1153,6 +1154,13 @@ public class ExternalNavigationHandler {
return OverrideUrlLoadingResult.OVERRIDE_WITH_ASYNC_ACTION;
@@ -1229,6 +1230,13 @@ public class ExternalNavigationHandler {
OverrideUrlLoadingAsyncActionType.UI_GATING_BROWSER_NAVIGATION);
}
+ // force to open YouTube urls in Bromite
+ // force to open YouTube URLs in Bromite
+ String intentPackageName = targetIntent.getPackage();
+ if (intentPackageName != null && intentPackageName.equals("com.google.android.youtube")) {
+ if (DEBUG) Log.i(TAG, "NO_OVERRIDE: YouTube URL for YouTube app");
+ return OverrideUrlLoadingResult.NO_OVERRIDE;
+ return OverrideUrlLoadingResult.forNoOverride();
+ }
+
// This should come after file intents, but before any returns of

View file

@ -1,52 +0,0 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Wed, 23 Sep 2020 14:47:44 +0200
Subject: Password service build fixes
---
.../safe_browsing/chrome_password_protection_service.h | 2 --
.../password_protection/password_protection_request.cc | 2 --
.../password_protection/password_protection_service.h | 5 -----
3 files changed, 9 deletions(-)
diff --git a/chrome/browser/safe_browsing/chrome_password_protection_service.h b/chrome/browser/safe_browsing/chrome_password_protection_service.h
--- a/chrome/browser/safe_browsing/chrome_password_protection_service.h
+++ b/chrome/browser/safe_browsing/chrome_password_protection_service.h
@@ -255,8 +255,6 @@ class ChromePasswordProtectionService : public PasswordProtectionService {
// |NOT_SIGNED_IN|.
LoginReputationClientRequest::PasswordReuseEvent::SyncAccountType
GetSyncAccountType() const override;
- safe_browsing::LoginReputationClientRequest::UrlDisplayExperiment
- GetUrlDisplayExperiment() const override;
// Stores |verdict| in the cache based on its |trigger_type|, |url|,
// reused |password_type|, |verdict| and |receive_time|.
diff --git a/components/safe_browsing/content/password_protection/password_protection_request.cc b/components/safe_browsing/content/password_protection/password_protection_request.cc
--- a/components/safe_browsing/content/password_protection/password_protection_request.cc
+++ b/components/safe_browsing/content/password_protection/password_protection_request.cc
@@ -132,8 +132,6 @@ PasswordProtectionRequest::PasswordProtectionRequest(
password_type_ != PasswordType::SAVED_PASSWORD ||
!matching_reused_credentials_.empty());
request_proto_->set_trigger_type(trigger_type_);
- *request_proto_->mutable_url_display_experiment() =
- pps->GetUrlDisplayExperiment();
}
PasswordProtectionRequest::~PasswordProtectionRequest() {
diff --git a/components/safe_browsing/content/password_protection/password_protection_service.h b/components/safe_browsing/content/password_protection/password_protection_service.h
--- a/components/safe_browsing/content/password_protection/password_protection_service.h
+++ b/components/safe_browsing/content/password_protection/password_protection_service.h
@@ -423,11 +423,6 @@ class PasswordProtectionService : public history::HistoryServiceObserver {
virtual LoginReputationClientRequest::PasswordReuseEvent::SyncAccountType
GetSyncAccountType() const = 0;
- // Get information about Delayed Warnings and Omnibox URL display experiments.
- // This information is sent in PhishGuard pings.
- virtual LoginReputationClientRequest::UrlDisplayExperiment
- GetUrlDisplayExperiment() const = 0;
-
// Returns the reason why a ping is not sent based on the |trigger_type|,
// |url| and |password_type|. Crash if |CanSendPing| is true.
virtual RequestOutcome GetPingNotSentReason(
--
2.17.1

View file

@ -27,7 +27,7 @@ diff --git a/net/base/load_flags_list.h b/net/base/load_flags_list.h
diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
--- a/net/dns/dns_transaction.cc
+++ b/net/dns/dns_transaction.cc
@@ -418,7 +418,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
@@ -411,7 +411,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
// Disable secure DNS for any DoH server hostname lookups to avoid deadlock.
request_->SetDisableSecureDns(true);
request_->SetLoadFlags(request_->load_flags() | LOAD_DISABLE_CACHE |
@ -39,7 +39,7 @@ diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
--- a/net/url_request/url_request_http_job.cc
+++ b/net/url_request/url_request_http_job.cc
@@ -319,6 +319,7 @@ void URLRequestHttpJob::Start() {
@@ -286,6 +286,7 @@ void URLRequestHttpJob::Start() {
// plugin could set a referrer although sending the referrer is inhibited.
request_info_.extra_headers.RemoveHeader(HttpRequestHeaders::kReferer);
@ -47,7 +47,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
// Our consumer should have made sure that this is a safe referrer (e.g. via
// URLRequestJob::ComputeReferrerForPolicy).
if (referrer.is_valid()) {
@@ -326,11 +327,14 @@ void URLRequestHttpJob::Start() {
@@ -293,11 +294,14 @@ void URLRequestHttpJob::Start() {
request_info_.extra_headers.SetHeader(HttpRequestHeaders::kReferer,
referer_value);
}
@ -62,7 +62,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
AddExtraHeaders();
AddCookieHeaderAndStart();
@@ -527,10 +531,12 @@ void URLRequestHttpJob::AddExtraHeaders() {
@@ -499,10 +503,12 @@ void URLRequestHttpJob::AddExtraHeaders() {
} else {
// Advertise "br" encoding only if transferred data is opaque to proxy.
bool advertise_brotli = false;
@ -79,7 +79,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
}
}
@@ -548,7 +554,7 @@ void URLRequestHttpJob::AddExtraHeaders() {
@@ -520,7 +526,7 @@ void URLRequestHttpJob::AddExtraHeaders() {
}
}

View file

@ -3,31 +3,57 @@ Date: Sun, 3 Nov 2019 08:22:29 +0100
Subject: Remove SMS integration
---
.../browser/sms/SmsUserConsentReceiver.java | 42 ++-----------------
.../browser/sms/SmsVerificationReceiver.java | 30 +------------
.../content/browser/sms/Wrappers.java | 14 +------
3 files changed, 7 insertions(+), 79 deletions(-)
.../content/browser/sms/SmsProviderGms.java | 9 +---
.../browser/sms/SmsUserConsentReceiver.java | 46 ++-----------------
.../browser/sms/SmsVerificationReceiver.java | 41 ++++-------------
.../content/browser/sms/Wrappers.java | 28 +----------
4 files changed, 14 insertions(+), 110 deletions(-)
diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/SmsProviderGms.java b/content/public/android/java/src/org/chromium/content/browser/sms/SmsProviderGms.java
--- a/content/public/android/java/src/org/chromium/content/browser/sms/SmsProviderGms.java
+++ b/content/public/android/java/src/org/chromium/content/browser/sms/SmsProviderGms.java
@@ -123,13 +123,6 @@ public class SmsProviderGms {
}
public Wrappers.SmsRetrieverClientWrapper getClient() {
- if (mClient != null) {
- return mClient;
- }
- mClient = new Wrappers.SmsRetrieverClientWrapper(
- mUserConsentReceiver != null ? mUserConsentReceiver.createClient() : null,
- mVerificationReceiver != null ? mVerificationReceiver.createClient() : null);
-
return mClient;
}
@@ -151,4 +144,4 @@ public class SmsProviderGms {
void onCancel(long nativeSmsProviderGms);
void onNotAvailable(long nativeSmsProviderGms);
}
-}
\ No newline at end of file
+}
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
@@ -12,12 +12,6 @@ import android.content.IntentFilter;
import androidx.annotation.VisibleForTesting;
@@ -10,13 +10,6 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
-import com.google.android.gms.auth.api.phone.SmsRetriever;
-import com.google.android.gms.auth.api.phone.SmsRetrieverClient;
-import com.google.android.gms.common.api.CommonStatusCodes;
-import com.google.android.gms.common.api.Status;
-import com.google.android.gms.tasks.OnFailureListener;
-import com.google.android.gms.tasks.Task;
-
import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
import org.chromium.base.annotations.CalledByNative;
@@ -46,18 +40,6 @@ public class SmsUserConsentReceiver extends BroadcastReceiver {
mSmsProviderAndroid = smsProviderAndroid;
import org.chromium.ui.base.WindowAndroid;
mContext = new Wrappers.SmsReceiverContext(ContextUtils.getApplicationContext());
@@ -34,28 +27,11 @@ public class SmsUserConsentReceiver extends BroadcastReceiver {
mDestroyed = false;
mProvider = provider;
mContext = context;
-
- // A broadcast receiver is registered upon the creation of this class
- // which happens when the SMS Retriever API is used for the first time
@ -40,18 +66,20 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm
- IntentFilter filter = new IntentFilter();
- filter.addAction(SmsRetriever.SMS_RETRIEVED_ACTION);
- mContext.registerReceiver(this, filter);
- }
-
- public SmsRetrieverClient createClient() {
- return SmsRetriever.getClient(mContext);
}
@CalledByNative
@@ -70,7 +52,6 @@ public class SmsUserConsentReceiver extends BroadcastReceiver {
private void destroy() {
public void destroy() {
if (DEBUG) Log.d(TAG, "Destroying SmsUserConsentReceiver.");
mDestroyed = true;
- mContext.unregisterReceiver(this);
}
@Override
@@ -83,7 +64,7 @@ public class SmsUserConsentReceiver extends BroadcastReceiver {
@@ -66,7 +42,7 @@ public class SmsUserConsentReceiver extends BroadcastReceiver {
return;
}
@ -60,28 +88,27 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm
return;
}
@@ -115,35 +96,20 @@ public class SmsUserConsentReceiver extends BroadcastReceiver {
@@ -100,28 +76,14 @@ public class SmsUserConsentReceiver extends BroadcastReceiver {
if (DEBUG) Log.d(TAG, "Timeout");
SmsUserConsentReceiverJni.get().onTimeout(mSmsProviderAndroid);
mProvider.onTimeout();
break;
- }
+ }*/
+ } */
}
void onConsentResult(int resultCode, Intent data) {
- if (resultCode == Activity.RESULT_OK) {
- String message = data.getStringExtra(SmsRetriever.EXTRA_SMS_MESSAGE);
- SmsUserConsentReceiverJni.get().onReceive(mSmsProviderAndroid, message);
- mProvider.onReceive(message, GmsBackend.USER_CONSENT);
- } else if (resultCode == Activity.RESULT_CANCELED) {
- if (DEBUG) Log.d(TAG, "Activity result cancelled.");
- mProvider.onCancel();
- }
+ if (DEBUG) Log.d(TAG, "Activity result discarded.");
}
@CalledByNative
private void listen(WindowAndroid windowAndroid) {
mWindowAndroid = windowAndroid;
- Task<Void> task = getClient().startSmsUserConsent(null);
public void listen(WindowAndroid windowAndroid) {
- Task<Void> task = mProvider.getClient().startSmsUserConsent(null);
-
- task.addOnFailureListener(new OnFailureListener() {
- @Override
@ -90,122 +117,148 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm
- }
- });
- if (DEBUG) Log.d(TAG, "Installed task");
+ Log.d(TAG, "Ignored task");
+ if (DEBUG) Log.d(TAG, "Ignored task");
}
private Wrappers.SmsRetrieverClientWrapper getClient() {
- if (mClient != null) return mClient;
- mClient = new Wrappers.SmsRetrieverClientWrapper(SmsRetriever.getClient(mContext));
return mClient;
}
}
diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/SmsVerificationReceiver.java b/content/public/android/java/src/org/chromium/content/browser/sms/SmsVerificationReceiver.java
--- a/content/public/android/java/src/org/chromium/content/browser/sms/SmsVerificationReceiver.java
+++ b/content/public/android/java/src/org/chromium/content/browser/sms/SmsVerificationReceiver.java
@@ -11,11 +11,6 @@ import android.content.IntentFilter;
import androidx.annotation.VisibleForTesting;
@@ -11,16 +11,6 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
-import com.google.android.gms.auth.api.phone.SmsCodeBrowserClient;
-import com.google.android.gms.auth.api.phone.SmsCodeRetriever;
-import com.google.android.gms.auth.api.phone.SmsRetriever;
-import com.google.android.gms.auth.api.phone.SmsRetrieverStatusCodes;
-import com.google.android.gms.common.api.ApiException;
-import com.google.android.gms.common.api.CommonStatusCodes;
-import com.google.android.gms.common.api.ResolvableApiException;
-import com.google.android.gms.common.api.Status;
-import com.google.android.gms.tasks.Task;
-
import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
import org.chromium.base.annotations.CalledByNative;
@@ -42,18 +37,6 @@ public class SmsVerificationReceiver extends BroadcastReceiver {
mSmsProviderAndroid = smsProviderAndroid;
mContext = new Wrappers.SmsReceiverContext(ContextUtils.getApplicationContext());
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.ui.base.WindowAndroid;
@@ -54,35 +44,18 @@ public class SmsVerificationReceiver extends BroadcastReceiver {
mDestroyed = false;
mProvider = provider;
mContext = context;
-
- // A broadcast receiver is registered upon the creation of this class
- // which happens when the SMS Retriever API is used for the first time
- // since chrome last restarted (which, on android, happens frequently).
- // The broadcast receiver is fairly lightweight (e.g. it responds
- // quickly without much computation).
- // If this broadcast receiver becomes more heavyweight, we should make
- // this registration expire after the SMS message is received.
- if (DEBUG) Log.d(TAG, "Registering intent filters.");
- // A broadcast receiver is registered upon the creation of this class which happens when the
- // SMS Retriever API or SMS Browser Code API is used for the first time since chrome last
- // restarted (which, on android, happens frequently). The broadcast receiver is fairly
- // lightweight (e.g. it responds quickly without much computation). If this broadcast
- // receiver becomes more heavyweight, we should make this registration expire after the SMS
- // message is received.
- if (DEBUG) Log.i(TAG, "Registering intent filters.");
- IntentFilter filter = new IntentFilter();
- filter.addAction(SmsRetriever.SMS_RETRIEVED_ACTION);
- filter.addAction(SmsCodeRetriever.SMS_CODE_RETRIEVED_ACTION);
-
- mContext.registerReceiver(this, filter);
- }
-
- public SmsCodeBrowserClient createClient() {
- return SmsCodeRetriever.getBrowserClient(mContext);
}
@CalledByNative
@@ -66,7 +49,6 @@ public class SmsVerificationReceiver extends BroadcastReceiver {
private void destroy() {
public void destroy() {
if (DEBUG) Log.d(TAG, "Destroying SmsVerificationReceiver.");
mDestroyed = true;
- mContext.unregisterReceiver(this);
}
@Override
@@ -77,7 +59,7 @@ public class SmsVerificationReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
if (DEBUG) Log.d(TAG, "Received something!");
- if (mDestroyed) {
+ /*if (mDestroyed) {
return;
}
- if (!SmsRetriever.SMS_RETRIEVED_ACTION.equals(intent.getAction())) {
+/* if (!SmsRetriever.SMS_RETRIEVED_ACTION.equals(intent.getAction())) {
return;
}
@@ -104,22 +86,14 @@ public class SmsVerificationReceiver extends BroadcastReceiver {
@@ -113,7 +86,7 @@ public class SmsVerificationReceiver extends BroadcastReceiver {
if (DEBUG) Log.d(TAG, "Timeout");
SmsVerificationReceiverJni.get().onTimeout(mSmsProviderAndroid);
mProvider.onTimeout();
break;
- }
+ }*/
}
@CalledByNative
private void listen() {
- Wrappers.SmsRetrieverClientWrapper client = getClient();
- Task<Void> task = client.startSmsRetriever();
-
public void onPermissionDone(WindowAndroid window, int resultCode) {
@@ -133,7 +106,7 @@ public class SmsVerificationReceiver extends BroadcastReceiver {
* task.
*/
public void onRetrieverTaskFailure(WindowAndroid window, Exception e) {
- if (DEBUG) Log.d(TAG, "Task failed. Attempting recovery.", e);
+ /*if (DEBUG) Log.d(TAG, "Task failed. Attempting recovery.", e);
BackendAvailability availability = BackendAvailability.AVAILABLE;
ApiException exception = (ApiException) e;
if (exception.getStatusCode() == SmsRetrieverStatusCodes.API_NOT_CONNECTED) {
@@ -175,18 +148,20 @@ public class SmsVerificationReceiver extends BroadcastReceiver {
} else {
Log.w(TAG, "Unexpected exception", e);
}
- reportBackendAvailability(availability);
+ reportBackendAvailability(availability);*/
+ Log.w(TAG, "Unexpected exception", e);
}
public void listen(WindowAndroid window) {
- Wrappers.SmsRetrieverClientWrapper client = mProvider.getClient();
+ /*Wrappers.SmsRetrieverClientWrapper client = mProvider.getClient();
Task<Void> task = client.startSmsCodeBrowserRetriever();
task.addOnSuccessListener(
unused -> { this.reportBackendAvailability(BackendAvailability.AVAILABLE); });
task.addOnFailureListener((Exception e) -> { this.onRetrieverTaskFailure(window, e); });
- if (DEBUG) Log.d(TAG, "Installed task");
+ if (DEBUG) Log.d(TAG, "Installed task"); */
+ if (DEBUG) Log.d(TAG, "Ignored task");
}
private Wrappers.SmsRetrieverClientWrapper getClient() {
- if (mClient != null) {
- return mClient;
- }
- mClient = new Wrappers.SmsRetrieverClientWrapper(SmsRetriever.getClient(mContext));
return mClient;
}
public void reportBackendAvailability(BackendAvailability availability) {
diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Wrappers.java b/content/public/android/java/src/org/chromium/content/browser/sms/Wrappers.java
--- a/content/public/android/java/src/org/chromium/content/browser/sms/Wrappers.java
+++ b/content/public/android/java/src/org/chromium/content/browser/sms/Wrappers.java
@@ -10,9 +10,6 @@ import android.content.ContextWrapper;
@@ -10,11 +10,6 @@ import android.content.ContextWrapper;
import android.content.Intent;
import android.content.IntentFilter;
-import com.google.android.gms.auth.api.phone.SmsCodeBrowserClient;
-import com.google.android.gms.auth.api.phone.SmsCodeRetriever;
-import com.google.android.gms.auth.api.phone.SmsRetrieverClient;
-import com.google.android.gms.tasks.Task;
-
class Wrappers {
// Prevent instantiation.
private Wrappers() {}
@@ -21,11 +18,9 @@ class Wrappers {
@@ -23,16 +18,9 @@ class Wrappers {
* Wraps com.google.android.gms.auth.api.phone.SmsRetrieverClient.
*/
static class SmsRetrieverClientWrapper {
- // Used for user consent flow.
- private final SmsRetrieverClient mSmsRetrieverClient;
private SmsReceiverContext mContext;
- // Used for browser code flow.
- private final SmsCodeBrowserClient mSmsCodeBrowserClient;
private WebOTPServiceContext mContext;
- public SmsRetrieverClientWrapper(SmsRetrieverClient smsRetrieverClient) {
- public SmsRetrieverClientWrapper(
- SmsRetrieverClient smsRetrieverClient, SmsCodeBrowserClient smsCodeBrowserClient) {
- mSmsRetrieverClient = smsRetrieverClient;
- mSmsCodeBrowserClient = smsCodeBrowserClient;
+ public SmsRetrieverClientWrapper() {
}
public void setContext(SmsReceiverContext context) {
@@ -36,13 +31,6 @@ class Wrappers {
public void setContext(WebOTPServiceContext context) {
@@ -42,14 +30,6 @@ class Wrappers {
public WebOTPServiceContext getContext() {
return mContext;
}
- public Task<Void> startSmsRetriever() {
- return mSmsRetrieverClient.startSmsRetriever();
-
- public Task<Void> startSmsCodeBrowserRetriever() {
- return mSmsCodeBrowserClient.startSmsCodeRetriever();
- }
-
- public Task<Void> startSmsUserConsent(String senderAddress) {
@ -214,6 +267,19 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Wr
}
/**
@@ -77,12 +57,6 @@ class Wrappers {
@Override
public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter) {
- if (filter.hasAction(SmsCodeRetriever.SMS_CODE_RETRIEVED_ACTION)) {
- mVerificationReceiver = receiver;
- } else {
- mUserConsentReceiver = receiver;
- }
-
return super.registerReceiver(receiver, filter);
}
--
2.17.1

File diff suppressed because it is too large Load diff

Some files were not shown because too many files have changed in this diff Show more