Merge branch 'master' into enable-user-scripts
This commit is contained in:
commit
c5fbf8caff
162 changed files with 42329 additions and 21685 deletions
7
.github/ISSUE_TEMPLATE/bug_report.md
vendored
7
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
@ -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. -->
|
||||
|
|
3
.github/ISSUE_TEMPLATE/feature_request.md
vendored
3
.github/ISSUE_TEMPLATE/feature_request.md
vendored
|
@ -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. -->
|
||||
|
|
63
CHANGELOG.md
63
CHANGELOG.md
|
@ -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)
|
||||
|
|
12
README.md
12
README.md
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1 +1 @@
|
|||
87.0.4280.106
|
||||
89.0.4389.92
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
23
build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch
Normal file
23
build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch
Normal 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
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
98
build/patches/Add-flag-for-save-data-header.patch
Normal file
98
build/patches/Add-flag-for-save-data-header.patch
Normal 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
|
||||
|
|
@ -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[];
|
||||
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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};
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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",
|
||||
},
|
||||
|
|
|
@ -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)
|
||||
|
|
488
build/patches/Add-menu-item-to-bookmark-all-tabs.patch
Normal file
488
build/patches/Add-menu-item-to-bookmark-all-tabs.patch
Normal 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
|
||||
|
|
@ -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>
|
||||
|
|
File diff suppressed because it is too large
Load diff
172
build/patches/Add-option-to-force-tablet-UI.patch
Normal file
172
build/patches/Add-option-to-force-tablet-UI.patch
Normal 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
|
||||
|
|
@ -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>
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -46,7 +46,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.idl b/thir
|
|||
diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc
|
||||
--- a/third_party/blink/renderer/modules/webaudio/audio_context.cc
|
||||
+++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc
|
||||
@@ -398,7 +398,9 @@ double AudioContext::baseLatency() const {
|
||||
@@ -406,7 +406,9 @@ double AudioContext::baseLatency() const {
|
||||
DCHECK(IsMainThread());
|
||||
DCHECK(destination());
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -10,7 +10,7 @@ Include @thestinger's fix for correct charging/unknown values
|
|||
diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/third_party/blink/renderer/modules/battery/battery_manager.cc
|
||||
--- a/third_party/blink/renderer/modules/battery/battery_manager.cc
|
||||
+++ b/third_party/blink/renderer/modules/battery/battery_manager.cc
|
||||
@@ -45,46 +45,28 @@ ScriptPromise BatteryManager::StartRequest(ScriptState* script_state) {
|
||||
@@ -69,46 +69,28 @@ ScriptPromise BatteryManager::StartRequest(ScriptState* script_state) {
|
||||
}
|
||||
|
||||
bool BatteryManager::charging() {
|
||||
|
@ -37,7 +37,7 @@ diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/thi
|
|||
DCHECK(battery_property_);
|
||||
|
||||
- BatteryStatus old_status = battery_status_;
|
||||
- battery_status_ = *BatteryDispatcher::Instance().LatestData();
|
||||
- battery_status_ = *battery_dispatcher_->LatestData();
|
||||
-
|
||||
if (battery_property_->GetState() == BatteryProperty::kPending) {
|
||||
battery_property_->Resolve(this);
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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
|
@ -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:
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -60,7 +60,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
|
|||
diff --git a/components/variations/service/variations_service.cc b/components/variations/service/variations_service.cc
|
||||
--- a/components/variations/service/variations_service.cc
|
||||
+++ b/components/variations/service/variations_service.cc
|
||||
@@ -236,17 +236,7 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers,
|
||||
@@ -239,17 +239,7 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers,
|
||||
// Variations seed fetching is only enabled in official Chrome builds, if a URL
|
||||
// is specified on the command line, and for testing.
|
||||
bool IsFetchingEnabled() {
|
||||
|
|
|
@ -3,44 +3,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
|
||||
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ Subject: Disable offline pages in the downloads home to be opened in CCT by
|
|||
diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/offline_pages/core/offline_page_feature.cc
|
||||
--- a/components/offline_pages/core/offline_page_feature.cc
|
||||
+++ b/components/offline_pages/core/offline_page_feature.cc
|
||||
@@ -51,7 +51,7 @@ const base::Feature kOfflinePagesDescriptivePendingStatusFeature{
|
||||
@@ -42,7 +42,7 @@ const base::Feature kOfflinePagesDescriptivePendingStatusFeature{
|
||||
"OfflinePagesDescriptivePendingStatus", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kOfflinePagesInDownloadHomeOpenInCctFeature{
|
||||
|
|
|
@ -11,7 +11,7 @@ a corresponding user option to individually disable their usage.
|
|||
diff --git a/components/url_formatter/url_formatter.cc b/components/url_formatter/url_formatter.cc
|
||||
--- a/components/url_formatter/url_formatter.cc
|
||||
+++ b/components/url_formatter/url_formatter.cc
|
||||
@@ -469,13 +469,13 @@ ComponentResult IDNToUnicodeOneComponent(
|
||||
@@ -471,13 +471,13 @@ ComponentResult IDNToUnicodeOneComponent(
|
||||
} // namespace
|
||||
|
||||
const FormatUrlType kFormatUrlOmitNothing = 0;
|
||||
|
|
|
@ -1,117 +0,0 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 15 Dec 2019 22:39:56 +0100
|
||||
Subject: Disable password reuse detection on android
|
||||
|
||||
---
|
||||
.../android/password_reuse_controller_android.cc | 12 ++++++++++++
|
||||
.../password_reuse_dialog_view_android.cc | 11 +++++++++--
|
||||
components/password_manager/core/browser/BUILD.gn | 6 +++---
|
||||
3 files changed, 24 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/safe_browsing/android/password_reuse_controller_android.cc b/chrome/browser/safe_browsing/android/password_reuse_controller_android.cc
|
||||
--- a/chrome/browser/safe_browsing/android/password_reuse_controller_android.cc
|
||||
+++ b/chrome/browser/safe_browsing/android/password_reuse_controller_android.cc
|
||||
@@ -17,17 +17,25 @@ PasswordReuseControllerAndroid::PasswordReuseControllerAndroid(
|
||||
ChromePasswordProtectionService* service,
|
||||
ReusedPasswordAccountType password_type,
|
||||
OnWarningDone done_callback)
|
||||
+#if defined(SYNC_PASSWORD_REUSE_WARNING_ENABLED)
|
||||
: service_(service),
|
||||
+#else
|
||||
+ :
|
||||
+#endif
|
||||
url_(web_contents->GetLastCommittedURL()),
|
||||
password_type_(password_type),
|
||||
window_android_(web_contents->GetTopLevelNativeWindow()),
|
||||
done_callback_(std::move(done_callback)) {
|
||||
modal_construction_start_time_ = base::TimeTicks::Now();
|
||||
+#if defined(SYNC_PASSWORD_REUSE_WARNING_ENABLED)
|
||||
service_->AddObserver(this);
|
||||
+#endif
|
||||
}
|
||||
|
||||
PasswordReuseControllerAndroid::~PasswordReuseControllerAndroid() {
|
||||
+#if defined(SYNC_PASSWORD_REUSE_WARNING_ENABLED)
|
||||
service_->RemoveObserver(this);
|
||||
+#endif
|
||||
dialog_view_.reset();
|
||||
LogModalWarningDialogLifetime(modal_construction_start_time_);
|
||||
}
|
||||
@@ -48,20 +56,24 @@ base::string16 PasswordReuseControllerAndroid::GetButtonText() const {
|
||||
return l10n_util::GetStringUTF16(IDS_CLOSE);
|
||||
}
|
||||
|
||||
+#if defined(SYNC_PASSWORD_REUSE_WARNING_ENABLED)
|
||||
base::string16 PasswordReuseControllerAndroid::GetWarningDetailText(
|
||||
std::vector<size_t>* placeholder_offsets) const {
|
||||
return service_->GetWarningDetailText(password_type_, placeholder_offsets);
|
||||
}
|
||||
+#endif
|
||||
|
||||
base::string16 PasswordReuseControllerAndroid::GetTitle() const {
|
||||
return l10n_util::GetStringUTF16(IDS_PAGE_INFO_CHANGE_PASSWORD_SUMMARY);
|
||||
}
|
||||
|
||||
+#if defined(SYNC_PASSWORD_REUSE_WARNING_ENABLED)
|
||||
const std::vector<base::string16>
|
||||
PasswordReuseControllerAndroid::GetPlaceholdersForSavedPasswordWarningText()
|
||||
const {
|
||||
return service_->GetPlaceholdersForSavedPasswordWarningText();
|
||||
}
|
||||
+#endif
|
||||
|
||||
void PasswordReuseControllerAndroid::OnGaiaPasswordChanged() {
|
||||
delete this;
|
||||
diff --git a/chrome/browser/ui/android/safe_browsing/password_reuse_dialog_view_android.cc b/chrome/browser/ui/android/safe_browsing/password_reuse_dialog_view_android.cc
|
||||
--- a/chrome/browser/ui/android/safe_browsing/password_reuse_dialog_view_android.cc
|
||||
+++ b/chrome/browser/ui/android/safe_browsing/password_reuse_dialog_view_android.cc
|
||||
@@ -29,6 +29,7 @@ void PasswordReuseDialogViewAndroid::Show(ui::WindowAndroid* window_android) {
|
||||
java_object_.Reset(Java_SafeBrowsingPasswordReuseDialogBridge_create(
|
||||
env, window_android->GetJavaObject(), reinterpret_cast<intptr_t>(this)));
|
||||
|
||||
+#if defined(SYNC_PASSWORD_REUSE_WARNING_ENABLED)
|
||||
std::vector<size_t> placeholder_offsets;
|
||||
base::string16 warning_detail_text =
|
||||
controller_->GetWarningDetailText(&placeholder_offsets);
|
||||
@@ -50,14 +51,20 @@ void PasswordReuseDialogViewAndroid::Show(ui::WindowAndroid* window_android) {
|
||||
base::android::ToJavaIntArray(env, start_ranges, len);
|
||||
base::android::ScopedJavaLocalRef<jintArray> j_end_ranges =
|
||||
base::android::ToJavaIntArray(env, end_ranges, len);
|
||||
-
|
||||
+#else
|
||||
+ int start_ranges[0], end_ranges[0];
|
||||
+ base::android::ScopedJavaLocalRef<jintArray> j_start_ranges =
|
||||
+ base::android::ToJavaIntArray(env, start_ranges, 0);
|
||||
+ base::android::ScopedJavaLocalRef<jintArray> j_end_ranges =
|
||||
+ base::android::ToJavaIntArray(env, end_ranges, 0);
|
||||
Java_SafeBrowsingPasswordReuseDialogBridge_showDialog(
|
||||
env, java_object_,
|
||||
base::android::ConvertUTF16ToJavaString(env, controller_->GetTitle()),
|
||||
- base::android::ConvertUTF16ToJavaString(env, warning_detail_text),
|
||||
+ base::android::ConvertUTF16ToJavaString(env, controller_->GetTitle()),
|
||||
base::android::ConvertUTF16ToJavaString(env,
|
||||
controller_->GetButtonText()),
|
||||
j_start_ranges, j_end_ranges);
|
||||
+#endif
|
||||
}
|
||||
|
||||
void PasswordReuseDialogViewAndroid::Close(
|
||||
diff --git a/components/password_manager/core/browser/BUILD.gn b/components/password_manager/core/browser/BUILD.gn
|
||||
--- a/components/password_manager/core/browser/BUILD.gn
|
||||
+++ b/components/password_manager/core/browser/BUILD.gn
|
||||
@@ -11,9 +11,9 @@ if (is_android) {
|
||||
|
||||
# TODO(crbug.com/1006430): Fix password reuse detection not fully functional on
|
||||
# Android.
|
||||
-password_reuse_detection_support = !is_ios
|
||||
-password_reuse_warning_support = !is_ios
|
||||
-password_on_focus_ping_support = !is_ios
|
||||
+password_reuse_detection_support = !is_ios && !is_android
|
||||
+password_reuse_warning_support = !is_ios && !is_android
|
||||
+password_on_focus_ping_support = !is_ios && !is_android
|
||||
|
||||
config("password_reuse_detection_config") {
|
||||
defines = []
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -9,11 +9,11 @@ Subject: Disable plugins enumeration
|
|||
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
--- a/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
@@ -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());
|
||||
|
|
|
@ -21,7 +21,7 @@ diff --git a/components/previews/core/previews_features.cc b/components/previews
|
|||
-#endif // defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS)
|
||||
};
|
||||
|
||||
// Enables the Offline previews on android slow connections.
|
||||
// Provides slow page triggering parameters.
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
@ -1,391 +0,0 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 10 Nov 2018 17:20:21 +0100
|
||||
Subject: Disable promos displayed in bookmarks manager
|
||||
|
||||
Remove personalized signin promo view from
|
||||
bookmarks, never reach signin thresholds.
|
||||
---
|
||||
chrome/android/chrome_java_resources.gni | 1 -
|
||||
...rsonalized_signin_promo_view_bookmarks.xml | 30 -----
|
||||
.../bookmarks/BookmarkItemsAdapter.java | 30 +----
|
||||
.../bookmarks/BookmarkPromoHeader.java | 121 +-----------------
|
||||
.../browser/signin/SigninPromoController.java | 23 +---
|
||||
5 files changed, 5 insertions(+), 200 deletions(-)
|
||||
delete mode 100644 chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml
|
||||
|
||||
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
|
||||
--- a/chrome/android/chrome_java_resources.gni
|
||||
+++ b/chrome/android/chrome_java_resources.gni
|
||||
@@ -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
|
||||
|
|
@ -12,7 +12,7 @@ Subject: Disable references to fonts.googleapis.com
|
|||
diff --git a/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc b/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
|
||||
--- a/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
|
||||
+++ b/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
|
||||
@@ -292,7 +292,7 @@ bool DomDistillerViewerSource::ShouldServiceRequest(
|
||||
@@ -295,7 +295,7 @@ bool DomDistillerViewerSource::ShouldServiceRequest(
|
||||
std::string DomDistillerViewerSource::GetContentSecurityPolicy(
|
||||
network::mojom::CSPDirectiveName directive) {
|
||||
if (directive == network::mojom::CSPDirectiveName::StyleSrc) {
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -9,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
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
23
build/patches/Disable-unified-autoplay-feature.patch
Normal file
23
build/patches/Disable-unified-autoplay-feature.patch
Normal 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
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: DoH secure mode by default
|
|||
diff --git a/chrome/browser/net/stub_resolver_config_reader.cc b/chrome/browser/net/stub_resolver_config_reader.cc
|
||||
--- a/chrome/browser/net/stub_resolver_config_reader.cc
|
||||
+++ b/chrome/browser/net/stub_resolver_config_reader.cc
|
||||
@@ -153,7 +153,7 @@ StubResolverConfigReader::StubResolverConfigReader(PrefService* local_state,
|
||||
@@ -154,7 +154,7 @@ StubResolverConfigReader::StubResolverConfigReader(PrefService* local_state,
|
||||
if (entries.count("dns-over-https@1")) {
|
||||
// The user has "Enabled" selected.
|
||||
local_state_->SetString(prefs::kDnsOverHttpsMode,
|
||||
|
@ -18,7 +18,7 @@ diff --git a/chrome/browser/net/stub_resolver_config_reader.cc b/chrome/browser/
|
|||
} else if (entries.count("dns-over-https@2")) {
|
||||
// The user has "Disabled" selected.
|
||||
local_state_->SetString(prefs::kDnsOverHttpsMode,
|
||||
@@ -327,22 +327,7 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration(
|
||||
@@ -328,22 +328,7 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration(
|
||||
check_parental_controls = false;
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ Subject: Enable SPPI for devices with enough memory
|
|||
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
|
||||
--- a/chrome/common/chrome_features.cc
|
||||
+++ b/chrome/common/chrome_features.cc
|
||||
@@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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{
|
||||
|
|
|
@ -42,7 +42,7 @@ Excerpt from https://github.com/bromite/bromite/issues/226
|
|||
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
|
||||
--- a/build/config/compiler/BUILD.gn
|
||||
+++ b/build/config/compiler/BUILD.gn
|
||||
@@ -286,6 +286,10 @@ config("compiler") {
|
||||
@@ -311,6 +311,10 @@ config("compiler") {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -7,15 +7,14 @@ Expose show-legacy-tls-warnings flag on Android as well
|
|||
chrome/browser/about_flags.cc | 2 --
|
||||
chrome/browser/ssl/tls_deprecation_config.cc | 22 +------------------
|
||||
components/security_state/core/features.cc | 2 +-
|
||||
net/base/features.cc | 2 +-
|
||||
.../network/legacy_tls_config_distributor.cc | 21 +-----------------
|
||||
services/network/ssl_config_service_mojo.cc | 7 ++----
|
||||
6 files changed, 6 insertions(+), 50 deletions(-)
|
||||
5 files changed, 5 insertions(+), 49 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -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
|
||||
|
|
56
build/patches/Enable-network-isolation-features.patch
Normal file
56
build/patches/Enable-network-isolation-features.patch
Normal 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
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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*);
|
||||
|
||||
|
|
54
build/patches/Make-all-favicon-requests-on-demand.patch
Normal file
54
build/patches/Make-all-favicon-requests-on-demand.patch
Normal 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
|
||||
|
|
@ -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(
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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"
|
||||
},
|
||||
+ {
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: Never send any crash upload data
|
|||
diff --git a/chrome/browser/tracing/crash_service_uploader.cc b/chrome/browser/tracing/crash_service_uploader.cc
|
||||
--- a/chrome/browser/tracing/crash_service_uploader.cc
|
||||
+++ b/chrome/browser/tracing/crash_service_uploader.cc
|
||||
@@ -126,14 +126,16 @@ void TraceCrashServiceUploader::DoUpload(
|
||||
@@ -127,14 +127,16 @@ void TraceCrashServiceUploader::DoUpload(
|
||||
UploadDoneCallback done_callback) {
|
||||
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: Offer builtin autocomplete for chrome://flags
|
|||
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||
@@ -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;
|
||||
|
|
|
@ -9,23 +9,23 @@ Subject: Open YouTube links in Bromite
|
|||
diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
|
||||
--- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
|
||||
+++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
|
||||
@@ -499,6 +499,7 @@ public class ExternalNavigationHandler {
|
||||
@@ -571,6 +571,7 @@ public class ExternalNavigationHandler {
|
||||
startActivity(intent, false, mDelegate);
|
||||
return OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT;
|
||||
return OverrideUrlLoadingResult.forExternalIntent();
|
||||
}
|
||||
+
|
||||
}
|
||||
|
||||
private static void loadUrlWithReferrer(
|
||||
@@ -1153,6 +1154,13 @@ public class ExternalNavigationHandler {
|
||||
return OverrideUrlLoadingResult.OVERRIDE_WITH_ASYNC_ACTION;
|
||||
@@ -1229,6 +1230,13 @@ public class ExternalNavigationHandler {
|
||||
OverrideUrlLoadingAsyncActionType.UI_GATING_BROWSER_NAVIGATION);
|
||||
}
|
||||
|
||||
+ // force to open YouTube urls in Bromite
|
||||
+ // force to open YouTube URLs in Bromite
|
||||
+ String intentPackageName = targetIntent.getPackage();
|
||||
+ if (intentPackageName != null && intentPackageName.equals("com.google.android.youtube")) {
|
||||
+ if (DEBUG) Log.i(TAG, "NO_OVERRIDE: YouTube URL for YouTube app");
|
||||
+ return OverrideUrlLoadingResult.NO_OVERRIDE;
|
||||
+ return OverrideUrlLoadingResult.forNoOverride();
|
||||
+ }
|
||||
+
|
||||
// This should come after file intents, but before any returns of
|
||||
|
|
|
@ -1,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
|
||||
|
|
@ -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() {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
4377
build/patches/Remove-binary-blob-integrations.patch
Normal file
4377
build/patches/Remove-binary-blob-integrations.patch
Normal file
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
Loading…
Add table
Reference in a new issue