merge with master
This commit is contained in:
commit
b23e33359a
143 changed files with 10400 additions and 6967 deletions
9
.github/ISSUE_TEMPLATE/bug_report.md
vendored
9
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
@ -57,12 +57,13 @@ Yes/No
|
|||
|
||||
### Is the bug a crash?
|
||||
|
||||
<!--
|
||||
If yes then individuate and post the 'adb logcat | grep chromium' dump, otherwise remove this section.
|
||||
-->
|
||||
No
|
||||
|
||||
-- or --
|
||||
|
||||
Yes, this is the crash dump:
|
||||
```
|
||||
<paste here logcat dump>
|
||||
<paste here logcat dump individuated with 'adb logcat | grep chromium'>
|
||||
```
|
||||
|
||||
### Describe the bug
|
||||
|
|
56
CHANGELOG.md
56
CHANGELOG.md
|
@ -1,3 +1,59 @@
|
|||
# 92.0.4515.134
|
||||
|
||||
# 92.0.4515.125
|
||||
* replace patch for missing API keys warning
|
||||
* fix subresource filter not working (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1299)
|
||||
|
||||
# 92.0.4515.103
|
||||
* disable User Agent client hints
|
||||
* fix builds with system sysroots
|
||||
* force text/x-suse-ymp to be downloaded
|
||||
|
||||
# 91.0.4472.158
|
||||
* added x64 releases
|
||||
|
||||
# 91.0.4472.146
|
||||
* removed flags for device motion/orientation (fixes https://github.com/bromite/bromite/issues/1204)
|
||||
* prevent crash on download on API level 21 (fixes https://github.com/bromite/bromite/issues/1184)
|
||||
* fix crash reporting garbled UI for small screens (thanks to @uazo, https://github.com/bromite/bromite/pull/1236)
|
||||
* add flag to enable/disable vibration API (fixes https://github.com/bromite/bromite/issues/1045)
|
||||
|
||||
# 91.0.4472.143
|
||||
* add support for ISupportHelpAndFeedback
|
||||
* JIT-less toggle (fixes https://github.com/bromite/bromite/issues/1235)
|
||||
* enable crash reporting UI (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/944)
|
||||
|
||||
# 91.0.4472.102
|
||||
* fix opening new tabs from links in always-incognito mode (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1154)
|
||||
* allow saving pages in incognito mode (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1182)
|
||||
|
||||
# 91.0.4472.97
|
||||
* add flag for omnibox autocomplete filtering (fixes https://github.com/bromite/bromite/issues/1152)
|
||||
* enable IntentBlockExternalFormRedirectsNoGesture by default
|
||||
* add flag to disable external intent requests
|
||||
* fix for tab collection temporary/non-exportable (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1138)
|
||||
|
||||
# 91.0.4472.50
|
||||
* unexpire tab group flags `#enable-tab-groups` and `#enable-tab-groups-ui-improvements`
|
||||
* replace known good hostname used for DoH test (fixes https://github.com/bromite/bromite/issues/1148)
|
||||
* drop patch to disable preview fetching
|
||||
* drop patch to restore horizontal tab switcher
|
||||
|
||||
# 90.0.4430.204
|
||||
* fix for custom tab intent tab crashes when in always incognito mode (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1116)
|
||||
|
||||
# 90.0.4430.101
|
||||
* disable RTCGetCurrentBrowsingContextMedia by default
|
||||
* disable FLoC by default
|
||||
|
||||
# 90.0.4430.92
|
||||
* restore horizontal tab switcher feature (fixes https://github.com/bromite/bromite/issues/1077)
|
||||
* fix a couple of bugs in proxy saving UI (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1072)
|
||||
* disable feeds V2 toggle (fixes https://github.com/bromite/bromite/issues/1070)
|
||||
* allow fetching field trials from flags (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1021)
|
||||
* add AllowUserCertificates flag (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/921)
|
||||
* add IsCleartextPermitted flag (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1068)
|
||||
|
||||
# 90.0.4430.74
|
||||
* re-added patch for User agent customization (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1049)
|
||||
* fix always-incognito custom tab intents issues (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1047 and https://github.com/bromite/bromite/issues/1051)
|
||||
|
|
10
README.md
10
README.md
|
@ -60,6 +60,9 @@ ETH donations address: `0xf47ff39223d828f99fec5ab53bd068c5c0522042`
|
|||
* ignore enterprise policies that disallow secure DNS
|
||||
* ask permission to play protected media
|
||||
* disable the DIAL repeating discovery
|
||||
* disable RTCGetCurrentBrowsingContextMedia by default
|
||||
* disable FLoC by default
|
||||
* disable feeds
|
||||
|
||||
## Features not related to privacy
|
||||
* import/export bookmarks
|
||||
|
@ -82,7 +85,6 @@ ETH donations address: `0xf47ff39223d828f99fec5ab53bd068c5c0522042`
|
|||
* disable video autoplay by default, reintroduce site settings
|
||||
* mobile/desktop user agent customization
|
||||
* accessibility preference to force tablet UI
|
||||
* use Alt+D to focus address bar
|
||||
|
||||
You can inspect all functionality/privacy changes by reading the [patches](https://github.com/bromite/bromite/tree/master/build/patches) and/or the [CHANGELOG](./CHANGELOG.md).
|
||||
|
||||
|
@ -90,7 +92,6 @@ You can inspect all functionality/privacy changes by reading the [patches](https
|
|||
|
||||
Flags which have been retired from upstream Chromium but are still available in Bromite.
|
||||
|
||||
* `#enable-horizontal-tab-switcher`
|
||||
* `#pull-to-refresh`
|
||||
* `#enable-search-ready-omnibox`
|
||||
* `#darken-websites-checkbox-in-themes-setting`
|
||||
|
@ -98,6 +99,7 @@ Flags which have been retired from upstream Chromium but are still available in
|
|||
* `#enable-text-fragment-anchor`, disabled by default
|
||||
* `#num-raster-threads`
|
||||
* `#enable-image-reader`, enabled by default
|
||||
* `#enable-tab-groups` and `#enable-tab-groups-ui-improvements`
|
||||
|
||||
New flags:
|
||||
|
||||
|
@ -111,6 +113,10 @@ New flags:
|
|||
* `#show-legacy-tls-warnings`
|
||||
* `#save-data-header`, disabled by default
|
||||
* `#export-bookmarks-use-saf`, disabled by default
|
||||
* `#allow-user-certificates`, disabled by default
|
||||
* `#cleartext-permitted`, enabled by default, can be used to disable all cleartext-HTTP traffic
|
||||
* `#omnibox-autocomplete-filtering`, can be used to restrict omnibox autocomplete results
|
||||
* `#disable-external-intent-requests`
|
||||
|
||||
# Privacy limitations
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
90.0.4430.74
|
||||
92.0.4515.134
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
Disable-third-party-cookies-by-default.patch
|
||||
AV1-codec-support.patch
|
||||
Switch-to-fstack-protector-strong.patch
|
||||
Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch
|
||||
DCScan-Fix-builds-with-system-sysroots.patch
|
||||
Restore-classic-new-tab-page.patch
|
||||
Always-use-new-tab-page-for-default-home-page.patch
|
||||
Always-allow-partner-customisation.patch
|
||||
|
@ -29,7 +33,6 @@ ungoogled-chromium-Disable-Network-Time-Tracker.patch
|
|||
Disable-safe-browsing.patch
|
||||
Skip-the-first-run-and-metrics.patch
|
||||
Disable-all-promo-dialogs.patch
|
||||
Disable-sync-services-menu-entry.patch
|
||||
Remove-signin-and-data-saver-integrations.patch
|
||||
Hide-passwords-manager-link.patch
|
||||
Disable-Omaha-update-checks.patch
|
||||
|
@ -37,10 +40,7 @@ Disable-update-scheduler.patch
|
|||
Add-English-only-search-engine.patch
|
||||
Add-DuckDuckGo-Lite-search-engine.patch
|
||||
openH264-enable-ARM-ARM64-optimizations.patch
|
||||
Switch-to-fstack-protector-strong.patch
|
||||
Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch
|
||||
build-remove-calling-untrusted-hooks.patch
|
||||
AV1-codec-support.patch
|
||||
Inject-scripts-for-AMP-tracking-ads-and-video.patch
|
||||
Allow-playing-audio-in-background.patch
|
||||
Add-flag-to-control-video-playback-resume-feature.patch
|
||||
|
@ -49,7 +49,6 @@ Add-exit-menu-item.patch
|
|||
Remove-help-menu-item.patch
|
||||
AudioBuffer-AnalyserNode-fp-mitigations.patch
|
||||
Multiple-fingerprinting-mitigations.patch
|
||||
Add-flags-to-disable-device-motion-orientation-APIs.patch
|
||||
Disable-metrics-on-all-I-O-threads.patch
|
||||
Always-respect-async-dns-flag-regardless-of-SDK-version.patch
|
||||
Add-flag-to-configure-maximum-connections-per-host.patch
|
||||
|
@ -64,7 +63,7 @@ Disable-plugins-enumeration.patch
|
|||
net-cert-increase-default-key-length-for-newly-generated-RSA-keys.patch
|
||||
dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch
|
||||
profile-resetter-do-not-tick-send-settings-by-default.patch
|
||||
browser-ui-disable-warning-about-missing-API-keys.patch
|
||||
Do-not-build-API-keys-infobar.patch
|
||||
autofill-disable-autofill-download-manager.patch
|
||||
first_run-deactivate-autoupdate-globally.patch
|
||||
translate-disable-fetching-of-translate-languages-from-server.patch
|
||||
|
@ -80,7 +79,6 @@ Offer-builtin-autocomplete-for-chrome-flags.patch
|
|||
Do-not-grant-notifications-to-default-search-engine.patch
|
||||
Add-flag-to-disable-IPv6-probes.patch
|
||||
Add-a-proxy-configuration-page.patch
|
||||
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
|
||||
|
@ -107,7 +105,6 @@ Use-dummy-DFM-installer.patch
|
|||
Disable-feeds-support-by-default.patch
|
||||
Disable-autofill-assistant-by-default.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
|
||||
Enable-user-agent-freeze-by-default.patch
|
||||
|
@ -146,5 +143,19 @@ Make-all-favicon-requests-on-demand.patch
|
|||
Add-Alt-D-hotkey-to-focus-address-bar.patch
|
||||
Remove-offline-measurement-background-task.patch
|
||||
User-agent-customization.patch
|
||||
Add-AllowUserCertificates-flag.patch
|
||||
Add-IsCleartextPermitted-flag.patch
|
||||
Disable-RTCGetCurrentBrowsingContextMedia-by-default.patch
|
||||
Disable-FLoC-by-default.patch
|
||||
Unexpire-tab-groups-flags.patch
|
||||
Add-flag-for-omnibox-autocomplete-filtering.patch
|
||||
Enable-IntentBlockExternalFormRedirectsNoGesture-by-default.patch
|
||||
Add-flag-to-disable-external-intent-requests.patch
|
||||
Logcat-crash-reports-UI.patch
|
||||
Add-support-for-ISupportHelpAndFeedback.patch
|
||||
JIT-less-toggle.patch
|
||||
API-level-21-prevent-crash-on-download.patch
|
||||
Add-vibration-flag.patch
|
||||
mime_util-force-text-x-suse-ymp-to-be-downloaded.patch
|
||||
Disable-UA-client-hint.patch
|
||||
Automated-domain-substitution.patch
|
||||
add-user-scripts.v5.patch
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
AV1-codec-support.patch
|
||||
Switch-to-fstack-protector-strong.patch
|
||||
Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch
|
||||
DCScan-Fix-builds-with-system-sysroots.patch
|
||||
Disable-feeds-support-by-default.patch
|
||||
|
|
|
@ -82,11 +82,11 @@ 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
|
||||
@@ -1899,7 +1899,7 @@
|
||||
@@ -1922,7 +1922,7 @@
|
||||
{
|
||||
"name": "enable-image-reader",
|
||||
"owners": [ "vikassoni", "liberato" ],
|
||||
- "expiry_milestone": 90
|
||||
- "expiry_milestone": 95
|
||||
+ "expiry_milestone": -1
|
||||
},
|
||||
{
|
||||
|
@ -94,7 +94,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
|
|||
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
|
||||
@@ -3236,6 +3236,22 @@
|
||||
@@ -3188,6 +3188,22 @@
|
||||
"dont_delete_source_texture_for_egl_image"
|
||||
]
|
||||
},
|
||||
|
@ -120,7 +120,7 @@ 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
|
||||
@@ -49,6 +49,11 @@ bool IsDeviceBlocked(const char* field, const std::string& block_list) {
|
||||
@@ -50,6 +50,11 @@ bool IsDeviceBlocked(const char* field, const std::string& block_list) {
|
||||
} // namespace
|
||||
|
||||
#if defined(OS_ANDROID)
|
||||
|
@ -146,7 +146,7 @@ diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h
|
|||
diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
|
||||
--- a/gpu/config/gpu_util.cc
|
||||
+++ b/gpu/config/gpu_util.cc
|
||||
@@ -112,6 +112,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus(
|
||||
@@ -114,6 +114,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus(
|
||||
#if !defined(OS_ANDROID)
|
||||
return kGpuFeatureStatusDisabled;
|
||||
#else
|
||||
|
@ -156,7 +156,7 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
|
|||
if (!gpu_preferences.enable_android_surface_control)
|
||||
return kGpuFeatureStatusDisabled;
|
||||
|
||||
@@ -317,6 +320,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) {
|
||||
@@ -319,6 +322,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) {
|
||||
gpu_feature_info->status_values[GPU_FEATURE_TYPE_ACCELERATED_WEBGL2] =
|
||||
kGpuFeatureStatusBlocklisted;
|
||||
}
|
||||
|
@ -182,7 +182,7 @@ diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list
|
|||
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
|
||||
@@ -488,6 +488,11 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
|
||||
@@ -503,6 +503,11 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -225,28 +225,28 @@ 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
|
||||
@@ -620,6 +620,10 @@ const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning",
|
||||
@@ -627,6 +627,10 @@ const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning",
|
||||
// Note: Has no effect if kMediaDrmPreprovisioning feature is disabled.
|
||||
const base::Feature kMediaDrmPreprovisioningAtStartup{
|
||||
"MediaDrmPreprovisioningAtStartup", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
+// Enables the Android Image Reader path for Video decoding(for AVDA and MCVD)
|
||||
+const base::Feature kAImageReaderVideoOutput{"AImageReaderVideoOutput",
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+
|
||||
// Prevents using SurfaceLayer for videos. This is meant to be used by embedders
|
||||
// that cannot support SurfaceLayer at the moment.
|
||||
const base::Feature kDisableSurfaceLayerForVideo{
|
||||
|
||||
// Enable picture in picture web api for android.
|
||||
const base::Feature kPictureInPictureAPI{"PictureInPictureAPI",
|
||||
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
|
||||
@@ -210,6 +210,7 @@ MEDIA_EXPORT extern const base::Feature kMediaControlsExpandGesture;
|
||||
@@ -205,6 +205,7 @@ MEDIA_EXPORT extern const base::Feature kVp9kSVCHWDecoding;
|
||||
MEDIA_EXPORT extern const base::Feature kAllowNonSecureOverlays;
|
||||
MEDIA_EXPORT extern const base::Feature kMediaControlsExpandGesture;
|
||||
MEDIA_EXPORT extern const base::Feature kMediaDrmPersistentLicense;
|
||||
+MEDIA_EXPORT extern const base::Feature kAImageReaderVideoOutput;
|
||||
MEDIA_EXPORT extern const base::Feature kMediaDrmPreprovisioning;
|
||||
MEDIA_EXPORT extern const base::Feature kMediaDrmPreprovisioningAtStartup;
|
||||
+MEDIA_EXPORT extern const base::Feature kAImageReaderVideoOutput;
|
||||
MEDIA_EXPORT extern const base::Feature kDisableSurfaceLayerForVideo;
|
||||
MEDIA_EXPORT extern const base::Feature kCanPlayHls;
|
||||
MEDIA_EXPORT extern const base::Feature kPictureInPictureAPI;
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
38
build/patches/API-level-21-prevent-crash-on-download.patch
Normal file
38
build/patches/API-level-21-prevent-crash-on-download.patch
Normal file
|
@ -0,0 +1,38 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 27 Jun 2021 16:53:48 +0200
|
||||
Subject: API level 21: prevent crash on download
|
||||
|
||||
On Lollipop 5.0.x it is not possible to use the system persistent bundle.
|
||||
This patch ignores boolean settings for them and prevents the crash.
|
||||
|
||||
See also: https://github.com/bromite/bromite/issues/1184
|
||||
---
|
||||
.../internal/BundleToPersistableBundleConverter.java | 12 ++++++++++--
|
||||
1 file changed, 10 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BundleToPersistableBundleConverter.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BundleToPersistableBundleConverter.java
|
||||
--- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BundleToPersistableBundleConverter.java
|
||||
+++ b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BundleToPersistableBundleConverter.java
|
||||
@@ -85,9 +85,17 @@ class BundleToPersistableBundleConverter {
|
||||
if (obj == null) {
|
||||
persistableBundle.putString(key, null);
|
||||
} else if (obj instanceof Boolean) {
|
||||
- persistableBundle.putBoolean(key, (Boolean) obj);
|
||||
+ if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP) {
|
||||
+ failedKeys.add(key);
|
||||
+ } else {
|
||||
+ persistableBundle.putBoolean(key, (Boolean) obj);
|
||||
+ }
|
||||
} else if (obj instanceof boolean[]) {
|
||||
- persistableBundle.putBooleanArray(key, (boolean[]) obj);
|
||||
+ if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP) {
|
||||
+ failedKeys.add(key);
|
||||
+ } else {
|
||||
+ persistableBundle.putBooleanArray(key, (boolean[]) obj);
|
||||
+ }
|
||||
} else if (obj instanceof Double) {
|
||||
persistableBundle.putDouble(key, (Double) obj);
|
||||
} else if (obj instanceof double[]) {
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -69,10 +69,10 @@ diff --git a/third_party/libaom/libaom_srcs.gni b/third_party/libaom/libaom_srcs
|
|||
diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.asm b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.asm
|
||||
--- a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.asm
|
||||
+++ b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.asm
|
||||
@@ -46,7 +46,7 @@ CONFIG_NN_V2 equ 0
|
||||
CONFIG_NORMAL_TILE_MODE equ 1
|
||||
@@ -48,7 +48,7 @@ CONFIG_NORMAL_TILE_MODE equ 1
|
||||
CONFIG_OPTICAL_FLOW_API equ 0
|
||||
CONFIG_OS_SUPPORT equ 1
|
||||
CONFIG_PARTITION_SEARCH_ORDER equ 0
|
||||
-CONFIG_PIC equ 0
|
||||
+CONFIG_PIC equ 1
|
||||
CONFIG_RD_DEBUG equ 0
|
||||
|
@ -81,10 +81,10 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/a
|
|||
diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h
|
||||
--- a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h
|
||||
+++ b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h
|
||||
@@ -48,7 +48,7 @@
|
||||
#define CONFIG_NORMAL_TILE_MODE 1
|
||||
@@ -50,7 +50,7 @@
|
||||
#define CONFIG_OPTICAL_FLOW_API 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
#define CONFIG_PARTITION_SEARCH_ORDER 0
|
||||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
|
@ -93,10 +93,10 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/a
|
|||
diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm
|
||||
--- a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm
|
||||
+++ b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm
|
||||
@@ -46,7 +46,7 @@ CONFIG_NN_V2 equ 0
|
||||
CONFIG_NORMAL_TILE_MODE equ 1
|
||||
@@ -48,7 +48,7 @@ CONFIG_NORMAL_TILE_MODE equ 1
|
||||
CONFIG_OPTICAL_FLOW_API equ 0
|
||||
CONFIG_OS_SUPPORT equ 1
|
||||
CONFIG_PARTITION_SEARCH_ORDER equ 0
|
||||
-CONFIG_PIC equ 0
|
||||
+CONFIG_PIC equ 1
|
||||
CONFIG_RD_DEBUG equ 0
|
||||
|
@ -105,10 +105,10 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.a
|
|||
diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
|
||||
--- a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
|
||||
+++ b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
|
||||
@@ -48,7 +48,7 @@
|
||||
#define CONFIG_NORMAL_TILE_MODE 1
|
||||
@@ -50,7 +50,7 @@
|
||||
#define CONFIG_OPTICAL_FLOW_API 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
#define CONFIG_PARTITION_SEARCH_ORDER 0
|
||||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
|
@ -117,10 +117,10 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
|
|||
diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.asm b/third_party/libaom/source/config/linux/arm/config/aom_config.asm
|
||||
--- a/third_party/libaom/source/config/linux/arm/config/aom_config.asm
|
||||
+++ b/third_party/libaom/source/config/linux/arm/config/aom_config.asm
|
||||
@@ -46,7 +46,7 @@ CONFIG_NN_V2 equ 0
|
||||
CONFIG_NORMAL_TILE_MODE equ 1
|
||||
@@ -48,7 +48,7 @@ CONFIG_NORMAL_TILE_MODE equ 1
|
||||
CONFIG_OPTICAL_FLOW_API equ 0
|
||||
CONFIG_OS_SUPPORT equ 1
|
||||
CONFIG_PARTITION_SEARCH_ORDER equ 0
|
||||
-CONFIG_PIC equ 0
|
||||
+CONFIG_PIC equ 1
|
||||
CONFIG_RD_DEBUG equ 0
|
||||
|
@ -129,10 +129,10 @@ diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.asm b/
|
|||
diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.h b/third_party/libaom/source/config/linux/arm/config/aom_config.h
|
||||
--- a/third_party/libaom/source/config/linux/arm/config/aom_config.h
|
||||
+++ b/third_party/libaom/source/config/linux/arm/config/aom_config.h
|
||||
@@ -48,7 +48,7 @@
|
||||
#define CONFIG_NORMAL_TILE_MODE 1
|
||||
@@ -50,7 +50,7 @@
|
||||
#define CONFIG_OPTICAL_FLOW_API 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
#define CONFIG_PARTITION_SEARCH_ORDER 0
|
||||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
|
@ -141,10 +141,10 @@ diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.h b/th
|
|||
diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.asm b/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
|
||||
--- a/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
|
||||
+++ b/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
|
||||
@@ -46,7 +46,7 @@ CONFIG_NN_V2 equ 0
|
||||
CONFIG_NORMAL_TILE_MODE equ 1
|
||||
@@ -48,7 +48,7 @@ CONFIG_NORMAL_TILE_MODE equ 1
|
||||
CONFIG_OPTICAL_FLOW_API equ 0
|
||||
CONFIG_OS_SUPPORT equ 1
|
||||
CONFIG_PARTITION_SEARCH_ORDER equ 0
|
||||
-CONFIG_PIC equ 0
|
||||
+CONFIG_PIC equ 1
|
||||
CONFIG_RD_DEBUG equ 0
|
||||
|
@ -153,10 +153,10 @@ diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
|
|||
diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.h b/third_party/libaom/source/config/linux/arm64/config/aom_config.h
|
||||
--- a/third_party/libaom/source/config/linux/arm64/config/aom_config.h
|
||||
+++ b/third_party/libaom/source/config/linux/arm64/config/aom_config.h
|
||||
@@ -48,7 +48,7 @@
|
||||
#define CONFIG_NORMAL_TILE_MODE 1
|
||||
@@ -50,7 +50,7 @@
|
||||
#define CONFIG_OPTICAL_FLOW_API 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
#define CONFIG_PARTITION_SEARCH_ORDER 0
|
||||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
|
@ -165,10 +165,10 @@ diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.h b/
|
|||
diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.asm b/third_party/libaom/source/config/linux/generic/config/aom_config.asm
|
||||
--- a/third_party/libaom/source/config/linux/generic/config/aom_config.asm
|
||||
+++ b/third_party/libaom/source/config/linux/generic/config/aom_config.asm
|
||||
@@ -46,7 +46,7 @@ CONFIG_NN_V2 equ 0
|
||||
CONFIG_NORMAL_TILE_MODE equ 1
|
||||
@@ -48,7 +48,7 @@ CONFIG_NORMAL_TILE_MODE equ 1
|
||||
CONFIG_OPTICAL_FLOW_API equ 0
|
||||
CONFIG_OS_SUPPORT equ 1
|
||||
CONFIG_PARTITION_SEARCH_ORDER equ 0
|
||||
-CONFIG_PIC equ 0
|
||||
+CONFIG_PIC equ 1
|
||||
CONFIG_RD_DEBUG equ 0
|
||||
|
@ -177,10 +177,10 @@ diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.as
|
|||
diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.h b/third_party/libaom/source/config/linux/generic/config/aom_config.h
|
||||
--- a/third_party/libaom/source/config/linux/generic/config/aom_config.h
|
||||
+++ b/third_party/libaom/source/config/linux/generic/config/aom_config.h
|
||||
@@ -48,7 +48,7 @@
|
||||
#define CONFIG_NORMAL_TILE_MODE 1
|
||||
@@ -50,7 +50,7 @@
|
||||
#define CONFIG_OPTICAL_FLOW_API 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
#define CONFIG_PARTITION_SEARCH_ORDER 0
|
||||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
|
@ -189,10 +189,10 @@ diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.h
|
|||
diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.asm b/third_party/libaom/source/config/linux/x64/config/aom_config.asm
|
||||
--- a/third_party/libaom/source/config/linux/x64/config/aom_config.asm
|
||||
+++ b/third_party/libaom/source/config/linux/x64/config/aom_config.asm
|
||||
@@ -36,7 +36,7 @@
|
||||
%define CONFIG_NORMAL_TILE_MODE 1
|
||||
@@ -38,7 +38,7 @@
|
||||
%define CONFIG_OPTICAL_FLOW_API 0
|
||||
%define CONFIG_OS_SUPPORT 1
|
||||
%define CONFIG_PARTITION_SEARCH_ORDER 0
|
||||
-%define CONFIG_PIC 0
|
||||
+%define CONFIG_PIC 1
|
||||
%define CONFIG_RD_DEBUG 0
|
||||
|
@ -201,10 +201,10 @@ diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.asm b/
|
|||
diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.h b/third_party/libaom/source/config/linux/x64/config/aom_config.h
|
||||
--- a/third_party/libaom/source/config/linux/x64/config/aom_config.h
|
||||
+++ b/third_party/libaom/source/config/linux/x64/config/aom_config.h
|
||||
@@ -48,7 +48,7 @@
|
||||
#define CONFIG_NORMAL_TILE_MODE 1
|
||||
@@ -50,7 +50,7 @@
|
||||
#define CONFIG_OPTICAL_FLOW_API 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
#define CONFIG_PARTITION_SEARCH_ORDER 0
|
||||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
|
|
169
build/patches/Add-AllowUserCertificates-flag.patch
Normal file
169
build/patches/Add-AllowUserCertificates-flag.patch
Normal file
|
@ -0,0 +1,169 @@
|
|||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Mon, 26 Apr 2021 13:28:24 +0000
|
||||
Subject: Add AllowUserCertificates flag
|
||||
|
||||
---
|
||||
.../src/org/chromium/chrome/browser/app/ChromeActivity.java | 3 +++
|
||||
.../chromium/chrome/browser/app/flags/ChromeCachedFlags.java | 1 +
|
||||
chrome/browser/about_flags.cc | 4 ++++
|
||||
chrome/browser/flag_descriptions.cc | 5 +++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
chrome/browser/flags/android/chrome_feature_list.cc | 4 ++++
|
||||
chrome/browser/flags/android/chrome_feature_list.h | 1 +
|
||||
.../chromium/chrome/browser/flags/CachedFeatureFlags.java | 1 +
|
||||
.../org/chromium/chrome/browser/flags/ChromeFeatureList.java | 1 +
|
||||
net/android/java/src/org/chromium/net/X509Util.java | 5 +++++
|
||||
10 files changed, 28 insertions(+)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
@@ -211,6 +211,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider;
|
||||
import org.chromium.content_public.browser.SelectionPopupController;
|
||||
import org.chromium.content_public.browser.WebContents;
|
||||
import org.chromium.content_public.common.ContentSwitches;
|
||||
+import org.chromium.net.X509Util;
|
||||
import org.chromium.printing.PrintManagerDelegateImpl;
|
||||
import org.chromium.printing.PrintingController;
|
||||
import org.chromium.printing.PrintingControllerImpl;
|
||||
@@ -879,6 +880,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
UpdateMenuItemHelper.getInstance().onStart();
|
||||
ChromeActivitySessionTracker.getInstance().onStartWithNative();
|
||||
ChromeCachedFlags.getInstance().cacheNativeFlags();
|
||||
+ X509Util.AllowUserCertificates = ChromeFeatureList.isEnabled(
|
||||
+ ChromeFeatureList.ALLOW_USER_CERTIFICATES);
|
||||
OfflineIndicatorController.initialize();
|
||||
|
||||
// postDeferredStartupIfNeeded() is called in TabModelSelectorTabObsever#onLoadStopped(),
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java
|
||||
@@ -65,6 +65,7 @@ public class ChromeCachedFlags {
|
||||
|
||||
// clang-format off
|
||||
List<String> featuresToCache = Arrays.asList(
|
||||
+ ChromeFeatureList.ALLOW_USER_CERTIFICATES,
|
||||
ChromeFeatureList.ANDROID_PARTNER_CUSTOMIZATION_PHENOTYPE,
|
||||
ChromeFeatureList.APP_MENU_MOBILE_SITE_OPTION,
|
||||
ChromeFeatureList.APP_TO_WEB_ATTRIBUTION,
|
||||
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
|
||||
@@ -2805,6 +2805,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kCSSContainerQueriesDescription, kOsAll,
|
||||
FEATURE_VALUE_TYPE(blink::features::kCSSContainerQueries)},
|
||||
#if defined(OS_ANDROID)
|
||||
+ {"allow-user-certificates",
|
||||
+ flag_descriptions::kAllowUserCertificatesName,
|
||||
+ flag_descriptions::kAllowUserCertificatesDescription, kOsAndroid,
|
||||
+ FEATURE_VALUE_TYPE(chrome::android::kAllowUserCertificates)},
|
||||
{"contextual-search-debug", flag_descriptions::kContextualSearchDebugName,
|
||||
flag_descriptions::kContextualSearchDebugDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(chrome::android::kContextualSearchDebug)},
|
||||
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
|
||||
@@ -11,6 +11,11 @@
|
||||
|
||||
namespace flag_descriptions {
|
||||
|
||||
+const char kAllowUserCertificatesName[] = "Allow user certificates";
|
||||
+const char kAllowUserCertificatesDescription[] =
|
||||
+ "Allow user CA certificates during "
|
||||
+ "validation of the certificate chain";
|
||||
+
|
||||
const char kAccelerated2dCanvasName[] = "Accelerated 2D canvas";
|
||||
const char kAccelerated2dCanvasDescription[] =
|
||||
"Enables the use of the GPU to perform 2d canvas rendering instead of "
|
||||
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
|
||||
@@ -46,6 +46,9 @@ namespace flag_descriptions {
|
||||
|
||||
// Cross-platform -------------------------------------------------------------
|
||||
|
||||
+extern const char kAllowUserCertificatesName[];
|
||||
+extern const char kAllowUserCertificatesDescription[];
|
||||
+
|
||||
extern const char kAccelerated2dCanvasName[];
|
||||
extern const char kAccelerated2dCanvasDescription[];
|
||||
|
||||
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
|
||||
@@ -127,6 +127,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||
&feed::kInterestFeedContentSuggestions,
|
||||
&feed::kInterestFeedNoticeCardAutoDismiss,
|
||||
&feed::kInterestFeedSpinnerAlwaysAnimate,
|
||||
+ &kAllowUserCertificates,
|
||||
&feed::kInterestFeedV1ClicksAndViewsConditionalUpload,
|
||||
&feed::kInterestFeedV2,
|
||||
&feed::kInterestFeedV2Autoplay,
|
||||
@@ -350,6 +351,9 @@ const base::Feature kAdaptiveButtonInTopToolbarCustomization{
|
||||
"AdaptiveButtonInTopToolbarCustomization",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
+const base::Feature kAllowUserCertificates = {
|
||||
+ "AllowUserCertificates", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+
|
||||
const base::Feature kAddToHomescreenIPH{"AddToHomescreenIPH",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
|
||||
--- a/chrome/browser/flags/android/chrome_feature_list.h
|
||||
+++ b/chrome/browser/flags/android/chrome_feature_list.h
|
||||
@@ -12,6 +12,7 @@
|
||||
namespace chrome {
|
||||
namespace android {
|
||||
|
||||
+extern const base::Feature kAllowUserCertificates;
|
||||
// Alphabetical:
|
||||
extern const base::Feature kAdaptiveButtonInTopToolbar;
|
||||
extern const base::Feature kAdaptiveButtonInTopToolbarCustomization;
|
||||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
|
||||
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
|
||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
|
||||
@@ -47,6 +47,7 @@ public class CachedFeatureFlags {
|
||||
*/
|
||||
private static Map<String, Boolean> sDefaults = new HashMap<String, Boolean>() {
|
||||
{
|
||||
+ put(ChromeFeatureList.ALLOW_USER_CERTIFICATES, false);
|
||||
put(ChromeFeatureList.ANDROID_PARTNER_CUSTOMIZATION_PHENOTYPE, true);
|
||||
put(ChromeFeatureList.BOOKMARK_BOTTOM_SHEET, false);
|
||||
put(ChromeFeatureList.CHROME_STARTUP_DELEGATE, false);
|
||||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
@@ -203,6 +203,7 @@ public abstract class ChromeFeatureList {
|
||||
}
|
||||
|
||||
/* Alphabetical: */
|
||||
+ public static final String ALLOW_USER_CERTIFICATES = "AllowUserCertificates";
|
||||
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR = "AdaptiveButtonInTopToolbar";
|
||||
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION =
|
||||
"AdaptiveButtonInTopToolbarCustomization";
|
||||
diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/java/src/org/chromium/net/X509Util.java
|
||||
--- a/net/android/java/src/org/chromium/net/X509Util.java
|
||||
+++ b/net/android/java/src/org/chromium/net/X509Util.java
|
||||
@@ -488,6 +488,8 @@ public class X509Util {
|
||||
return false;
|
||||
}
|
||||
|
||||
+ public static boolean AllowUserCertificates = false;
|
||||
+
|
||||
public static AndroidCertVerifyResult verifyServerCertificates(byte[][] certChain,
|
||||
String authType,
|
||||
String host)
|
||||
@@ -568,6 +570,9 @@ public class X509Util {
|
||||
isIssuedByKnownRoot = isKnownRoot(root);
|
||||
}
|
||||
|
||||
+ if (AllowUserCertificates == false && isIssuedByKnownRoot == false)
|
||||
+ return new AndroidCertVerifyResult(CertVerifyStatusAndroid.NO_TRUSTED_ROOT);
|
||||
+
|
||||
return new AndroidCertVerifyResult(CertVerifyStatusAndroid.OK,
|
||||
isIssuedByKnownRoot, verifiedChain);
|
||||
}
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -32,13 +32,13 @@ diff --git a/components/search_engines/search_engine_type.h b/components/search_
|
|||
--- a/components/search_engines/search_engine_type.h
|
||||
+++ b/components/search_engines/search_engine_type.h
|
||||
@@ -65,6 +65,7 @@ enum SearchEngineType {
|
||||
SEARCH_ENGINE_360,
|
||||
SEARCH_ENGINE_COCCOC,
|
||||
SEARCH_ENGINE_DUCKDUCKGO,
|
||||
SEARCH_ENGINE_360 = 48,
|
||||
SEARCH_ENGINE_COCCOC = 49,
|
||||
SEARCH_ENGINE_DUCKDUCKGO = 50,
|
||||
+ SEARCH_ENGINE_DUCKDUCKGOLIGHT,
|
||||
SEARCH_ENGINE_PARSIJOO,
|
||||
SEARCH_ENGINE_QWANT,
|
||||
SEARCH_ENGINE_GIVERO,
|
||||
SEARCH_ENGINE_PARSIJOO = 51,
|
||||
SEARCH_ENGINE_QWANT = 52,
|
||||
SEARCH_ENGINE_GIVERO = 53,
|
||||
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
|
||||
|
|
|
@ -45,9 +45,9 @@ diff --git a/components/search_engines/search_engine_type.h b/components/search_
|
|||
--- a/components/search_engines/search_engine_type.h
|
||||
+++ b/components/search_engines/search_engine_type.h
|
||||
@@ -74,6 +74,7 @@ enum SearchEngineType {
|
||||
SEARCH_ENGINE_OCEANHERO,
|
||||
SEARCH_ENGINE_PRIVACYWALL,
|
||||
SEARCH_ENGINE_ECOSIA,
|
||||
SEARCH_ENGINE_OCEANHERO = 57,
|
||||
SEARCH_ENGINE_PRIVACYWALL = 58,
|
||||
SEARCH_ENGINE_ECOSIA = 59,
|
||||
+ SEARCH_ENGINE_GOOGLE_EN,
|
||||
|
||||
SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro.
|
||||
|
|
97
build/patches/Add-IsCleartextPermitted-flag.patch
Normal file
97
build/patches/Add-IsCleartextPermitted-flag.patch
Normal file
|
@ -0,0 +1,97 @@
|
|||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Mon, 26 Apr 2021 15:04:11 +0000
|
||||
Subject: Add IsCleartextPermitted flag
|
||||
|
||||
---
|
||||
chrome/browser/about_flags.cc | 5 +++++
|
||||
chrome/browser/flag_descriptions.cc | 4 ++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
net/base/features.cc | 3 +++
|
||||
net/base/features.h | 2 ++
|
||||
net/url_request/url_request_http_job.cc | 4 ++++
|
||||
6 files changed, 21 insertions(+)
|
||||
|
||||
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
|
||||
@@ -7444,6 +7444,11 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
FEATURE_VALUE_TYPE(
|
||||
chrome::android::kBookmarksExportUseSaf)},
|
||||
|
||||
+ {"cleartext-permitted",
|
||||
+ flag_descriptions::kIsCleartextPermittedName,
|
||||
+ flag_descriptions::kIsCleartextPermittedDescription, kOsAndroid,
|
||||
+ FEATURE_VALUE_TYPE(net::features::kIsCleartextPermitted)},
|
||||
+
|
||||
// NOTE: Adding a new flag requires adding a corresponding entry to enum
|
||||
// "LoginCustomFlags" in tools/metrics/histograms/enums.xml. See "Flag
|
||||
// Histograms" in tools/metrics/histograms/README.md (run the
|
||||
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
|
||||
@@ -1404,6 +1404,10 @@ const char kHostedAppShimCreationName[] =
|
||||
const char kHostedAppShimCreationDescription[] =
|
||||
"Create app shims on Mac when creating a hosted app.";
|
||||
|
||||
+const char kIsCleartextPermittedName[] = "Allow cleartext traffic";
|
||||
+const char kIsCleartextPermittedDescription[] =
|
||||
+ "Allow insecure connections over HTTP";
|
||||
+
|
||||
const char kIgnoreGpuBlocklistName[] = "Override software rendering list";
|
||||
const char kIgnoreGpuBlocklistDescription[] =
|
||||
"Overrides the built-in software rendering list and enables "
|
||||
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
|
||||
@@ -825,6 +825,9 @@ extern const char kHostedAppQuitNotificationDescription[];
|
||||
extern const char kHostedAppShimCreationName[];
|
||||
extern const char kHostedAppShimCreationDescription[];
|
||||
|
||||
+extern const char kIsCleartextPermittedName[];
|
||||
+extern const char kIsCleartextPermittedDescription[];
|
||||
+
|
||||
extern const char kIgnoreGpuBlocklistName[];
|
||||
extern const char kIgnoreGpuBlocklistDescription[];
|
||||
|
||||
diff --git a/net/base/features.cc b/net/base/features.cc
|
||||
--- a/net/base/features.cc
|
||||
+++ b/net/base/features.cc
|
||||
@@ -70,6 +70,9 @@ base::TimeDelta GetExtraTimeAbsolute() {
|
||||
const base::Feature kEnableTLS13EarlyData{"EnableTLS13EarlyData",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
+const base::Feature kIsCleartextPermitted{"IsCleartextPermitted",
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+
|
||||
const base::Feature kNetworkQualityEstimator{"NetworkQualityEstimator",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
diff --git a/net/base/features.h b/net/base/features.h
|
||||
--- a/net/base/features.h
|
||||
+++ b/net/base/features.h
|
||||
@@ -34,6 +34,8 @@ NET_EXPORT extern const base::Feature kCapReferrerToOriginOnCrossOrigin;
|
||||
// Enables TLS 1.3 early data.
|
||||
NET_EXPORT extern const base::Feature kEnableTLS13EarlyData;
|
||||
|
||||
+NET_EXPORT extern const base::Feature kIsCleartextPermitted;
|
||||
+
|
||||
// Support for altering the parameters used for DNS transaction timeout. See
|
||||
// ResolveContext::SecureTransactionTimeout().
|
||||
NET_EXPORT extern const base::Feature kDnsTransactionDynamicTimeouts;
|
||||
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
|
||||
@@ -211,6 +211,10 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) {
|
||||
}
|
||||
|
||||
#if defined(OS_ANDROID)
|
||||
+ if (base::FeatureList::IsEnabled(net::features::kIsCleartextPermitted) == false) {
|
||||
+ return std::make_unique<URLRequestErrorJob>(request,
|
||||
+ ERR_CLEARTEXT_NOT_PERMITTED);
|
||||
+ }
|
||||
// Check whether the app allows cleartext traffic to this host, and return
|
||||
// ERR_CLEARTEXT_NOT_PERMITTED if not.
|
||||
if (request->context()->check_cleartext_permitted() &&
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -17,23 +17,23 @@ 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
|
||||
@@ -3100,6 +3100,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -3174,6 +3174,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kDeprecateLowUsageCodecsName,
|
||||
flag_descriptions::kDeprecateLowUsageCodecsDescription, kOsCrOS | kOsLinux,
|
||||
FEATURE_VALUE_TYPE(media::kDeprecateLowUsageCodecs)},
|
||||
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
|
||||
+#if defined(OS_ANDROID)
|
||||
+ {switches::kEnableIncognitoSnapshotsInAndroidRecents, flag_descriptions::kEnableIncognitoSnapshotsInAndroidRecentsName,
|
||||
+ flag_descriptions::kEnableIncognitoSnapshotsInAndroidRecentsDescription, kOsAndroid,
|
||||
+ SINGLE_VALUE_TYPE(switches::kEnableIncognitoSnapshotsInAndroidRecents)},
|
||||
+#endif
|
||||
+
|
||||
#if (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && !defined(OS_ANDROID)
|
||||
{
|
||||
"enable-accelerated-video-decode",
|
||||
#endif // defined(OS_CHROMEOS)
|
||||
|
||||
#if defined(OS_LINUX)
|
||||
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
|
||||
@@ -589,6 +589,11 @@ const char kEnableAutofillCreditCardAuthenticationDescription[] =
|
||||
@@ -605,6 +605,11 @@ const char kEnableAutofillCreditCardAuthenticationDescription[] =
|
||||
"authenticator (if available) to verify card ownership when retrieving "
|
||||
"credit cards from Google Payments.";
|
||||
|
||||
|
@ -48,7 +48,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
|
|||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -362,6 +362,9 @@ extern const char kEnableAutofillAddressSavePromptDescription[];
|
||||
@@ -371,6 +371,9 @@ extern const char kEnableAutofillAddressSavePromptDescription[];
|
||||
|
||||
extern const char kEnableAutofillCreditCardAblationExperimentDisplayName[];
|
||||
extern const char kEnableAutofillCreditCardAblationExperimentDescription[];
|
||||
|
@ -62,7 +62,7 @@ diff --git a/chrome/browser/flags/android/java_templates/ChromeSwitches.java.tmp
|
|||
--- a/chrome/browser/flags/android/java_templates/ChromeSwitches.java.tmpl
|
||||
+++ b/chrome/browser/flags/android/java_templates/ChromeSwitches.java.tmpl
|
||||
@@ -147,10 +147,6 @@ public abstract class ChromeSwitches {{
|
||||
/** Switch for enabling the Chrome Survey. */
|
||||
/** Switch for enabling the Chrome Survey. Only works when UMA is accepted. */
|
||||
public static final String CHROME_FORCE_ENABLE_SURVEY = "force-enable-chrome-survey";
|
||||
|
||||
- /** Switch to enable incognito tabs to be seen in Android Recents. */
|
||||
|
@ -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
|
||||
@@ -326,6 +326,9 @@ const char kHomePage[] = "homepage";
|
||||
@@ -340,6 +340,9 @@ const char kHomePage[] = "homepage";
|
||||
// Causes the browser to launch directly in incognito mode.
|
||||
const char kIncognito[] = "incognito";
|
||||
|
||||
|
@ -88,8 +88,8 @@ 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
|
||||
@@ -111,6 +111,7 @@ extern const char kForceFirstRun[];
|
||||
extern const char kForceStackedTabStripLayout[];
|
||||
@@ -114,6 +114,7 @@ extern const char kForceStackedTabStripLayout[];
|
||||
extern const char kHideCrashRestoreBubble[];
|
||||
extern const char kHomePage[];
|
||||
extern const char kIncognito[];
|
||||
+extern const char kEnableIncognitoSnapshotsInAndroidRecents[];
|
||||
|
|
|
@ -11,7 +11,7 @@ for SimpleURLLoaders as well.
|
|||
---
|
||||
chrome/android/java/res/values/values.xml | 3 +
|
||||
.../java/res/xml/privacy_preferences.xml | 4 +
|
||||
.../privacy/settings/PrivacySettings.java | 5 +-
|
||||
.../privacy/settings/PrivacySettings.java | 1 +
|
||||
.../chrome_autocomplete_provider_client.cc | 2 +
|
||||
chrome/browser/browser_resources.grd | 6 +
|
||||
chrome/browser/net/proxy_service_factory.cc | 23 +-
|
||||
|
@ -19,8 +19,8 @@ for SimpleURLLoaders as well.
|
|||
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 | 80 ++++
|
||||
chrome/browser/resources/proxy_config.js | 263 +++++++++++
|
||||
chrome/browser/resources/proxy_config.html | 79 ++++
|
||||
chrome/browser/resources/proxy_config.js | 266 +++++++++++
|
||||
chrome/browser/ui/BUILD.gn | 2 +
|
||||
.../webui/chrome_web_ui_controller_factory.cc | 3 +
|
||||
chrome/browser/ui/webui/proxy_config_ui.cc | 417 ++++++++++++++++++
|
||||
|
@ -33,7 +33,7 @@ for SimpleURLLoaders as well.
|
|||
.../proxy_config/proxy_config_dictionary.h | 7 +-
|
||||
net/proxy_resolution/proxy_config.cc | 52 ++-
|
||||
net/proxy_resolution/proxy_config.h | 3 +
|
||||
24 files changed, 997 insertions(+), 15 deletions(-)
|
||||
24 files changed, 996 insertions(+), 14 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
|
||||
|
@ -43,7 +43,7 @@ for SimpleURLLoaders as well.
|
|||
diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
|
||||
--- a/chrome/android/java/res/values/values.xml
|
||||
+++ b/chrome/android/java/res/values/values.xml
|
||||
@@ -32,6 +32,9 @@
|
||||
@@ -29,6 +29,9 @@
|
||||
<integer name="reload_button_level_reload">0</integer>
|
||||
<integer name="reload_button_level_stop">1</integer>
|
||||
|
||||
|
@ -56,54 +56,45 @@ diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res
|
|||
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
|
||||
@@ -7,6 +7,10 @@
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:orderingFromXml="false">
|
||||
@@ -6,6 +6,10 @@
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
+ <org.chromium.chrome.browser.about_settings.HyperlinkPreference
|
||||
+ android:key="proxy"
|
||||
+ android:title="@string/proxy_title"
|
||||
+ app:url="@string/proxy_url" />
|
||||
<org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||
android:key="can_make_payment"
|
||||
android:title="@string/can_make_payment_title"
|
||||
<Preference
|
||||
android:key="clear_browsing_data"
|
||||
android:title="@string/clear_browsing_data_title"
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
@@ -54,12 +54,15 @@ public class PrivacySettings
|
||||
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
|
||||
@@ -52,6 +52,7 @@ public class PrivacySettings
|
||||
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
|
||||
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_ALWAYS_INCOGNITO,
|
||||
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 static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
|
||||
|
||||
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
|
||||
@@ -332,6 +332,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
|
||||
std::vector<base::string16> builtins_to_provide;
|
||||
@@ -364,6 +364,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
|
||||
builtins_to_provide.push_back(
|
||||
base::ASCIIToUTF16(chrome::kChromeUIFlagsURL));
|
||||
base::ASCIIToUTF16(chrome::kChromeUISettingsURL));
|
||||
#endif
|
||||
+ builtins_to_provide.push_back(
|
||||
+ base::ASCIIToUTF16(chrome::kChromeUIProxyConfigURL));
|
||||
builtins_to_provide.push_back(
|
||||
base::ASCIIToUTF16(chrome::kChromeUIChromeURLsURL));
|
||||
#if !defined(OS_ANDROID)
|
||||
base::ASCIIToUTF16(chrome::kChromeUIVersionURL));
|
||||
return builtins_to_provide;
|
||||
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
|
||||
@@ -162,6 +162,12 @@
|
||||
<include name="IDR_VIDEO_PLAYER_JS" file="resources\video_tutorials\video_player.js" type="BINDATA" />
|
||||
@@ -101,6 +101,12 @@
|
||||
<include name="IDR_HANGOUT_SERVICES_MANIFEST" file="resources\hangout_services\manifest.json" type="BINDATA" />
|
||||
</if>
|
||||
|
||||
+ <!-- Bromite Proxy Configuration UI -->
|
||||
|
@ -113,8 +104,8 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou
|
|||
+ </if>
|
||||
+
|
||||
<if expr="not is_android">
|
||||
<!-- New Tab Page -->
|
||||
<part file="resources/local_ntp/icons.grdp" />
|
||||
<!-- Page not available for guest. -->
|
||||
<include name="IDR_PAGE_NOT_AVAILABLE_FOR_GUEST_APP_HTML" file="resources\page_not_available_for_guest\app.html" type="BINDATA" />
|
||||
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
|
||||
|
@ -182,7 +173,7 @@ diff --git a/chrome/browser/net/proxy_service_factory.h b/chrome/browser/net/pro
|
|||
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
|
||||
--- a/chrome/browser/prefs/browser_prefs.cc
|
||||
+++ b/chrome/browser/prefs/browser_prefs.cc
|
||||
@@ -156,6 +156,8 @@
|
||||
@@ -158,6 +158,8 @@
|
||||
#include "printing/buildflags/buildflags.h"
|
||||
#include "rlz/buildflags/buildflags.h"
|
||||
|
||||
|
@ -191,7 +182,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
|
|||
#if BUILDFLAG(ENABLE_BACKGROUND_MODE)
|
||||
#include "chrome/browser/background/background_mode_manager.h"
|
||||
#endif
|
||||
@@ -746,6 +748,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
|
||||
@@ -786,6 +788,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
|
||||
PluginsResourceService::RegisterPrefs(registry);
|
||||
#endif
|
||||
|
||||
|
@ -203,7 +194,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
|
|||
diff --git a/chrome/browser/prefs/chrome_command_line_pref_store.cc b/chrome/browser/prefs/chrome_command_line_pref_store.cc
|
||||
--- a/chrome/browser/prefs/chrome_command_line_pref_store.cc
|
||||
+++ b/chrome/browser/prefs/chrome_command_line_pref_store.cc
|
||||
@@ -156,7 +156,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() {
|
||||
@@ -159,7 +159,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() {
|
||||
SetValue(
|
||||
proxy_config::prefs::kProxy,
|
||||
std::make_unique<base::Value>(ProxyConfigDictionary::CreateFixedServers(
|
||||
|
@ -282,7 +273,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,80 @@
|
||||
@@ -0,0 +1,79 @@
|
||||
+<!doctype html>
|
||||
+<html>
|
||||
+<head>
|
||||
|
@ -298,8 +289,7 @@ new file mode 100644
|
|||
+
|
||||
+<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>
|
||||
+<script type="module" src="chrome://proxy/proxy_config.js"></script>
|
||||
+<link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
|
||||
+<link rel="stylesheet" href="proxy_config.css">
|
||||
+<title>Proxy configuration</title>
|
||||
|
@ -367,7 +357,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,263 @@
|
||||
@@ -0,0 +1,266 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
|
@ -385,6 +375,8 @@ new file mode 100644
|
|||
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+
|
||||
+import {addSingletonGetter} from 'chrome://resources/js/cr.m.js';
|
||||
+
|
||||
+/**
|
||||
+ * Main entry point called once the page has loaded.
|
||||
+ */
|
||||
|
@ -442,7 +434,8 @@ new file mode 100644
|
|||
+ chrome.send('enableNotifyUIWithState');
|
||||
+ }
|
||||
+
|
||||
+ cr.addSingletonGetter(ProxyConfigView);
|
||||
+ addSingletonGetter(ProxyConfigView);
|
||||
+ window.ProxyConfigView = ProxyConfigView;
|
||||
+
|
||||
+ ProxyConfigView.prototype = {
|
||||
+ /**
|
||||
|
@ -563,14 +556,14 @@ new file mode 100644
|
|||
+ renderConfig_: function() {
|
||||
+ if (this.currentConfig.auto_detect) {
|
||||
+ $(kIdModeAutoDetect).checked = true;
|
||||
+ } else if (this.currentConfig.rules.type == "none") {
|
||||
+ $(kIdModeEmpty).checked = true;
|
||||
+ } else if (this.currentConfig.rules.type == "direct") {
|
||||
+ $(kIdModeDirect).checked = true;
|
||||
+ } else if (this.currentConfig.hasOwnProperty('pac_url')) {
|
||||
+ $(kIdPacURL).value = this.currentConfig.pac_url;
|
||||
+ $(kIdPacMandatory).checked = this.currentConfig.pac_mandatory;
|
||||
+ $(kIdModeUsePacURL).checked = true;
|
||||
+ } else if (this.currentConfig.rules.type == "none") {
|
||||
+ $(kIdModeEmpty).checked = true;
|
||||
+ } else if (this.currentConfig.rules.type == "direct") {
|
||||
+ $(kIdModeDirect).checked = true;
|
||||
+ } else {
|
||||
+ $(kIdBypassRules).value = this.currentConfig.rules.bypass_rules;
|
||||
+ $(kIdReverseBypass).checked = this.currentConfig.rules.reverse_bypass;
|
||||
|
@ -634,7 +627,7 @@ new file mode 100644
|
|||
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
|
||||
--- a/chrome/browser/ui/BUILD.gn
|
||||
+++ b/chrome/browser/ui/BUILD.gn
|
||||
@@ -254,6 +254,8 @@ static_library("ui") {
|
||||
@@ -256,6 +256,8 @@ static_library("ui") {
|
||||
"webui/metrics_handler.h",
|
||||
"webui/net_export_ui.cc",
|
||||
"webui/net_export_ui.h",
|
||||
|
@ -654,7 +647,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom
|
|||
#include "chrome/browser/ui/webui/quota_internals/quota_internals_ui.h"
|
||||
#include "chrome/browser/ui/webui/signin_internals_ui.h"
|
||||
#include "chrome/browser/ui/webui/sync_internals/sync_internals_ui.h"
|
||||
@@ -555,6 +556,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
|
||||
@@ -600,6 +601,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
|
||||
return &NewWebUI<MemoryInternalsUI>;
|
||||
if (url.host_piece() == chrome::kChromeUINetExportHost)
|
||||
return &NewWebUI<NetExportUI>;
|
||||
|
@ -1126,7 +1119,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
|
||||
@@ -33,6 +33,8 @@ const char kChromeUICertificateViewerHost[] = "view-cert";
|
||||
@@ -34,6 +34,8 @@ const char kChromeUICertificateViewerHost[] = "view-cert";
|
||||
const char kChromeUICertificateViewerURL[] = "chrome://view-cert/";
|
||||
const char kChromeUIChromeSigninHost[] = "chrome-signin";
|
||||
const char kChromeUIChromeSigninURL[] = "chrome://chrome-signin/";
|
||||
|
@ -1135,7 +1128,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";
|
||||
@@ -327,6 +329,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
|
||||
@@ -336,6 +338,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
|
||||
kChromeUIMobileSetupHost,
|
||||
kChromeUIMultiDeviceSetupHost,
|
||||
kChromeUINetworkHost,
|
||||
|
@ -1143,7 +1136,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
|
|||
kChromeUIOobeHost,
|
||||
kChromeUIOSCreditsHost,
|
||||
kChromeUIOSSettingsHost,
|
||||
@@ -539,6 +542,7 @@ const char* const kChromeHostURLs[] = {
|
||||
@@ -553,6 +556,7 @@ const char* const kChromeHostURLs[] = {
|
||||
#if !defined(OS_ANDROID)
|
||||
#if !BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
kChromeUIAppLauncherPageHost,
|
||||
|
@ -1166,7 +1159,7 @@ diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_const
|
|||
diff --git a/components/policy/core/browser/proxy_policy_handler.cc b/components/policy/core/browser/proxy_policy_handler.cc
|
||||
--- a/components/policy/core/browser/proxy_policy_handler.cc
|
||||
+++ b/components/policy/core/browser/proxy_policy_handler.cc
|
||||
@@ -200,7 +200,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies,
|
||||
@@ -197,7 +197,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies,
|
||||
bypass_list->GetAsString(&bypass_list_string);
|
||||
prefs->SetValue(proxy_config::prefs::kProxy,
|
||||
ProxyConfigDictionary::CreateFixedServers(
|
||||
|
|
|
@ -13,15 +13,17 @@ Enable incognito custom tabs and fix crashes for incognito/custom tab intents (c
|
|||
.../chrome/browser/ChromeTabbedActivity.java | 6 +-
|
||||
.../chrome/browser/app/ChromeActivity.java | 4 +
|
||||
.../AppMenuPropertiesDelegateImpl.java | 6 ++
|
||||
.../ChromeContextMenuPopulator.java | 9 ++-
|
||||
.../ChromeContextMenuPopulator.java | 8 +-
|
||||
.../CustomTabActivityLifecycleUmaTracker.java | 25 ------
|
||||
.../CustomTabIntentDataProvider.java | 5 +-
|
||||
.../browser/init/StartupTabPreloader.java | 14 +++-
|
||||
.../privacy/settings/PrivacySettings.java | 2 +
|
||||
.../privacy/settings/PrivacySettings.java | 1 +
|
||||
.../browser/tabmodel/ChromeTabCreator.java | 16 +++-
|
||||
.../browser/tabmodel/TabPersistentStore.java | 10 +++
|
||||
.../webapps/WebappIntentDataProvider.java | 14 ++++
|
||||
.../flags/android/chrome_feature_list.cc | 2 +-
|
||||
.../strings/android_chrome_strings.grd | 7 ++
|
||||
14 files changed, 168 insertions(+), 8 deletions(-)
|
||||
16 files changed, 170 insertions(+), 34 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
|
||||
|
@ -34,14 +36,14 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
|
|||
+ "java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java",
|
||||
"java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java",
|
||||
"java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
|
||||
"java/src/org/chromium/chrome/browser/AfterStartupTaskUtils.java",
|
||||
"java/src/org/chromium/chrome/browser/ActivityUtils.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
|
||||
@@ -18,6 +18,11 @@
|
||||
android:summary="@string/preload_pages_summary"
|
||||
android:persistent="false"
|
||||
android:order="1"/>
|
||||
@@ -24,6 +24,11 @@
|
||||
android:key="secure_dns"
|
||||
android:title="@string/settings_secure_dns_title"
|
||||
android:fragment="org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings"/>
|
||||
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||
+ android:key="always_incognito"
|
||||
+ android:title="@string/always_incognito_title"
|
||||
|
@ -138,7 +140,7 @@ new file mode 100644
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
@@ -54,6 +54,7 @@ import org.chromium.base.supplier.Supplier;
|
||||
@@ -58,6 +58,7 @@ import org.chromium.base.supplier.UnownedUserDataSupplier;
|
||||
import org.chromium.base.task.PostTask;
|
||||
import org.chromium.cc.input.BrowserControlsState;
|
||||
import org.chromium.chrome.R;
|
||||
|
@ -146,7 +148,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||
import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate;
|
||||
import org.chromium.chrome.browser.IntentHandler.TabOpenType;
|
||||
import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout;
|
||||
@@ -1651,8 +1652,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@@ -1736,8 +1737,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
Bundle savedInstanceState = getSavedInstanceState();
|
||||
|
||||
// We determine the model as soon as possible so every systems get initialized coherently.
|
||||
|
@ -161,7 +163,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
|
||||
@@ -91,6 +91,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchFieldTrial;
|
||||
@@ -94,6 +94,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;
|
||||
|
@ -169,7 +171,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;
|
||||
@@ -1720,6 +1721,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -1766,6 +1767,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
throw new IllegalStateException(
|
||||
"Attempting to access TabCreator before initialization");
|
||||
}
|
||||
|
@ -182,7 +184,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
|
||||
@@ -557,6 +557,12 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
@@ -363,6 +363,12 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
}
|
||||
|
||||
private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) {
|
||||
|
@ -194,34 +196,103 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
|
|||
+
|
||||
// We have to iterate all menu items since same menu item ID may be associated with more
|
||||
// than one menu items.
|
||||
boolean isMenuGroupTabsVisible = TabUiFeatureUtilities.isTabGroupsAndroidEnabled()
|
||||
boolean isMenuGroupTabsVisible = TabUiFeatureUtilities.isTabGroupsAndroidEnabled(mContext)
|
||||
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
|
||||
@@ -30,7 +30,9 @@ import org.chromium.base.Callback;
|
||||
import org.chromium.base.ContextUtils;
|
||||
@@ -31,6 +31,7 @@ import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.metrics.RecordHistogram;
|
||||
import org.chromium.base.supplier.Supplier;
|
||||
+import org.chromium.base.ContextUtils;
|
||||
import org.chromium.chrome.R;
|
||||
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
||||
import org.chromium.chrome.browser.AppHooks;
|
||||
import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator;
|
||||
import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item;
|
||||
import org.chromium.chrome.browser.contextmenu.ChromeContextMenuPopulator.ContextMenuUma.Action;
|
||||
@@ -344,7 +346,12 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
if (FirstRunStatus.getFirstRunFlowComplete() && !isEmptyUrl(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)
|
||||
+ && !mItemDelegate.isIncognito()) {
|
||||
+ // disallow open in new tab
|
||||
+ } else
|
||||
+ linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB));
|
||||
@@ -408,6 +409,10 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
boolean hasSaveImage = false;
|
||||
mShowEphemeralTabNewLabel = null;
|
||||
|
||||
+ boolean always_incognito =
|
||||
+ ContextUtils.getAppSharedPreferences().getBoolean(
|
||||
+ AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false);
|
||||
+
|
||||
List<Pair<Integer, ModelList>> groupedItems = new ArrayList<>();
|
||||
|
||||
if (mParams.isAnchor()) {
|
||||
@@ -426,6 +431,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB_IN_GROUP));
|
||||
}
|
||||
}
|
||||
+
|
||||
if (!mItemDelegate.isIncognito() && mItemDelegate.isIncognitoSupported()) {
|
||||
linkGroup.add(createListItem(Item.OPEN_IN_INCOGNITO_TAB));
|
||||
}
|
||||
@@ -450,7 +456,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
}
|
||||
}
|
||||
if (FirstRunStatus.getFirstRunFlowComplete()) {
|
||||
- if (!mItemDelegate.isIncognito()
|
||||
+ if ((always_incognito || !mItemDelegate.isIncognito())
|
||||
&& UrlUtilities.isDownloadableScheme(mParams.getLinkUrl())) {
|
||||
linkGroup.add(createListItem(Item.SAVE_LINK_AS));
|
||||
}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java
|
||||
@@ -39,31 +39,6 @@ public class CustomTabActivityLifecycleUmaTracker implements PauseResumeWithNati
|
||||
private boolean mIsInitialResume = true;
|
||||
|
||||
private void recordIncognitoLaunchReason() {
|
||||
- IncognitoCustomTabIntentDataProvider incognitoProvider =
|
||||
- (IncognitoCustomTabIntentDataProvider) mIntentDataProvider;
|
||||
-
|
||||
- @IntentHandler.IncognitoCCTCallerId
|
||||
- int incognitoCCTCallerId = incognitoProvider.getFeatureIdForMetricsCollection();
|
||||
- RecordHistogram.recordEnumeratedHistogram("CustomTabs.IncognitoCCTCallerId",
|
||||
- incognitoCCTCallerId, IntentHandler.IncognitoCCTCallerId.NUM_ENTRIES);
|
||||
-
|
||||
- // Record which 1P app launched Incognito CCT.
|
||||
- if (incognitoCCTCallerId == IntentHandler.IncognitoCCTCallerId.GOOGLE_APPS) {
|
||||
- String sendersPackageName = incognitoProvider.getSendersPackageName();
|
||||
- @IntentHandler.ExternalAppId
|
||||
- int externalId = IntentHandler.mapPackageToExternalAppId(sendersPackageName);
|
||||
- if (externalId != IntentHandler.ExternalAppId.OTHER) {
|
||||
- RecordHistogram.recordEnumeratedHistogram("CustomTabs.ClientAppId.Incognito",
|
||||
- externalId, IntentHandler.ExternalAppId.NUM_ENTRIES);
|
||||
- } else {
|
||||
- // Using package name didn't give any meaningful insight on who launched the
|
||||
- // Incognito CCT, falling back to check if they provided EXTRA_APPLICATION_ID.
|
||||
- externalId =
|
||||
- IntentHandler.determineExternalIntentSource(incognitoProvider.getIntent());
|
||||
- RecordHistogram.recordEnumeratedHistogram("CustomTabs.ClientAppId.Incognito",
|
||||
- externalId, IntentHandler.ExternalAppId.NUM_ENTRIES);
|
||||
- }
|
||||
- }
|
||||
}
|
||||
|
||||
private void recordUserAction() {
|
||||
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
|
||||
@@ -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.base.ContextUtils;
|
||||
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
||||
+
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.ArrayList;
|
||||
@@ -772,7 +775,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
|
||||
|
||||
@Override
|
||||
public boolean isIncognito() {
|
||||
- return false;
|
||||
+ return ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java b/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java
|
||||
|
@ -235,7 +306,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTab
|
|||
/**
|
||||
* This class attempts to preload the tab if the url is known from the intent when the profile
|
||||
* is created. This is done to improve startup latency.
|
||||
@@ -195,10 +198,15 @@ public class StartupTabPreloader implements ProfileManager.Observer, Destroyable
|
||||
@@ -195,10 +198,15 @@ public class StartupTabPreloader implements ProfileManager.Observer, DestroyObse
|
||||
Intent intent = mIntentSupplier.get();
|
||||
GURL url = UrlFormatter.fixupUrl(getUrlFromIntent(intent));
|
||||
|
||||
|
@ -248,12 +319,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTab
|
|||
WebContents webContents =
|
||||
- WebContentsFactory.createWebContents(Profile.getLastUsedRegularProfile(), false);
|
||||
+ WebContentsFactory.createWebContents(
|
||||
+ isIncognito ? profile.getPrimaryOTRProfile() : profile,
|
||||
+ isIncognito ? profile.getPrimaryOTRProfile(true /* createIfNeeded */) : profile,
|
||||
+ false);
|
||||
|
||||
mLoadUrlParams = new LoadUrlParams(url.getValidSpecOrEmpty());
|
||||
String referrer = IntentHandler.getReferrerUrlIncludingExtraHeaders(intent);
|
||||
@@ -212,7 +220,7 @@ public class StartupTabPreloader implements ProfileManager.Observer, Destroyable
|
||||
@@ -212,7 +220,7 @@ public class StartupTabPreloader implements ProfileManager.Observer, DestroyObse
|
||||
// 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)
|
||||
|
@ -265,7 +336,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTab
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
@@ -42,6 +42,7 @@ import org.chromium.ui.text.SpanApplier;
|
||||
@@ -41,6 +41,7 @@ import org.chromium.ui.text.SpanApplier;
|
||||
*/
|
||||
public class PrivacySettings
|
||||
extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener {
|
||||
|
@ -273,20 +344,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
|
||||
private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
|
||||
private static final String PREF_SECURE_DNS = "secure_dns";
|
||||
@@ -49,6 +50,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_PRIVACY_SANDBOX};
|
||||
|
||||
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
|
||||
@@ -41,6 +41,10 @@ import org.chromium.ui.base.PageTransition;
|
||||
import org.chromium.ui.base.WindowAndroid;
|
||||
import org.chromium.url.GURL;
|
||||
@@ -47,6 +47,10 @@ import org.chromium.url.GURL;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
+import org.chromium.base.ContextUtils;
|
||||
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
||||
|
@ -295,15 +358,15 @@ 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}.
|
||||
*/
|
||||
@@ -69,6 +73,7 @@ public class ChromeTabCreator extends TabCreator {
|
||||
private final ChromeActivity mActivity;
|
||||
@@ -77,6 +81,7 @@ public class ChromeTabCreator extends TabCreator {
|
||||
private final Activity mActivity;
|
||||
private final StartupTabPreloader mStartupTabPreloader;
|
||||
private final boolean mIncognito;
|
||||
+ private final TabObserver mExtraLogic;
|
||||
|
||||
private WindowAndroid mNativeWindow;
|
||||
private TabModel mTabModel;
|
||||
@@ -87,6 +92,10 @@ public class ChromeTabCreator extends TabCreator {
|
||||
@@ -99,6 +104,10 @@ public class ChromeTabCreator extends TabCreator {
|
||||
mNativeWindow = nativeWindow;
|
||||
mTabDelegateFactorySupplier = tabDelegateFactory;
|
||||
mIncognito = incognito;
|
||||
|
@ -313,8 +376,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
|||
+ mExtraLogic = null;
|
||||
mOverviewNTPCreator = overviewNTPCreator;
|
||||
mAsyncTabParamsManager = asyncTabParamsManager;
|
||||
}
|
||||
@@ -247,6 +256,8 @@ public class ChromeTabCreator extends TabCreator {
|
||||
mTabModelSelectorSupplier = tabModelSelectorSupplier;
|
||||
@@ -262,6 +271,8 @@ public class ChromeTabCreator extends TabCreator {
|
||||
if (creationState == TabCreationState.LIVE_IN_FOREGROUND && !openInForeground) {
|
||||
creationState = TabCreationState.LIVE_IN_BACKGROUND;
|
||||
}
|
||||
|
@ -323,7 +386,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
|||
mTabModel.addTab(tab, position, type, creationState);
|
||||
return tab;
|
||||
} finally {
|
||||
@@ -281,6 +292,8 @@ public class ChromeTabCreator extends TabCreator {
|
||||
@@ -296,6 +307,8 @@ public class ChromeTabCreator extends TabCreator {
|
||||
@TabCreationState
|
||||
int creationState = openInForeground ? TabCreationState.LIVE_IN_FOREGROUND
|
||||
: TabCreationState.LIVE_IN_BACKGROUND;
|
||||
|
@ -332,7 +395,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
|||
mTabModel.addTab(tab, position, type, creationState);
|
||||
return true;
|
||||
}
|
||||
@@ -324,7 +337,6 @@ public class ChromeTabCreator extends TabCreator {
|
||||
@@ -339,7 +352,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) {
|
||||
|
@ -340,7 +403,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
|||
boolean isLaunchedFromChrome = TextUtils.equals(appId, mActivity.getPackageName());
|
||||
|
||||
if (forceNewTab && !isLaunchedFromChrome) {
|
||||
@@ -438,6 +450,8 @@ public class ChromeTabCreator extends TabCreator {
|
||||
@@ -453,6 +465,8 @@ public class ChromeTabCreator extends TabCreator {
|
||||
.setSerializedCriticalPersistedTabData(serializedCriticalPersistedTabData)
|
||||
.build();
|
||||
}
|
||||
|
@ -352,7 +415,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/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
|
||||
@@ -17,6 +17,7 @@ import androidx.core.util.AtomicFile;
|
||||
@@ -18,6 +18,7 @@ import androidx.core.util.AtomicFile;
|
||||
|
||||
import org.chromium.base.Callback;
|
||||
import org.chromium.base.CallbackController;
|
||||
|
@ -360,16 +423,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer
|
|||
import org.chromium.base.Log;
|
||||
import org.chromium.base.ObserverList;
|
||||
import org.chromium.base.StreamUtil;
|
||||
@@ -52,6 +53,8 @@ import org.chromium.components.embedder_support.util.UrlUtilities;
|
||||
import org.chromium.content_public.browser.LoadUrlParams;
|
||||
@@ -56,6 +57,8 @@ import org.chromium.content_public.browser.LoadUrlParams;
|
||||
import org.chromium.content_public.browser.UiThreadTaskTraits;
|
||||
import org.chromium.url.GURL;
|
||||
|
||||
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
||||
+
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
@@ -646,6 +649,13 @@ public class TabPersistentStore {
|
||||
@@ -687,6 +690,13 @@ public class TabPersistentStore {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -386,7 +449,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java
|
||||
@@ -19,6 +19,9 @@ import org.chromium.chrome.browser.browserservices.BrowserServicesIntentDataProv
|
||||
@@ -27,6 +27,9 @@ import org.chromium.chrome.browser.browserservices.intents.WebappExtras;
|
||||
import org.chromium.chrome.browser.flags.ActivityType;
|
||||
import org.chromium.components.browser_ui.widget.TintedDrawable;
|
||||
|
||||
|
@ -396,7 +459,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI
|
|||
/**
|
||||
* Stores info about a web app.
|
||||
*/
|
||||
@@ -32,6 +35,8 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
|
||||
@@ -41,6 +44,8 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
|
||||
private final @ActivityType int mActivityType;
|
||||
private final Intent mIntent;
|
||||
|
||||
|
@ -405,7 +468,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI
|
|||
/**
|
||||
* Returns the toolbar color to use if a custom color is not specified by the webapp.
|
||||
*/
|
||||
@@ -51,6 +56,10 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
|
||||
@@ -63,6 +68,10 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
|
||||
mWebappExtras = webappExtras;
|
||||
mWebApkExtras = webApkExtras;
|
||||
mActivityType = (webApkExtras != null) ? ActivityType.WEB_APK : ActivityType.WEBAPP;
|
||||
|
@ -416,7 +479,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI
|
|||
}
|
||||
|
||||
@Override
|
||||
@@ -138,6 +147,11 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
|
||||
@@ -155,6 +164,11 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
|
||||
return mWebApkExtras;
|
||||
}
|
||||
|
||||
|
@ -431,7 +494,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI
|
|||
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
--- a/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
@@ -400,7 +400,7 @@ const base::Feature kCCTIncognito{"CCTIncognito",
|
||||
@@ -421,7 +421,7 @@ const base::Feature kCCTIncognito{"CCTIncognito",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kCCTIncognitoAvailableToThirdParty{
|
||||
|
@ -443,9 +506,9 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
|
|||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -893,6 +893,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.
|
||||
@@ -908,6 +908,13 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
<message name="IDS_CLEAR_BROWSING_HISTORY_SUMMARY_SYNCED_NO_LINK" desc="A text for the basic tab explaining browsing history for users with history sync. This version is shown when the link to MyActivity is displayed separately.">
|
||||
Clears history from all synced devices.
|
||||
</message>
|
||||
+ <!-- always incognito -->
|
||||
+ <message name="IDS_ALWAYS_INCOGNITO_TITLE" desc="Title for always incognito mode">
|
||||
|
|
|
@ -16,15 +16,15 @@ Completely remove contacts picker permission from the file dialog
|
|||
.../browser/bookmarks/BookmarkBridge.java | 277 +++++++++++++++++
|
||||
.../browser/bookmarks/BookmarkDelegate.java | 10 +
|
||||
.../browser/bookmarks/BookmarkManager.java | 22 ++
|
||||
.../browser/bookmarks/BookmarkPage.java | 9 +-
|
||||
.../native_page/NativePageFactory.java | 3 +-
|
||||
chrome/browser/BUILD.gn | 6 +-
|
||||
.../browser/bookmarks/BookmarkPage.java | 8 +-
|
||||
.../native_page/NativePageFactory.java | 2 +-
|
||||
chrome/browser/BUILD.gn | 11 +-
|
||||
chrome/browser/about_flags.cc | 6 +
|
||||
.../android/bookmarks/bookmark_bridge.cc | 284 ++++++++++++++++++
|
||||
.../android/bookmarks/bookmark_bridge.h | 28 +-
|
||||
.../browser/bookmarks/bookmark_html_writer.cc | 7 +-
|
||||
.../dialogs/DownloadLocationCustomView.java | 7 +-
|
||||
.../DownloadLocationDialogCoordinator.java | 10 +-
|
||||
.../browser/bookmarks/bookmark_html_writer.cc | 8 +-
|
||||
.../dialogs/DownloadLocationCustomView.java | 8 +-
|
||||
.../DownloadLocationDialogCoordinator.java | 8 +-
|
||||
chrome/browser/flag_descriptions.cc | 5 +
|
||||
chrome/browser/flag_descriptions.h | 3 +
|
||||
.../flags/android/chrome_feature_list.cc | 5 +
|
||||
|
@ -43,7 +43,7 @@ Completely remove contacts picker permission from the file dialog
|
|||
ui/shell_dialogs/select_file_dialog.h | 2 +
|
||||
.../select_file_dialog_android.cc | 6 +
|
||||
ui/shell_dialogs/select_file_dialog_android.h | 2 +
|
||||
37 files changed, 877 insertions(+), 23 deletions(-)
|
||||
37 files changed, 880 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/base/android/content_uri_utils.cc b/base/android/content_uri_utils.cc
|
||||
--- a/base/android/content_uri_utils.cc
|
||||
|
@ -131,10 +131,10 @@ diff --git a/base/android/java/src/org/chromium/base/ContentUriUtils.java b/base
|
|||
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
|
||||
@@ -39,7 +39,6 @@ by a child template that "extends" this file.
|
||||
{% endif %}
|
||||
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH"/>
|
||||
@@ -56,7 +56,6 @@ by a child template that "extends" this file.
|
||||
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_ADMIN"/>
|
||||
{% endif %}
|
||||
|
||||
- <uses-permission-sdk-23 android:name="android.permission.READ_CONTACTS"/>
|
||||
<uses-permission-sdk-23 android:name="android.permission.REORDER_TASKS"/>
|
||||
<uses-permission-sdk-23 android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
|
||||
|
@ -228,7 +228,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";
|
||||
|
||||
@@ -38,6 +43,20 @@ public class BookmarkActivity extends SnackbarActivity {
|
||||
@@ -40,6 +45,20 @@ public class BookmarkActivity extends SnackbarActivity {
|
||||
if (TextUtils.isEmpty(url)) url = UrlConstants.BOOKMARKS_URL;
|
||||
mBookmarkManager.updateForUrl(url);
|
||||
setContentView(mBookmarkManager.getView());
|
||||
|
@ -249,7 +249,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
}
|
||||
|
||||
@Override
|
||||
@@ -54,6 +73,7 @@ public class BookmarkActivity extends SnackbarActivity {
|
||||
@@ -56,6 +75,7 @@ public class BookmarkActivity extends SnackbarActivity {
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
|
@ -257,7 +257,7 @@ 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 +81,14 @@ public class BookmarkActivity extends SnackbarActivity {
|
||||
@@ -63,6 +83,14 @@ public class BookmarkActivity extends SnackbarActivity {
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -631,7 +631,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
private BookmarkUndoController mUndoController;
|
||||
private final ObserverList<BookmarkUIObserver> mUIObservers = new ObserverList<>();
|
||||
private BasicNativePage mNativePage;
|
||||
@@ -328,6 +332,14 @@ public class BookmarkManager
|
||||
@@ -331,6 +335,14 @@ public class BookmarkManager
|
||||
mNativePage = nativePage;
|
||||
}
|
||||
|
||||
|
@ -646,7 +646,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
|
||||
@@ -506,6 +518,16 @@ public class BookmarkManager
|
||||
@@ -509,6 +521,16 @@ public class BookmarkManager
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -676,18 +676,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
|
||||
/**
|
||||
* A native page holding a {@link BookmarkManager} on _tablet_.
|
||||
@@ -29,11 +32,15 @@ public class BookmarkPage extends BasicNativePage {
|
||||
@@ -29,12 +32,15 @@ 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) {
|
||||
public BookmarkPage(ComponentName componentName, SnackbarManager snackbarManager,
|
||||
- boolean isIncognito, NativePageHost host) {
|
||||
+ boolean isIncognito, NativePageHost host, ChromeActivity activity) {
|
||||
super(host);
|
||||
|
||||
mManager = new BookmarkManager(host.getContext(), componentName, false, snackbarManager);
|
||||
mManager = new BookmarkManager(
|
||||
host.getContext(), componentName, false, isIncognito, snackbarManager);
|
||||
mManager.setBasicNativePage(this);
|
||||
+ mManager.setWindow(activity.getWindowAndroid(),
|
||||
+ mManager.setWindow(activity.getWindowAndroid(),
|
||||
+ new ModalDialogManager(
|
||||
+ new AppModalPresenter(activity), ModalDialogManager.ModalDialogType.APP));
|
||||
mTitle = host.getContext().getResources().getString(R.string.bookmarks);
|
||||
|
@ -696,29 +696,33 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
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
|
||||
@@ -96,7 +96,8 @@ public class NativePageFactory {
|
||||
|
||||
@@ -101,7 +101,7 @@ public class NativePageFactory {
|
||||
protected NativePage buildBookmarksPage(Tab tab) {
|
||||
return new BookmarkPage(mActivity.getComponentName(), mActivity.getSnackbarManager(),
|
||||
mActivity.getTabModelSelector().isIncognitoSelected(),
|
||||
- new TabShim(tab, mActivity));
|
||||
+ new TabShim(tab, mActivity),
|
||||
+ 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
|
||||
@@ -1876,6 +1876,8 @@ static_library("browser") {
|
||||
"webapps/chrome_webapps_client.h",
|
||||
"window_placement/window_placement_permission_context.cc",
|
||||
@@ -1839,6 +1839,13 @@ static_library("browser") {
|
||||
"window_placement/window_placement_permission_context.h",
|
||||
+ "importer/profile_writer.cc",
|
||||
+ "importer/profile_writer.h",
|
||||
]
|
||||
|
||||
+ if (is_android) {
|
||||
+ sources += [
|
||||
+ "importer/profile_writer.cc",
|
||||
+ "importer/profile_writer.h",
|
||||
+ ]
|
||||
+ }
|
||||
+
|
||||
configs += [
|
||||
@@ -2958,6 +2960,8 @@ static_library("browser") {
|
||||
"//build/config/compiler:wexit_time_destructors",
|
||||
"//build/config:precompiled_headers",
|
||||
@@ -2938,6 +2945,8 @@ static_library("browser") {
|
||||
"autofill/manual_filling_view_interface.h",
|
||||
"banners/android/chrome_app_banner_manager_android.cc",
|
||||
"banners/android/chrome_app_banner_manager_android.h",
|
||||
|
@ -727,7 +731,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
|||
"browser_process_platform_part_android.cc",
|
||||
"browser_process_platform_part_android.h",
|
||||
"chrome_browser_field_trials_mobile.cc",
|
||||
@@ -3444,8 +3448,6 @@ static_library("browser") {
|
||||
@@ -3451,8 +3460,6 @@ static_library("browser") {
|
||||
"badging/badge_manager_factory.h",
|
||||
"banners/app_banner_manager_desktop.cc",
|
||||
"banners/app_banner_manager_desktop.h",
|
||||
|
@ -739,9 +743,9 @@ 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
|
||||
@@ -7303,6 +7303,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
FEATURE_VALUE_TYPE(
|
||||
optimization_guide::features::kOptimizationGuideModelDownloading)},
|
||||
@@ -7394,6 +7394,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kPlaybackSpeedButtonDescription, kOsAll,
|
||||
FEATURE_VALUE_TYPE(media::kPlaybackSpeedButton)},
|
||||
|
||||
+ {"export-bookmarks-use-saf",
|
||||
+ flag_descriptions::kBookmarksExportUseSafName,
|
||||
|
@ -882,7 +886,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
|||
const int kInvalidId = -1;
|
||||
|
||||
class BookmarkTitleComparer {
|
||||
@@ -150,6 +254,10 @@ BookmarkBridge::~BookmarkBridge() {
|
||||
@@ -152,6 +256,10 @@ BookmarkBridge::~BookmarkBridge() {
|
||||
if (partner_bookmarks_shim_)
|
||||
partner_bookmarks_shim_->RemoveObserver(this);
|
||||
reading_list_manager_->RemoveObserver(this);
|
||||
|
@ -893,7 +897,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
|||
}
|
||||
|
||||
void BookmarkBridge::Destroy(JNIEnv*, const JavaParamRef<jobject>&) {
|
||||
@@ -540,6 +648,182 @@ jint BookmarkBridge::GetTotalBookmarkCount(
|
||||
@@ -542,6 +650,182 @@ jint BookmarkBridge::GetTotalBookmarkCount(
|
||||
return count;
|
||||
}
|
||||
|
||||
|
@ -913,15 +917,15 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
|||
+ //NOTE: extension and description are not used on Android, thus not set
|
||||
+ ui::SelectFileDialog::FileTypeInfo file_type_info;
|
||||
+
|
||||
+ const std::vector<base::string16> v_accept_types = { base::UTF8ToUTF16("text/html") };
|
||||
+ const std::vector<std::u16string> v_accept_types = { u"text/html" };
|
||||
+
|
||||
+ // Android needs the original MIME types and an additional capture value.
|
||||
+ std::pair<std::vector<base::string16>, bool> accept_types =
|
||||
+ std::pair<std::vector<std::u16string>, bool> accept_types =
|
||||
+ std::make_pair(v_accept_types, /* use_media_capture */ false);
|
||||
+
|
||||
+ select_file_dialog_->SelectFile(
|
||||
+ ui::SelectFileDialog::SELECT_OPEN_FILE,
|
||||
+ base::string16(),
|
||||
+ std::u16string(),
|
||||
+ export_path_,
|
||||
+ &file_type_info,
|
||||
+ 0,
|
||||
|
@ -942,7 +946,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
|||
+ ui::WindowAndroid::FromJavaWindowAndroid(java_window);
|
||||
+ CHECK(window);
|
||||
+
|
||||
+ base::string16 export_path =
|
||||
+ std::u16string export_path =
|
||||
+ base::android::ConvertJavaStringToUTF16(env, j_export_path);
|
||||
+
|
||||
+ export_path_ = base::FilePath::FromUTF16Unsafe(export_path);
|
||||
|
@ -961,9 +965,9 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
|||
+
|
||||
+// Attempts to create a TemplateURL from the provided data. |title| is optional.
|
||||
+// If TemplateURL creation fails, returns null.
|
||||
+std::unique_ptr<TemplateURL> CreateTemplateURL(const base::string16& url,
|
||||
+ const base::string16& keyword,
|
||||
+ const base::string16& title) {
|
||||
+std::unique_ptr<TemplateURL> CreateTemplateURL(const std::u16string& url,
|
||||
+ const std::u16string& keyword,
|
||||
+ const std::u16string& title) {
|
||||
+ if (url.empty() || keyword.empty())
|
||||
+ return nullptr;
|
||||
+ TemplateURLData data;
|
||||
|
@ -1036,7 +1040,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
|||
+ favicon_base::FaviconUsageDataList favicons;
|
||||
+
|
||||
+ bookmark_html_reader::ImportBookmarksFile(
|
||||
+ base::Callback<bool(void)>(),
|
||||
+ base::RepeatingCallback<bool(void)>(),
|
||||
+ base::BindRepeating(internal::CanImportURL),
|
||||
+ contents,
|
||||
+ &bookmarks,
|
||||
|
@ -1047,7 +1051,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
|||
+
|
||||
+ if (!bookmarks.empty()) {
|
||||
+ // adding bookmarks will begin extensive changes to the model
|
||||
+ writer->AddBookmarksWithModel(bookmark_model_, bookmarks, base::ASCIIToUTF16("Imported"));
|
||||
+ writer->AddBookmarksWithModel(bookmark_model_, bookmarks, u"Imported");
|
||||
+ }
|
||||
+ if (!search_engines.empty()) {
|
||||
+ TemplateURLService::OwnedTemplateURLVector owned_template_urls;
|
||||
|
@ -1080,7 +1084,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser
|
|||
--- a/chrome/browser/android/bookmarks/bookmark_bridge.h
|
||||
+++ b/chrome/browser/android/bookmarks/bookmark_bridge.h
|
||||
@@ -17,6 +17,7 @@
|
||||
#include "base/strings/string16.h"
|
||||
#include "base/scoped_observation.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h"
|
||||
+#include "chrome/browser/bookmarks/bookmark_html_writer.h"
|
||||
|
@ -1154,7 +1158,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser
|
|||
// This is owned by profile.
|
||||
@@ -332,6 +355,9 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
// Observes the profile destruction and creation.
|
||||
ScopedObserver<Profile, ProfileObserver> profile_observer_{this};
|
||||
base::ScopedObservation<Profile, ProfileObserver> profile_observation_{this};
|
||||
|
||||
+ const std::string FileSelectedImpl(const base::FilePath& path);
|
||||
+ void FileSelectedImplOnUIThread(const base::FilePath& path,
|
||||
|
@ -1173,23 +1177,24 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b
|
|||
#include "chrome/browser/bookmarks/bookmark_model_factory.h"
|
||||
#include "chrome/browser/favicon/favicon_service_factory.h"
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
@@ -240,7 +241,11 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
|
||||
@@ -240,7 +241,12 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
|
||||
// Opens the file, returning true on success.
|
||||
bool OpenFile() {
|
||||
int flags = base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE;
|
||||
- file_.reset(new base::File(path_, flags));
|
||||
- file_ = std::make_unique<base::File>(path_, flags);
|
||||
+ if (path_.IsContentUri()) {
|
||||
+ file_ = std::make_unique<base::File>(base::OpenContentUriForWrite(path_));
|
||||
+ } else {
|
||||
+ file_.reset(new base::File(path_, flags));
|
||||
+ file_ = std::make_unique<base::File>(path_, flags);
|
||||
+ }
|
||||
+
|
||||
if (!file_->IsValid()) {
|
||||
PLOG(ERROR) << "Could not create " << path_;
|
||||
return false;
|
||||
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
|
||||
@@ -49,7 +49,7 @@ public class DownloadLocationCustomView
|
||||
@@ -46,7 +46,7 @@ public class DownloadLocationCustomView
|
||||
private TextView mFileSize;
|
||||
private Spinner mFileLocation;
|
||||
private TextView mLocationAvailableSpace;
|
||||
|
@ -1198,15 +1203,16 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
|
|||
private @DownloadLocationDialogType int mDialogType;
|
||||
private long mTotalBytes;
|
||||
|
||||
@@ -71,6 +71,7 @@ public class DownloadLocationCustomView
|
||||
@@ -68,7 +68,7 @@ public class DownloadLocationCustomView
|
||||
mDontShowAgain = findViewById(R.id.show_again_checkbox);
|
||||
}
|
||||
|
||||
+ public
|
||||
void initialize(@DownloadLocationDialogType int dialogType, File suggestedPath, long totalBytes,
|
||||
CharSequence title) {
|
||||
- void initialize(@DownloadLocationDialogType int dialogType, long totalBytes) {
|
||||
+ public void initialize(@DownloadLocationDialogType int dialogType, long totalBytes) {
|
||||
// TODO(xingliu): Remove this function, currently used by smart suggestion.
|
||||
mDialogType = dialogType;
|
||||
@@ -131,7 +132,7 @@ public class DownloadLocationCustomView
|
||||
mTotalBytes = totalBytes;
|
||||
@@ -117,7 +117,7 @@ public class DownloadLocationCustomView
|
||||
* @return The text that the user inputted as the name of the file.
|
||||
*/
|
||||
@Nullable
|
||||
|
@ -1215,7 +1221,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
|
|||
if (mFileName == null || mFileName.getText() == null) return null;
|
||||
return mFileName.getText().toString();
|
||||
}
|
||||
@@ -140,7 +141,7 @@ public class DownloadLocationCustomView
|
||||
@@ -126,7 +126,7 @@ public class DownloadLocationCustomView
|
||||
* @return The file path based on what the user selected as the location of the file.
|
||||
*/
|
||||
@Nullable
|
||||
|
@ -1227,25 +1233,23 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
|
|||
diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java
|
||||
--- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java
|
||||
+++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java
|
||||
@@ -34,13 +34,13 @@ import java.util.ArrayList;
|
||||
@@ -36,12 +36,12 @@ import java.util.ArrayList;
|
||||
public class DownloadLocationDialogCoordinator implements ModalDialogProperties.Controller {
|
||||
@NonNull
|
||||
private DownloadLocationDialogController mController;
|
||||
- private PropertyModel mDialogModel;
|
||||
+ protected PropertyModel mDialogModel;
|
||||
private PropertyModel mDownloadLocationDialogModel;
|
||||
private PropertyModelChangeProcessor<PropertyModel, DownloadLocationCustomView, PropertyKey>
|
||||
mPropertyModelChangeProcessor;
|
||||
- private DownloadLocationCustomView mCustomView;
|
||||
- private ModalDialogManager mModalDialogManager;
|
||||
+ protected PropertyModel mDialogModel;
|
||||
+ protected DownloadLocationCustomView mCustomView;
|
||||
+ protected ModalDialogManager mModalDialogManager;
|
||||
private long mTotalBytes;
|
||||
private @DownloadLocationDialogType int mDialogType;
|
||||
private String mSuggestedPath;
|
||||
- private Context mContext;
|
||||
+ protected Context mContext;
|
||||
|
||||
/**
|
||||
* Initializes the download location dialog.
|
||||
@@ -119,7 +119,7 @@ public class DownloadLocationDialogCoordinator implements ModalDialogProperties.
|
||||
@@ -127,7 +127,7 @@ public class DownloadLocationDialogCoordinator implements ModalDialogProperties.
|
||||
* Called after retrieved the download directory options.
|
||||
* @param dirs An list of available download directories.
|
||||
*/
|
||||
|
@ -1257,7 +1261,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
|
|||
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
|
||||
@@ -5179,6 +5179,11 @@ const char kWebrtcPipeWireCapturerDescription[] =
|
||||
@@ -5223,6 +5223,11 @@ const char kWebrtcPipeWireCapturerDescription[] =
|
||||
"capturing the desktop content on the Wayland display server.";
|
||||
#endif // #if defined(WEBRTC_USE_PIPEWIRE)
|
||||
|
||||
|
@ -1272,7 +1276,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
|
||||
@@ -3051,6 +3051,9 @@ extern const char kWebrtcPipeWireCapturerName[];
|
||||
@@ -3073,6 +3073,9 @@ extern const char kWebrtcPipeWireCapturerName[];
|
||||
extern const char kWebrtcPipeWireCapturerDescription[];
|
||||
#endif // #if defined(WEBRTC_USE_PIPEWIRE)
|
||||
|
||||
|
@ -1285,17 +1289,17 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
|
|||
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
--- a/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
@@ -140,6 +140,7 @@ const base::Feature* kFeaturesExposedToJava[] = {
|
||||
&kAssistantIntentTranslateInfo,
|
||||
&kAppLaunchpad,
|
||||
@@ -151,6 +151,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||
&kBackgroundThreadPool,
|
||||
&kBentoOffline,
|
||||
&kBookmarkBottomSheet,
|
||||
+ &kBookmarksExportUseSaf,
|
||||
&kCastDeviceFilter,
|
||||
&kCloseTabSuggestions,
|
||||
&kCriticalPersistedTabData,
|
||||
@@ -742,6 +743,10 @@ const base::Feature kVoiceButtonInTopToolbar{"VoiceButtonInTopToolbar",
|
||||
const base::Feature kVrBrowsingFeedback{"VrBrowsingFeedback",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
@@ -759,6 +760,10 @@ const base::Feature kVrBrowsingFeedback{"VrBrowsingFeedback",
|
||||
const base::Feature kWebNotesStylize{"WebNotesStylize",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
+// disabled by default because of an issue on Android 6.0
|
||||
+const base::Feature kBookmarksExportUseSaf{"BookmarksExportUseSaf",
|
||||
|
@ -1307,20 +1311,20 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
|
|||
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
|
||||
--- a/chrome/browser/flags/android/chrome_feature_list.h
|
||||
+++ b/chrome/browser/flags/android/chrome_feature_list.h
|
||||
@@ -154,6 +154,7 @@ extern const base::Feature kVoiceSearchAudioCapturePolicy;
|
||||
extern const base::Feature kVoiceButtonInTopToolbar;
|
||||
extern const base::Feature kVrBrowsingFeedback;
|
||||
extern const base::Feature kPrefetchNotificationSchedulingIntegration;
|
||||
@@ -142,6 +142,7 @@ extern const base::Feature kToolbarMicIphAndroid;
|
||||
extern const base::Feature kToolbarUseHardwareBitmapDraw;
|
||||
extern const base::Feature kTrustedWebActivityLocationDelegation;
|
||||
extern const base::Feature kTrustedWebActivityNewDisclosure;
|
||||
+extern const base::Feature kBookmarksExportUseSaf;
|
||||
|
||||
} // namespace android
|
||||
} // namespace chrome
|
||||
extern const base::Feature kTrustedWebActivityPostMessage;
|
||||
extern const base::Feature kTrustedWebActivityQualityEnforcement;
|
||||
extern const base::Feature kTrustedWebActivityQualityEnforcementForced;
|
||||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
@@ -503,6 +503,7 @@ public abstract class ChromeFeatureList {
|
||||
public static final String WEB_AUTH_PHONE_SUPPORT = "WebAuthenticationPhoneSupport";
|
||||
public static final String WEB_FEED = "WebFeed";
|
||||
@@ -512,6 +512,7 @@ public abstract class ChromeFeatureList {
|
||||
public static final String WEBNOTES_STYLIZE = "WebNotesStylize";
|
||||
public static final String WIPE_DATA_ON_CHILD_ACCOUNT_SIGNIN = "WipeDataOnChildAccountSignin";
|
||||
public static final String XSURFACE_METRICS_REPORTING = "XsurfaceMetricsReporting";
|
||||
+ public static final String BOOKMARKS_EXPORT_USESAF = "BookmarksExportUseSaf";
|
||||
|
||||
|
@ -1354,7 +1358,7 @@ diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer
|
|||
+void ProfileWriter::AddBookmarksWithModel(
|
||||
+ BookmarkModel* model,
|
||||
+ const std::vector<ImportedBookmarkEntry>& bookmarks,
|
||||
+ const base::string16& top_level_folder_name) {
|
||||
+ const std::u16string& top_level_folder_name) {
|
||||
+ if (bookmarks.empty())
|
||||
+ return;
|
||||
+
|
||||
|
@ -1364,22 +1368,22 @@ diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer
|
|||
diff --git a/chrome/browser/importer/profile_writer.h b/chrome/browser/importer/profile_writer.h
|
||||
--- a/chrome/browser/importer/profile_writer.h
|
||||
+++ b/chrome/browser/importer/profile_writer.h
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "base/strings/string16.h"
|
||||
#include "base/time/time.h"
|
||||
@@ -11,6 +11,7 @@
|
||||
#include "base/macros.h"
|
||||
#include "base/memory/ref_counted.h"
|
||||
#include "build/build_config.h"
|
||||
+#include "components/bookmarks/browser/bookmark_model.h"
|
||||
#include "components/favicon_base/favicon_usage_data.h"
|
||||
#include "components/history/core/browser/history_types.h"
|
||||
#include "components/search_engines/template_url_service.h"
|
||||
@@ -70,6 +71,11 @@ class ProfileWriter : public base::RefCountedThreadSafe<ProfileWriter> {
|
||||
const std::vector<ImportedBookmarkEntry>& bookmarks,
|
||||
const base::string16& top_level_folder_name);
|
||||
@@ -68,6 +69,11 @@ class ProfileWriter : public base::RefCountedThreadSafe<ProfileWriter> {
|
||||
virtual void AddBookmarks(const std::vector<ImportedBookmarkEntry>& bookmarks,
|
||||
const std::u16string& top_level_folder_name);
|
||||
|
||||
+ virtual void AddBookmarksWithModel(
|
||||
+ bookmarks::BookmarkModel* model,
|
||||
+ const std::vector<ImportedBookmarkEntry>& bookmarks,
|
||||
+ const base::string16& top_level_folder_name);
|
||||
+ const std::u16string& top_level_folder_name);
|
||||
+
|
||||
virtual void AddFavicons(const favicon_base::FaviconUsageDataList& favicons);
|
||||
|
||||
|
@ -1387,7 +1391,7 @@ diff --git a/chrome/browser/importer/profile_writer.h b/chrome/browser/importer/
|
|||
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
|
||||
@@ -91,6 +91,8 @@ public final class ChromePreferenceKeys {
|
||||
@@ -117,6 +117,8 @@ public final class ChromePreferenceKeys {
|
||||
public static final String BOOKMARKS_LAST_USED_URL = "enhanced_bookmark_last_used_url";
|
||||
public static final String BOOKMARKS_LAST_USED_PARENT =
|
||||
"enhanced_bookmark_last_used_parent_folder";
|
||||
|
@ -1396,19 +1400,19 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
|
|||
|
||||
/**
|
||||
* Whether Chrome is set as the default browser.
|
||||
@@ -896,6 +898,7 @@ public final class ChromePreferenceKeys {
|
||||
AUTOFILL_ASSISTANT_NUMBER_OF_LITE_SCRIPTS_CANCELED,
|
||||
@@ -1012,6 +1014,7 @@ public final class ChromePreferenceKeys {
|
||||
AUTOFILL_ASSISTANT_PROACTIVE_HELP,
|
||||
APPLICATION_OVERRIDE_LANGUAGE,
|
||||
APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE,
|
||||
APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO,
|
||||
+ BOOKMARKS_LAST_EXPORT_URI,
|
||||
CLIPBOARD_SHARED_URI,
|
||||
CONDITIONAL_TAB_STRIP_CONTINUOUS_DISMISS_COUNTER,
|
||||
CONDITIONAL_TAB_STRIP_FEATURE_STATUS,
|
||||
APPLICATION_OVERRIDE_LANGUAGE,
|
||||
CHROME_SURVEY_DOWNLOAD_ATTEMPTS.pattern(),
|
||||
CHROME_SURVEY_PROMPT_DISPLAYED_TIMESTAMP.pattern(),
|
||||
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
|
||||
@@ -242,6 +242,24 @@ CHAR-LIMIT guidelines:
|
||||
<message name="IDS_NOTIFICATION_CATEGORY_SITES" desc="Label for notifications from websites, within a list of notification categories. [CHAR-LIMIT=32]">
|
||||
@@ -242,6 +242,24 @@ CHAR_LIMIT guidelines:
|
||||
<message name="IDS_NOTIFICATION_CATEGORY_SITES" desc="Label for notifications from websites, within a list of notification categories. [CHAR_LIMIT=32]">
|
||||
Sites
|
||||
</message>
|
||||
+ <message name="IDS_IMPORT_BOOKMARKS" desc="The label for the import bookmarks button.">
|
||||
|
@ -1429,13 +1433,13 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
|||
+ <message name="IDS_EXPORT_BOOKMARKS_ALERT_MESSAGE_NO" desc="Label for no button.">
|
||||
+ Choose another file
|
||||
+ </message>
|
||||
<message name="IDS_NOTIFICATION_CATEGORY_VR" desc="Label for notifications in VR, within a list of notification categories. [CHAR-LIMIT=32]">
|
||||
<message name="IDS_NOTIFICATION_CATEGORY_VR" desc="Label for notifications in VR, within a list of notification categories. [CHAR_LIMIT=32]">
|
||||
Virtual Reality
|
||||
</message>
|
||||
diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
|
||||
--- a/chrome/common/BUILD.gn
|
||||
+++ b/chrome/common/BUILD.gn
|
||||
@@ -402,6 +402,9 @@ static_library("common") {
|
||||
@@ -408,6 +408,9 @@ static_library("common") {
|
||||
sources += [
|
||||
"media/chrome_media_drm_bridge_client.cc",
|
||||
"media/chrome_media_drm_bridge_client.h",
|
||||
|
@ -1448,7 +1452,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
|
||||
@@ -79,8 +79,6 @@ static_library("utility") {
|
||||
@@ -78,8 +78,6 @@ static_library("utility") {
|
||||
|
||||
if (!is_android) {
|
||||
sources += [
|
||||
|
@ -1457,7 +1461,7 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
|
|||
"importer/bookmarks_file_importer.cc",
|
||||
"importer/bookmarks_file_importer.h",
|
||||
"importer/external_process_importer_bridge.cc",
|
||||
@@ -180,6 +178,11 @@ static_library("utility") {
|
||||
@@ -186,6 +184,11 @@ static_library("utility") {
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1531,7 +1535,7 @@ diff --git a/chrome/utility/importer/bookmark_html_reader.cc b/chrome/utility/im
|
|||
content, "\n", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
|
||||
|
||||
@@ -126,6 +144,7 @@ void ImportBookmarksFile(
|
||||
std::vector<base::string16> path;
|
||||
std::vector<std::u16string> path;
|
||||
size_t toolbar_folder_index = 0;
|
||||
std::string charset = "UTF-8"; // If no charset is specified, assume utf-8.
|
||||
+
|
||||
|
@ -1554,7 +1558,7 @@ diff --git a/chrome/utility/importer/bookmark_html_reader.cc b/chrome/utility/im
|
|||
diff --git a/chrome/utility/importer/bookmark_html_reader.h b/chrome/utility/importer/bookmark_html_reader.h
|
||||
--- a/chrome/utility/importer/bookmark_html_reader.h
|
||||
+++ b/chrome/utility/importer/bookmark_html_reader.h
|
||||
@@ -51,6 +51,14 @@ void ImportBookmarksFile(
|
||||
@@ -50,6 +50,14 @@ void ImportBookmarksFile(
|
||||
std::vector<importer::SearchEngineInfo>* search_engines,
|
||||
favicon_base::FaviconUsageDataList* favicons);
|
||||
|
||||
|
@ -1572,7 +1576,7 @@ diff --git a/chrome/utility/importer/bookmark_html_reader.h b/chrome/utility/imp
|
|||
diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
|
||||
--- a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
|
||||
+++ b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
|
||||
@@ -35,6 +35,7 @@ import org.chromium.base.task.AsyncTask;
|
||||
@@ -38,6 +38,7 @@ import org.chromium.base.task.AsyncTask;
|
||||
import org.chromium.base.task.PostTask;
|
||||
import org.chromium.base.task.TaskTraits;
|
||||
import org.chromium.ui.R;
|
||||
|
@ -1580,7 +1584,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
|
|||
import org.chromium.ui.UiUtils;
|
||||
|
||||
import java.io.File;
|
||||
@@ -53,6 +54,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
@@ -56,6 +57,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
private static final String TAG = "SelectFileDialog";
|
||||
private static final String IMAGE_TYPE = "image";
|
||||
private static final String VIDEO_TYPE = "video";
|
||||
|
@ -1588,7 +1592,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
|
|||
private static final String AUDIO_TYPE = "audio";
|
||||
private static final String ALL_TYPES = "*/*";
|
||||
|
||||
@@ -143,6 +145,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
@@ -239,6 +241,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
mFileTypes = fileTypes;
|
||||
}
|
||||
|
||||
|
@ -1600,7 +1604,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
|
|||
/**
|
||||
* Creates and starts an intent based on the passed fileTypes and capture value.
|
||||
* @param fileTypes MIME types requested (i.e. "image/*")
|
||||
@@ -170,7 +177,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
@@ -266,7 +273,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
List<String> missingPermissions = new ArrayList<>();
|
||||
String storagePermission = Manifest.permission.READ_EXTERNAL_STORAGE;
|
||||
boolean shouldUsePhotoPicker = shouldUsePhotoPicker();
|
||||
|
@ -1609,7 +1613,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
|
|||
if (!window.hasPermission(storagePermission)) missingPermissions.add(storagePermission);
|
||||
} else {
|
||||
if (((mSupportsImageCapture && shouldShowImageTypes())
|
||||
@@ -198,7 +205,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
@@ -294,7 +301,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
}
|
||||
|
||||
// TODO(finnur): Remove once we figure out the cause of crbug.com/950024.
|
||||
|
@ -1618,7 +1622,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
|
|||
if (permissions.length != requestPermissions.length) {
|
||||
throw new RuntimeException(
|
||||
String.format("Permissions arrays misaligned: %d != %d",
|
||||
@@ -212,7 +219,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
@@ -308,7 +315,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1627,7 +1631,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
|
|||
onFileNotSelected();
|
||||
return;
|
||||
}
|
||||
@@ -358,6 +365,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
@@ -504,6 +511,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
}
|
||||
if (!mimeTypes.contains(mimeType)) mimeTypes.add(mimeType);
|
||||
}
|
||||
|
@ -1635,7 +1639,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
|
|||
return mimeTypes;
|
||||
}
|
||||
|
||||
@@ -659,6 +667,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
@@ -812,6 +820,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
return countAcceptTypesFor(superType) == mFileTypes.size();
|
||||
}
|
||||
|
||||
|
@ -1650,7 +1654,7 @@ diff --git a/ui/android/java/strings/android_ui_strings.grd b/ui/android/java/st
|
|||
--- a/ui/android/java/strings/android_ui_strings.grd
|
||||
+++ b/ui/android/java/strings/android_ui_strings.grd
|
||||
@@ -174,6 +174,9 @@
|
||||
<message name="IDS_OPENING_FILE_ERROR" desc="Toast when the browser is unable to open a file for upload. [CHAR-LIMIT=32]">
|
||||
<message name="IDS_OPENING_FILE_ERROR" desc="Toast when the browser is unable to open a file for upload. [CHAR_LIMIT=32]">
|
||||
Failed to open selected file
|
||||
</message>
|
||||
+ <message name="IDS_SAVING_FILE_ERROR" desc="Toast when the browser is unable to save a file. [CHAR-LIMIT=32]">
|
||||
|
@ -1658,11 +1662,11 @@ diff --git a/ui/android/java/strings/android_ui_strings.grd b/ui/android/java/st
|
|||
+ </message>
|
||||
|
||||
<!-- Clipboard -->
|
||||
<message name="IDS_COPY_TO_CLIPBOARD_FAILURE_MESSAGE" desc="Notification for when copying to the clipboard fails. [CHAR-LIMIT=64]">
|
||||
<message name="IDS_COPY_TO_CLIPBOARD_FAILURE_MESSAGE" desc="Notification for when copying to the clipboard fails. [CHAR_LIMIT=64]">
|
||||
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
|
||||
@@ -204,6 +204,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDialog
|
||||
@@ -202,6 +202,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDialog
|
||||
void* params);
|
||||
bool HasMultipleFileTypeChoices();
|
||||
|
||||
|
|
|
@ -3,40 +3,40 @@ Date: Wed, 29 Aug 2018 11:03:44 +0200
|
|||
Subject: Add custom tab intents privacy option
|
||||
|
||||
---
|
||||
chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++
|
||||
.../chrome/browser/LaunchIntentDispatcher.java | 4 ++++
|
||||
.../browser/privacy/settings/PrivacySettings.java | 13 ++++++++++++-
|
||||
.../ui/android/strings/android_chrome_strings.grd | 7 +++++++
|
||||
4 files changed, 28 insertions(+), 1 deletion(-)
|
||||
chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++
|
||||
.../chrome/browser/LaunchIntentDispatcher.java | 4 ++++
|
||||
.../browser/privacy/settings/PrivacySettings.java | 10 ++++++++++
|
||||
.../ui/android/strings/android_chrome_strings.grd | 7 +++++++
|
||||
4 files changed, 26 insertions(+)
|
||||
|
||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -28,6 +28,11 @@
|
||||
@@ -33,6 +33,11 @@
|
||||
android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings"
|
||||
android:key="do_not_track"
|
||||
android:title="@string/do_not_track_title"
|
||||
android:order="3"/>
|
||||
android:title="@string/do_not_track_title"/>
|
||||
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||
+ android:key="allow_custom_tab_intents"
|
||||
+ android:title="@string/allow_custom_tab_intents_title"
|
||||
+ android:summary="@string/allow_custom_tab_intents_summary"
|
||||
+ android:defaultValue="false" />
|
||||
<org.chromium.components.browser_ui.settings.ChromeBasePreference
|
||||
android:key="secure_dns"
|
||||
android:title="@string/settings_secure_dns_title"
|
||||
<Preference
|
||||
android:key="privacy_sandbox"
|
||||
android:title="@string/prefs_privacy_sandbox"
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
|
||||
@@ -53,6 +53,8 @@ import org.chromium.url.Origin;
|
||||
import java.lang.annotation.Retention;
|
||||
@@ -59,6 +59,8 @@ import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.List;
|
||||
|
||||
+import org.chromium.chrome.browser.privacy.settings.PrivacySettings;
|
||||
+
|
||||
/**
|
||||
* Dispatches incoming intents to the appropriate activity based on the current configuration and
|
||||
* Intent fired.
|
||||
@@ -268,6 +270,8 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
|
||||
@@ -286,6 +288,8 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
|
||||
*/
|
||||
public static boolean isCustomTabIntent(Intent intent) {
|
||||
if (intent == null) return false;
|
||||
|
@ -48,21 +48,15 @@ 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
|
||||
@@ -49,10 +49,12 @@ public class PrivacySettings
|
||||
@@ -47,6 +47,7 @@ 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";
|
||||
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_PRIVACY_SANDBOX};
|
||||
+ PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX,
|
||||
+ PREF_ALLOW_CUSTOM_TAB_INTENTS};
|
||||
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
|
||||
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
|
||||
@@ -120,6 +122,10 @@ public class PrivacySettings
|
||||
@@ -105,6 +106,10 @@ public class PrivacySettings
|
||||
} else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
|
||||
PrivacyPreferencesManagerImpl.getInstance().setNetworkPredictionEnabled(
|
||||
(boolean) newValue);
|
||||
|
@ -73,7 +67,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
}
|
||||
|
||||
return true;
|
||||
@@ -143,6 +149,11 @@ public class PrivacySettings
|
||||
@@ -128,6 +133,11 @@ public class PrivacySettings
|
||||
canMakePaymentPref.setChecked(prefService.getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
|
||||
}
|
||||
|
||||
|
@ -88,7 +82,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
|
||||
@@ -4015,6 +4015,13 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
|
||||
@@ -4225,6 +4225,13 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
<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>
|
||||
|
|
|
@ -5,18 +5,17 @@ Subject: Add exit menu item
|
|||
Corrected Exit functionality
|
||||
---
|
||||
chrome/android/java/res/menu/main_menu.xml | 6 ++++++
|
||||
chrome/android/java/res/menu/main_menu_regroup.xml | 3 +++
|
||||
.../org/chromium/chrome/browser/ChromeTabbedActivity.java | 4 ++++
|
||||
.../src/org/chromium/chrome/browser/app/ChromeActivity.java | 6 ++++++
|
||||
.../chrome/browser/init/ChromeLifetimeController.java | 6 +++++-
|
||||
.../browser/ui/android/strings/android_chrome_strings.grd | 3 +++
|
||||
6 files changed, 27 insertions(+), 1 deletion(-)
|
||||
5 files changed, 24 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
|
||||
@@ -122,6 +122,9 @@
|
||||
android:icon="@drawable/vr_headset" />
|
||||
@@ -121,6 +121,9 @@
|
||||
android:icon="@drawable/gm_filled_cardboard_24" />
|
||||
<item android:id="@+id/managed_by_menu_id"
|
||||
android:title="@string/managed" />
|
||||
+ <item android:id="@+id/exit_id"
|
||||
|
@ -25,7 +24,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
|
|||
</group>
|
||||
|
||||
<!-- Items shown only in the tab switcher -->
|
||||
@@ -148,6 +151,9 @@
|
||||
@@ -147,6 +150,9 @@
|
||||
<item android:id="@id/preferences_id"
|
||||
android:title="@string/menu_settings"
|
||||
android:icon="@drawable/settings_cog" />
|
||||
|
@ -35,23 +34,10 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
|
|||
</group>
|
||||
|
||||
<!-- Items shown only in the tab switcher when start surface is enabled -->
|
||||
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
|
||||
@@ -184,6 +184,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" />
|
||||
</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
|
||||
@@ -189,6 +189,8 @@ import java.lang.annotation.RetentionPolicy;
|
||||
@@ -199,6 +199,8 @@ import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
|
@ -60,7 +46,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||
/**
|
||||
* This is the main activity for ChromeMobile when not running in document mode. All the tabs
|
||||
* are accessible via a chrome specific tab switching UI.
|
||||
@@ -1852,6 +1854,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@@ -1947,6 +1949,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
} else if (id == R.id.close_tab) {
|
||||
getCurrentTabModel().closeTab(currentTab, true, false, true);
|
||||
RecordUserAction.record("MobileTabClosed");
|
||||
|
@ -72,15 +58,15 @@ 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
|
||||
@@ -57,6 +57,7 @@ import org.chromium.base.supplier.UnownedUserDataSupplier;
|
||||
import org.chromium.chrome.R;
|
||||
@@ -59,6 +59,7 @@ import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.ActivityTabProvider;
|
||||
import org.chromium.chrome.browser.ActivityUtils;
|
||||
import org.chromium.chrome.browser.AppHooks;
|
||||
+import org.chromium.chrome.browser.ApplicationLifetime;
|
||||
import org.chromium.chrome.browser.ChromeActivitySessionTracker;
|
||||
import org.chromium.chrome.browser.ChromeApplication;
|
||||
import org.chromium.chrome.browser.ChromeWindow;
|
||||
@@ -2129,6 +2130,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
import org.chromium.chrome.browser.ChromeApplicationImpl;
|
||||
import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate;
|
||||
@@ -2197,6 +2198,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -111,15 +97,15 @@ 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
|
||||
@@ -2954,6 +2954,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
|
||||
@@ -3085,6 +3085,9 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
<message name="IDS_MENU_REQUEST_DESKTOP_SITE_OFF" desc="Accessibility description for when Request Desktop Site is disabled.">
|
||||
Turn on Request desktop site
|
||||
</message>
|
||||
+ <message name="IDS_MENU_EXIT" desc="Menu item for exit browser. [CHAR-LIMIT=27]">
|
||||
+ Exit
|
||||
+ </message>
|
||||
<message name="IDS_MENU_CLOSE_ALL_TABS" desc="Menu item for closing all open tabs. [CHAR-LIMIT=27]">
|
||||
Close all tabs
|
||||
<message name="IDS_MENU_READER_MODE_PREFS" desc="Menu item to show reader mode preferences pane, which allows users to change the appearance (font size, theme, etc.) of the page. [CHAR_LIMIT=27]">
|
||||
Appearance
|
||||
</message>
|
||||
--
|
||||
2.17.1
|
||||
|
|
136
build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch
Normal file
136
build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch
Normal file
|
@ -0,0 +1,136 @@
|
|||
From: Blaise <BlaiseD@GMail.com>
|
||||
Date: Sat, 22 Aug 2020 08:52:40 -0500
|
||||
Subject: Add flag for omnibox autocomplete filtering
|
||||
|
||||
Adds a flag that restricts whether search history, clipboard, bookmarks
|
||||
and internal chrome:// pages will be used for the autocomplete results.
|
||||
---
|
||||
chrome/browser/about_flags.cc | 21 +++++++++++++++++++
|
||||
.../browser/autocomplete_controller.cc | 10 +++++++++
|
||||
.../omnibox/browser/history_url_provider.cc | 3 +++
|
||||
components/omnibox/browser/search_provider.cc | 4 ++++
|
||||
components/url_formatter/url_fixer.cc | 3 +++
|
||||
5 files changed, 41 insertions(+)
|
||||
|
||||
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
|
||||
@@ -531,6 +531,22 @@ const FeatureEntry::FeatureVariation
|
||||
};
|
||||
#endif // OS_ANDROID
|
||||
|
||||
+const FeatureEntry::Choice kOmniboxAutocompleteFiltering[] = {
|
||||
+ {flags_ui::kGenericExperimentChoiceDefault, "", ""},
|
||||
+ {"Search suggestions only",
|
||||
+ "omnibox-autocomplete-filtering",
|
||||
+ "search"},
|
||||
+ {"Search suggestions and bookmarks",
|
||||
+ "omnibox-autocomplete-filtering",
|
||||
+ "search-bookmarks"},
|
||||
+ {"Search suggestions and internal chrome pages",
|
||||
+ "omnibox-autocomplete-filtering",
|
||||
+ "search-chrome"},
|
||||
+ {"Search suggestions, bookmarks, and internal chrome pages",
|
||||
+ "omnibox-autocomplete-filtering",
|
||||
+ "search-bookmarks-chrome"},
|
||||
+};
|
||||
+
|
||||
#if defined(OS_ANDROID)
|
||||
const FeatureEntry::FeatureParam kHideDismissButton[] = {
|
||||
{"dismiss_button", "hide"}};
|
||||
@@ -4784,6 +4800,11 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
FEATURE_VALUE_TYPE(chrome::android::kReaderModeInCCT)},
|
||||
#endif // !defined(OS_ANDROID)
|
||||
|
||||
+ {"omnibox-autocomplete-filtering",
|
||||
+ "Omnibox Autocomplete Filtering",
|
||||
+ "Restrict omnibox autocomplete results to a combination of search suggestions (if enabled), bookmarks, and internal chrome pages. ungoogled-chromium flag.",
|
||||
+ kOsAll, MULTI_VALUE_TYPE(kOmniboxAutocompleteFiltering)},
|
||||
+
|
||||
#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \
|
||||
defined(OS_CHROMEOS)
|
||||
{"direct-manipulation-stylus",
|
||||
diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc
|
||||
--- a/components/omnibox/browser/autocomplete_controller.cc
|
||||
+++ b/components/omnibox/browser/autocomplete_controller.cc
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
#include "base/bind.h"
|
||||
#include "base/check_op.h"
|
||||
+#include "base/command_line.h"
|
||||
#include "base/feature_list.h"
|
||||
#include "base/format_macros.h"
|
||||
#include "base/metrics/histogram.h"
|
||||
@@ -275,6 +276,15 @@ AutocompleteController::AutocompleteController(
|
||||
search_service_worker_signal_sent_(false),
|
||||
template_url_service_(provider_client_->GetTemplateURLService()) {
|
||||
provider_types &= ~OmniboxFieldTrial::GetDisabledProviderTypes();
|
||||
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch("omnibox-autocomplete-filtering")) {
|
||||
+ const std::string flag_value = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII("omnibox-autocomplete-filtering");
|
||||
+ provider_types &= AutocompleteProvider::TYPE_KEYWORD | AutocompleteProvider::TYPE_SEARCH |
|
||||
+ AutocompleteProvider::TYPE_HISTORY_URL | AutocompleteProvider::TYPE_BOOKMARK | AutocompleteProvider::TYPE_BUILTIN;
|
||||
+ if (!base::Contains(flag_value, "bookmarks"))
|
||||
+ provider_types &= ~AutocompleteProvider::TYPE_BOOKMARK;
|
||||
+ if (!base::Contains(flag_value, "chrome"))
|
||||
+ provider_types &= ~AutocompleteProvider::TYPE_BUILTIN;
|
||||
+ }
|
||||
if (provider_types & AutocompleteProvider::TYPE_BOOKMARK)
|
||||
providers_.push_back(new BookmarkProvider(provider_client_.get()));
|
||||
if (provider_types & AutocompleteProvider::TYPE_BUILTIN)
|
||||
diff --git a/components/omnibox/browser/history_url_provider.cc b/components/omnibox/browser/history_url_provider.cc
|
||||
--- a/components/omnibox/browser/history_url_provider.cc
|
||||
+++ b/components/omnibox/browser/history_url_provider.cc
|
||||
@@ -553,6 +553,9 @@ void HistoryURLProvider::Start(const AutocompleteInput& input,
|
||||
if (fixed_up_input.type() != metrics::OmniboxInputType::QUERY)
|
||||
matches_.push_back(what_you_typed_match);
|
||||
|
||||
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch("omnibox-autocomplete-filtering"))
|
||||
+ return;
|
||||
+
|
||||
// We'll need the history service to run both passes, so try to obtain it.
|
||||
history::HistoryService* const history_service =
|
||||
client()->GetHistoryService();
|
||||
diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc
|
||||
--- a/components/omnibox/browser/search_provider.cc
|
||||
+++ b/components/omnibox/browser/search_provider.cc
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "base/base64.h"
|
||||
#include "base/bind.h"
|
||||
#include "base/callback.h"
|
||||
+#include "base/command_line.h"
|
||||
#include "base/feature_list.h"
|
||||
#include "base/i18n/break_iterator.h"
|
||||
#include "base/i18n/case_conversion.h"
|
||||
@@ -643,6 +644,9 @@ void SearchProvider::Run(bool query_is_private) {
|
||||
}
|
||||
|
||||
void SearchProvider::DoHistoryQuery(bool minimal_changes) {
|
||||
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch("omnibox-autocomplete-filtering"))
|
||||
+ return;
|
||||
+
|
||||
// The history query results are synchronous, so if minimal_changes is true,
|
||||
// we still have the last results and don't need to do anything.
|
||||
if (minimal_changes)
|
||||
diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/url_fixer.cc
|
||||
--- a/components/url_formatter/url_fixer.cc
|
||||
+++ b/components/url_formatter/url_fixer.cc
|
||||
@@ -9,6 +9,7 @@
|
||||
#include <algorithm>
|
||||
|
||||
#include "base/check_op.h"
|
||||
+#include "base/command_line.h"
|
||||
#include "base/files/file_path.h"
|
||||
#include "base/files/file_util.h"
|
||||
#include "base/ranges/algorithm.h"
|
||||
@@ -607,6 +608,8 @@ GURL FixupURL(const std::string& text, const std::string& desired_tld) {
|
||||
|
||||
FixupHost(trimmed, parts.host, parts.scheme.is_valid(), desired_tld, &url);
|
||||
if (chrome_url && !parts.host.is_valid())
|
||||
+ if (!base::CommandLine::ForCurrentProcess()->HasSwitch("omnibox-autocomplete-filtering") ||
|
||||
+ base::Contains(base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII("omnibox-autocomplete-filtering"), "chrome"))
|
||||
url.append(kChromeUIDefaultHost);
|
||||
FixupPort(trimmed, parts.port, &url);
|
||||
FixupPath(trimmed, parts.path, &url);
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -14,7 +14,7 @@ Subject: Add flag for save-data-header
|
|||
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
|
||||
@@ -4471,6 +4471,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -4509,6 +4509,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
|
||||
#if defined(OS_ANDROID)
|
||||
|
@ -27,7 +27,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -975,6 +975,10 @@ const char kDisableKeepaliveFetchDescription[] =
|
||||
@@ -1021,6 +1021,10 @@ const char kDisableKeepaliveFetchDescription[] =
|
||||
"Disable fetch with keepalive set "
|
||||
"(https://fetch.spec.whatwg.org/#request-keepalive-flag).";
|
||||
|
||||
|
@ -41,7 +41,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
|
||||
@@ -557,6 +557,9 @@ extern const char kDiagnosticsAppDescription[];
|
||||
@@ -576,6 +576,9 @@ extern const char kDiagnosticsAppDescription[];
|
||||
extern const char kDisableKeepaliveFetchName[];
|
||||
extern const char kDisableKeepaliveFetchDescription[];
|
||||
|
||||
|
@ -70,7 +70,7 @@ diff --git a/content/browser/loader/browser_initiated_resource_request.cc b/cont
|
|||
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
|
||||
@@ -149,6 +149,10 @@ const base::FeatureParam<std::string>
|
||||
@@ -156,6 +156,10 @@ const base::FeatureParam<std::string>
|
||||
const base::Feature kDisableKeepaliveFetch{"DisableKeepaliveFetch",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
|
@ -84,7 +84,7 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c
|
|||
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>
|
||||
@@ -60,6 +60,8 @@ extern const base::FeatureParam<std::string>
|
||||
COMPONENT_EXPORT(NETWORK_CPP)
|
||||
extern const base::Feature kDisableKeepaliveFetch;
|
||||
COMPONENT_EXPORT(NETWORK_CPP)
|
||||
|
|
|
@ -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
|
||||
@@ -865,6 +865,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
|
||||
@@ -882,6 +882,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 ==
|
||||
@@ -3750,6 +3755,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -3824,6 +3829,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kAndroidPictureInPictureAPIName,
|
||||
flag_descriptions::kAndroidPictureInPictureAPIDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(media::kPictureInPictureAPI)},
|
||||
|
@ -44,7 +44,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -1464,6 +1464,10 @@ const char kMediaHistoryDescription[] =
|
||||
@@ -1516,6 +1516,10 @@ const char kMediaHistoryDescription[] =
|
||||
"Enables Media History which records data around media playbacks on "
|
||||
"websites.";
|
||||
|
||||
|
@ -58,7 +58,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
|
|||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -868,6 +868,9 @@ extern const char kLogJsConsoleMessagesDescription[];
|
||||
@@ -886,6 +886,9 @@ extern const char kLogJsConsoleMessagesDescription[];
|
||||
extern const char kMediaHistoryName[];
|
||||
extern const char kMediaHistoryDescription[];
|
||||
|
||||
|
@ -96,7 +96,7 @@ diff --git a/components/network_session_configurator/common/network_features.h b
|
|||
diff --git a/components/network_session_configurator/common/network_switch_list.h b/components/network_session_configurator/common/network_switch_list.h
|
||||
--- a/components/network_session_configurator/common/network_switch_list.h
|
||||
+++ b/components/network_session_configurator/common/network_switch_list.h
|
||||
@@ -22,6 +22,10 @@ NETWORK_SWITCH(kEnableUserAlternateProtocolPorts,
|
||||
@@ -19,6 +19,10 @@ NETWORK_SWITCH(kEnableUserAlternateProtocolPorts,
|
||||
// Enables the QUIC protocol. This is a temporary testing flag.
|
||||
NETWORK_SWITCH(kEnableQuic, "enable-quic")
|
||||
|
||||
|
@ -122,9 +122,9 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket
|
|||
--- a/net/socket/client_socket_pool_manager.cc
|
||||
+++ b/net/socket/client_socket_pool_manager.cc
|
||||
@@ -20,6 +20,10 @@
|
||||
#include "net/socket/client_socket_pool.h"
|
||||
#include "net/socket/connect_job.h"
|
||||
#include "net/ssl/ssl_config.h"
|
||||
#include "third_party/abseil-cpp/absl/types/optional.h"
|
||||
+#include "components/network_session_configurator/common/network_switches.h"
|
||||
+
|
||||
+#include "base/command_line.h"
|
||||
|
|
|
@ -13,7 +13,7 @@ Disable it by default on Android as it is everywhere else
|
|||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -2666,6 +2666,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -2717,6 +2717,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kWebRtcRemoteEventLogName,
|
||||
flag_descriptions::kWebRtcRemoteEventLogDescription, kOsDesktop,
|
||||
FEATURE_VALUE_TYPE(features::kWebRtcRemoteEventLog)},
|
||||
|
@ -27,9 +27,9 @@ 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
|
||||
@@ -1032,6 +1032,11 @@ const char kEnablePciguardUiDescription[] =
|
||||
"Enable toggling Pciguard settings through the Settings App. By default, "
|
||||
"this flag is enabled.";
|
||||
@@ -1098,6 +1098,11 @@ const char kEnablePenetratingImageSelectionDescription[] =
|
||||
"Enables image options to be surfaced in the context menu for nodes "
|
||||
"covered by transparent overlays.";
|
||||
|
||||
+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
|
||||
@@ -594,6 +594,9 @@ extern const char kEnablePortalsDescription[];
|
||||
@@ -628,6 +628,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
|
||||
@@ -246,11 +246,7 @@ const base::Feature kPreloadMetadataLazyLoad{"PreloadMetadataLazyLoad",
|
||||
@@ -255,11 +255,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
|
||||
@@ -4751,6 +4751,11 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -4760,6 +4760,11 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) ||
|
||||
// defined(OS_CHROMEOS)
|
||||
|
||||
|
@ -31,7 +31,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -2922,6 +2922,10 @@ const char kContextualSearchRankerQueryDescription[] =
|
||||
@@ -3003,6 +3003,10 @@ const char kContextualSearchRankerQueryDescription[] =
|
||||
|
||||
const char kContextualSearchSecondTapName[] =
|
||||
"Contextual Search second tap triggering";
|
||||
|
@ -45,8 +45,8 @@ 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
|
||||
@@ -664,6 +664,9 @@ extern const char kEnableWasmThreadsName[];
|
||||
extern const char kEnableWasmThreadsDescription[];
|
||||
@@ -688,6 +688,9 @@ extern const char kEnableWasmSimdName[];
|
||||
extern const char kEnableWasmSimdDescription[];
|
||||
|
||||
extern const char kEnableWasmTieringName[];
|
||||
+extern const char kIPv6ProbingName[];
|
||||
|
@ -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
|
||||
@@ -94,6 +94,7 @@
|
||||
@@ -95,6 +95,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"
|
||||
@@ -3326,8 +3327,14 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) {
|
||||
@@ -3366,8 +3367,14 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) {
|
||||
if (last_ipv6_probe_time_.is_null() ||
|
||||
(tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() >
|
||||
kIPv6ProbePeriodMs) {
|
||||
|
|
|
@ -11,20 +11,20 @@ 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
|
||||
@@ -2619,6 +2619,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kAccelerated2dCanvasName,
|
||||
flag_descriptions::kAccelerated2dCanvasDescription, kOsAll,
|
||||
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAccelerated2dCanvas)},
|
||||
@@ -2765,6 +2765,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
{"clear-old-browsing-data", flag_descriptions::kClearOldBrowsingDataName,
|
||||
flag_descriptions::kClearOldBrowsingDataDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(features::kClearOldBrowsingData)},
|
||||
+ {switches::kDisableWebGL, flag_descriptions::kDisableWebGLName,
|
||||
+ flag_descriptions::kDisableWebGLDescription, kOsAll,
|
||||
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableWebGL)},
|
||||
{"composited-layer-borders", flag_descriptions::kCompositedLayerBordersName,
|
||||
flag_descriptions::kCompositedLayerBordersDescription, kOsAll,
|
||||
SINGLE_VALUE_TYPE(cc::switches::kShowCompositedLayerBorders)},
|
||||
#endif // OS_ANDROID
|
||||
#if BUILDFLAG(ENABLE_NACL)
|
||||
{"enable-nacl", flag_descriptions::kNaclName,
|
||||
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
|
||||
@@ -562,6 +562,10 @@ const char kEnableAudioFocusEnforcementName[] = "Audio Focus Enforcement";
|
||||
@@ -583,6 +583,10 @@ const char kEnableAudioFocusEnforcementName[] = "Audio Focus Enforcement";
|
||||
const char kEnableAudioFocusEnforcementDescription[] =
|
||||
"Enables enforcement of a single media session having audio focus at "
|
||||
"any one time. Requires #enable-media-session-service to be enabled too.";
|
||||
|
@ -38,7 +38,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
|
|||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -347,6 +347,9 @@ extern const char kDisallowDocWrittenScriptsUiDescription[];
|
||||
@@ -356,6 +356,9 @@ extern const char kDocumentTransitionDescription[];
|
||||
|
||||
extern const char kEnableAccessibilityObjectModelName[];
|
||||
extern const char kEnableAccessibilityObjectModelDescription[];
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Tue, 25 May 2021 19:46:14 +0200
|
||||
Subject: Add flag to disable external intent requests
|
||||
|
||||
---
|
||||
chrome/browser/about_flags.cc | 3 +++
|
||||
chrome/browser/flag_descriptions.cc | 6 ++++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
3 files changed, 12 insertions(+)
|
||||
|
||||
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
|
||||
@@ -2708,6 +2708,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kWebrtcCaptureMultiChannelApmName,
|
||||
flag_descriptions::kWebrtcCaptureMultiChannelApmDescription, kOsAll,
|
||||
FEATURE_VALUE_TYPE(features::kWebRtcEnableCaptureMultiChannelApm)},
|
||||
+ {"disable-external-intent-requests", flag_descriptions::kDisableExternalIntentRequestsName,
|
||||
+ flag_descriptions::kDisableExternalIntentRequestsDescription, kOsAll,
|
||||
+ SINGLE_DISABLE_VALUE_TYPE("disable-external-intent-requests")},
|
||||
{"disable-webrtc-hw-decoding", flag_descriptions::kWebrtcHwDecodingName,
|
||||
flag_descriptions::kWebrtcHwDecodingDescription, kOsAndroid | kOsCrOS,
|
||||
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableWebRtcHWDecoding)},
|
||||
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
|
||||
@@ -3119,6 +3119,12 @@ const char kIntentBlockExternalFormRedirectsNoGestureDescription[] =
|
||||
"Require a user gesture that triggered a form submission in order to "
|
||||
"allow for redirecting to an external intent.";
|
||||
|
||||
+const char kDisableExternalIntentRequestsName[] =
|
||||
+ "Never forward URL requests to external intents";
|
||||
+const char kDisableExternalIntentRequestsDescription[] =
|
||||
+ "URL requests will never"
|
||||
+ "allow for redirecting to an external intent.";
|
||||
+
|
||||
const char kInterestFeedContentSuggestionsDescription[] =
|
||||
"Use the interest feed to render content suggestions. Currently "
|
||||
"content "
|
||||
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
|
||||
@@ -1810,6 +1810,9 @@ extern const char kInstantStartDescription[];
|
||||
extern const char kIntentBlockExternalFormRedirectsNoGestureName[];
|
||||
extern const char kIntentBlockExternalFormRedirectsNoGestureDescription[];
|
||||
|
||||
+extern const char kDisableExternalIntentRequestsName[];
|
||||
+extern const char kDisableExternalIntentRequestsDescription[];
|
||||
+
|
||||
extern const char kInterestFeedContentSuggestionsName[];
|
||||
extern const char kInterestFeedContentSuggestionsDescription[];
|
||||
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -1,185 +0,0 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 22 Oct 2018 21:29:53 +0200
|
||||
Subject: Add flags to disable device motion/orientation APIs
|
||||
|
||||
Both flags will be disabled by default and prevent usage of gyroscope and
|
||||
legacy acceleration events.
|
||||
---
|
||||
chrome/browser/about_flags.cc | 6 ++++++
|
||||
chrome/browser/flag_descriptions.cc | 8 ++++++++
|
||||
chrome/browser/flag_descriptions.h | 6 ++++++
|
||||
content/child/runtime_features.cc | 3 +++
|
||||
content/public/common/content_features.cc | 10 ++++++++++
|
||||
content/public/common/content_features.h | 2 ++
|
||||
.../blink/public/platform/web_runtime_features.h | 2 ++
|
||||
.../blink/renderer/modules/modules_initializer.cc | 10 +++++++---
|
||||
.../renderer/platform/exported/web_runtime_features.cc | 8 ++++++++
|
||||
.../renderer/platform/runtime_enabled_features.json5 | 8 ++++++++
|
||||
10 files changed, 60 insertions(+), 3 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
|
||||
@@ -2856,6 +2856,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
{"enable-gpu-rasterization", flag_descriptions::kGpuRasterizationName,
|
||||
flag_descriptions::kGpuRasterizationDescription, kOsAll,
|
||||
MULTI_VALUE_TYPE(kEnableGpuRasterizationChoices)},
|
||||
+ {"enable-device-motion", flag_descriptions::kEnableDeviceMotionName,
|
||||
+ flag_descriptions::kEnableDeviceMotionDescription, kOsAll,
|
||||
+ FEATURE_VALUE_TYPE(features::kDeviceMotion)},
|
||||
+ {"enable-device-orientation", flag_descriptions::kEnableDeviceOrientationName,
|
||||
+ flag_descriptions::kEnableDeviceOrientationDescription, kOsAll,
|
||||
+ FEATURE_VALUE_TYPE(features::kDeviceOrientation)},
|
||||
{"enable-oop-rasterization", flag_descriptions::kOopRasterizationName,
|
||||
flag_descriptions::kOopRasterizationDescription, kOsAll,
|
||||
MULTI_VALUE_TYPE(kEnableOopRasterizationChoices)},
|
||||
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
|
||||
@@ -821,6 +821,14 @@ const char kWinrtSensorsImplementationDescription[] =
|
||||
"Enables usage of the Windows.Devices.Sensors WinRT APIs on Windows for "
|
||||
"sensors";
|
||||
|
||||
+const char kEnableDeviceMotionName[] = "Enable device motion";
|
||||
+const char kEnableDeviceMotionDescription[] =
|
||||
+ "Enable device motion API which is used to detect changes in acceleration";
|
||||
+
|
||||
+const char kEnableDeviceOrientationName[] = "Enable device orientation";
|
||||
+const char kEnableDeviceOrientationDescription[] =
|
||||
+ "Enable device orientation API which is used to detect changes in orientation";
|
||||
+
|
||||
const char kEnableGenericSensorExtraClassesName[] =
|
||||
"Generic Sensor Extra Classes";
|
||||
const char kEnableGenericSensorExtraClassesDescription[] =
|
||||
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
|
||||
@@ -494,6 +494,12 @@ extern const char kWinrtGeolocationImplementationDescription[];
|
||||
extern const char kWinrtSensorsImplementationName[];
|
||||
extern const char kWinrtSensorsImplementationDescription[];
|
||||
|
||||
+extern const char kEnableDeviceMotionName[];
|
||||
+extern const char kEnableDeviceMotionDescription[];
|
||||
+
|
||||
+extern const char kEnableDeviceOrientationName[];
|
||||
+extern const char kEnableDeviceOrientationDescription[];
|
||||
+
|
||||
extern const char kEnableGenericSensorExtraClassesName[];
|
||||
extern const char kEnableGenericSensorExtraClassesDescription[];
|
||||
|
||||
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
|
||||
@@ -89,6 +89,9 @@ void SetRuntimeFeatureDefaultsForPlatform(
|
||||
command_line.HasSwitch(
|
||||
blink::switches::kEnableGpuMemoryBufferCompositorResources) &&
|
||||
!command_line.HasSwitch(switches::kDisableWebGLImageChromium) &&
|
||||
+ WebRuntimeFeatures::EnableDeviceMotion(base::FeatureList::IsEnabled(features::kDeviceMotion));
|
||||
+ WebRuntimeFeatures::EnableDeviceOrientation(base::FeatureList::IsEnabled(features::kDeviceOrientation));
|
||||
+
|
||||
!command_line.HasSwitch(switches::kDisableGpu) &&
|
||||
base::FeatureList::IsEnabled(features::kWebGLImageChromium);
|
||||
#else
|
||||
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
|
||||
@@ -886,6 +886,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;
|
||||
+// no user authorization or notifications happens when in use.
|
||||
+const base::Feature kDeviceMotion{"DeviceMotion",
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+
|
||||
+// Enables the device orientation API used to track device orientation;
|
||||
+// no user authorization or notifications happens when in use.
|
||||
+const base::Feature kDeviceOrientation{"DeviceOrientation",
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+
|
||||
|
||||
// Minimal user interface experience for payments on the web.
|
||||
const base::Feature kWebPaymentsMinimalUI{"WebPaymentsMinimalUI",
|
||||
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
|
||||
@@ -209,6 +209,8 @@ CONTENT_EXPORT extern const base::Feature kWebXrHandInput;
|
||||
CONTENT_EXPORT extern const base::Feature kWebXrHitTest;
|
||||
CONTENT_EXPORT extern const base::Feature kWebXrIncubations;
|
||||
|
||||
+CONTENT_EXPORT extern const base::Feature kDeviceMotion, kDeviceOrientation;
|
||||
+
|
||||
#if defined(OS_ANDROID)
|
||||
CONTENT_EXPORT extern const base::Feature kAndroidAutofillAccessibility;
|
||||
CONTENT_EXPORT extern const base::Feature
|
||||
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
|
||||
@@ -97,6 +97,8 @@ class WebRuntimeFeatures {
|
||||
BLINK_PLATFORM_EXPORT static void EnableCompositeRelativeKeyframes(
|
||||
bool enable);
|
||||
BLINK_PLATFORM_EXPORT static void EnableCookieDeprecationMessages(bool);
|
||||
+ BLINK_PLATFORM_EXPORT static void EnableDeviceMotion(bool);
|
||||
+ BLINK_PLATFORM_EXPORT static void EnableDeviceOrientation(bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableCookiesWithoutSameSiteMustBeSecure(
|
||||
bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableCanvas2dImageChromium(bool);
|
||||
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
|
||||
@@ -222,9 +222,13 @@ void ModulesInitializer::OnClearWindowObjectInMainWorld(
|
||||
Document& document,
|
||||
const Settings& settings) const {
|
||||
LocalDOMWindow& window = *document.domWindow();
|
||||
- DeviceMotionController::From(window);
|
||||
- DeviceOrientationController::From(window);
|
||||
- DeviceOrientationAbsoluteController::From(window);
|
||||
+ if (RuntimeEnabledFeatures::DeviceMotionEnabled())
|
||||
+ DeviceMotionController::From(window);
|
||||
+ if (RuntimeEnabledFeatures::DeviceOrientationEnabled()) {
|
||||
+ DeviceOrientationController::From(window);
|
||||
+ DeviceOrientationAbsoluteController::From(window);
|
||||
+ }
|
||||
+
|
||||
NavigatorGamepad::From(*window.navigator());
|
||||
|
||||
// TODO(nhiroki): Figure out why ServiceWorkerContainer needs to be eagerly
|
||||
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
|
||||
@@ -195,6 +195,14 @@ void WebRuntimeFeatures::EnableKeyboardAccessibleTooltip(bool enable) {
|
||||
RuntimeEnabledFeatures::SetKeyboardAccessibleTooltipEnabled(enable);
|
||||
}
|
||||
|
||||
+void WebRuntimeFeatures::EnableDeviceMotion(bool enable) {
|
||||
+ RuntimeEnabledFeatures::SetDeviceMotionEnabled(enable);
|
||||
+}
|
||||
+
|
||||
+void WebRuntimeFeatures::EnableDeviceOrientation(bool enable) {
|
||||
+ RuntimeEnabledFeatures::SetDeviceOrientationEnabled(enable);
|
||||
+}
|
||||
+
|
||||
void WebRuntimeFeatures::EnableKeyboardFocusableScrollers(bool enable) {
|
||||
RuntimeEnabledFeatures::SetKeyboardFocusableScrollersEnabled(enable);
|
||||
}
|
||||
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
|
||||
@@ -1437,6 +1437,14 @@
|
||||
name: "OffscreenCanvasCommit",
|
||||
status: "experimental",
|
||||
},
|
||||
+ {
|
||||
+ name: "DeviceMotion",
|
||||
+ status: "stable",
|
||||
+ },
|
||||
+ {
|
||||
+ name: "DeviceOrientation",
|
||||
+ status: "stable",
|
||||
+ },
|
||||
{
|
||||
name: "OnDeviceChange",
|
||||
// Android does not yet support SystemMonitor.
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -3,20 +3,20 @@ Date: Fri, 7 Aug 2020 16:33:47 +0000
|
|||
Subject: Add history support in incognito mode
|
||||
|
||||
---
|
||||
.../java/res/xml/privacy_preferences.xml | 5 +++++
|
||||
.../privacy/settings/PrivacySettings.java | 19 +++++++++++++++++++
|
||||
chrome/browser/history/history_tab_helper.cc | 16 ++++++++++++++++
|
||||
chrome/browser/history/history_tab_helper.h | 4 ++++
|
||||
chrome/browser/prefs/browser_prefs.cc | 3 +++
|
||||
.../strings/android_chrome_strings.grd | 6 ++++++
|
||||
chrome/common/pref_names.cc | 5 +++++
|
||||
chrome/common/pref_names.h | 4 ++++
|
||||
8 files changed, 62 insertions(+)
|
||||
.../java/res/xml/privacy_preferences.xml | 5 +++++
|
||||
.../privacy/settings/PrivacySettings.java | 18 ++++++++++++++++++
|
||||
chrome/browser/history/history_tab_helper.cc | 16 ++++++++++++++++
|
||||
chrome/browser/history/history_tab_helper.h | 4 ++++
|
||||
chrome/browser/prefs/browser_prefs.cc | 3 +++
|
||||
.../android/strings/android_chrome_strings.grd | 6 ++++++
|
||||
chrome/common/pref_names.cc | 5 +++++
|
||||
chrome/common/pref_names.h | 4 ++++
|
||||
8 files changed, 61 insertions(+)
|
||||
|
||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -32,6 +32,11 @@
|
||||
@@ -38,6 +38,11 @@
|
||||
android:title="@string/close_tabs_on_exit_title"
|
||||
android:summary="@string/close_tabs_on_exit_summary"
|
||||
android:defaultValue="false" />
|
||||
|
@ -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
|
||||
@@ -40,12 +40,15 @@ import org.chromium.components.user_prefs.UserPrefs;
|
||||
@@ -39,12 +39,15 @@ import org.chromium.components.user_prefs.UserPrefs;
|
||||
import org.chromium.ui.text.NoUnderlineClickableSpan;
|
||||
import org.chromium.ui.text.SpanApplier;
|
||||
|
||||
|
@ -47,15 +47,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
|
||||
private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
|
||||
private static final String PREF_SECURE_DNS = "secure_dns";
|
||||
@@ -57,6 +60,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_ALWAYS_INCOGNITO,
|
||||
+ PREF_INCOGNITO_TAB_HISTORY_ENABLED,
|
||||
PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS,
|
||||
PREF_CLOSE_TABS_ON_EXIT,
|
||||
PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX,
|
||||
@@ -118,6 +122,11 @@ public class PrivacySettings
|
||||
@@ -99,6 +102,11 @@ public class PrivacySettings
|
||||
Preference secureDnsPref = findPreference(PREF_SECURE_DNS);
|
||||
secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled());
|
||||
|
||||
|
@ -67,7 +59,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
updateSummaries();
|
||||
}
|
||||
|
||||
@@ -138,6 +147,9 @@ public class PrivacySettings
|
||||
@@ -119,6 +127,9 @@ public class PrivacySettings
|
||||
SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
|
||||
sharedPreferencesEditor.putBoolean(PREF_ALLOW_CUSTOM_TAB_INTENTS, (boolean)newValue);
|
||||
sharedPreferencesEditor.apply();
|
||||
|
@ -77,7 +69,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
}
|
||||
|
||||
return true;
|
||||
@@ -188,6 +200,13 @@ public class PrivacySettings
|
||||
@@ -169,6 +180,13 @@ public class PrivacySettings
|
||||
(ChromeSwitchPreference) findPreference(PREF_CLOSE_TABS_ON_EXIT);
|
||||
closeTabsOnExitPref.setOnPreferenceChangeListener(this);
|
||||
closeTabsOnExitPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
|
@ -94,17 +86,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/history/history_tab_helper.cc
|
||||
--- a/chrome/browser/history/history_tab_helper.cc
|
||||
+++ b/chrome/browser/history/history_tab_helper.cc
|
||||
@@ -28,6 +28,9 @@
|
||||
#if defined(OS_ANDROID)
|
||||
#include "chrome/browser/android/background_tab_manager.h"
|
||||
#include "components/feed/feed_feature_list.h"
|
||||
@@ -29,6 +29,9 @@
|
||||
#include "chrome/browser/android/feed/v2/feed_service_factory.h"
|
||||
#include "components/feed/core/v2/public/feed_api.h"
|
||||
#include "components/feed/core/v2/public/feed_service.h"
|
||||
+#include "chrome/common/pref_names.h"
|
||||
+#include "components/prefs/pref_registry_simple.h"
|
||||
+#include "components/prefs/pref_service.h"
|
||||
#else
|
||||
#include "chrome/browser/ui/browser.h"
|
||||
#include "chrome/browser/ui/browser_finder.h"
|
||||
@@ -258,6 +261,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
|
||||
@@ -277,6 +280,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
|
||||
history::HistoryService* HistoryTabHelper::GetHistoryService() {
|
||||
Profile* profile =
|
||||
Profile::FromBrowserContext(web_contents()->GetBrowserContext());
|
||||
|
@ -118,7 +110,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
|
|||
if (profile->IsOffTheRecord())
|
||||
return NULL;
|
||||
|
||||
@@ -265,6 +275,12 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
|
||||
@@ -284,6 +294,12 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
|
||||
profile, ServiceAccessType::IMPLICIT_ACCESS);
|
||||
}
|
||||
|
||||
|
@ -135,7 +127,7 @@ diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/histor
|
|||
--- a/chrome/browser/history/history_tab_helper.h
|
||||
+++ b/chrome/browser/history/history_tab_helper.h
|
||||
@@ -10,6 +10,8 @@
|
||||
#include "base/time/time.h"
|
||||
#include "build/build_config.h"
|
||||
#include "content/public/browser/web_contents_observer.h"
|
||||
#include "content/public/browser/web_contents_user_data.h"
|
||||
+#include "components/prefs/pref_registry_simple.h"
|
||||
|
@ -143,9 +135,9 @@ diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/histor
|
|||
|
||||
namespace history {
|
||||
struct HistoryAddPageArgs;
|
||||
@@ -46,6 +48,8 @@ class HistoryTabHelper : public content::WebContentsObserver,
|
||||
int nav_entry_id,
|
||||
content::NavigationHandle* navigation_handle);
|
||||
@@ -51,6 +53,8 @@ class HistoryTabHelper : public content::WebContentsObserver,
|
||||
force_eligibile_tab_for_testing_ = force;
|
||||
}
|
||||
|
||||
+ static void RegisterProfilePrefs(PrefRegistrySimple* registry);
|
||||
+
|
||||
|
@ -155,7 +147,7 @@ diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/histor
|
|||
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
|
||||
--- a/chrome/browser/prefs/browser_prefs.cc
|
||||
+++ b/chrome/browser/prefs/browser_prefs.cc
|
||||
@@ -208,6 +208,8 @@
|
||||
@@ -210,6 +210,8 @@
|
||||
#endif
|
||||
|
||||
#if defined(OS_ANDROID)
|
||||
|
@ -164,7 +156,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"
|
||||
@@ -1027,6 +1029,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
|
||||
@@ -1083,6 +1085,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
|
||||
variations::VariationsService::RegisterProfilePrefs(registry);
|
||||
video_tutorials::RegisterPrefs(registry);
|
||||
feed::prefs::RegisterFeedSharedProfilePrefs(registry);
|
||||
|
@ -175,7 +167,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
|
||||
@@ -917,6 +917,12 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
@@ -933,6 +933,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>
|
||||
|
@ -191,8 +183,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
|
||||
@@ -3152,6 +3152,11 @@ const char kShowCaretBrowsingDialog[] =
|
||||
const char kLacrosAllowed[] = "lacros_allowed";
|
||||
@@ -3159,6 +3159,11 @@ const char kLacrosAllowed[] = "lacros_allowed";
|
||||
const char kLacrosLaunchSwitch[] = "lacros_launch_switch";
|
||||
#endif
|
||||
|
||||
+#if defined(OS_ANDROID)
|
||||
|
@ -206,9 +198,9 @@ diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
|
|||
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
|
||||
--- a/chrome/common/pref_names.h
|
||||
+++ b/chrome/common/pref_names.h
|
||||
@@ -1131,6 +1131,10 @@ extern const char kFetchKeepaliveDurationOnShutdown[];
|
||||
@@ -1147,6 +1147,10 @@ extern const char kPdfAnnotationsEnabled[];
|
||||
|
||||
extern const char kSuppressDifferentOriginSubframeJSDialogs[];
|
||||
extern const char kExplicitlyAllowedNetworkPorts[];
|
||||
|
||||
+#if defined(OS_ANDROID)
|
||||
+extern const char kIncognitoTabHistoryEnabled[];
|
||||
|
|
|
@ -3,28 +3,32 @@ 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 | 9 +++
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 26 ++++++++
|
||||
.../browser/bookmarks/BookmarkBridge.java | 61 +++++++++++++++++++
|
||||
chrome/android/java/res/menu/main_menu.xml | 7 ++
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 26 +++++++
|
||||
.../browser/bookmarks/BookmarkBridge.java | 71 +++++++++++++++++--
|
||||
.../browser/bookmarks/BookmarkUtils.java | 4 ++
|
||||
.../android/bookmarks/bookmark_bridge.cc | 17 ++++++
|
||||
.../android/bookmarks/bookmark_bridge.cc | 17 +++++
|
||||
.../android/bookmarks/bookmark_bridge.h | 4 ++
|
||||
.../browser/bookmarks/bookmark_html_writer.cc | 10 +++
|
||||
.../bookmarks/chrome_bookmark_client.cc | 2 +
|
||||
.../dialogs/DownloadLocationCustomView.java | 4 +-
|
||||
.../strings/android_chrome_strings.grd | 3 +
|
||||
components/bookmark_bar_strings.grdp | 6 ++
|
||||
.../bookmarks/browser/bookmark_codec.cc | 24 +++++--
|
||||
components/bookmarks/browser/bookmark_codec.h | 7 +-
|
||||
.../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_model.h | 7 ++
|
||||
components/bookmarks/browser/bookmark_node.cc | 13 ++++
|
||||
components/bookmarks/browser/bookmark_node.h | 5 ++
|
||||
16 files changed, 172 insertions(+), 1 deletion(-)
|
||||
components/bookmarks/browser/model_loader.cc | 3 +-
|
||||
20 files changed, 208 insertions(+), 14 deletions(-)
|
||||
|
||||
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 @@
|
||||
@@ -61,6 +61,10 @@
|
||||
<item android:id="@+id/all_bookmarks_menu_id"
|
||||
android:title="@string/menu_bookmarks"
|
||||
android:icon="@drawable/btn_star_filled" />
|
||||
|
@ -35,7 +39,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
|
|||
<item android:id="@+id/recent_tabs_menu_id"
|
||||
android:title="@string/menu_recent_tabs"
|
||||
android:icon="@drawable/devices_black_24dp" />
|
||||
@@ -145,6 +149,9 @@
|
||||
@@ -144,6 +148,9 @@
|
||||
<item android:id="@+id/menu_group_tabs"
|
||||
android:title="@string/menu_group_tabs"
|
||||
android:icon="@drawable/ic_widgets" />
|
||||
|
@ -45,43 +49,10 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
|
|||
<item android:id="@+id/track_prices_row_menu_id"
|
||||
android:title="@string/menu_track_prices"
|
||||
android:icon="@drawable/ic_trending_down_black" />
|
||||
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
|
||||
@@ -89,6 +89,9 @@
|
||||
android:icon="@drawable/btn_star" />
|
||||
</menu>
|
||||
</item>
|
||||
+ <item android:id="@+id/bookmark_all_tabs_menu_id"
|
||||
+ android:title="@string/menu_bookmark_all_tabs"
|
||||
+ android:icon="@drawable/ic_folder_blue_24dp" />
|
||||
<item android:id="@+id/recent_tabs_menu_id"
|
||||
android:title="@string/menu_recent_tabs"
|
||||
android:icon="@drawable/devices_black_24dp" />
|
||||
@@ -210,6 +213,9 @@
|
||||
<item android:id="@+id/menu_group_tabs"
|
||||
android:title="@string/menu_group_tabs"
|
||||
android:icon="@drawable/ic_widgets" />
|
||||
+ <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/track_prices_row_menu_id"
|
||||
android:title="@string/menu_track_prices"
|
||||
android:icon="@drawable/ic_trending_down_black" />
|
||||
@@ -252,6 +258,9 @@
|
||||
<item android:id="@id/menu_group_tabs"
|
||||
android:title="@string/menu_group_tabs"
|
||||
android:icon="@drawable/ic_widgets" />
|
||||
+ <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/track_prices_row_menu_id"
|
||||
android:title="@string/menu_track_prices"
|
||||
android:icon="@drawable/ic_trending_down_black" />
|
||||
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
|
||||
@@ -66,6 +66,8 @@ import org.chromium.chrome.browser.app.tabmodel.ChromeNextTabPolicySupplier;
|
||||
@@ -70,6 +70,8 @@ import org.chromium.chrome.browser.app.tabmodel.ChromeNextTabPolicySupplier;
|
||||
import org.chromium.chrome.browser.app.tabmodel.TabModelOrchestrator;
|
||||
import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
|
||||
import org.chromium.chrome.browser.app.tabmodel.TabbedModeTabModelOrchestrator;
|
||||
|
@ -90,7 +61,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||
import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
|
||||
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
|
||||
import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator;
|
||||
@@ -1864,6 +1866,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@@ -1959,6 +1961,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
// Close both incognito and normal tabs
|
||||
getTabModelSelector().closeAllTabs();
|
||||
RecordUserAction.record("MobileMenuCloseAllTabs");
|
||||
|
@ -99,7 +70,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||
} else if (id == R.id.close_all_incognito_tabs_menu_id) {
|
||||
// Close only incognito tabs
|
||||
getTabModelSelector().getModel(true).closeAllTabs();
|
||||
@@ -1899,6 +1903,28 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@@ -2008,6 +2012,28 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
mTabModalHandler.onOmniboxFocusChanged(hasFocus);
|
||||
}
|
||||
|
||||
|
@ -113,7 +84,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||
+
|
||||
+ final BookmarkBridge bridge = mBookmarkBridgeSupplier.get();
|
||||
+ final BookmarkModel bookmarkModel = new BookmarkModel();
|
||||
+ bookmarkModel.finishLoadingBookmarkModel(() -> {
|
||||
+ bookmarkModel.finishLoadingBookmarkModel(() -> {
|
||||
+ for (int i = 0; i < tabModel.getCount(); i++) {
|
||||
+ Tab tab = tabModel.getTabAt(i);
|
||||
+ if (tab.isNativePage()) {
|
||||
|
@ -183,6 +154,26 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
/**
|
||||
* @return Id representing the special "other" folder from bookmark model.
|
||||
*/
|
||||
@@ -770,14 +787,14 @@ public class BookmarkBridge {
|
||||
if (mDialogModel != null) return;
|
||||
|
||||
// Actually show the dialog.
|
||||
- mCustomView = (DownloadLocationCustomView) LayoutInflater.from(mContext).inflate(
|
||||
+ mCustomView = (DownloadLocationCustomView) LayoutInflater.from(context).inflate(
|
||||
R.layout.download_location_dialog, null);
|
||||
- mCustomView.initialize(
|
||||
- DownloadLocationDialogType.DEFAULT, new File(standardBoorkmarkName),
|
||||
- /*totalBytes*/ 0, context.getString(R.string.export_bookmarks_alert_title));
|
||||
+ mCustomView.initialize(DownloadLocationDialogType.DEFAULT, /*totalBytes*/ 0);
|
||||
+ mCustomView.setTitle(context.getString(R.string.export_bookmarks_alert_title));
|
||||
+ mCustomView.setFileName(standardBoorkmarkName);
|
||||
mCustomView.mDontShowAgain.setVisibility(View.GONE);
|
||||
|
||||
- Resources resources = mContext.getResources();
|
||||
+ Resources resources = context.getResources();
|
||||
mDialogModel = new PropertyModel.Builder(ModalDialogProperties.ALL_KEYS)
|
||||
.with(ModalDialogProperties.CONTROLLER, this)
|
||||
.with(ModalDialogProperties.CUSTOM_VIEW, mCustomView)
|
||||
@@ -1099,6 +1116,49 @@ public class BookmarkBridge {
|
||||
mNativeBookmarkBridge, BookmarkBridge.this, title, url);
|
||||
}
|
||||
|
@ -244,7 +235,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
|
||||
@@ -502,6 +502,7 @@ public class BookmarkUtils {
|
||||
@@ -508,6 +508,7 @@ public class BookmarkUtils {
|
||||
List<BookmarkId> topLevelFolders = new ArrayList<>();
|
||||
BookmarkId desktopNodeId = bookmarkModel.getDesktopFolderId();
|
||||
BookmarkId mobileNodeId = bookmarkModel.getMobileFolderId();
|
||||
|
@ -252,7 +243,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
BookmarkId othersNodeId = bookmarkModel.getOtherFolderId();
|
||||
|
||||
List<BookmarkId> specialFoldersIds =
|
||||
@@ -527,6 +528,9 @@ public class BookmarkUtils {
|
||||
@@ -533,6 +534,9 @@ public class BookmarkUtils {
|
||||
if (bookmarkModel.isFolderVisible(mobileNodeId)) {
|
||||
topLevelFolders.add(mobileNodeId);
|
||||
}
|
||||
|
@ -265,7 +256,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browser/android/bookmarks/bookmark_bridge.cc
|
||||
--- a/chrome/browser/android/bookmarks/bookmark_bridge.cc
|
||||
+++ b/chrome/browser/android/bookmarks/bookmark_bridge.cc
|
||||
@@ -422,6 +422,11 @@ void BookmarkBridge::GetTopLevelFolderIDs(
|
||||
@@ -424,6 +424,11 @@ void BookmarkBridge::GetTopLevelFolderIDs(
|
||||
top_level_folders.push_back(node.get());
|
||||
}
|
||||
|
||||
|
@ -277,7 +268,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
|||
for (const auto& node : bookmark_model_->bookmark_bar_node()->children()) {
|
||||
if (node->is_folder())
|
||||
top_level_folders.push_back(node.get());
|
||||
@@ -460,6 +465,7 @@ void BookmarkBridge::GetAllFoldersWithDepths(
|
||||
@@ -462,6 +467,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(),
|
||||
|
@ -285,7 +276,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
|||
bookmark_model_->bookmark_bar_node(),
|
||||
bookmark_model_->other_node(),
|
||||
};
|
||||
@@ -514,6 +520,17 @@ ScopedJavaLocalRef<jobject> BookmarkBridge::GetMobileFolderId(
|
||||
@@ -516,6 +522,17 @@ ScopedJavaLocalRef<jobject> BookmarkBridge::GetMobileFolderId(
|
||||
return folder_id_obj;
|
||||
}
|
||||
|
||||
|
@ -317,6 +308,33 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser
|
|||
base::android::ScopedJavaLocalRef<jobject> GetOtherFolderId(
|
||||
JNIEnv* env,
|
||||
const base::android::JavaParamRef<jobject>& obj);
|
||||
diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/bookmarks/bookmark_html_writer.cc
|
||||
--- a/chrome/browser/bookmarks/bookmark_html_writer.cc
|
||||
+++ b/chrome/browser/bookmarks/bookmark_html_writer.cc
|
||||
@@ -212,6 +212,14 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
|
||||
return;
|
||||
}
|
||||
|
||||
+ base::Value* tabs_collection_value = nullptr;
|
||||
+ if (roots_d_value->Get(BookmarkCodec::kTabsBookmarkFolderNameKey,
|
||||
+ &tabs_collection_value) &&
|
||||
+ tabs_collection_value->type() == base::Value::Type::DICTIONARY) {
|
||||
+ WriteNode(*static_cast<base::DictionaryValue*>(tabs_collection_value),
|
||||
+ BookmarkNode::TABS_COLLECTION);
|
||||
+ }
|
||||
+
|
||||
DecrementIndent();
|
||||
|
||||
Write(kFolderChildrenEnd);
|
||||
@@ -484,6 +492,8 @@ void BookmarkFaviconFetcher::ExportBookmarks() {
|
||||
BookmarkModelFactory::GetForBrowserContext(profile_)->other_node());
|
||||
ExtractUrls(
|
||||
BookmarkModelFactory::GetForBrowserContext(profile_)->mobile_node());
|
||||
+ ExtractUrls(
|
||||
+ BookmarkModelFactory::GetForBrowserContext(profile_)->tabs_collection_node());
|
||||
if (!bookmark_urls_.empty())
|
||||
FetchNextFavicon();
|
||||
else
|
||||
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
|
||||
|
@ -329,17 +347,38 @@ diff --git a/chrome/browser/bookmarks/chrome_bookmark_client.cc b/chrome/browser
|
|||
}
|
||||
|
||||
return false;
|
||||
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
|
||||
@@ -75,7 +75,7 @@ public class DownloadLocationCustomView
|
||||
mDirectoryAdapter.update();
|
||||
}
|
||||
|
||||
- void setTitle(CharSequence title) {
|
||||
+ public void setTitle(CharSequence title) {
|
||||
mTitle.setText(title);
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ public class DownloadLocationCustomView
|
||||
mSubtitleView.setText(subtitle);
|
||||
}
|
||||
|
||||
- void setFileName(CharSequence fileName) {
|
||||
+ public void setFileName(CharSequence fileName) {
|
||||
mFileName.setText(fileName);
|
||||
}
|
||||
|
||||
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
|
||||
@@ -3017,6 +3017,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]">
|
||||
@@ -3155,6 +3155,9 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
<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]">
|
||||
<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
|
||||
|
@ -365,6 +404,157 @@ diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_stri
|
|||
<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_codec.cc b/components/bookmarks/browser/bookmark_codec.cc
|
||||
--- a/components/bookmarks/browser/bookmark_codec.cc
|
||||
+++ b/components/bookmarks/browser/bookmark_codec.cc
|
||||
@@ -32,6 +32,7 @@ const char BookmarkCodec::kRootFolderNameKey[] = "bookmark_bar";
|
||||
const char BookmarkCodec::kOtherBookmarkFolderNameKey[] = "other";
|
||||
// The value is left as 'synced' for historical reasons.
|
||||
const char BookmarkCodec::kMobileBookmarkFolderNameKey[] = "synced";
|
||||
+const char BookmarkCodec::kTabsBookmarkFolderNameKey[] = "tabs";
|
||||
const char BookmarkCodec::kVersionKey[] = "version";
|
||||
const char BookmarkCodec::kChecksumKey[] = "checksum";
|
||||
const char BookmarkCodec::kIdKey[] = "id";
|
||||
@@ -62,7 +63,8 @@ std::unique_ptr<base::Value> BookmarkCodec::Encode(
|
||||
BookmarkModel* model,
|
||||
const std::string& sync_metadata_str) {
|
||||
return Encode(model->bookmark_bar_node(), model->other_node(),
|
||||
- model->mobile_node(), model->root_node()->GetMetaInfoMap(),
|
||||
+ model->mobile_node(), model->tabs_collection_node(),
|
||||
+ model->root_node()->GetMetaInfoMap(),
|
||||
sync_metadata_str);
|
||||
}
|
||||
|
||||
@@ -70,6 +72,7 @@ std::unique_ptr<base::Value> BookmarkCodec::Encode(
|
||||
const BookmarkNode* bookmark_bar_node,
|
||||
const BookmarkNode* other_folder_node,
|
||||
const BookmarkNode* mobile_folder_node,
|
||||
+ const BookmarkNode* tabs_folder_node,
|
||||
const BookmarkNode::MetaInfoMap* model_meta_info_map,
|
||||
const std::string& sync_metadata_str) {
|
||||
ids_reassigned_ = false;
|
||||
@@ -79,6 +82,7 @@ std::unique_ptr<base::Value> BookmarkCodec::Encode(
|
||||
roots->Set(kRootFolderNameKey, EncodeNode(bookmark_bar_node));
|
||||
roots->Set(kOtherBookmarkFolderNameKey, EncodeNode(other_folder_node));
|
||||
roots->Set(kMobileBookmarkFolderNameKey, EncodeNode(mobile_folder_node));
|
||||
+ roots->Set(kTabsBookmarkFolderNameKey, EncodeNode(tabs_folder_node));
|
||||
if (model_meta_info_map)
|
||||
roots->Set(kMetaInfo, EncodeMetaInfo(*model_meta_info_map));
|
||||
auto main = std::make_unique<base::DictionaryValue>();
|
||||
@@ -102,6 +106,7 @@ bool BookmarkCodec::Decode(const base::Value& value,
|
||||
BookmarkNode* bb_node,
|
||||
BookmarkNode* other_folder_node,
|
||||
BookmarkNode* mobile_folder_node,
|
||||
+ BookmarkNode* tabs_folder_node,
|
||||
int64_t* max_id,
|
||||
std::string* sync_metadata_str) {
|
||||
ids_.clear();
|
||||
@@ -109,7 +114,8 @@ bool BookmarkCodec::Decode(const base::Value& value,
|
||||
base::GUID::ParseLowercase(BookmarkNode::kBookmarkBarNodeGuid),
|
||||
base::GUID::ParseLowercase(BookmarkNode::kOtherBookmarksNodeGuid),
|
||||
base::GUID::ParseLowercase(BookmarkNode::kMobileBookmarksNodeGuid),
|
||||
- base::GUID::ParseLowercase(BookmarkNode::kManagedNodeGuid)};
|
||||
+ base::GUID::ParseLowercase(BookmarkNode::kManagedNodeGuid),
|
||||
+ base::GUID::ParseLowercase(BookmarkNode::kTabsCollectionBookmarksNodeGuid)};
|
||||
ids_reassigned_ = false;
|
||||
guids_reassigned_ = false;
|
||||
ids_valid_ = true;
|
||||
@@ -117,12 +123,13 @@ bool BookmarkCodec::Decode(const base::Value& value,
|
||||
stored_checksum_.clear();
|
||||
InitializeChecksum();
|
||||
bool success = DecodeHelper(bb_node, other_folder_node, mobile_folder_node,
|
||||
+ tabs_folder_node,
|
||||
value, sync_metadata_str);
|
||||
FinalizeChecksum();
|
||||
// If either the checksums differ or some IDs were missing/not unique,
|
||||
// reassign IDs.
|
||||
if (!ids_valid_ || computed_checksum() != stored_checksum())
|
||||
- ReassignIDs(bb_node, other_folder_node, mobile_folder_node);
|
||||
+ ReassignIDs(bb_node, other_folder_node, mobile_folder_node, tabs_folder_node);
|
||||
*max_id = maximum_id_ + 1;
|
||||
return success;
|
||||
}
|
||||
@@ -173,6 +180,7 @@ std::unique_ptr<base::Value> BookmarkCodec::EncodeMetaInfo(
|
||||
bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
|
||||
BookmarkNode* other_folder_node,
|
||||
BookmarkNode* mobile_folder_node,
|
||||
+ BookmarkNode* tabs_folder_node,
|
||||
const base::Value& value,
|
||||
std::string* sync_metadata_str) {
|
||||
const base::DictionaryValue* d_value = nullptr;
|
||||
@@ -212,6 +220,12 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
|
||||
DecodeNode(*root_folder_d_value, nullptr, bb_node);
|
||||
DecodeNode(*other_folder_d_value, nullptr, other_folder_node);
|
||||
|
||||
+ const base::Value* tabs_folder_value;
|
||||
+ const base::DictionaryValue* tabs_folder_d_value = nullptr;
|
||||
+ if (roots_d_value->Get(kTabsBookmarkFolderNameKey, &tabs_folder_value) &&
|
||||
+ tabs_folder_value->GetAsDictionary(&tabs_folder_d_value))
|
||||
+ DecodeNode(*tabs_folder_d_value, nullptr, tabs_folder_node);
|
||||
+
|
||||
// Fail silently if we can't deserialize mobile bookmarks. We can't require
|
||||
// them to exist in order to be backwards-compatible with older versions of
|
||||
// chrome.
|
||||
@@ -457,11 +471,13 @@ void BookmarkCodec::DecodeMetaInfoHelper(
|
||||
|
||||
void BookmarkCodec::ReassignIDs(BookmarkNode* bb_node,
|
||||
BookmarkNode* other_node,
|
||||
- BookmarkNode* mobile_node) {
|
||||
+ BookmarkNode* mobile_node,
|
||||
+ BookmarkNode* tabs_folder_node) {
|
||||
maximum_id_ = 0;
|
||||
ReassignIDsHelper(bb_node);
|
||||
ReassignIDsHelper(other_node);
|
||||
ReassignIDsHelper(mobile_node);
|
||||
+ ReassignIDsHelper(tabs_folder_node);
|
||||
ids_reassigned_ = true;
|
||||
}
|
||||
|
||||
diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmarks/browser/bookmark_codec.h
|
||||
--- a/components/bookmarks/browser/bookmark_codec.h
|
||||
+++ b/components/bookmarks/browser/bookmark_codec.h
|
||||
@@ -50,6 +50,7 @@ class BookmarkCodec {
|
||||
const BookmarkNode* bookmark_bar_node,
|
||||
const BookmarkNode* other_folder_node,
|
||||
const BookmarkNode* mobile_folder_node,
|
||||
+ const BookmarkNode* tabs_folder_node,
|
||||
const BookmarkNode::MetaInfoMap* model_meta_info_map,
|
||||
const std::string& sync_metadata_str);
|
||||
|
||||
@@ -62,6 +63,7 @@ class BookmarkCodec {
|
||||
BookmarkNode* bb_node,
|
||||
BookmarkNode* other_folder_node,
|
||||
BookmarkNode* mobile_folder_node,
|
||||
+ BookmarkNode* tabs_folder_node,
|
||||
int64_t* max_node_id,
|
||||
std::string* sync_metadata_str);
|
||||
|
||||
@@ -107,6 +109,7 @@ class BookmarkCodec {
|
||||
// Allows the BookmarkClient to read and a write a string blob from the JSON
|
||||
// file. That string captures the bookmarks sync metadata.
|
||||
static const char kSyncMetadata[];
|
||||
+ static const char kTabsBookmarkFolderNameKey[];
|
||||
|
||||
// Possible values for kTypeKey.
|
||||
static const char kTypeURL[];
|
||||
@@ -124,6 +127,7 @@ class BookmarkCodec {
|
||||
bool DecodeHelper(BookmarkNode* bb_node,
|
||||
BookmarkNode* other_folder_node,
|
||||
BookmarkNode* mobile_folder_node,
|
||||
+ BookmarkNode* tabs_folder_node,
|
||||
const base::Value& value,
|
||||
std::string* sync_metadata_str);
|
||||
|
||||
@@ -134,7 +138,8 @@ class BookmarkCodec {
|
||||
// Reassigns bookmark IDs for all nodes.
|
||||
void ReassignIDs(BookmarkNode* bb_node,
|
||||
BookmarkNode* other_node,
|
||||
- BookmarkNode* mobile_node);
|
||||
+ BookmarkNode* mobile_node,
|
||||
+ BookmarkNode* tabs_folder_node);
|
||||
|
||||
// Helper to recursively reassign IDs.
|
||||
void ReassignIDsHelper(BookmarkNode* node);
|
||||
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
|
||||
|
@ -401,7 +591,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/b
|
|||
diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc
|
||||
--- a/components/bookmarks/browser/bookmark_model.cc
|
||||
+++ b/components/bookmarks/browser/bookmark_model.cc
|
||||
@@ -560,7 +560,7 @@ bool BookmarkModel::HasBookmarks() {
|
||||
@@ -561,7 +561,7 @@ bool BookmarkModel::HasBookmarks() {
|
||||
bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() {
|
||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
return bookmark_bar_node_->children().empty() &&
|
||||
|
@ -410,7 +600,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar
|
|||
}
|
||||
|
||||
bool BookmarkModel::IsBookmarked(const GURL& url) {
|
||||
@@ -795,6 +795,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
|
||||
@@ -796,6 +796,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();
|
||||
|
@ -421,7 +611,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar
|
|||
diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmarks/browser/bookmark_model.h
|
||||
--- a/components/bookmarks/browser/bookmark_model.h
|
||||
+++ b/components/bookmarks/browser/bookmark_model.h
|
||||
@@ -117,6 +117,12 @@ class BookmarkModel : public BookmarkUndoProvider,
|
||||
@@ -116,6 +116,12 @@ class BookmarkModel : public BookmarkUndoProvider,
|
||||
return mobile_node_;
|
||||
}
|
||||
|
||||
|
@ -434,7 +624,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark
|
|||
bool is_root_node(const BookmarkNode* node) const {
|
||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
return node == root_;
|
||||
@@ -390,6 +396,7 @@ class BookmarkModel : public BookmarkUndoProvider,
|
||||
@@ -389,6 +395,7 @@ class BookmarkModel : public BookmarkUndoProvider,
|
||||
BookmarkPermanentNode* bookmark_bar_node_ = nullptr;
|
||||
BookmarkPermanentNode* other_node_ = nullptr;
|
||||
BookmarkPermanentNode* mobile_node_ = nullptr;
|
||||
|
@ -445,7 +635,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark
|
|||
diff --git a/components/bookmarks/browser/bookmark_node.cc b/components/bookmarks/browser/bookmark_node.cc
|
||||
--- a/components/bookmarks/browser/bookmark_node.cc
|
||||
+++ b/components/bookmarks/browser/bookmark_node.cc
|
||||
@@ -42,6 +42,8 @@ const char BookmarkNode::kOtherBookmarksNodeGuid[] =
|
||||
@@ -41,6 +41,8 @@ const char BookmarkNode::kOtherBookmarksNodeGuid[] =
|
||||
"00000000-0000-4000-a000-000000000003";
|
||||
const char BookmarkNode::kMobileBookmarksNodeGuid[] =
|
||||
"00000000-0000-4000-a000-000000000004";
|
||||
|
@ -454,7 +644,7 @@ diff --git a/components/bookmarks/browser/bookmark_node.cc b/components/bookmark
|
|||
const char BookmarkNode::kManagedNodeGuid[] =
|
||||
"00000000-0000-4000-a000-000000000005";
|
||||
|
||||
@@ -201,6 +203,17 @@ BookmarkPermanentNode::CreateMobileBookmarks(int64_t id,
|
||||
@@ -199,6 +201,17 @@ BookmarkPermanentNode::CreateMobileBookmarks(int64_t id,
|
||||
visible_when_empty));
|
||||
}
|
||||
|
||||
|
@ -501,6 +691,19 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks
|
|||
|
||||
// Constructor is private to disallow the construction of permanent nodes
|
||||
// other than the well-known ones, see factory methods.
|
||||
diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks/browser/model_loader.cc
|
||||
--- a/components/bookmarks/browser/model_loader.cc
|
||||
+++ b/components/bookmarks/browser/model_loader.cc
|
||||
@@ -54,7 +54,8 @@ void LoadBookmarks(const base::FilePath& path,
|
||||
std::string sync_metadata_str;
|
||||
BookmarkCodec codec;
|
||||
codec.Decode(*root, details->bb_node(), details->other_folder_node(),
|
||||
- details->mobile_folder_node(), &max_node_id,
|
||||
+ details->mobile_folder_node(),
|
||||
+ details->tabs_collection_folder_node(), &max_node_id,
|
||||
&sync_metadata_str);
|
||||
details->set_sync_metadata_str(std::move(sync_metadata_str));
|
||||
details->set_max_id(std::max(max_node_id, details->max_id()));
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
@ -5,13 +5,12 @@ 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 | 3 +++
|
||||
chrome/android/java/res/menu/main_menu_regroup.xml | 3 +++
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 2 ++
|
||||
.../chrome/browser/app/ChromeActivity.java | 5 +++++
|
||||
.../app/appmenu/AppMenuPropertiesDelegateImpl.java | 14 ++++++++++++++
|
||||
.../CustomTabAppMenuPropertiesDelegate.java | 1 +
|
||||
.../ui/android/strings/android_chrome_strings.grd | 3 +++
|
||||
8 files changed, 34 insertions(+)
|
||||
.../ui/android/strings/android_chrome_strings.grd | 4 ++++
|
||||
7 files changed, 32 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,20 +28,7 @@ diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/
|
|||
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
|
||||
--- a/chrome/android/java/res/menu/main_menu.xml
|
||||
+++ b/chrome/android/java/res/menu/main_menu.xml
|
||||
@@ -94,6 +94,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: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
|
||||
@@ -145,6 +145,9 @@
|
||||
@@ -85,6 +85,9 @@
|
||||
<item android:id="@+id/add_to_homescreen_id"
|
||||
android:title="@string/menu_add_to_homescreen"
|
||||
android:icon="@drawable/ic_add_to_home_screen" />
|
||||
|
@ -55,7 +41,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
|
||||
@@ -1881,6 +1881,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@@ -1982,6 +1982,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
|
||||
}
|
||||
RecordUserAction.record("MobileMenuDownloadManager");
|
||||
|
@ -67,7 +53,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
|
||||
@@ -2287,6 +2287,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -2333,6 +2333,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -82,15 +68,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
|
||||
@@ -537,6 +537,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
}
|
||||
@@ -348,6 +348,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
isChromeScheme, isFileScheme, isContentScheme, isIncognito, url));
|
||||
|
||||
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));
|
||||
@@ -950,6 +951,19 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
@@ -787,6 +788,19 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -113,26 +99,27 @@ 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
|
||||
@@ -228,6 +228,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
||||
@@ -222,6 +222,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(
|
||||
homescreenItem, null, openWebApkItem, menu, currentTab, addToHomeScreenVisible);
|
||||
prepareAddToHomescreenMenuItem(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
|
||||
@@ -344,6 +344,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
|
||||
@@ -293,6 +293,10 @@ CHAR_LIMIT guidelines:
|
||||
Sign-in verifications
|
||||
</message>
|
||||
|
||||
+ <message name="IDS_VIEW_SOURCE" desc="Title for the menu command to view the source of the current page. [CHAR-LIMIT=40]">
|
||||
+ View source
|
||||
+ </message>
|
||||
<message name="IDS_PREFS_GOOGLE_SERVICES" 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. [CHAR-LIMIT=40]">
|
||||
Google services
|
||||
+
|
||||
<message name="IDS_UNSUPPORTED" desc="Message displayed to the user when an attempted action is not supported.">
|
||||
Unsupported
|
||||
</message>
|
||||
--
|
||||
2.17.1
|
||||
|
|
|
@ -5,14 +5,15 @@ Subject: Add option to force tablet UI
|
|||
---
|
||||
.../android/java/res/xml/accessibility_preferences.xml | 5 +++++
|
||||
.../accessibility/settings/AccessibilitySettings.java | 10 ++++++++++
|
||||
.../chrome/browser/omnibox/LocationBarCoordinator.java | 2 +-
|
||||
.../browser/toolbar/top/ToolbarControlContainer.java | 2 +-
|
||||
.../browser/preferences/ChromePreferenceKeys.java | 1 +
|
||||
.../preferences/GrandfatheredChromePreferenceKeys.java | 1 +
|
||||
.../preferences/LegacyChromePreferenceKeys.java | 1 +
|
||||
.../ui/android/strings/android_chrome_strings.grd | 6 ++++++
|
||||
components/BUILD.gn | 4 ++--
|
||||
ui/android/BUILD.gn | 1 +
|
||||
ui/android/BUILD.gn | 2 ++
|
||||
.../src/org/chromium/ui/base/DeviceFormFactor.java | 5 +++++
|
||||
9 files changed, 32 insertions(+), 3 deletions(-)
|
||||
10 files changed, 34 insertions(+), 4 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
|
||||
|
@ -63,10 +64,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
|||
} 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/omnibox/LocationBarCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
|
||||
@@ -341,7 +341,7 @@ public final class LocationBarCoordinator implements LocationBar, NativeInitObse
|
||||
// OmniboxSuggestionsDropdownEmbedder implementation
|
||||
@Override
|
||||
public boolean isTablet() {
|
||||
- return DeviceFormFactor.isWindowOnTablet(mWindowAndroid);
|
||||
+ return DeviceFormFactor.isWindowOnTablet(mWindowAndroid) || isTabletLayout();
|
||||
}
|
||||
|
||||
@Override
|
||||
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
|
||||
@@ -110,7 +110,7 @@ public class ToolbarControlContainer extends OptimizedFrameLayout implements Con
|
||||
// On tablet, draw a fake tab strip and toolbar until the compositor is
|
||||
// ready to draw the real tab strip. (On phone, the toolbar is made entirely
|
||||
// of Android views, which are already initialized.)
|
||||
|
@ -78,7 +91,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/Too
|
|||
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
|
||||
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
|
||||
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
|
||||
@@ -449,6 +449,7 @@ public final class ChromePreferenceKeys {
|
||||
@@ -506,6 +506,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";
|
||||
|
@ -86,10 +99,10 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
|
|||
|
||||
/** 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 {
|
||||
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
||||
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
||||
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
||||
@@ -99,6 +99,7 @@ public class LegacyChromePreferenceKeys {
|
||||
ChromePreferenceKeys.FLAGS_CACHED_SWAP_PIXEL_FORMAT_TO_FIX_CONVERT_FROM_TRANSLUCENT,
|
||||
ChromePreferenceKeys.FLAGS_CACHED_TAB_GROUPS_ANDROID_ENABLED,
|
||||
ChromePreferenceKeys.FONT_USER_FONT_SCALE_FACTOR,
|
||||
|
@ -100,7 +113,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
|
|||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -1166,6 +1166,12 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
@@ -1188,6 +1188,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>
|
||||
|
@ -112,11 +125,11 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
|||
+ </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]">
|
||||
<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
|
||||
@@ -501,7 +501,7 @@ test("components_unittests") {
|
||||
@@ -525,7 +525,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.
|
||||
|
@ -125,7 +138,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
|
|||
assert_no_deps = [ "//chrome/*" ]
|
||||
}
|
||||
|
||||
@@ -748,7 +748,7 @@ if (!is_ios && !is_fuchsia) {
|
||||
@@ -772,7 +772,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.
|
||||
|
@ -137,14 +150,15 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
|
|||
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") {
|
||||
@@ -364,6 +364,8 @@ android_library("ui_no_recycler_view_java") {
|
||||
":ui_java_resources",
|
||||
":ui_utils_java",
|
||||
"//base:base_java",
|
||||
"//base:jni_java",
|
||||
+ # dependency for ui_no_recycler_view_java
|
||||
+ "//chrome/browser/preferences:java",
|
||||
"//components/url_formatter/android:url_formatter_java",
|
||||
"//third_party/androidx:androidx_annotation_annotation_java",
|
||||
"//third_party/androidx:androidx_appcompat_appcompat_java",
|
||||
"//third_party/androidx: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
|
||||
|
|
|
@ -3,16 +3,16 @@ Date: Sat, 7 Sep 2019 15:07:42 +0200
|
|||
Subject: Add option to not persist tabs across sessions
|
||||
|
||||
---
|
||||
.../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(-)
|
||||
.../android/java/res/xml/privacy_preferences.xml | 5 +++++
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 4 +++-
|
||||
.../browser/privacy/settings/PrivacySettings.java | 15 ++++++++++++++-
|
||||
.../ui/android/strings/android_chrome_strings.grd | 6 ++++++
|
||||
4 files changed, 28 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
|
||||
@@ -23,6 +23,11 @@
|
||||
@@ -29,6 +29,11 @@
|
||||
android:title="@string/always_incognito_title"
|
||||
android:summary="@string/always_incognito_summary"
|
||||
android:defaultValue="false" />
|
||||
|
@ -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
|
||||
@@ -1124,8 +1124,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@@ -1175,8 +1175,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
boolean hadCipherData =
|
||||
CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
|
||||
|
||||
|
@ -58,20 +58,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
+import org.chromium.base.BuildInfo;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl;
|
||||
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
@@ -50,9 +53,11 @@ public class PrivacySettings
|
||||
import org.chromium.chrome.browser.preferences.Pref;
|
||||
@@ -48,6 +51,7 @@ 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_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[] NEW_PRIVACY_PREFERENCE_ORDER = {PREF_CLEAR_BROWSING_DATA,
|
||||
PREF_ALWAYS_INCOGNITO,
|
||||
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 static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
|
||||
|
||||
@@ -116,7 +121,11 @@ public class PrivacySettings
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
@@ -100,7 +104,11 @@ public class PrivacySettings
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
String key = preference.getKey();
|
||||
|
@ -84,7 +80,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
UserPrefs.get(Profile.getLastUsedRegularProfile())
|
||||
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
||||
} else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
|
||||
@@ -171,6 +180,11 @@ public class PrivacySettings
|
||||
@@ -155,6 +163,11 @@ public class PrivacySettings
|
||||
privacySandboxPreference.setSummary(
|
||||
PrivacySandboxSettingsFragment.getStatusString(getContext()));
|
||||
}
|
||||
|
@ -99,7 +95,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
|
||||
@@ -3765,6 +3765,12 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
|
||||
@@ -3958,6 +3958,12 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
<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>
|
||||
|
|
44
build/patches/Add-support-for-ISupportHelpAndFeedback.patch
Normal file
44
build/patches/Add-support-for-ISupportHelpAndFeedback.patch
Normal file
|
@ -0,0 +1,44 @@
|
|||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Mon, 17 May 2021 12:30:12 +0000
|
||||
Subject: Add support for ISupportHelpAndFeedback
|
||||
|
||||
---
|
||||
.../chrome/browser/settings/SettingsActivity.java | 10 +++++++---
|
||||
.../components/browser_ui/settings/SettingsUtils.java | 4 ++++
|
||||
2 files changed, 11 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
|
||||
@@ -282,9 +282,13 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
|
||||
finish();
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.menu_id_general_help) {
|
||||
- HelpAndFeedbackLauncherImpl.getInstance().show(this,
|
||||
- getString(R.string.help_context_settings), Profile.getLastUsedRegularProfile(),
|
||||
- null);
|
||||
+ if (mainFragment instanceof SettingsUtils.ISupportHelpAndFeedback) {
|
||||
+ ((SettingsUtils.ISupportHelpAndFeedback)mainFragment).onHelpAndFeebackPressed();
|
||||
+ } else {
|
||||
+ HelpAndFeedbackLauncherImpl.getInstance().show(this,
|
||||
+ getString(R.string.help_context_settings), Profile.getLastUsedRegularProfile(),
|
||||
+ null);
|
||||
+ }
|
||||
return true;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
|
||||
--- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
|
||||
+++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
|
||||
@@ -126,4 +126,8 @@ public class SettingsUtils {
|
||||
ImageView imageButton = (ImageView) button;
|
||||
return imageButton.getDrawable() == parentMenu.getOverflowIcon();
|
||||
}
|
||||
+
|
||||
+ public interface ISupportHelpAndFeedback {
|
||||
+ void onHelpAndFeebackPressed();
|
||||
+ }
|
||||
}
|
||||
--
|
||||
2.17.1
|
||||
|
155
build/patches/Add-vibration-flag.patch
Normal file
155
build/patches/Add-vibration-flag.patch
Normal file
|
@ -0,0 +1,155 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 27 Jun 2021 17:35:39 +0200
|
||||
Subject: Add vibration flag
|
||||
|
||||
---
|
||||
chrome/browser/about_flags.cc | 4 ++++
|
||||
chrome/browser/flag_descriptions.cc | 3 +++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
content/child/runtime_features.cc | 1 +
|
||||
content/public/common/content_features.cc | 3 +++
|
||||
content/public/common/content_features.h | 2 ++
|
||||
third_party/blink/public/platform/web_runtime_features.h | 1 +
|
||||
.../blink/renderer/modules/vibration/vibration_controller.cc | 3 +++
|
||||
.../blink/renderer/platform/exported/web_runtime_features.cc | 4 ++++
|
||||
.../blink/renderer/platform/runtime_enabled_features.json5 | 4 ++++
|
||||
10 files changed, 28 insertions(+)
|
||||
|
||||
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
|
||||
@@ -6263,6 +6263,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
FEATURE_VALUE_TYPE(features::kNotificationsViaHelperApp)},
|
||||
#endif
|
||||
|
||||
+ {"enable-vibration", flag_descriptions::kEnableVibrationName,
|
||||
+ flag_descriptions::kEnableVibrationDescription, kOsAll,
|
||||
+ FEATURE_VALUE_TYPE(features::kVibration)},
|
||||
+
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
{"exo-gamepad-vibration", flag_descriptions::kExoGamepadVibrationName,
|
||||
flag_descriptions::kExoGamepadVibrationDescription, kOsCrOS,
|
||||
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
|
||||
@@ -5019,6 +5019,9 @@ const char kDefaultMeetWebAppDescription[] =
|
||||
"Enables the Meet web app to be installed by default.";
|
||||
#endif // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
|
||||
|
||||
+const char kEnableVibrationName[] = "Vibration";
|
||||
+const char kEnableVibrationDescription[] = "Enable vibration API; an user gesture will still be needed.";
|
||||
+
|
||||
#if defined(OS_CHROMEOS)
|
||||
const char kDeprecateLowUsageCodecsName[] = "Deprecates low usage media codecs";
|
||||
const char kDeprecateLowUsageCodecsDescription[] =
|
||||
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
|
||||
@@ -2934,6 +2934,9 @@ extern const char kDefaultMeetWebAppName[];
|
||||
extern const char kDefaultMeetWebAppDescription[];
|
||||
#endif // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
|
||||
|
||||
+extern const char kEnableVibrationName[];
|
||||
+extern const char kEnableVibrationDescription[];
|
||||
+
|
||||
#if defined(OS_CHROMEOS)
|
||||
extern const char kDeprecateLowUsageCodecsName[];
|
||||
extern const char kDeprecateLowUsageCodecsDescription[];
|
||||
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
|
||||
@@ -102,6 +102,7 @@ void SetRuntimeFeatureDefaultsForPlatform(
|
||||
#if defined(OS_ANDROID)
|
||||
if (command_line.HasSwitch(switches::kDisableMediaSessionAPI))
|
||||
WebRuntimeFeatures::EnableMediaSession(false);
|
||||
+ WebRuntimeFeatures::EnableVibration(base::FeatureList::IsEnabled(features::kVibration));
|
||||
#endif
|
||||
|
||||
#if defined(OS_ANDROID)
|
||||
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
|
||||
@@ -87,6 +87,9 @@ const base::Feature kBackForwardCache{"BackForwardCache",
|
||||
// BackForwardCacheMemoryControls is enabled only on Android to disable
|
||||
// BackForwardCache for lower memory devices due to memory limiations.
|
||||
#if defined(OS_ANDROID)
|
||||
+// Enables vibration; an user gesture will still be required if enabled.
|
||||
+const base::Feature kVibration{"Vibration",
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
const base::Feature kBackForwardCacheMemoryControls{
|
||||
"BackForwardCacheMemoryControls", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
#else
|
||||
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
|
||||
@@ -256,6 +256,8 @@ CONTENT_EXPORT extern const base::Feature kWarmUpNetworkProcess;
|
||||
CONTENT_EXPORT extern const base::Feature kWebNfc;
|
||||
#endif // defined(OS_ANDROID)
|
||||
|
||||
+CONTENT_EXPORT extern const base::Feature kVibration;
|
||||
+
|
||||
#if defined(OS_MAC)
|
||||
CONTENT_EXPORT extern const base::Feature kDesktopCaptureMacV2;
|
||||
CONTENT_EXPORT extern const base::Feature kWindowCaptureMacV2;
|
||||
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
|
||||
@@ -89,6 +89,7 @@ class WebRuntimeFeatures {
|
||||
BLINK_PLATFORM_EXPORT static void EnableBlockingFocusWithoutUserActivation(
|
||||
bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableCacheInlineScriptCode(bool);
|
||||
+ BLINK_PLATFORM_EXPORT static void EnableVibration(bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableCapabilityDelegationPaymentRequest(
|
||||
bool enable);
|
||||
BLINK_PLATFORM_EXPORT static void EnableClickPointerEvent(bool enable);
|
||||
diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.cc b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
|
||||
--- a/third_party/blink/renderer/modules/vibration/vibration_controller.cc
|
||||
+++ b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
|
||||
@@ -29,6 +29,7 @@
|
||||
#include "third_party/blink/renderer/core/frame/navigator.h"
|
||||
#include "third_party/blink/renderer/core/page/page.h"
|
||||
#include "third_party/blink/renderer/platform/mojo/mojo_helper.h"
|
||||
+#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
|
||||
|
||||
// Maximum number of entries in a vibration pattern.
|
||||
const unsigned kVibrationPatternLengthMax = 99;
|
||||
@@ -142,6 +143,8 @@ bool VibrationController::vibrate(Navigator& navigator,
|
||||
// reference to |window| or |navigator| was retained in another window.
|
||||
if (!navigator.DomWindow())
|
||||
return false;
|
||||
+ if (!RuntimeEnabledFeatures::VibrationEnabled())
|
||||
+ return false;
|
||||
return From(navigator).Vibrate(pattern);
|
||||
}
|
||||
|
||||
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
|
||||
@@ -186,6 +186,10 @@ void WebRuntimeFeatures::EnableScrollTopLeftInterop(bool enable) {
|
||||
RuntimeEnabledFeatures::SetScrollTopLeftInteropEnabled(enable);
|
||||
}
|
||||
|
||||
+void WebRuntimeFeatures::EnableVibration(bool enable) {
|
||||
+ RuntimeEnabledFeatures::SetVibrationEnabled(enable);
|
||||
+}
|
||||
+
|
||||
void WebRuntimeFeatures::EnableKeyboardAccessibleTooltip(bool enable) {
|
||||
RuntimeEnabledFeatures::SetKeyboardAccessibleTooltipEnabled(enable);
|
||||
}
|
||||
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
|
||||
@@ -1476,6 +1476,10 @@
|
||||
name: "OrientationEvent",
|
||||
status: {"Android": "stable"},
|
||||
},
|
||||
+ {
|
||||
+ name: "Vibration",
|
||||
+ status: "stable",
|
||||
+ },
|
||||
{
|
||||
name: "OriginIsolationHeader",
|
||||
status: "stable",
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -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
|
||||
@@ -1105,6 +1105,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
|
||||
@@ -1112,6 +1112,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());
|
||||
@@ -3457,7 +3463,11 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
|
||||
@@ -3471,7 +3477,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
|
||||
@@ -150,6 +150,8 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
|
||||
@@ -158,6 +158,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(
|
||||
@@ -122,7 +122,7 @@ void AccountConsistencyModeManager::RegisterProfilePrefs(
|
||||
#if BUILDFLAG(ENABLE_DICE_SUPPORT)
|
||||
registry->RegisterBooleanPref(kDiceMigrationCompletePref, false);
|
||||
#endif
|
||||
|
|
|
@ -11,7 +11,7 @@ Do not read experiment value for cronet async DNS configuration
|
|||
diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc
|
||||
--- a/chrome/browser/net/system_network_context_manager.cc
|
||||
+++ b/chrome/browser/net/system_network_context_manager.cc
|
||||
@@ -155,7 +155,7 @@ network::mojom::HttpAuthDynamicParamsPtr CreateHttpAuthDynamicParams(
|
||||
@@ -157,7 +157,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
|
||||
@@ -582,7 +582,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions(
|
||||
@@ -591,7 +591,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions(
|
||||
effective_experimental_options->Remove(it.key(), nullptr);
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
@@ -406,7 +406,9 @@ double AudioContext::baseLatency() const {
|
||||
@@ -450,7 +450,9 @@ double AudioContext::baseLatency() const {
|
||||
DCHECK(IsMainThread());
|
||||
DCHECK(destination());
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -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
|
||||
@@ -567,6 +567,24 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
|
||||
@@ -560,6 +560,24 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
|
||||
return should_block_request;
|
||||
}
|
||||
|
||||
|
@ -65,18 +65,18 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi
|
|||
+
|
||||
void FrameFetchContext::DispatchDidBlockRequest(
|
||||
const ResourceRequest& resource_request,
|
||||
const FetchInitiatorInfo& fetch_initiator_info,
|
||||
const ResourceLoaderOptions& options,
|
||||
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
|
||||
@@ -164,6 +164,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext,
|
||||
@@ -165,6 +165,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext,
|
||||
bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override;
|
||||
std::unique_ptr<WebSocketHandshakeThrottle> CreateWebSocketHandshakeThrottle()
|
||||
override;
|
||||
+ bool ShouldBlockGateWayAttacks(network::mojom::IPAddressSpace requestor_space, const KURL&) const override;
|
||||
bool ShouldBlockFetchByMixedContentCheck(
|
||||
mojom::blink::RequestContextType request_context,
|
||||
const base::Optional<ResourceRequest::RedirectInfo>& redirect_info,
|
||||
const absl::optional<ResourceRequest::RedirectInfo>& redirect_info,
|
||||
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
|
||||
|
@ -112,7 +112,7 @@ diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.cc b/th
|
|||
+
|
||||
void WorkerFetchContext::DispatchDidBlockRequest(
|
||||
const ResourceRequest& resource_request,
|
||||
const FetchInitiatorInfo& fetch_initiator_info,
|
||||
const ResourceLoaderOptions& options,
|
||||
diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.h b/third_party/blink/renderer/core/loader/worker_fetch_context.h
|
||||
--- a/third_party/blink/renderer/core/loader/worker_fetch_context.h
|
||||
+++ b/third_party/blink/renderer/core/loader/worker_fetch_context.h
|
||||
|
@ -123,11 +123,11 @@ diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.h b/thi
|
|||
+ bool ShouldBlockGateWayAttacks(network::mojom::IPAddressSpace requestor_space, const KURL&) const override;
|
||||
bool ShouldBlockFetchByMixedContentCheck(
|
||||
mojom::blink::RequestContextType request_context,
|
||||
const base::Optional<ResourceRequest::RedirectInfo>& redirect_info,
|
||||
const absl::optional<ResourceRequest::RedirectInfo>& redirect_info,
|
||||
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc
|
||||
--- a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc
|
||||
+++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc
|
||||
@@ -106,7 +106,6 @@ bool ShouldBlockDanglingMarkup(const KURL& request_url) {
|
||||
@@ -109,7 +109,6 @@ bool ShouldBlockDanglingMarkup(const KURL& request_url) {
|
||||
|
||||
bool ShouldBlockGateWayAttacks(ExecutionContext* execution_context,
|
||||
const KURL& request_url) {
|
||||
|
@ -135,7 +135,7 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc
|
|||
network::mojom::IPAddressSpace requestor_space =
|
||||
execution_context->AddressSpace();
|
||||
|
||||
@@ -123,7 +122,6 @@ bool ShouldBlockGateWayAttacks(ExecutionContext* execution_context,
|
||||
@@ -126,7 +125,6 @@ bool ShouldBlockGateWayAttacks(ExecutionContext* execution_context,
|
||||
bool is_external_request = requestor_space > target_space;
|
||||
if (is_external_request)
|
||||
return true;
|
||||
|
@ -146,7 +146,7 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc
|
|||
diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
|
||||
--- a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
|
||||
+++ b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
|
||||
@@ -213,6 +213,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) {
|
||||
@@ -277,6 +277,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -205,8 +205,8 @@ diff --git a/third_party/blink/renderer/modules/websockets/websocket_common.cc b
|
|||
diff --git a/third_party/blink/renderer/modules/websockets/websocket_common.h b/third_party/blink/renderer/modules/websockets/websocket_common.h
|
||||
--- a/third_party/blink/renderer/modules/websockets/websocket_common.h
|
||||
+++ b/third_party/blink/renderer/modules/websockets/websocket_common.h
|
||||
@@ -10,6 +10,8 @@
|
||||
#include <memory>
|
||||
@@ -8,6 +8,8 @@
|
||||
#define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBSOCKETS_WEBSOCKET_COMMON_H_
|
||||
|
||||
#include "base/macros.h"
|
||||
+#include "services/network/public/mojom/ip_address_space.mojom.h"
|
||||
|
@ -214,7 +214,7 @@ diff --git a/third_party/blink/renderer/modules/websockets/websocket_common.h b/
|
|||
#include "third_party/blink/renderer/modules/modules_export.h"
|
||||
#include "third_party/blink/renderer/platform/weborigin/kurl.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
|
||||
@@ -53,6 +55,8 @@ class MODULES_EXPORT WebSocketCommon {
|
||||
@@ -51,6 +53,8 @@ class MODULES_EXPORT WebSocketCommon {
|
||||
void SetState(State state) { state_ = state; }
|
||||
const KURL& Url() const { return url_; }
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnib
|
|||
--- a/components/omnibox/browser/autocomplete_input.cc
|
||||
+++ b/components/omnibox/browser/autocomplete_input.cc
|
||||
@@ -81,10 +81,15 @@ void OffsetComponentsExcludingScheme(url::Parsed* parts, int offset) {
|
||||
bool HasScheme(const base::string16& input, const char* scheme) {
|
||||
bool HasScheme(const std::u16string& input, const char* scheme) {
|
||||
std::string utf8_input(base::UTF16ToUTF8(input));
|
||||
url::Component view_source_scheme;
|
||||
+
|
||||
|
@ -77,7 +77,7 @@ diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnib
|
|||
return url::FindAndCompareScheme(utf8_input, scheme, nullptr);
|
||||
}
|
||||
|
||||
@@ -552,7 +557,8 @@ void AutocompleteInput::ParseForEmphasizeComponents(
|
||||
@@ -532,7 +537,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) ||
|
||||
|
@ -86,7 +86,7 @@ diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnib
|
|||
+ base::LowerCaseEqualsASCII(scheme_str, url::kTraceScheme)) &&
|
||||
(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));
|
||||
std::u16string real_url(text.substr(after_scheme_and_colon));
|
||||
diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/url_fixer.cc
|
||||
--- a/components/url_formatter/url_fixer.cc
|
||||
+++ b/components/url_formatter/url_fixer.cc
|
||||
|
@ -104,7 +104,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
|
||||
@@ -793,6 +793,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl()
|
||||
@@ -808,6 +808,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl()
|
||||
#endif // BUILDFLAG(ENABLE_WEBSOCKETS)
|
||||
RegisterWebSafeScheme(url::kFtpScheme);
|
||||
RegisterWebSafeScheme(url::kDataScheme);
|
||||
|
@ -115,15 +115,15 @@ 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
|
||||
@@ -1075,6 +1075,8 @@ component("net") {
|
||||
"url_request/report_sender.h",
|
||||
"url_request/static_http_user_agent_settings.cc",
|
||||
"url_request/static_http_user_agent_settings.h",
|
||||
+ "url_request/trk_protocol_handler.cc",
|
||||
+ "url_request/trk_protocol_handler.h",
|
||||
"url_request/url_fetcher.cc",
|
||||
"url_request/url_fetcher.h",
|
||||
"url_request/url_fetcher_core.cc",
|
||||
@@ -1042,6 +1042,8 @@ component("net") {
|
||||
"url_request/url_request_http_job.cc",
|
||||
"url_request/url_request_http_job.h",
|
||||
"url_request/url_request_interceptor.cc",
|
||||
+ "url_request/trk_protocol_handler.cc",
|
||||
+ "url_request/trk_protocol_handler.h",
|
||||
"url_request/url_request_interceptor.h",
|
||||
"url_request/url_request_job.cc",
|
||||
"url_request/url_request_job.h",
|
||||
diff --git a/net/url_request/trk_protocol_handler.cc b/net/url_request/trk_protocol_handler.cc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
|
@ -201,7 +201,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
|
|||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "base/synchronization/lock.h"
|
||||
#include "base/threading/thread_task_runner_handle.h"
|
||||
@@ -40,6 +41,7 @@
|
||||
@@ -44,6 +45,7 @@
|
||||
#include "net/url_request/url_request_redirect_job.h"
|
||||
#include "url/gurl.h"
|
||||
#include "url/origin.h"
|
||||
|
@ -209,7 +209,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
|
|||
|
||||
using base::Time;
|
||||
using std::string;
|
||||
@@ -575,6 +577,12 @@ URLRequest::URLRequest(const GURL& url,
|
||||
@@ -582,6 +584,12 @@ URLRequest::URLRequest(const GURL& url,
|
||||
// Sanity check out environment.
|
||||
DCHECK(base::ThreadTaskRunnerHandle::IsSet());
|
||||
|
||||
|
@ -225,7 +225,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
|
|||
diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/url_request_context_builder.cc
|
||||
--- a/net/url_request/url_request_context_builder.cc
|
||||
+++ b/net/url_request/url_request_context_builder.cc
|
||||
@@ -44,6 +44,7 @@
|
||||
@@ -45,6 +45,7 @@
|
||||
#include "net/quic/quic_stream_factory.h"
|
||||
#include "net/ssl/ssl_config_service_defaults.h"
|
||||
#include "net/url_request/static_http_user_agent_settings.h"
|
||||
|
@ -233,7 +233,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"
|
||||
@@ -605,6 +606,8 @@ std::unique_ptr<URLRequestContext> URLRequestContextBuilder::Build() {
|
||||
@@ -606,6 +607,8 @@ std::unique_ptr<URLRequestContext> URLRequestContextBuilder::Build() {
|
||||
job_factory->SetProtocolHandler(scheme_handler.first,
|
||||
std::move(scheme_handler.second));
|
||||
}
|
||||
|
|
|
@ -16,16 +16,16 @@ Fix RestoreForeignSessionTab by recreating the tab (issue #681)
|
|||
chrome/android/java/res/values/values.xml | 2 +
|
||||
.../java/res/xml/adblock_preferences.xml | 25 ++
|
||||
.../android/java/res/xml/main_preferences.xml | 5 +
|
||||
.../browser/settings/AdBlockEditor.java | 92 +++++++
|
||||
.../browser/settings/AdBlockPreferences.java | 61 +++++
|
||||
.../browser/settings/AdBlockEditor.java | 92 ++++++
|
||||
.../browser/settings/AdBlockPreferences.java | 61 ++++
|
||||
.../chrome/browser/tabmodel/TabModelImpl.java | 2 +-
|
||||
chrome/app/generated_resources.grd | 10 +
|
||||
chrome/browser/after_startup_task_utils.cc | 5 +
|
||||
chrome/browser/browser_process.h | 6 +
|
||||
chrome/browser/browser_process_impl.cc | 29 ++
|
||||
chrome/browser/browser_process_impl.cc | 20 ++
|
||||
chrome/browser/browser_process_impl.h | 2 +
|
||||
chrome/browser/chrome_browser_main.cc | 2 +
|
||||
.../browser/chrome_content_browser_client.cc | 15 --
|
||||
.../browser/chrome_content_browser_client.cc | 15 -
|
||||
.../flags/android/cached_feature_flags.cc | 11 +
|
||||
.../browser/flags/CachedFeatureFlags.java | 10 +
|
||||
.../net/system_network_context_manager.cc | 4 +
|
||||
|
@ -34,20 +34,20 @@ Fix RestoreForeignSessionTab by recreating the tab (issue #681)
|
|||
chrome/common/pref_names.cc | 3 +
|
||||
chrome/common/pref_names.h | 1 +
|
||||
components/component_updater/BUILD.gn | 6 +
|
||||
.../adblock_updater_service.cc | 255 ++++++++++++++++++
|
||||
.../adblock_updater_service.cc | 272 ++++++++++++++++++
|
||||
.../adblock_updater_service.h | 99 +++++++
|
||||
.../download_filters_task.cc | 222 +++++++++++++++
|
||||
.../download_filters_task.cc | 222 ++++++++++++++
|
||||
.../component_updater/download_filters_task.h | 129 +++++++++
|
||||
...ent_subresource_filter_throttle_manager.cc | 11 +
|
||||
.../content/browser/ruleset_service.cc | 33 ++-
|
||||
.../content/browser/ruleset_service.h | 7 +-
|
||||
.../content/browser/ruleset_version.h | 4 +
|
||||
.../browser/verified_ruleset_dealer.cc | 3 +
|
||||
.../browser/verified_ruleset_dealer.cc | 4 +
|
||||
.../browser/subresource_filter_features.cc | 113 +-------
|
||||
.../core/common/common_features.cc | 2 +-
|
||||
.../core/common/indexed_ruleset.cc | 5 +-
|
||||
.../navigation_throttle_runner.cc | 5 -
|
||||
38 files changed, 1145 insertions(+), 140 deletions(-)
|
||||
38 files changed, 1154 insertions(+), 140 deletions(-)
|
||||
create mode 100644 chrome/android/java/res/layout/adblock_editor.xml
|
||||
create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
|
||||
|
@ -60,15 +60,15 @@ Fix RestoreForeignSessionTab by recreating the tab (issue #681)
|
|||
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
|
||||
--- a/chrome/android/chrome_java_resources.gni
|
||||
+++ b/chrome/android/chrome_java_resources.gni
|
||||
@@ -682,6 +682,7 @@ chrome_java_resources = [
|
||||
@@ -666,6 +666,7 @@ chrome_java_resources = [
|
||||
"java/res/layout/account_chooser_dialog_title.xml",
|
||||
"java/res/layout/account_divider_preference.xml",
|
||||
"java/res/layout/account_management_account_row.xml",
|
||||
+ "java/res/layout/adblock_editor.xml",
|
||||
"java/res/layout/add_to_menu_dialog.xml",
|
||||
"java/res/layout/add_to_menu_dialog_item.xml",
|
||||
"java/res/layout/assistant_voice_search_consent_ui.xml",
|
||||
@@ -920,6 +921,7 @@ chrome_java_resources = [
|
||||
"java/res/layout/auto_sign_in_first_run_dialog.xml",
|
||||
"java/res/layout/autofill_billing_address_dropdown.xml",
|
||||
@@ -891,6 +892,7 @@ chrome_java_resources = [
|
||||
"java/res/xml/about_chrome_preferences.xml",
|
||||
"java/res/xml/accessibility_preferences.xml",
|
||||
"java/res/xml/account_management_preferences.xml",
|
||||
|
@ -79,7 +79,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
|
|||
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
|
||||
--- a/chrome/android/chrome_java_sources.gni
|
||||
+++ b/chrome/android/chrome_java_sources.gni
|
||||
@@ -1155,6 +1155,8 @@ chrome_java_sources = [
|
||||
@@ -1108,6 +1108,8 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/payments/ui/ShoppingCart.java",
|
||||
"java/src/org/chromium/chrome/browser/permissions/PermissionSettingsBridge.java",
|
||||
"java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java",
|
||||
|
@ -163,7 +163,7 @@ new file mode 100644
|
|||
diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res/values/styles.xml
|
||||
--- a/chrome/android/java/res/values/styles.xml
|
||||
+++ b/chrome/android/java/res/values/styles.xml
|
||||
@@ -203,6 +203,23 @@
|
||||
@@ -208,6 +208,23 @@
|
||||
<item name="android:layout_height">0dp</item>
|
||||
<item name="android:layout_weight">1</item>
|
||||
</style>
|
||||
|
@ -190,7 +190,7 @@ diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res
|
|||
diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
|
||||
--- a/chrome/android/java/res/values/values.xml
|
||||
+++ b/chrome/android/java/res/values/values.xml
|
||||
@@ -32,6 +32,8 @@
|
||||
@@ -29,6 +29,8 @@
|
||||
<integer name="reload_button_level_reload">0</integer>
|
||||
<integer name="reload_button_level_stop">1</integer>
|
||||
|
||||
|
@ -235,15 +235,15 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
|
|||
@@ -61,6 +61,11 @@
|
||||
android:key="privacy"
|
||||
android:order="12"
|
||||
android:title="@string/prefs_privacy"/>
|
||||
android:title="@string/prefs_privacy_security"/>
|
||||
+ <Preference
|
||||
+ android:fragment="org.chromium.chrome.browser.settings.AdBlockPreferences"
|
||||
+ android:key="adblock"
|
||||
+ android:order="13"
|
||||
+ android:title="@string/prefs_adblock"/>
|
||||
<Preference
|
||||
android:fragment="org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment"
|
||||
android:key="safety_check"
|
||||
android:key="notifications"
|
||||
android:order="14"
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
|
@ -410,7 +410,7 @@ new file mode 100644
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java
|
||||
@@ -815,7 +815,7 @@ public class TabModelImpl extends TabModelJniBridge {
|
||||
@@ -801,7 +801,7 @@ public class TabModelImpl extends TabModelJniBridge {
|
||||
Tab parent, Profile profile, WebContents webContents) {
|
||||
return getTabCreator(profile.isOffTheRecord())
|
||||
.createTabWithWebContents(
|
||||
|
@ -422,7 +422,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod
|
|||
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
|
||||
--- a/chrome/app/generated_resources.grd
|
||||
+++ b/chrome/app/generated_resources.grd
|
||||
@@ -10400,6 +10400,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
|
||||
@@ -10516,6 +10516,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
|
||||
Never show this again.
|
||||
</message>
|
||||
|
||||
|
@ -442,16 +442,16 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources
|
|||
diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_startup_task_utils.cc
|
||||
--- a/chrome/browser/after_startup_task_utils.cc
|
||||
+++ b/chrome/browser/after_startup_task_utils.cc
|
||||
@@ -39,6 +39,8 @@
|
||||
@@ -26,6 +26,8 @@
|
||||
#include "ui/views/linux_ui/linux_ui.h"
|
||||
#endif
|
||||
|
||||
+#include "chrome/browser/browser_process.h"
|
||||
+
|
||||
using content::BrowserThread;
|
||||
using content::WebContents;
|
||||
using content::WebContentsObserver;
|
||||
@@ -141,6 +143,9 @@ void SetBrowserStartupIsComplete() {
|
||||
|
||||
namespace {
|
||||
@@ -121,6 +123,9 @@ void SetBrowserStartupIsComplete() {
|
||||
g_after_startup_tasks.Get().clear();
|
||||
g_after_startup_tasks.Get().shrink_to_fit();
|
||||
|
||||
|
@ -494,7 +494,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
|
|||
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
|
||||
--- a/chrome/browser/browser_process_impl.cc
|
||||
+++ b/chrome/browser/browser_process_impl.cc
|
||||
@@ -1024,6 +1024,35 @@ BrowserProcessImpl::component_updater() {
|
||||
@@ -1018,6 +1018,26 @@ BrowserProcessImpl::component_updater() {
|
||||
return component_updater_.get();
|
||||
}
|
||||
|
||||
|
@ -506,17 +506,8 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
|
|||
+ if (!BrowserThread::CurrentlyOn(BrowserThread::UI))
|
||||
+ return nullptr;
|
||||
+
|
||||
+ std::unique_ptr<component_updater::UpdateScheduler> scheduler;
|
||||
+#if defined(OS_ANDROID)
|
||||
+ if (base::FeatureList::IsEnabled(
|
||||
+ chrome::android::kBackgroundTaskComponentUpdate) &&
|
||||
+ component_updater::BackgroundTaskUpdateScheduler::IsAvailable()) {
|
||||
+ scheduler =
|
||||
+ std::make_unique<component_updater::BackgroundTaskUpdateScheduler>();
|
||||
+ }
|
||||
+#endif
|
||||
+ if (!scheduler)
|
||||
+ scheduler = std::make_unique<component_updater::TimerUpdateScheduler>();
|
||||
+ std::unique_ptr<component_updater::UpdateScheduler> scheduler =
|
||||
+ std::make_unique<component_updater::TimerUpdateScheduler>();
|
||||
+
|
||||
+ adblock_updater_ = std::make_unique<adblock_updater::AdBlockUpdaterService>(
|
||||
+ g_browser_process->system_network_context_manager()->GetSharedURLLoaderFactory(),
|
||||
|
@ -552,19 +543,19 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc
|
|||
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
|
||||
--- a/chrome/browser/chrome_browser_main.cc
|
||||
+++ b/chrome/browser/chrome_browser_main.cc
|
||||
@@ -1603,6 +1603,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
|
||||
if (!parsed_command_line().HasSwitch(switches::kDisableComponentUpdate)) {
|
||||
component_updater::RegisterComponentsForUpdate(
|
||||
profile_->IsOffTheRecord(), profile_->GetPrefs(), profile_->GetPath());
|
||||
@@ -1648,6 +1648,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
|
||||
speech::SodaInstaller::GetInstance()->Init(profile_->GetPrefs(),
|
||||
browser_process_->local_state());
|
||||
#endif // !defined(OS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
+ // force AdBlock updater initialisation
|
||||
+ g_browser_process->adblock_updater();
|
||||
}
|
||||
|
||||
variations::VariationsService* variations_service =
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
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
|
||||
@@ -74,7 +74,6 @@
|
||||
@@ -75,7 +75,6 @@
|
||||
#include "chrome/browser/interstitials/enterprise_util.h"
|
||||
#include "chrome/browser/lifetime/application_lifetime.h"
|
||||
#include "chrome/browser/lifetime/browser_shutdown.h"
|
||||
|
@ -572,7 +563,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
|
|||
#include "chrome/browser/media/audio_service_util.h"
|
||||
#include "chrome/browser/media/router/media_router_feature.h"
|
||||
#include "chrome/browser/media/webrtc/audio_debug_recordings_handler.h"
|
||||
@@ -3966,16 +3965,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
|
||||
@@ -3989,16 +3988,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
|
||||
content::NavigationHandle* handle) {
|
||||
std::vector<std::unique_ptr<content::NavigationThrottle>> throttles;
|
||||
|
||||
|
@ -588,8 +579,8 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
|
|||
-
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
MaybeAddThrottle(
|
||||
chromeos::WebTimeLimitNavigationThrottle::MaybeCreateThrottleFor(handle),
|
||||
@@ -4080,10 +4069,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
|
||||
ash::WebTimeLimitNavigationThrottle::MaybeCreateThrottleFor(handle),
|
||||
@@ -4103,10 +4092,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
|
||||
&throttles);
|
||||
#endif
|
||||
|
||||
|
@ -628,8 +619,8 @@ diff --git a/chrome/browser/flags/android/cached_feature_flags.cc b/chrome/brows
|
|||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
|
||||
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
|
||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
|
||||
@@ -260,6 +260,14 @@ public class CachedFeatureFlags {
|
||||
ChromeFeatureList.REACHED_CODE_PROFILER, "sampling_interval_us", 0));
|
||||
@@ -265,6 +265,14 @@ public class CachedFeatureFlags {
|
||||
ChromeFeatureList.isEnabled(ChromeFeatureList.BACKGROUND_THREAD_POOL));
|
||||
}
|
||||
|
||||
+ public static void setAdBlockFiltersURL(String url) {
|
||||
|
@ -643,7 +634,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
|
|||
/**
|
||||
* Caches flags that must take effect on startup but are set via native code.
|
||||
*/
|
||||
@@ -426,5 +434,7 @@ public class CachedFeatureFlags {
|
||||
@@ -431,5 +439,7 @@ public class CachedFeatureFlags {
|
||||
@NativeMethods
|
||||
interface Natives {
|
||||
boolean isNetworkServiceWarmUpEnabled();
|
||||
|
@ -654,7 +645,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
|
|||
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
|
||||
@@ -336,6 +336,8 @@ SystemNetworkContextManager::SystemNetworkContextManager(
|
||||
@@ -337,6 +337,8 @@ SystemNetworkContextManager::SystemNetworkContextManager(
|
||||
SSLConfigServiceManager::CreateDefaultManager(local_state_)),
|
||||
proxy_config_monitor_(local_state_),
|
||||
stub_resolver_config_reader_(local_state_) {
|
||||
|
@ -663,7 +654,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
|
|||
#if !defined(OS_ANDROID)
|
||||
// QuicAllowed was not part of Android policy.
|
||||
const base::Value* value =
|
||||
@@ -400,6 +402,8 @@ SystemNetworkContextManager::~SystemNetworkContextManager() {
|
||||
@@ -407,6 +409,8 @@ SystemNetworkContextManager::~SystemNetworkContextManager() {
|
||||
void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
StubResolverConfigReader::RegisterPrefs(registry);
|
||||
|
||||
|
@ -689,7 +680,7 @@ diff --git a/chrome/browser/sessions/session_restore_android.cc b/chrome/browser
|
|||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -214,6 +214,20 @@ CHAR-LIMIT guidelines:
|
||||
@@ -214,6 +214,20 @@ CHAR_LIMIT guidelines:
|
||||
Enter VR
|
||||
</message>
|
||||
|
||||
|
@ -708,12 +699,12 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
|||
+ </message>
|
||||
+
|
||||
<!-- Notification channels -->
|
||||
<message name="IDS_NOTIFICATION_CATEGORY_GROUP_GENERAL" desc='Subheading for "General" section of a list of notification categories. [CHAR-LIMIT=32]'>
|
||||
<message name="IDS_NOTIFICATION_CATEGORY_GROUP_GENERAL" desc='Subheading for "General" section of a list of notification categories. [CHAR_LIMIT=32]'>
|
||||
General
|
||||
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
|
||||
--- a/chrome/common/pref_names.cc
|
||||
+++ b/chrome/common/pref_names.cc
|
||||
@@ -2172,6 +2172,9 @@ const char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
|
||||
@@ -2161,6 +2161,9 @@ const char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
|
||||
// capture devices without prompt.
|
||||
const char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls";
|
||||
|
||||
|
@ -754,7 +745,7 @@ diff --git a/components/component_updater/adblock_updater_service.cc b/component
|
|||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/component_updater/adblock_updater_service.cc
|
||||
@@ -0,0 +1,255 @@
|
||||
@@ -0,0 +1,272 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
|
@ -824,7 +815,6 @@ new file mode 100644
|
|||
+ observer_list_.RemoveObserver(observer);
|
||||
+}
|
||||
+
|
||||
+//TODO: use this as in: base::Bind(&AdBlockUpdaterService::NotifyObservers, base::Unretained(this)
|
||||
+void AdBlockUpdaterService::NotifyObservers(Event event) {
|
||||
+ DCHECK(thread_checker_.CalledOnValidThread());
|
||||
+ for (auto& observer : observer_list_)
|
||||
|
@ -848,7 +838,7 @@ new file mode 100644
|
|||
+ scheduler_->Schedule(
|
||||
+ base::TimeDelta::FromSeconds(initial_check_delay),
|
||||
+ base::TimeDelta::FromSeconds(next_check_delay),
|
||||
+ base::Bind(&AdBlockUpdaterService::OnDemandScheduledUpdate,
|
||||
+ base::BindRepeating(&AdBlockUpdaterService::OnDemandScheduledUpdate,
|
||||
+ base::Unretained(this)), base::DoNothing());
|
||||
+}
|
||||
+
|
||||
|
@ -882,8 +872,11 @@ new file mode 100644
|
|||
+ }
|
||||
+ is_updating_ = true;
|
||||
+
|
||||
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
|
||||
+ FROM_HERE, base::BindOnce(&AdBlockUpdaterService::NotifyObservers, base::Unretained(this), Event::ADBLOCK_CHECKING_FOR_UPDATES));
|
||||
+
|
||||
+ base::Time::Exploded e = {0};
|
||||
+ base::Time t = base::Time();
|
||||
+ base::Time min_last_modified = base::Time();
|
||||
+ auto version = ruleset_service_->GetMostRecentlyIndexedVersion();
|
||||
+ LOG(INFO) << "AdBlockUpdaterService: MostRecentIndexedVersion = " << version.content_version;
|
||||
+ std::vector<std::string> tokens =
|
||||
|
@ -924,14 +917,14 @@ new file mode 100644
|
|||
+ if (failed) {
|
||||
+ LOG(WARNING) << "AdBlockUpdaterService: failed to parse most recent version as x.y.z.w dot-separated integers";
|
||||
+ } else {
|
||||
+ if (!base::Time::FromUTCExploded(e, &t))
|
||||
+ if (!base::Time::FromUTCExploded(e, &min_last_modified))
|
||||
+ LOG(WARNING) << "AdBlockUpdaterService: failed to convert version to time.";
|
||||
+ }
|
||||
+
|
||||
+ // avoid making a new request if version-based time is recent enough
|
||||
+ if (!failed) {
|
||||
+ base::TimeDelta delta =
|
||||
+ base::Time::Now() - t;
|
||||
+ base::Time::Now() - min_last_modified;
|
||||
+ if (delta < base::TimeDelta::FromSeconds(on_demand_check_delay)) {
|
||||
+ LOG(INFO) << "AdBlockUpdaterService: update check not yet needed.";
|
||||
+ is_updating_ = false;
|
||||
|
@ -943,15 +936,19 @@ new file mode 100644
|
|||
+ auto task = base::MakeRefCounted<DownloadFiltersTask>(
|
||||
+ shared_url_network_factory_,
|
||||
+ is_foreground, filters_url_,
|
||||
+ t,
|
||||
+ min_last_modified,
|
||||
+ base::BindOnce(&AdBlockUpdaterService::OnUpdateComplete, base::Unretained(this),
|
||||
+ std::move(on_finished)));
|
||||
+
|
||||
+ // run task now; task is responsible for clearing the is_updating status
|
||||
+ // run task now; task is responsible for downloading the filters (if Last-Modified header is more recent)
|
||||
+ // and then clearing the 'is_updating' status
|
||||
+ base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
|
||||
+ base::BindOnce(&DownloadFiltersTask::Run, base::Unretained(task.get())));
|
||||
+ tasks_.insert(task);
|
||||
+
|
||||
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
|
||||
+ FROM_HERE, base::BindOnce(&AdBlockUpdaterService::NotifyObservers, base::Unretained(this), Event::ADBLOCK_UPDATE_DOWNLOADING));
|
||||
+
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
|
@ -962,13 +959,16 @@ new file mode 100644
|
|||
+
|
||||
+ auto file_path = task->file_path();
|
||||
+ if (error == Error::NONE) {
|
||||
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
|
||||
+ FROM_HERE, base::BindOnce(&AdBlockUpdaterService::NotifyObservers, base::Unretained(this), Event::ADBLOCK_UPDATE_READY));
|
||||
+
|
||||
+ subresource_filter::UnindexedRulesetInfo ruleset_info;
|
||||
+ ruleset_info.ruleset_path = file_path;
|
||||
+ ruleset_info.delete_ruleset_path = true;
|
||||
+ ruleset_info.content_version = "0.0.0.0";
|
||||
+ DCHECK(!ruleset_info.ruleset_path.empty());
|
||||
+
|
||||
+ // convert time to version
|
||||
+ // convert Last-Modified timestamp fetched by the DownloadFiltersTask to a semver version
|
||||
+ auto t = task->last_modified();
|
||||
+ bool ignore_version = t.is_null();
|
||||
+ if (!ignore_version) {
|
||||
|
@ -994,11 +994,19 @@ new file mode 100644
|
|||
+ } else
|
||||
+ LOG(WARNING) << "AdBlockUpdaterService: invalid Last-Modified header, ignoring version check.";
|
||||
+ ruleset_service_->IndexAndStoreAndPublishRulesetIfNeeded(ruleset_info, ignore_version);
|
||||
+
|
||||
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
|
||||
+ FROM_HERE, base::BindOnce(&AdBlockUpdaterService::NotifyObservers, base::Unretained(this), Event::ADBLOCK_UPDATED));
|
||||
+ } else if (error == Error::UPDATE_NOT_NEEDED) {
|
||||
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
|
||||
+ FROM_HERE, base::BindOnce(&AdBlockUpdaterService::NotifyObservers, base::Unretained(this), Event::ADBLOCK_NOT_UPDATED));
|
||||
+ } else {
|
||||
+ //TODO: generate event for ADBLOCK_NOT_UPDATED in case of error UPDATE_NOT_NEEDED
|
||||
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
|
||||
+ FROM_HERE, base::BindOnce(&AdBlockUpdaterService::NotifyObservers, base::Unretained(this), Event::ADBLOCK_UPDATE_ERROR));
|
||||
+ }
|
||||
+
|
||||
+ //TODO: run these only when index-and-store is actually finished?
|
||||
+ // would require exposing the callback in IndexAndStoreAndPublishRulesetIfNeeded
|
||||
+ if (!on_finished.is_null()) {
|
||||
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
|
||||
+ FROM_HERE, base::BindOnce(std::move(on_finished), error));
|
||||
|
@ -1478,7 +1486,7 @@ new file mode 100644
|
|||
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
|
||||
--- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
|
||||
+++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
|
||||
@@ -582,6 +582,17 @@ ContentSubresourceFilterThrottleManager::
|
||||
@@ -564,6 +564,17 @@ ContentSubresourceFilterThrottleManager::
|
||||
throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(),
|
||||
ad_tagging_state);
|
||||
}
|
||||
|
@ -1487,7 +1495,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f
|
|||
+ {
|
||||
+ subresource_filter::ActivationDecision ignored_decision;
|
||||
+ mojom::ActivationState ad_filtering_state;
|
||||
+ ad_filtering_state.activation_level = client_->GetProfileInteractionManager()->OnPageActivationComputed(
|
||||
+ ad_filtering_state.activation_level = profile_interaction_manager_->OnPageActivationComputed(
|
||||
+ navigation_handle, mojom::ActivationLevel::kEnabled, &ignored_decision);
|
||||
+ throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(),
|
||||
+ ad_filtering_state);
|
||||
|
@ -1499,7 +1507,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f
|
|||
diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/components/subresource_filter/content/browser/ruleset_service.cc
|
||||
--- a/components/subresource_filter/content/browser/ruleset_service.cc
|
||||
+++ b/components/subresource_filter/content/browser/ruleset_service.cc
|
||||
@@ -46,9 +46,7 @@ namespace {
|
||||
@@ -47,9 +47,7 @@ namespace {
|
||||
|
||||
void RecordIndexAndWriteRulesetResult(
|
||||
RulesetService::IndexAndWriteRulesetResult result) {
|
||||
|
@ -1510,7 +1518,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
|
|||
}
|
||||
|
||||
// Implements operations on a `sentinel file`, which is used as a safeguard to
|
||||
@@ -227,10 +225,13 @@ RulesetService::RulesetService(
|
||||
@@ -228,10 +226,13 @@ RulesetService::RulesetService(
|
||||
RulesetService::~RulesetService() {}
|
||||
|
||||
void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded(
|
||||
|
@ -1526,7 +1534,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
|
|||
// Trying to store a ruleset with the same version for a second time would
|
||||
// not only be futile, but would fail on Windows due to "File System
|
||||
// Tunneling" as long as the previously stored copy of the rules is still
|
||||
@@ -240,13 +241,16 @@ void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded(
|
||||
@@ -241,13 +242,16 @@ void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded(
|
||||
if (most_recently_indexed_version.IsCurrentFormatVersion() &&
|
||||
most_recently_indexed_version.content_version ==
|
||||
unindexed_ruleset_info.content_version) {
|
||||
|
@ -1543,7 +1551,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
|
|||
return;
|
||||
}
|
||||
|
||||
@@ -265,6 +269,18 @@ IndexedRulesetVersion RulesetService::GetMostRecentlyIndexedVersion() const {
|
||||
@@ -266,6 +270,18 @@ IndexedRulesetVersion RulesetService::GetMostRecentlyIndexedVersion() const {
|
||||
IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||
const base::FilePath& indexed_ruleset_base_dir,
|
||||
const UnindexedRulesetInfo& unindexed_ruleset_info) {
|
||||
|
@ -1562,7 +1570,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
|
|||
base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
|
||||
base::BlockingType::MAY_BLOCK);
|
||||
|
||||
@@ -272,6 +288,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||
@@ -273,6 +289,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||
unindexed_ruleset_info);
|
||||
|
||||
if (!unindexed_ruleset_stream_generator.ruleset_stream()) {
|
||||
|
@ -1570,7 +1578,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
|
|||
RecordIndexAndWriteRulesetResult(
|
||||
IndexAndWriteRulesetResult::FAILED_OPENING_UNINDEXED_RULESET);
|
||||
return IndexedRulesetVersion();
|
||||
@@ -285,6 +302,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||
@@ -286,6 +303,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||
indexed_ruleset_base_dir, indexed_version);
|
||||
|
||||
if (!base::CreateDirectory(indexed_ruleset_version_dir)) {
|
||||
|
@ -1578,7 +1586,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
|
|||
RecordIndexAndWriteRulesetResult(
|
||||
IndexAndWriteRulesetResult::FAILED_CREATING_VERSION_DIR);
|
||||
return IndexedRulesetVersion();
|
||||
@@ -310,6 +328,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||
@@ -311,6 +329,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||
|
||||
RulesetIndexer indexer;
|
||||
if (!(*g_index_ruleset_func)(&unindexed_ruleset_stream_generator, &indexer)) {
|
||||
|
@ -1586,7 +1594,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
|
|||
RecordIndexAndWriteRulesetResult(
|
||||
IndexAndWriteRulesetResult::FAILED_PARSING_UNINDEXED_RULESET);
|
||||
return IndexedRulesetVersion();
|
||||
@@ -330,6 +349,8 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||
@@ -331,6 +350,8 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||
if (result != IndexAndWriteRulesetResult::SUCCESS)
|
||||
return IndexedRulesetVersion();
|
||||
|
||||
|
@ -1595,7 +1603,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
|
|||
DCHECK(indexed_version.IsValid());
|
||||
return indexed_version;
|
||||
}
|
||||
@@ -454,6 +475,7 @@ void RulesetService::IndexAndStoreRuleset(
|
||||
@@ -455,6 +476,7 @@ void RulesetService::IndexAndStoreRuleset(
|
||||
void RulesetService::OnWrittenRuleset(WriteRulesetCallback result_callback,
|
||||
const IndexedRulesetVersion& version) {
|
||||
DCHECK(!result_callback.is_null());
|
||||
|
@ -1603,7 +1611,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
|
|||
if (!version.IsValid())
|
||||
return;
|
||||
version.SaveToPrefs(local_state_);
|
||||
@@ -466,7 +488,6 @@ void RulesetService::OpenAndPublishRuleset(
|
||||
@@ -467,7 +489,6 @@ void RulesetService::OpenAndPublishRuleset(
|
||||
IndexedRulesetLocator::GetRulesetDataFilePath(
|
||||
IndexedRulesetLocator::GetSubdirectoryPathForVersion(
|
||||
indexed_ruleset_base_dir_, version));
|
||||
|
@ -1614,7 +1622,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
|
|||
diff --git a/components/subresource_filter/content/browser/ruleset_service.h b/components/subresource_filter/content/browser/ruleset_service.h
|
||||
--- a/components/subresource_filter/content/browser/ruleset_service.h
|
||||
+++ b/components/subresource_filter/content/browser/ruleset_service.h
|
||||
@@ -182,7 +182,7 @@ class RulesetService : public base::SupportsWeakPtr<RulesetService> {
|
||||
@@ -181,7 +181,7 @@ class RulesetService : public base::SupportsWeakPtr<RulesetService> {
|
||||
//
|
||||
// Virtual so that it can be mocked out in tests.
|
||||
virtual void IndexAndStoreAndPublishRulesetIfNeeded(
|
||||
|
@ -1623,7 +1631,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.h b/c
|
|||
|
||||
// Get the ruleset version associated with the current local_state_.
|
||||
IndexedRulesetVersion GetMostRecentlyIndexedVersion() const;
|
||||
@@ -215,6 +215,11 @@ class RulesetService : public base::SupportsWeakPtr<RulesetService> {
|
||||
@@ -214,6 +214,11 @@ class RulesetService : public base::SupportsWeakPtr<RulesetService> {
|
||||
const base::FilePath& indexed_ruleset_base_dir,
|
||||
const UnindexedRulesetInfo& unindexed_ruleset_info);
|
||||
|
||||
|
@ -1660,14 +1668,15 @@ diff --git a/components/subresource_filter/content/browser/verified_ruleset_deal
|
|||
#include "base/metrics/histogram_macros.h"
|
||||
#include "base/notreached.h"
|
||||
#include "base/task_runner_util.h"
|
||||
@@ -36,6 +37,8 @@ base::File VerifiedRulesetDealer::OpenAndSetRulesetFile(
|
||||
@@ -39,6 +40,9 @@ RulesetFilePtr VerifiedRulesetDealer::OpenAndSetRulesetFile(
|
||||
TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("loading"),
|
||||
"VerifiedRulesetDealer::OpenAndSetRulesetFile", "file_valid",
|
||||
file.IsValid());
|
||||
file->IsValid());
|
||||
+
|
||||
+ LOG(INFO) << "OpenAndSetRulesetFile: " << file_path << " is valid: " << file.IsValid();
|
||||
if (file.IsValid()) {
|
||||
SetRulesetFile(file.Duplicate());
|
||||
+ LOG(INFO) << "OpenAndSetRulesetFile: " << file_path << " is valid: " << file->IsValid();
|
||||
+
|
||||
if (file->IsValid()) {
|
||||
SetRulesetFile(file->Duplicate());
|
||||
expected_checksum_ = expected_checksum;
|
||||
diff --git a/components/subresource_filter/core/browser/subresource_filter_features.cc b/components/subresource_filter/core/browser/subresource_filter_features.cc
|
||||
--- a/components/subresource_filter/core/browser/subresource_filter_features.cc
|
||||
|
@ -1839,7 +1848,7 @@ diff --git a/components/subresource_filter/core/common/indexed_ruleset.cc b/comp
|
|||
#include "base/metrics/histogram_macros.h"
|
||||
#include "base/trace_event/trace_event.h"
|
||||
#include "components/subresource_filter/core/common/first_party_origin.h"
|
||||
@@ -34,8 +35,10 @@ VerifyStatus GetVerifyStatus(const uint8_t* buffer,
|
||||
@@ -36,8 +37,10 @@ VerifyStatus GetVerifyStatus(const uint8_t* buffer,
|
||||
// least once. The verifier detects a subset of the errors detected by the
|
||||
// checksum, and is unneeded once expected_checksum is consistently nonzero.
|
||||
flatbuffers::Verifier verifier(buffer, size);
|
||||
|
@ -1854,10 +1863,10 @@ diff --git a/components/subresource_filter/core/common/indexed_ruleset.cc b/comp
|
|||
diff --git a/content/browser/renderer_host/navigation_throttle_runner.cc b/content/browser/renderer_host/navigation_throttle_runner.cc
|
||||
--- a/content/browser/renderer_host/navigation_throttle_runner.cc
|
||||
+++ b/content/browser/renderer_host/navigation_throttle_runner.cc
|
||||
@@ -171,11 +171,6 @@ void NavigationThrottleRunner::RegisterNavigationThrottles() {
|
||||
@@ -180,11 +180,6 @@ void NavigationThrottleRunner::RegisterNavigationThrottles() {
|
||||
// than other throttles that might care about those navigations, e.g.
|
||||
// throttles handling pages with 407 errors that require extra authentication.
|
||||
AddThrottle(HttpErrorNavigationThrottle::MaybeCreateThrottleFor(*request));
|
||||
|
||||
AddThrottle(BackForwardCacheThrottle::MaybeCreateThrottleFor(request));
|
||||
-
|
||||
- // Insert all testing NavigationThrottles last.
|
||||
- throttles_.insert(throttles_.end(),
|
||||
|
|
|
@ -12,7 +12,7 @@ See also: https://github.com/bromite/bromite/issues/553
|
|||
diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
|
||||
--- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
|
||||
+++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
|
||||
@@ -462,12 +462,13 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
|
||||
@@ -594,12 +594,13 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
|
||||
port_config.enable_nonproxied_udp = false;
|
||||
break;
|
||||
case DEFAULT:
|
||||
|
|
38
build/patches/DCScan-Fix-builds-with-system-sysroots.patch
Normal file
38
build/patches/DCScan-Fix-builds-with-system-sysroots.patch
Normal file
|
@ -0,0 +1,38 @@
|
|||
From: Anton Bikineev <bikineev@chromium.org>
|
||||
Date: Fri, 4 Jun 2021 09:36:01 +0000
|
||||
Subject: DCScan: Fix builds with system sysroots
|
||||
|
||||
If 'use_sysroot=false' is used and the system linux-headers are < 5.8,
|
||||
the compilation fails due to undefined 'uffdio_writeprotect'.
|
||||
|
||||
Bug: 1206047
|
||||
Change-Id: Ia73e71b84ea372af49a881f1b14187454bcb4cd8
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2940163
|
||||
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
|
||||
Commit-Queue: Kentaro Hara <haraken@chromium.org>
|
||||
Auto-Submit: Anton Bikineev <bikineev@chromium.org>
|
||||
Reviewed-by: Kentaro Hara <haraken@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/master@{#889195}
|
||||
---
|
||||
base/allocator/partition_allocator/partition_alloc_config.h | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/base/allocator/partition_allocator/partition_alloc_config.h b/base/allocator/partition_allocator/partition_alloc_config.h
|
||||
--- a/base/allocator/partition_allocator/partition_alloc_config.h
|
||||
+++ b/base/allocator/partition_allocator/partition_alloc_config.h
|
||||
@@ -36,9 +36,12 @@ static_assert(sizeof(void*) != 8, "");
|
||||
|
||||
#if defined(PA_HAS_64_BITS_POINTERS) && \
|
||||
(defined(OS_LINUX) || defined(OS_ANDROID))
|
||||
+#include <linux/version.h>
|
||||
// TODO(bikineev): Enable for ChromeOS.
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)
|
||||
#define PA_STARSCAN_UFFD_WRITE_PROTECTOR_SUPPORTED
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
// POSIX is not only UNIX, e.g. macOS and other OSes. We do use Linux-specific
|
||||
// features such as futex(2).
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -9,7 +9,7 @@ Subject: Disable DRM media origin IDs preprovisioning
|
|||
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
|
||||
--- a/media/base/media_switches.cc
|
||||
+++ b/media/base/media_switches.cc
|
||||
@@ -611,7 +611,7 @@ const base::Feature kMediaDrmPersistentLicense{
|
||||
@@ -619,7 +619,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",
|
||||
|
|
25
build/patches/Disable-FLoC-by-default.patch
Normal file
25
build/patches/Disable-FLoC-by-default.patch
Normal file
|
@ -0,0 +1,25 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu, 29 Apr 2021 20:28:16 +0200
|
||||
Subject: Disable FLoC by default
|
||||
|
||||
This is redundant since the privacy sandbox is already disabled by default,
|
||||
but added as an extra measure
|
||||
---
|
||||
components/federated_learning/features/features.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/components/federated_learning/features/features.cc b/components/federated_learning/features/features.cc
|
||||
--- a/components/federated_learning/features/features.cc
|
||||
+++ b/components/federated_learning/features/features.cc
|
||||
@@ -34,7 +34,7 @@ const base::Feature kFlocPagesWithAdResourcesDefaultIncludedInFlocComputation{
|
||||
// required.
|
||||
// TODO(yaoxia): merge other floc features into this one.
|
||||
const base::Feature kFederatedLearningOfCohorts{
|
||||
- "FederatedLearningOfCohorts", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+ "FederatedLearningOfCohorts", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
constexpr base::FeatureParam<base::TimeDelta> kFlocIdScheduledUpdateInterval{
|
||||
&kFederatedLearningOfCohorts, "update_interval",
|
||||
base::TimeDelta::FromDays(7)};
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -22,7 +22,7 @@ diff --git a/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc b/c
|
|||
|
||||
// We need to start by listening to AllSources, since we don't know which tab
|
||||
// the navigation might occur in.
|
||||
@@ -287,7 +287,7 @@ void ChromeOmniboxNavigationObserver::OnAllLoadingFinished() {
|
||||
@@ -288,7 +288,7 @@ void ChromeOmniboxNavigationObserver::OnAllLoadingFinished() {
|
||||
delete this;
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,7 @@ diff --git a/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc b/c
|
|||
const GURL& destination_url) {
|
||||
net::NetworkTrafficAnnotationTag traffic_annotation =
|
||||
net::DefineNetworkTrafficAnnotation("omnibox_navigation_observer", R"(
|
||||
@@ -328,4 +328,4 @@ void ChromeOmniboxNavigationObserver::CreateLoader(
|
||||
@@ -329,4 +329,4 @@ void ChromeOmniboxNavigationObserver::CreateLoader(
|
||||
loader_->SetAllowHttpErrorResults(true);
|
||||
loader_->SetOnRedirectCallback(base::BindRepeating(
|
||||
&ChromeOmniboxNavigationObserver::OnURLRedirect, base::Unretained(this)));
|
||||
|
@ -47,7 +47,7 @@ diff --git a/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.h b/ch
|
|||
- void CreateLoader(const GURL& destination_url);
|
||||
+ //void CreateLoader(const GURL& destination_url);
|
||||
|
||||
const base::string16 text_;
|
||||
const std::u16string text_;
|
||||
const AutocompleteMatch match_;
|
||||
--
|
||||
2.17.1
|
||||
|
|
|
@ -10,17 +10,17 @@ Subject: Disable NTP remote suggestions by default
|
|||
diff --git a/components/feed/core/shared_prefs/pref_names.cc b/components/feed/core/shared_prefs/pref_names.cc
|
||||
--- a/components/feed/core/shared_prefs/pref_names.cc
|
||||
+++ b/components/feed/core/shared_prefs/pref_names.cc
|
||||
@@ -19,8 +19,8 @@ const char kEnableSnippets[] = "ntp_snippets.enable";
|
||||
const char kArticlesListVisible[] = "ntp_snippets.list_visible";
|
||||
@@ -20,8 +20,8 @@ const char kArticlesListVisible[] = "ntp_snippets.list_visible";
|
||||
const char kVideoPreviewsType[] = "ntp_snippets.video_previews_type";
|
||||
|
||||
void RegisterFeedSharedProfilePrefs(PrefRegistrySimple* registry) {
|
||||
- registry->RegisterBooleanPref(kEnableSnippets, true);
|
||||
- registry->RegisterBooleanPref(kArticlesListVisible, true);
|
||||
+ registry->RegisterBooleanPref(kEnableSnippets, false);
|
||||
+ registry->RegisterBooleanPref(kArticlesListVisible, false);
|
||||
registry->RegisterIntegerPref(kVideoPreviewsType, 1);
|
||||
}
|
||||
|
||||
} // namespace prefs
|
||||
diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/features.cc
|
||||
--- a/components/ntp_snippets/features.cc
|
||||
+++ b/components/ntp_snippets/features.cc
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu, 29 Apr 2021 20:26:31 +0200
|
||||
Subject: Disable RTCGetCurrentBrowsingContextMedia 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
|
||||
@@ -219,7 +219,7 @@ const base::Feature kRawClipboard{"RawClipboard",
|
||||
// Kill switch for getCurrentBrowsingContextMedia(), which allows capturing of
|
||||
// web content from the tab from which it is called. (crbug.com/1136940)
|
||||
const base::Feature kRTCGetCurrentBrowsingContextMedia{
|
||||
- "RTCGetCurrentBrowsingContextMedia", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+ "RTCGetCurrentBrowsingContextMedia", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
// Changes the default RTCPeerConnection constructor behavior to use Unified
|
||||
// Plan as the SDP semantics. When the feature is enabled, Unified Plan is used
|
||||
--
|
||||
2.17.1
|
||||
|
23
build/patches/Disable-UA-client-hint.patch
Normal file
23
build/patches/Disable-UA-client-hint.patch
Normal file
|
@ -0,0 +1,23 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu, 22 Jul 2021 23:10:52 +0200
|
||||
Subject: Disable UA client hint
|
||||
|
||||
---
|
||||
content/public/common/content_features.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
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
|
||||
@@ -263,7 +263,7 @@ const base::Feature kExtraSafelistedRequestHeadersForOutOfBlinkCors{
|
||||
|
||||
// Controls whether Client Hints are guarded by Permissions Policy.
|
||||
const base::Feature kFeaturePolicyForClientHints{
|
||||
- "FeaturePolicyForClientHints", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+ "FeaturePolicyForClientHints", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
// Enables fixes for matching src: local() for web fonts correctly against full
|
||||
// font name or postscript name. Rolling out behind a flag, as enabling this
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -9,7 +9,7 @@ Subject: Disable all promo dialogs
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
||||
@@ -523,7 +523,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
|
||||
@@ -638,7 +638,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
|
||||
* displayed.
|
||||
*/
|
||||
private boolean triggerPromo(boolean intentWithEffect) {
|
||||
|
@ -18,7 +18,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
|
|||
if (CommandLine.getInstance().hasSwitch(ChromeSwitches.DISABLE_STARTUP_PROMOS)) {
|
||||
return false;
|
||||
}
|
||||
@@ -558,8 +558,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
|
||||
@@ -673,8 +673,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
|
||||
preferenceManager.writeBoolean(
|
||||
ChromePreferenceKeys.PROMOS_SKIPPED_ON_FIRST_START, true);
|
||||
}
|
||||
|
|
|
@ -3,13 +3,26 @@ Date: Thu, 19 Dec 2019 22:52:53 +0100
|
|||
Subject: Disable feeds support by default
|
||||
|
||||
---
|
||||
components/feed/feed_feature_list.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
.../org/chromium/chrome/browser/flags/CachedFeatureFlags.java | 2 +-
|
||||
components/feed/feed_feature_list.cc | 4 ++--
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
|
||||
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
|
||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
|
||||
@@ -75,7 +75,7 @@ public class CachedFeatureFlags {
|
||||
put(ChromeFeatureList.TAB_TO_GTS_ANIMATION, true);
|
||||
put(ChromeFeatureList.TEST_DEFAULT_DISABLED, false);
|
||||
put(ChromeFeatureList.TEST_DEFAULT_ENABLED, true);
|
||||
- put(ChromeFeatureList.INTEREST_FEED_V2, true);
|
||||
+ put(ChromeFeatureList.INTEREST_FEED_V2, false);
|
||||
put(ChromeFeatureList.THEME_REFACTOR_ANDROID, false);
|
||||
put(ChromeFeatureList.USE_CHIME_ANDROID_SDK, false);
|
||||
put(ChromeFeatureList.CCT_INCOGNITO_AVAILABLE_TO_THIRD_PARTY, false);
|
||||
diff --git a/components/feed/feed_feature_list.cc b/components/feed/feed_feature_list.cc
|
||||
--- a/components/feed/feed_feature_list.cc
|
||||
+++ b/components/feed/feed_feature_list.cc
|
||||
@@ -11,7 +11,7 @@
|
||||
@@ -11,12 +11,12 @@
|
||||
namespace feed {
|
||||
|
||||
const base::Feature kInterestFeedContentSuggestions{
|
||||
|
@ -18,6 +31,12 @@ diff --git a/components/feed/feed_feature_list.cc b/components/feed/feed_feature
|
|||
// InterestFeedV2 takes precedence over InterestFeedContentSuggestions.
|
||||
// InterestFeedV2 is cached in ChromeCachedFlags. If the default value here is
|
||||
// changed, please update the cached one's default value in CachedFeatureFlags.
|
||||
const base::Feature kInterestFeedV2{"InterestFeedV2",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kInterestFeedV2Autoplay{"InterestFeedV2Autoplay",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
@ -3,60 +3,9 @@ Date: Sun, 8 Jul 2018 18:16:34 +0200
|
|||
Subject: Disable fetching of all field trials
|
||||
|
||||
---
|
||||
.../browser/flags/ChromeFeatureList.java | 19 ++++---------------
|
||||
.../variations/service/variations_service.cc | 12 +-----------
|
||||
2 files changed, 5 insertions(+), 26 deletions(-)
|
||||
.../variations/service/variations_service.cc | 14 ++------------
|
||||
1 file changed, 2 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
@@ -123,9 +123,7 @@ public abstract class ChromeFeatureList {
|
||||
* the specified parameter does not exist.
|
||||
*/
|
||||
public static String getFieldTrialParamByFeature(String featureName, String paramName) {
|
||||
- if (FeatureList.hasTestFeatures()) return "";
|
||||
- assert FeatureList.isInitialized();
|
||||
- return ChromeFeatureListJni.get().getFieldTrialParamByFeature(featureName, paramName);
|
||||
+ return "";
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -142,10 +140,7 @@ public abstract class ChromeFeatureList {
|
||||
*/
|
||||
public static int getFieldTrialParamByFeatureAsInt(
|
||||
String featureName, String paramName, int defaultValue) {
|
||||
- if (FeatureList.hasTestFeatures()) return defaultValue;
|
||||
- assert FeatureList.isInitialized();
|
||||
- return ChromeFeatureListJni.get().getFieldTrialParamByFeatureAsInt(
|
||||
- featureName, paramName, defaultValue);
|
||||
+ return defaultValue;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -162,10 +157,7 @@ public abstract class ChromeFeatureList {
|
||||
*/
|
||||
public static double getFieldTrialParamByFeatureAsDouble(
|
||||
String featureName, String paramName, double defaultValue) {
|
||||
- if (FeatureList.hasTestFeatures()) return defaultValue;
|
||||
- assert FeatureList.isInitialized();
|
||||
- return ChromeFeatureListJni.get().getFieldTrialParamByFeatureAsDouble(
|
||||
- featureName, paramName, defaultValue);
|
||||
+ return defaultValue;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -196,10 +188,7 @@ public abstract class ChromeFeatureList {
|
||||
*/
|
||||
public static boolean getFieldTrialParamByFeatureAsBoolean(
|
||||
String featureName, String paramName, boolean defaultValue) {
|
||||
- if (FeatureList.hasTestFeatures()) return defaultValue;
|
||||
- assert FeatureList.isInitialized();
|
||||
- return ChromeFeatureListJni.get().getFieldTrialParamByFeatureAsBoolean(
|
||||
- featureName, paramName, defaultValue);
|
||||
+ return defaultValue;
|
||||
}
|
||||
|
||||
/* Alphabetical: */
|
||||
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
|
||||
|
@ -79,6 +28,15 @@ diff --git a/components/variations/service/variations_service.cc b/components/va
|
|||
}
|
||||
|
||||
std::unique_ptr<SeedResponse> MaybeImportFirstRunSeed(
|
||||
@@ -607,7 +597,7 @@ bool VariationsService::DoFetchFromURL(const GURL& url, bool is_http_retry) {
|
||||
// debugger or if the machine was suspended) and OnURLFetchComplete() hasn't
|
||||
// had a chance to run yet from the previous request. In this case, don't
|
||||
// start a new request and just let the previous one finish.
|
||||
- if (pending_seed_request_)
|
||||
+ if ((true) || pending_seed_request_)
|
||||
return false;
|
||||
|
||||
last_request_was_http_retry_ = is_http_retry;
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
@ -11,8 +11,8 @@ Subject: Disable media router and remoting by default
|
|||
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
|
||||
@@ -50,16 +50,6 @@ const base::Feature kCastToMeetingFromCastDialog{
|
||||
"CastToMeetingFromCastDialog", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
@@ -52,16 +52,6 @@ const base::Feature kCastFeedbackDialog{"CastFeedbackDialog",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
#endif // !defined(OS_ANDROID)
|
||||
|
||||
-#if defined(OS_ANDROID) || BUILDFLAG(ENABLE_EXTENSIONS)
|
||||
|
@ -28,7 +28,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse
|
|||
bool MediaRouterEnabled(content::BrowserContext* context) {
|
||||
#if !defined(OS_ANDROID)
|
||||
if (!base::FeatureList::IsEnabled(kMediaRouter))
|
||||
@@ -67,7 +57,7 @@ bool MediaRouterEnabled(content::BrowserContext* context) {
|
||||
@@ -69,7 +59,7 @@ bool MediaRouterEnabled(content::BrowserContext* context) {
|
||||
#endif // !defined(OS_ANDROID)
|
||||
|
||||
#if defined(OS_ANDROID) || BUILDFLAG(ENABLE_EXTENSIONS)
|
||||
|
@ -37,7 +37,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse
|
|||
stored_pref_values;
|
||||
|
||||
// If the Media Router was already enabled or disabled for |context|, then it
|
||||
@@ -88,7 +78,8 @@ bool MediaRouterEnabled(content::BrowserContext* context) {
|
||||
@@ -90,7 +80,8 @@ bool MediaRouterEnabled(content::BrowserContext* context) {
|
||||
|
||||
// The component extension cannot be loaded in guest sessions.
|
||||
// TODO(crbug.com/756243): Figure out why.
|
||||
|
@ -50,7 +50,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse
|
|||
diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc
|
||||
--- a/chrome/browser/profiles/profile.cc
|
||||
+++ b/chrome/browser/profiles/profile.cc
|
||||
@@ -323,7 +323,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
@@ -355,7 +355,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
media_router::prefs::kMediaRouterEnableCloudServices, false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
registry->RegisterBooleanPref(
|
||||
|
@ -62,7 +62,7 @@ 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
|
||||
@@ -448,7 +448,7 @@ void ProfileImpl::RegisterProfilePrefs(
|
||||
@@ -455,7 +455,7 @@ void ProfileImpl::RegisterProfilePrefs(
|
||||
#endif
|
||||
|
||||
registry->RegisterBooleanPref(prefs::kForceEphemeralProfiles, false);
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: Disable metrics on all I/O threads
|
|||
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
|
||||
--- a/chrome/browser/browser_process_impl.cc
|
||||
+++ b/chrome/browser/browser_process_impl.cc
|
||||
@@ -928,7 +928,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
@@ -931,7 +931,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
|
||||
registry->RegisterBooleanPref(metrics::prefs::kMetricsReportingEnabled,
|
||||
|
|
|
@ -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
|
||||
@@ -42,7 +42,7 @@ const base::Feature kOfflinePagesDescriptivePendingStatusFeature{
|
||||
@@ -39,7 +39,7 @@ const base::Feature kOfflinePagesDescriptivePendingStatusFeature{
|
||||
"OfflinePagesDescriptivePendingStatus", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kOfflinePagesInDownloadHomeOpenInCctFeature{
|
||||
|
|
|
@ -12,7 +12,7 @@ a corresponding user option to individually disable their usage.
|
|||
diff --git a/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc b/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc
|
||||
--- a/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc
|
||||
+++ b/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc
|
||||
@@ -263,5 +263,5 @@ TemplateURLService* ChromeLocationBarModelDelegate::GetTemplateURLService() {
|
||||
@@ -261,5 +261,5 @@ TemplateURLService* ChromeLocationBarModelDelegate::GetTemplateURLService() {
|
||||
// static
|
||||
void ChromeLocationBarModelDelegate::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
|
@ -22,7 +22,7 @@ diff --git a/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc b/c
|
|||
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
|
||||
@@ -471,13 +471,13 @@ ComponentResult IDNToUnicodeOneComponent(
|
||||
@@ -464,13 +464,13 @@ ComponentResult IDNToUnicodeOneComponent(
|
||||
} // namespace
|
||||
|
||||
const FormatUrlType kFormatUrlOmitNothing = 0;
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: Disable plugins enumeration
|
|||
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
--- a/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
@@ -1848,10 +1848,8 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
|
||||
@@ -2085,10 +2085,8 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
|
||||
}
|
||||
|
||||
PluginData* LocalFrame::GetPluginData() const {
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Tue, 8 Jan 2019 08:54:50 +0100
|
||||
Subject: Disable previews by default
|
||||
|
||||
---
|
||||
components/previews/core/previews_features.cc | 5 -----
|
||||
1 file changed, 5 deletions(-)
|
||||
|
||||
diff --git a/components/previews/core/previews_features.cc b/components/previews/core/previews_features.cc
|
||||
--- a/components/previews/core/previews_features.cc
|
||||
+++ b/components/previews/core/previews_features.cc
|
||||
@@ -14,12 +14,7 @@ namespace features {
|
||||
// are enabled are controlled by other features.
|
||||
const base::Feature kPreviews {
|
||||
"Previews",
|
||||
-#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS)
|
||||
- // Previews allowed for Android (but also allow on Linux for dev/debug).
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT
|
||||
-#else // !defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS)
|
||||
base::FEATURE_DISABLED_BY_DEFAULT
|
||||
-#endif // defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS)
|
||||
};
|
||||
|
||||
// Provides slow page triggering parameters.
|
||||
--
|
||||
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
|
||||
@@ -295,7 +295,7 @@ bool DomDistillerViewerSource::ShouldServiceRequest(
|
||||
@@ -297,7 +297,7 @@ bool DomDistillerViewerSource::ShouldServiceRequest(
|
||||
std::string DomDistillerViewerSource::GetContentSecurityPolicy(
|
||||
network::mojom::CSPDirectiveName directive) {
|
||||
if (directive == network::mojom::CSPDirectiveName::StyleSrc) {
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -9,7 +9,7 @@ Subject: Disable seed-based field trials
|
|||
diff --git a/components/variations/service/variations_field_trial_creator.cc b/components/variations/service/variations_field_trial_creator.cc
|
||||
--- a/components/variations/service/variations_field_trial_creator.cc
|
||||
+++ b/components/variations/service/variations_field_trial_creator.cc
|
||||
@@ -517,8 +517,8 @@ bool VariationsFieldTrialCreator::SetupFieldTrials(
|
||||
@@ -260,8 +260,8 @@ bool VariationsFieldTrialCreator::SetupFieldTrials(
|
||||
// instance is set.
|
||||
feature_list->RegisterExtraFeatureOverrides(extra_overrides);
|
||||
|
||||
|
@ -19,7 +19,7 @@ diff --git a/components/variations/service/variations_field_trial_creator.cc b/c
|
|||
if (!command_line->HasSwitch(switches::kDisableFieldTrialTestingConfig) &&
|
||||
!command_line->HasSwitch(::switches::kForceFieldTrials) &&
|
||||
!command_line->HasSwitch(switches::kVariationsServerURL)) {
|
||||
@@ -532,10 +532,12 @@ bool VariationsFieldTrialCreator::SetupFieldTrials(
|
||||
@@ -275,10 +275,12 @@ bool VariationsFieldTrialCreator::SetupFieldTrials(
|
||||
}
|
||||
#endif // BUILDFLAG(FIELDTRIAL_TESTING_ENABLED)
|
||||
bool used_seed = false;
|
||||
|
|
|
@ -5,29 +5,88 @@ Subject: Disable smart selection by default
|
|||
Allow web search in incognito mode (reverts
|
||||
commit 48d4ae54f7565c429bf29cd63806aee5d7e93e69)
|
||||
|
||||
Partial revert of da1d809c003749846cb4ade8c11b6d038e44416b to restore
|
||||
the ChromeSmartSelection feature flag.
|
||||
|
||||
Notice that re-enabling smart selection would make incognito mode potentially
|
||||
leak information through the TextClassifier set by OEM, if any
|
||||
---
|
||||
chrome/browser/flags/android/chrome_feature_list.cc | 2 +-
|
||||
.../content/browser/selection/SelectionPopupControllerImpl.java | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
.../contextualsearch/SelectionClientManager.java | 4 +++-
|
||||
.../browser/flags/android/chrome_feature_list.cc | 4 ++++
|
||||
.../browser/flags/android/chrome_feature_list.h | 1 +
|
||||
.../chrome/browser/flags/ChromeFeatureList.java | 1 +
|
||||
.../selection/SelectionPopupControllerImpl.java | 2 +-
|
||||
testing/variations/fieldtrial_testing_config.json | 15 +++++++++++++++
|
||||
6 files changed, 25 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/SelectionClientManager.java b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/SelectionClientManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/SelectionClientManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/SelectionClientManager.java
|
||||
@@ -10,6 +10,7 @@ import android.view.textclassifier.TextClassifier;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
|
||||
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
import org.chromium.content_public.browser.SelectionClient;
|
||||
import org.chromium.content_public.browser.SelectionEventProcessor;
|
||||
import org.chromium.content_public.browser.SelectionPopupController;
|
||||
@@ -44,7 +45,8 @@ public class SelectionClientManager {
|
||||
* @param webContents The {@link WebContents} that will show popups for this client.
|
||||
*/
|
||||
SelectionClientManager(WebContents webContents) {
|
||||
- if (Build.VERSION.SDK_INT > Build.VERSION_CODES.O) {
|
||||
+ if (ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_SMART_SELECTION)
|
||||
+ && Build.VERSION.SDK_INT > Build.VERSION_CODES.O) {
|
||||
assert webContents != null;
|
||||
mOptionalSelectionClient = SelectionClient.createSmartSelectionClient(webContents);
|
||||
SelectionPopupController controller =
|
||||
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
|
||||
@@ -518,7 +518,7 @@ const base::Feature kDownloadProgressInfoBar{"DownloadProgressInfoBar",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
@@ -164,6 +164,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||
&kCCTRedirectPreconnect,
|
||||
&kCCTRemoveRemoteViewIds,
|
||||
&kCCTReportParallelRequestStatus,
|
||||
+ &kChromeSmartSelection,
|
||||
&kCCTResourcePrefetch,
|
||||
&kDarkenWebsitesCheckboxInThemesSetting,
|
||||
&kDontAutoHideBrowserControls,
|
||||
@@ -460,6 +461,9 @@ const base::Feature kChromeStartupDelegate{"ChromeStartupDelegate",
|
||||
const base::Feature kChromeSurveyNextAndroid{"ChromeSurveyNextAndroid",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kDownloadFileProvider{"DownloadFileProvider",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+const base::Feature kChromeSmartSelection{"ChromeSmartSelection",
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+
|
||||
const base::Feature kCommandLineOnNonRooted{"CommandLineOnNonRooted",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kDownloadNotificationBadge{
|
||||
"DownloadNotificationBadge", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
|
||||
--- a/chrome/browser/flags/android/chrome_feature_list.h
|
||||
+++ b/chrome/browser/flags/android/chrome_feature_list.h
|
||||
@@ -50,6 +50,7 @@ extern const base::Feature kChromeShareLongScreenshot;
|
||||
extern const base::Feature kChromeShareScreenshot;
|
||||
extern const base::Feature kChromeSharingHub;
|
||||
extern const base::Feature kChromeStartupDelegate;
|
||||
+extern const base::Feature kChromeSmartSelection;
|
||||
extern const base::Feature kChromeSurveyNextAndroid;
|
||||
extern const base::Feature kCommandLineOnNonRooted;
|
||||
extern const base::Feature kConditionalTabStripAndroid;
|
||||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
@@ -275,6 +275,7 @@ public abstract class ChromeFeatureList {
|
||||
public static final String CHROME_SHARE_LONG_SCREENSHOT = "ChromeShareLongScreenshot";
|
||||
public static final String CHROME_SHARE_SCREENSHOT = "ChromeShareScreenshot";
|
||||
public static final String CHROME_SHARING_HUB = "ChromeSharingHub";
|
||||
+ public static final String CHROME_SMART_SELECTION = "ChromeSmartSelection";
|
||||
public static final String CHROME_STARTUP_DELEGATE = "ChromeStartupDelegate";
|
||||
public static final String CLEAR_OLD_BROWSING_DATA = "ClearOldBrowsingData";
|
||||
public static final String COMMAND_LINE_ON_NON_ROOTED = "CommandLineOnNonRooted";
|
||||
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
|
||||
@@ -833,7 +833,7 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
|
||||
@@ -830,7 +830,7 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
|
||||
menu.removeItem(R.id.select_action_menu_share);
|
||||
}
|
||||
|
||||
|
@ -36,6 +95,31 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
|
|||
|| !isSelectActionModeAllowed(MENU_ITEM_WEB_SEARCH)) {
|
||||
menu.removeItem(R.id.select_action_menu_web_search);
|
||||
}
|
||||
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
|
||||
--- a/testing/variations/fieldtrial_testing_config.json
|
||||
+++ b/testing/variations/fieldtrial_testing_config.json
|
||||
@@ -1828,6 +1828,21 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
+ "ChromeSmartSelection": [
|
||||
+ {
|
||||
+ "platforms": [
|
||||
+ "android"
|
||||
+ ],
|
||||
+ "experiments": [
|
||||
+ {
|
||||
+ "name": "Enabled_Launch",
|
||||
+ "enable_features": [
|
||||
+ "ChromeSmartSelection"
|
||||
+ ]
|
||||
+ }
|
||||
+ ]
|
||||
+ }
|
||||
+ ],
|
||||
"ChromeStart": [
|
||||
{
|
||||
"platforms": [
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
@ -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
|
||||
@@ -662,7 +662,7 @@ const base::Feature kSignedExchangePrefetchCacheForNavigations{
|
||||
@@ -667,7 +667,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
|
||||
@@ -672,7 +672,7 @@ const base::Feature kSignedExchangeSubresourcePrefetch{
|
||||
@@ -677,7 +677,7 @@ const base::Feature kSignedExchangeSubresourcePrefetch{
|
||||
// Origin-Signed HTTP Exchanges (for WebPackage Loading)
|
||||
// https://www.chromestatus.com/features/5745285984681984
|
||||
const base::Feature kSignedHTTPExchange{"SignedHTTPExchange",
|
||||
|
|
|
@ -1,53 +0,0 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 11 Nov 2019 23:09:48 +0100
|
||||
Subject: Disable sync services menu entry
|
||||
|
||||
---
|
||||
chrome/android/java/res/xml/main_preferences.xml | 11 ++---------
|
||||
chrome/android/java/res/xml/privacy_preferences.xml | 5 -----
|
||||
2 files changed, 2 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/main_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/main_preferences.xml
|
||||
@@ -13,7 +13,8 @@
|
||||
<PreferenceCategory
|
||||
android:key="account_section"
|
||||
android:order="1"
|
||||
- android:title="@string/prefs_section_account"/>
|
||||
+ android:title="@string/prefs_section_account"
|
||||
+ app:isPreferenceVisible="false"/>
|
||||
<PreferenceCategory
|
||||
android:key="account_and_google_services_section"
|
||||
android:order="2"
|
||||
@@ -23,14 +24,6 @@
|
||||
android:key="sign_in"
|
||||
android:order="3"
|
||||
android:title="@string/sign_in_to_chrome"/>
|
||||
- <org.chromium.components.browser_ui.settings.ChromeBasePreference
|
||||
- android:key="sync_and_services"
|
||||
- android:order="4"
|
||||
- android:layout="@layout/account_management_account_row"
|
||||
- android:title="@string/prefs_sync_and_services"
|
||||
- android:fragment="org.chromium.chrome.browser.sync.settings.SyncAndServicesSettings"/>
|
||||
- <!-- manage_sync and google_services replace sync_and_services if MOBILE_IDENTITY_CONSISTENCY
|
||||
- is enabled. -->
|
||||
<org.chromium.components.browser_ui.settings.ChromeBasePreference
|
||||
android:key="manage_sync"
|
||||
android:order="5"
|
||||
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
|
||||
@@ -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="8"/>
|
||||
</PreferenceScreen>
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -17,18 +17,18 @@ 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
|
||||
@@ -5282,6 +5282,7 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
kHappinessTrackingSurveysForDesktopDevToolsIssuesCookiesSameSiteDescription,
|
||||
kOsDesktop,
|
||||
FEATURE_VALUE_TYPE(
|
||||
+ // will override runtime text fragment identifiers setting too
|
||||
features::
|
||||
kHappinessTrackingSurveysForDesktopDevToolsIssuesCookiesSameSite)},
|
||||
@@ -5295,6 +5295,7 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
|
||||
{"happiness-tracking-surveys-for-desktop-settings-privacy",
|
||||
flag_descriptions::kHappinessTrackingSurveysForDesktopSettingsPrivacyName,
|
||||
+ // will override runtime text fragment identifiers setting too
|
||||
flag_descriptions::
|
||||
kHappinessTrackingSurveysForDesktopSettingsPrivacyDescription,
|
||||
kOsDesktop,
|
||||
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
|
||||
@@ -2755,7 +2755,7 @@
|
||||
@@ -2812,7 +2812,7 @@
|
||||
{
|
||||
"name": "ev-details-in-page-info",
|
||||
"owners": [ "cthomp" ],
|
||||
|
@ -40,10 +40,10 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
|
|||
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
|
||||
@@ -360,7 +360,7 @@ void PrefsTabHelper::RegisterProfilePrefs(
|
||||
@@ -356,7 +356,7 @@ void PrefsTabHelper::RegisterProfilePrefs(
|
||||
prefs::kEnableReferrers,
|
||||
!base::FeatureList::IsEnabled(features::kNoReferrers));
|
||||
registry->RegisterBooleanPref(prefs::kEnableEncryptedMedia, true);
|
||||
registry->RegisterBooleanPref(prefs::kEnableDRM, true);
|
||||
- registry->RegisterBooleanPref(prefs::kScrollToTextFragmentEnabled, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kScrollToTextFragmentEnabled, false);
|
||||
#if defined(OS_ANDROID)
|
||||
|
@ -52,7 +52,7 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre
|
|||
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
|
||||
--- a/content/child/runtime_features.cc
|
||||
+++ b/content/child/runtime_features.cc
|
||||
@@ -273,6 +273,7 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
|
||||
@@ -271,6 +271,7 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
|
||||
{wf::EnableMouseSubframeNoImplicitCapture,
|
||||
features::kMouseSubframeNoImplicitCapture},
|
||||
{wf::EnableNeverSlowMode, features::kNeverSlowMode},
|
||||
|
@ -63,7 +63,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
|
|||
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
|
||||
--- a/third_party/blink/common/features.cc
|
||||
+++ b/third_party/blink/common/features.cc
|
||||
@@ -309,7 +309,7 @@ const base::Feature kStorageAccessAPI{"StorageAccessAPI",
|
||||
@@ -336,7 +336,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
|
||||
@@ -4324,6 +4324,10 @@ void Document::SetURL(const KURL& url) {
|
||||
@@ -4061,6 +4061,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();
|
||||
@@ -4337,6 +4341,7 @@ void Document::SetURL(const KURL& url) {
|
||||
@@ -4074,6 +4078,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
|
||||
@@ -1254,34 +1254,25 @@ TEST_P(TextFragmentRelatedMetricTest, ElementIdSuccessFailureCounts) {
|
||||
@@ -1248,34 +1248,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
|
||||
@@ -2020,8 +2020,7 @@
|
||||
@@ -2052,8 +2052,7 @@
|
||||
},
|
||||
{
|
||||
name: "TextFragmentIdentifiers",
|
||||
|
@ -154,7 +154,7 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
|||
+ origin_trial_feature_name: "TextFragmentIdentifiers"
|
||||
},
|
||||
{
|
||||
name: "ThirdPartyOriginTrials",
|
||||
name: "TextFragmentTapOpensContextMenu",
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ diff --git a/chrome/browser/media/router/discovery/dial/dial_registry.cc b/chrom
|
|||
dial_ = CreateDialService();
|
||||
dial_->AddObserver(this);
|
||||
- DoDiscovery();
|
||||
- repeating_timer_.reset(new base::RepeatingTimer());
|
||||
- repeating_timer_ = std::make_unique<base::RepeatingTimer>();
|
||||
- repeating_timer_->Start(FROM_HERE, refresh_interval_delta_, this,
|
||||
- &DialRegistry::DoDiscovery);
|
||||
}
|
||||
|
|
|
@ -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
|
||||
@@ -632,7 +632,7 @@ void RegisterProfilePrefsForMigration(
|
||||
@@ -630,7 +630,7 @@ void RegisterProfilePrefsForMigration(
|
||||
|
||||
registry->RegisterDictionaryPref(kObservedSessionTime);
|
||||
|
||||
|
|
|
@ -9,15 +9,15 @@ Subject: Disable unified autoplay feature
|
|||
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
|
||||
--- a/media/base/media_switches.cc
|
||||
+++ b/media/base/media_switches.cc
|
||||
@@ -453,7 +453,7 @@ const base::Feature kUseR16Texture{"use-r16-texture",
|
||||
@@ -466,7 +466,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};
|
||||
|
||||
// TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
|
||||
// complete.
|
||||
#if defined(OS_LINUX)
|
||||
// Enable vaapi video decoding on linux. This is already enabled by default on
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
23
build/patches/Do-not-build-API-keys-infobar.patch
Normal file
23
build/patches/Do-not-build-API-keys-infobar.patch
Normal file
|
@ -0,0 +1,23 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Fri, 23 Jul 2021 15:05:19 +0200
|
||||
Subject: Do not build API keys infobar
|
||||
|
||||
---
|
||||
chrome/browser/ui/BUILD.gn | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
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
|
||||
@@ -1172,8 +1172,6 @@ static_library("ui") {
|
||||
"singleton_tabs.h",
|
||||
"startup/automation_infobar_delegate.cc",
|
||||
"startup/automation_infobar_delegate.h",
|
||||
- "startup/google_api_keys_infobar_delegate.cc",
|
||||
- "startup/google_api_keys_infobar_delegate.h",
|
||||
"startup/launch_mode_recorder.cc",
|
||||
"startup/launch_mode_recorder.h",
|
||||
"startup/obsolete_system_infobar_delegate.cc",
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -3,33 +3,32 @@ Date: Thu, 27 Feb 2020 23:23:59 +0100
|
|||
Subject: Do not compile QR code sharing
|
||||
|
||||
---
|
||||
.../ChromeProvidedSharingOptionsProvider.java | 17 -----------------
|
||||
.../ChromeProvidedSharingOptionsProvider.java | 16 ----------------
|
||||
chrome/browser/share/android/java_sources.gni | 18 ------------------
|
||||
2 files changed, 35 deletions(-)
|
||||
2 files changed, 34 deletions(-)
|
||||
|
||||
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.share.ChromeShareExtras;
|
||||
import org.chromium.chrome.browser.share.link_to_text.LinkToTextCoordinator;
|
||||
@@ -28,7 +28,6 @@ import org.chromium.chrome.browser.share.link_to_text.LinkToTextCoordinator;
|
||||
import org.chromium.chrome.browser.share.link_to_text.LinkToTextCoordinator.LinkGeneration;
|
||||
import org.chromium.chrome.browser.share.link_to_text.LinkToTextMetricsHelper;
|
||||
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;
|
||||
@@ -241,10 +240,6 @@ class ChromeProvidedSharingOptionsProvider {
|
||||
@@ -255,9 +254,6 @@ class ChromeProvidedSharingOptionsProvider {
|
||||
ChromeFeatureList.PREEMPTIVE_LINK_TO_TEXT_GENERATION)) {
|
||||
mOrderedFirstPartyOptions.add(createHighlightsFirstPartyOption());
|
||||
}
|
||||
- if (ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_SHARE_QRCODE)
|
||||
- && !mTabProvider.get().getWebContents().isIncognito()) {
|
||||
- if (!mTabProvider.get().getWebContents().isIncognito()) {
|
||||
- mOrderedFirstPartyOptions.add(createQrCodeFirstPartyOption());
|
||||
- }
|
||||
if (UserPrefs.get(Profile.getLastUsedRegularProfile()).getBoolean(Pref.PRINTING_ENABLED)) {
|
||||
mOrderedFirstPartyOptions.add(createPrintingFirstPartyOption());
|
||||
}
|
||||
@@ -391,18 +386,6 @@ class ChromeProvidedSharingOptionsProvider {
|
||||
@@ -404,18 +400,6 @@ class ChromeProvidedSharingOptionsProvider {
|
||||
.build();
|
||||
}
|
||||
|
||||
|
@ -51,10 +50,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
|
||||
@@ -19,24 +19,6 @@ share_java_sources = [
|
||||
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/LongScreenshotsEntry.java",
|
||||
@@ -22,24 +22,6 @@ share_java_sources = [
|
||||
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/LongScreenshotsTabService.java",
|
||||
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/LongScreenshotsTabServiceFactory.java",
|
||||
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/ScreenshotBoundsManager.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",
|
||||
|
|
|
@ -10,7 +10,7 @@ Block gelocation by default instead of granting it for non-enterprise use cases
|
|||
diff --git a/chrome/browser/android/search_permissions/search_permissions_service.cc b/chrome/browser/android/search_permissions/search_permissions_service.cc
|
||||
--- a/chrome/browser/android/search_permissions/search_permissions_service.cc
|
||||
+++ b/chrome/browser/android/search_permissions/search_permissions_service.cc
|
||||
@@ -191,7 +191,7 @@ void SearchPermissionsService::ResetDSEPermission(ContentSettingsType type) {
|
||||
@@ -193,7 +193,7 @@ void SearchPermissionsService::ResetDSEPermission(ContentSettingsType type) {
|
||||
DCHECK(dse_url.is_empty() || IsPermissionControlledByDSE(type, dse_origin));
|
||||
|
||||
if (!dse_url.is_empty())
|
||||
|
@ -19,7 +19,7 @@ diff --git a/chrome/browser/android/search_permissions/search_permissions_servic
|
|||
}
|
||||
|
||||
void SearchPermissionsService::ResetDSEPermissions() {
|
||||
@@ -334,11 +334,7 @@ void SearchPermissionsService::InitializeSettingsIfNeeded() {
|
||||
@@ -336,11 +336,7 @@ void SearchPermissionsService::InitializeSettingsIfNeeded() {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -32,7 +32,7 @@ diff --git a/chrome/browser/android/search_permissions/search_permissions_servic
|
|||
pref_service_->ClearPref(prefs::kDSEWasDisabledByPolicy);
|
||||
|
||||
// Initialize the pref for geolocation if it hasn't been initialized yet.
|
||||
@@ -371,10 +367,8 @@ void SearchPermissionsService::InitializeSettingsIfNeeded() {
|
||||
@@ -373,10 +369,8 @@ void SearchPermissionsService::InitializeSettingsIfNeeded() {
|
||||
pref_service_->ClearPref(prefs::kDSEGeolocationSettingDeprecated);
|
||||
} else if (dse_geolocation_setting == CONTENT_SETTING_ASK) {
|
||||
// If the user hasn't explicitly allowed or blocked geolocation for the
|
||||
|
@ -45,7 +45,7 @@ diff --git a/chrome/browser/android/search_permissions/search_permissions_servic
|
|||
}
|
||||
|
||||
// Update the content setting with the auto-grants for the DSE.
|
||||
@@ -399,11 +393,9 @@ void SearchPermissionsService::InitializeSettingsIfNeeded() {
|
||||
@@ -401,11 +395,9 @@ void SearchPermissionsService::InitializeSettingsIfNeeded() {
|
||||
GetContentSetting(dse_origin, ContentSettingsType::NOTIFICATIONS);
|
||||
ContentSetting dse_notifications_setting = notifications_setting_to_restore;
|
||||
// If the user hasn't explicitly allowed or blocked notifications for the
|
||||
|
|
|
@ -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
|
||||
@@ -419,9 +419,8 @@ bool Extension::ShouldDisplayInNewTabPage() const {
|
||||
@@ -440,9 +440,8 @@ bool Extension::ShouldDisplayInNewTabPage() const {
|
||||
}
|
||||
|
||||
bool Extension::ShouldExposeViaManagementAPI() const {
|
||||
|
|
|
@ -8,35 +8,21 @@ do not skip the prompt in such cases.
|
|||
|
||||
Do not tick "Don't show again" by default
|
||||
---
|
||||
.../dialogs/DownloadLocationCustomView.java | 4 ----
|
||||
.../dialogs/DownloadLocationDialogCoordinator.java | 13 -------------
|
||||
2 files changed, 17 deletions(-)
|
||||
.../dialogs/DownloadLocationDialogCoordinator.java | 14 --------------
|
||||
1 file changed, 14 deletions(-)
|
||||
|
||||
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
|
||||
@@ -75,10 +75,6 @@ public class DownloadLocationCustomView
|
||||
CharSequence title) {
|
||||
mDialogType = dialogType;
|
||||
|
||||
- // Automatically check "don't show again" the first time the user is seeing the dialog.
|
||||
- boolean isInitial = DownloadDialogBridge.getPromptForDownloadAndroid()
|
||||
- == DownloadPromptStatus.SHOW_INITIAL;
|
||||
- mDontShowAgain.setChecked(isInitial);
|
||||
mDontShowAgain.setOnCheckedChangeListener(this);
|
||||
|
||||
mFileName.setText(suggestedPath.getName());
|
||||
diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java
|
||||
--- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java
|
||||
+++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java
|
||||
@@ -120,19 +120,6 @@ public class DownloadLocationDialogCoordinator implements ModalDialogProperties.
|
||||
@@ -128,20 +128,6 @@ public class DownloadLocationDialogCoordinator implements ModalDialogProperties.
|
||||
* @param dirs An list of available download directories.
|
||||
*/
|
||||
private void onDirectoryOptionsRetrieved(ArrayList<DirectoryOption> dirs) {
|
||||
- // If there is only one directory available, don't show the default dialog, and set the
|
||||
- // download directory to default. Dialog will still show for other types of dialogs, like
|
||||
- // name conflict or disk error.
|
||||
- if (dirs.size() == 1 && mDialogType == DownloadLocationDialogType.DEFAULT) {
|
||||
- if (dirs.size() == 1 && !mLocationDialogManaged
|
||||
- && mDialogType == DownloadLocationDialogType.DEFAULT) {
|
||||
- final DirectoryOption dir = dirs.get(0);
|
||||
- if (dir.type == DirectoryOption.DownloadLocationDirectoryType.DEFAULT) {
|
||||
- assert (!TextUtils.isEmpty(dir.location));
|
||||
|
|
|
@ -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
|
||||
@@ -208,10 +208,10 @@ FormData SimplifiedFormDataFromFormStructure(
|
||||
@@ -207,10 +207,10 @@ bool HasMutedCredentials(base::span<const InsecureCredential> credentials,
|
||||
void PasswordManager::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
|
|
|
@ -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,
|
||||
@@ -328,22 +328,7 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration(
|
||||
@@ -331,22 +331,7 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration(
|
||||
check_parental_controls = false;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Tue, 25 May 2021 19:33:41 +0200
|
||||
Subject: Enable IntentBlockExternalFormRedirectsNoGesture by default
|
||||
|
||||
---
|
||||
.../external_intents/android/external_intents_features.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/components/external_intents/android/external_intents_features.cc b/components/external_intents/android/external_intents_features.cc
|
||||
--- a/components/external_intents/android/external_intents_features.cc
|
||||
+++ b/components/external_intents/android/external_intents_features.cc
|
||||
@@ -26,7 +26,7 @@ const base::Feature* kFeaturesExposedToJava[] = {
|
||||
// Alphabetical:
|
||||
const base::Feature kIntentBlockExternalFormRedirectsNoGesture{
|
||||
"IntentBlockExternalFormRedirectsNoGesture",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
static jlong JNI_ExternalIntentsFeatures_GetFeature(JNIEnv* env, jint ordinal) {
|
||||
return reinterpret_cast<jlong>(kFeaturesExposedToJava[ordinal]);
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -10,7 +10,7 @@ Subject: Enable SPPI for devices with enough memory
|
|||
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
|
||||
--- a/chrome/common/chrome_features.cc
|
||||
+++ b/chrome/common/chrome_features.cc
|
||||
@@ -845,11 +845,7 @@ const base::Feature kShow10_10ObsoleteInfobar{
|
||||
@@ -879,11 +879,7 @@ const base::Feature kShow10_10ObsoleteInfobar{
|
||||
// browser_features, as they are only used on the browser side.
|
||||
const base::Feature kSitePerProcess {
|
||||
"site-per-process",
|
||||
|
@ -25,7 +25,7 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
|
|||
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
|
||||
@@ -36,7 +36,7 @@ const base::Feature kSiteIsolationForPasswordSites {
|
||||
@@ -50,7 +50,7 @@ const base::Feature kSiteIsolationForOAuthSites{
|
||||
// base::SysInfo::AmountOfPhysicalMemoryMB().
|
||||
const base::Feature kSitePerProcessOnlyForHighMemoryClients{
|
||||
"site-per-process-only-for-high-memory-clients",
|
||||
|
|
|
@ -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
|
||||
@@ -1099,7 +1099,7 @@
|
||||
@@ -1076,7 +1076,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
|
||||
@@ -506,7 +506,7 @@ const base::Feature kContextualSearchTranslations{
|
||||
@@ -528,7 +528,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
|
||||
@@ -319,6 +319,10 @@ config("compiler") {
|
||||
@@ -342,6 +342,10 @@ config("compiler") {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ PartitionNelAndReportingByNetworkIsolationKey
|
|||
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",
|
||||
@@ -74,30 +74,30 @@ const base::Feature kNetworkQualityEstimator{"NetworkQualityEstimator",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kSplitCacheByNetworkIsolationKey{
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: Enable prefetch-privacy-changes by default
|
|||
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
|
||||
--- a/third_party/blink/common/features.cc
|
||||
+++ b/third_party/blink/common/features.cc
|
||||
@@ -334,7 +334,7 @@ const base::Feature kComputePressure{"ComputePressure",
|
||||
@@ -361,7 +361,7 @@ const base::Feature kComputePressure{"ComputePressure",
|
||||
// Prefetch request properties are updated to be privacy-preserving. See
|
||||
// crbug.com/988956.
|
||||
const base::Feature kPrefetchPrivacyChanges{"PrefetchPrivacyChanges",
|
||||
|
|
|
@ -9,7 +9,7 @@ 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
|
||||
@@ -56,7 +56,7 @@ const base::Feature kFreezePurgeMemoryAllPagesFrozen{
|
||||
@@ -81,7 +81,7 @@ const base::Feature kFreezePurgeMemoryAllPagesFrozen{
|
||||
|
||||
// Freezes the user-agent as part of https://github.com/WICG/ua-client-hints.
|
||||
const base::Feature kFreezeUserAgent{"FreezeUserAgent",
|
||||
|
|
|
@ -18,7 +18,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
|
|||
|
||||
PreferenceGroup passwordParent;
|
||||
if (mSearchQuery == null) {
|
||||
@@ -390,7 +390,7 @@ public class PasswordSettings
|
||||
@@ -394,7 +394,7 @@ public class PasswordSettings
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ Patch from https://github.com/Eloston/ungoogled-chromium/issues/814#issuecomment
|
|||
diff --git a/components/omnibox/browser/autocomplete_result.cc b/components/omnibox/browser/autocomplete_result.cc
|
||||
--- a/components/omnibox/browser/autocomplete_result.cc
|
||||
+++ b/components/omnibox/browser/autocomplete_result.cc
|
||||
@@ -69,7 +69,8 @@ struct MatchGURLHash {
|
||||
@@ -67,7 +67,8 @@ struct MatchGURLHash {
|
||||
// static
|
||||
size_t AutocompleteResult::GetMaxMatches(bool is_zero_suggest) {
|
||||
#if (defined(OS_ANDROID))
|
||||
|
|
|
@ -40,8 +40,8 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
|
|||
+#include "extensions/video_bg_play.h"
|
||||
#include "third_party/blink/renderer/core/page/scrolling/snap_coordinator.h"
|
||||
#include "third_party/blink/renderer/core/page/scrolling/text_fragment_anchor.h"
|
||||
#include "third_party/blink/renderer/core/page/scrolling/text_fragment_selector_generator.h"
|
||||
@@ -340,6 +341,8 @@
|
||||
#include "third_party/blink/renderer/core/page/scrolling/text_fragment_handler.h"
|
||||
@@ -343,6 +344,8 @@
|
||||
#include "third_party/blink/renderer/platform/wtf/text/string_buffer.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/text/text_encoding_registry.h"
|
||||
|
||||
|
@ -50,7 +50,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
|
|||
#ifndef NDEBUG
|
||||
using WeakDocumentSet = blink::HeapHashSet<blink::WeakMember<blink::Document>>;
|
||||
static WeakDocumentSet& liveDocumentSet();
|
||||
@@ -6850,6 +6853,61 @@ void Document::setAllowDeclarativeShadowRoots(bool val) {
|
||||
@@ -6609,6 +6612,61 @@ void Document::setAllowDeclarativeShadowRoots(bool val) {
|
||||
val ? AllowState::kAllow : AllowState::kDeny;
|
||||
}
|
||||
|
||||
|
@ -112,7 +112,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
|
|||
void Document::FinishedParsing() {
|
||||
DCHECK(!GetScriptableDocumentParser() || !parser_->IsParsing());
|
||||
DCHECK(!GetScriptableDocumentParser() || ready_state_ != kLoading);
|
||||
@@ -6902,6 +6960,10 @@ void Document::FinishedParsing() {
|
||||
@@ -6661,6 +6719,10 @@ void Document::FinishedParsing() {
|
||||
|
||||
frame->Loader().FinishedParsing();
|
||||
|
||||
|
@ -120,13 +120,13 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
|
|||
+ injectScripts();
|
||||
+ }
|
||||
+
|
||||
TRACE_EVENT_INSTANT1("devtools.timeline", "MarkDOMContent",
|
||||
TRACE_EVENT_SCOPE_THREAD, "data",
|
||||
inspector_mark_load_event::Data(frame));
|
||||
DEVTOOLS_TIMELINE_TRACE_EVENT_INSTANT(
|
||||
"MarkDOMContent", inspector_mark_load_event::Data, frame);
|
||||
probe::DomContentLoadedEventFired(frame);
|
||||
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
|
||||
@@ -1721,6 +1721,9 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
@@ -1737,6 +1737,9 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
void AddAXContext(AXContext*);
|
||||
void RemoveAXContext(AXContext*);
|
||||
|
||||
|
@ -161,8 +161,8 @@ new file mode 100644
|
|||
diff --git a/third_party/blink/renderer/core/html/html_script_element.cc b/third_party/blink/renderer/core/html/html_script_element.cc
|
||||
--- a/third_party/blink/renderer/core/html/html_script_element.cc
|
||||
+++ b/third_party/blink/renderer/core/html/html_script_element.cc
|
||||
@@ -168,6 +168,11 @@ void HTMLScriptElement::setTextContent(
|
||||
}
|
||||
@@ -206,6 +206,11 @@ void HTMLScriptElement::setTextContent(const String& string) {
|
||||
script_text_internal_slot_ = ParkableString(string.Impl());
|
||||
}
|
||||
|
||||
+void HTMLScriptElement::setTextDirect(
|
||||
|
@ -171,14 +171,14 @@ diff --git a/third_party/blink/renderer/core/html/html_script_element.cc b/third
|
|||
+}
|
||||
+
|
||||
void HTMLScriptElement::setAsync(bool async) {
|
||||
// https://html.spec.whatwg.org/multipage/scripting.html#dom-script-async
|
||||
SetBooleanAttribute(html_names::kAsyncAttr, async);
|
||||
loader_->HandleAsyncAttribute();
|
||||
diff --git a/third_party/blink/renderer/core/html/html_script_element.h b/third_party/blink/renderer/core/html/html_script_element.h
|
||||
--- a/third_party/blink/renderer/core/html/html_script_element.h
|
||||
+++ b/third_party/blink/renderer/core/html/html_script_element.h
|
||||
@@ -53,6 +53,7 @@ class CORE_EXPORT HTMLScriptElement final : public HTMLElement,
|
||||
void setInnerText(const StringOrTrustedScript&, ExceptionState&) override;
|
||||
void setTextContent(const StringOrTrustedScript&, ExceptionState&) override;
|
||||
@@ -66,6 +66,7 @@ class CORE_EXPORT HTMLScriptElement final : public HTMLElement,
|
||||
ExceptionState&) override;
|
||||
#endif // defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION)
|
||||
void setTextContent(const String&) override;
|
||||
+ void setTextDirect(const char*);
|
||||
|
||||
|
|
122
build/patches/JIT-less-toggle.patch
Normal file
122
build/patches/JIT-less-toggle.patch
Normal file
|
@ -0,0 +1,122 @@
|
|||
From: hardenedfuchsiaoswhen <hardenedfuchsiaoswhen@protonmail.com>
|
||||
Date: Fri, 18 Jun 2021 03:34:20 +0000
|
||||
Subject: JIT-less toggle
|
||||
|
||||
---
|
||||
chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++
|
||||
.../browser/privacy/settings/PrivacySettings.java | 12 ++++++++++++
|
||||
.../ui/android/strings/android_chrome_strings.grd | 7 +++++++
|
||||
.../browser/BrowserStartupControllerImpl.java | 1 +
|
||||
.../chromium/content/browser/DeviceUtilsImpl.java | 6 ++++++
|
||||
5 files changed, 31 insertions(+)
|
||||
|
||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -24,6 +24,11 @@
|
||||
android:title="@string/preload_pages_title"
|
||||
android:summary="@string/preload_pages_summary"
|
||||
android:persistent="false"/>
|
||||
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||
+ android:key="force_no_jit"
|
||||
+ android:title="@string/force_no_jit_title"
|
||||
+ android:summary="@string/force_no_jit_summary"
|
||||
+ android:defaultValue="false" />
|
||||
<org.chromium.components.browser_ui.settings.ChromeBasePreference
|
||||
android:key="secure_dns"
|
||||
android:title="@string/settings_secure_dns_title"
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
package org.chromium.chrome.browser.privacy.settings;
|
||||
|
||||
+import android.content.SharedPreferences;
|
||||
import android.os.Build;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
@@ -65,6 +66,7 @@ public class PrivacySettings
|
||||
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 PREF_PRIVACY_SANDBOX = "privacy_sandbox";
|
||||
+ private static final String PREF_FORCE_NO_JIT = "force_no_jit";
|
||||
|
||||
// moved from SyncAndServicesSettings.java
|
||||
private static final String PREF_SERVICES_CATEGORY = "services_category";
|
||||
@@ -165,6 +167,10 @@ public class PrivacySettings
|
||||
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
||||
} else if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
|
||||
prefService.setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue);
|
||||
+ } else if (PREF_FORCE_NO_JIT.equals(key)) {
|
||||
+ SharedPreferences.Editor sharedPreferenceEditor = ContextUtils.getAppSharedPreferences().edit();
|
||||
+ sharedPreferenceEditor.putBoolean(PREF_FORCE_NO_JIT, (boolean) newValue);
|
||||
+ sharedPreferenceEditor.apply();
|
||||
} else if (PREF_AUTOFILL_ASSISTANT.equals(key)) {
|
||||
mSharedPreferencesManager.writeBoolean(
|
||||
ChromePreferenceKeys.AUTOFILL_ASSISTANT_ENABLED, (boolean) newValue);
|
||||
@@ -245,6 +251,12 @@ public class PrivacySettings
|
||||
historyInIncognitoPref.setChecked(
|
||||
prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED));
|
||||
}
|
||||
+
|
||||
+ ChromeSwitchPreference forceNoJit =
|
||||
+ (ChromeSwitchPreference) findPreference(PREF_FORCE_NO_JIT);
|
||||
+ forceNoJit.setOnPreferenceChangeListener(this);
|
||||
+ forceNoJit.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
|
||||
@@ -926,6 +926,13 @@ Privacy Sandbox trials are still in active development and are available in sele
|
||||
Please verify that this is a valid provider or try again later
|
||||
</message>
|
||||
|
||||
+ <message name="IDS_FORCE_NO_JIT_TITLE" desc="Title for disable JIT settings. [CHAR-LIMIT=32]">
|
||||
+ Disable JIT
|
||||
+ </message>
|
||||
+ <message name="IDS_FORCE_NO_JIT_SUMMARY" desc="Summary for Disable JIT settings">
|
||||
+ Improve security at the expense of performance by not compiling JavaScript to native code (requires browser restart)
|
||||
+ </message>
|
||||
+
|
||||
<message name="IDS_CLEAR_BROWSING_DATA_TITLE" desc="Title of the Clear Browsing Data screen. [CHAR_LIMIT=32]">
|
||||
Clear browsing data
|
||||
</message>
|
||||
diff --git a/content/public/android/java/src/org/chromium/content/browser/BrowserStartupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/BrowserStartupControllerImpl.java
|
||||
--- a/content/public/android/java/src/org/chromium/content/browser/BrowserStartupControllerImpl.java
|
||||
+++ b/content/public/android/java/src/org/chromium/content/browser/BrowserStartupControllerImpl.java
|
||||
@@ -453,6 +453,7 @@ public class BrowserStartupControllerImpl implements BrowserStartupController {
|
||||
}
|
||||
|
||||
// TODO(yfriedman): Remove dependency on a command line flag for this.
|
||||
+ DeviceUtilsImpl.addJitlessSwitch();
|
||||
DeviceUtilsImpl.addDeviceSpecificUserAgentSwitch();
|
||||
BrowserStartupControllerImplJni.get().setCommandLineFlags(singleProcess);
|
||||
}
|
||||
diff --git a/content/public/android/java/src/org/chromium/content/browser/DeviceUtilsImpl.java b/content/public/android/java/src/org/chromium/content/browser/DeviceUtilsImpl.java
|
||||
--- a/content/public/android/java/src/org/chromium/content/browser/DeviceUtilsImpl.java
|
||||
+++ b/content/public/android/java/src/org/chromium/content/browser/DeviceUtilsImpl.java
|
||||
@@ -5,6 +5,7 @@
|
||||
package org.chromium.content.browser;
|
||||
|
||||
import org.chromium.base.CommandLine;
|
||||
+import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.StrictModeContext;
|
||||
import org.chromium.content_public.common.ContentSwitches;
|
||||
import org.chromium.ui.base.DeviceFormFactor;
|
||||
@@ -22,4 +23,9 @@ public class DeviceUtilsImpl {
|
||||
}
|
||||
}
|
||||
}
|
||||
+ public static void addJitlessSwitch() {
|
||||
+ if (ContextUtils.getAppSharedPreferences().getBoolean("force_no_jit", false)) {
|
||||
+ CommandLine.getInstance().appendSwitchWithValue("js-flags", "--jitless");
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
--
|
||||
2.17.1
|
||||
|
867
build/patches/Logcat-crash-reports-UI.patch
Normal file
867
build/patches/Logcat-crash-reports-UI.patch
Normal file
|
@ -0,0 +1,867 @@
|
|||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Tue, 15 Jun 2021 11:49:43 +0000
|
||||
Subject: Logcat crash reports UI
|
||||
|
||||
---
|
||||
.../crash/MinidumpUploadServiceImpl.java | 22 +++
|
||||
.../crash_upload_list_android.cc | 22 ++-
|
||||
.../crash_upload_list_android.h | 1 +
|
||||
chrome/browser/net/chrome_network_delegate.cc | 7 +
|
||||
chrome/browser/ui/BUILD.gn | 1 +
|
||||
chrome/browser/ui/webui/crashes_ui.cc | 165 ++++++++++++++++--
|
||||
.../crash/core/browser/crashes_ui_util.cc | 4 +
|
||||
.../crash/core/browser/crashes_ui_util.h | 2 +
|
||||
.../crash/core/browser/resources/crashes.css | 67 ++++++-
|
||||
.../crash/core/browser/resources/crashes.html | 17 ++
|
||||
.../crash/core/browser/resources/crashes.js | 40 +++--
|
||||
components/crash_strings.grdp | 22 ++-
|
||||
.../minidump_uploader/CrashFileManager.java | 7 +-
|
||||
.../MinidumpUploadCallable.java | 20 +--
|
||||
.../minidump_uploader/MinidumpUploader.java | 29 +--
|
||||
.../upload_list/text_log_upload_list.cc | 1 +
|
||||
components/upload_list/upload_list.cc | 17 +-
|
||||
components/upload_list/upload_list.h | 9 +
|
||||
18 files changed, 374 insertions(+), 79 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceImpl.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceImpl.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceImpl.java
|
||||
@@ -42,6 +42,11 @@ import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
+import org.chromium.base.task.AsyncTask;
|
||||
+import org.chromium.base.task.PostTask;
|
||||
+import org.chromium.base.task.TaskTraits;
|
||||
+import org.chromium.chrome.browser.crash.LogcatExtractionRunnable;
|
||||
+
|
||||
/**
|
||||
* Service that is responsible for uploading crash minidumps to the Google crash server.
|
||||
*/
|
||||
@@ -445,4 +450,21 @@ public class MinidumpUploadServiceImpl extends MinidumpUploadService.Impl {
|
||||
tryUploadCrashDump(renamedMinidumpFile);
|
||||
}
|
||||
}
|
||||
+
|
||||
+ @CalledByNative
|
||||
+ public static void requestNewExtraction() {
|
||||
+ CrashFileManager crashFileManager =
|
||||
+ new CrashFileManager(ContextUtils.getApplicationContext().getCacheDir());
|
||||
+
|
||||
+ // Append logcat output to minidumps where are missing
|
||||
+ // getMinidumpsSansLogcat() also extract new files from crashpad
|
||||
+ File[] minidumpsSansLogcat = crashFileManager.getMinidumpsSansLogcat();
|
||||
+ if (minidumpsSansLogcat.length >= 1) {
|
||||
+ for (int i = 0; i < minidumpsSansLogcat.length; ++i) {
|
||||
+ File minidump = minidumpsSansLogcat[i];
|
||||
+ AsyncTask.THREAD_POOL_EXECUTOR.execute(
|
||||
+ new LogcatExtractionRunnable(minidump));
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
diff --git a/chrome/browser/crash_upload_list/crash_upload_list_android.cc b/chrome/browser/crash_upload_list/crash_upload_list_android.cc
|
||||
--- a/chrome/browser/crash_upload_list/crash_upload_list_android.cc
|
||||
+++ b/chrome/browser/crash_upload_list/crash_upload_list_android.cc
|
||||
@@ -14,6 +14,7 @@
|
||||
#include "base/metrics/histogram_macros_local.h"
|
||||
#include "chrome/android/chrome_jni_headers/MinidumpUploadServiceImpl_jni.h"
|
||||
#include "ui/base/text/bytes_formatting.h"
|
||||
+#include "base/strings/string_util.h"
|
||||
|
||||
namespace {
|
||||
|
||||
@@ -76,16 +77,26 @@ void CrashUploadListAndroid::RequestSingleUpload(const std::string& local_id) {
|
||||
Java_MinidumpUploadServiceImpl_tryUploadCrashDumpWithLocalId(env, j_local_id);
|
||||
}
|
||||
|
||||
+void CrashUploadListAndroid::RequestNewExtraction() {
|
||||
+ JNIEnv* env = base::android::AttachCurrentThread();
|
||||
+ Java_MinidumpUploadServiceImpl_requestNewExtraction(env);
|
||||
+}
|
||||
+
|
||||
void CrashUploadListAndroid::LoadUnsuccessfulUploadList(
|
||||
std::vector<UploadInfo>* uploads) {
|
||||
const char pending_uploads[] = ".dmp";
|
||||
const char skipped_uploads[] = ".skipped";
|
||||
const char manually_forced_uploads[] = ".forced";
|
||||
+ const char zipped_uploads[] = ".zip";
|
||||
|
||||
base::FileEnumerator files(upload_log_path().DirName(), false,
|
||||
base::FileEnumerator::FILES);
|
||||
for (base::FilePath file = files.Next(); !file.empty(); file = files.Next()) {
|
||||
UploadList::UploadInfo::State upload_state;
|
||||
+ if (base::EndsWith(file.value(), zipped_uploads, base::CompareCase::INSENSITIVE_ASCII)) {
|
||||
+ // skip zip files
|
||||
+ continue;
|
||||
+ }
|
||||
if (file.value().find(manually_forced_uploads) != std::string::npos) {
|
||||
RecordUnsuccessfulUploadListState(UnsuccessfulUploadListState::FORCED);
|
||||
upload_state = UploadList::UploadInfo::State::Pending_UserRequested;
|
||||
@@ -117,6 +128,8 @@ void CrashUploadListAndroid::LoadUnsuccessfulUploadList(
|
||||
continue;
|
||||
}
|
||||
|
||||
+ std::string file_path = file.value();
|
||||
+
|
||||
// Crash reports can have multiple extensions (e.g. foo.dmp, foo.dmp.try1,
|
||||
// foo.skipped.try0).
|
||||
file = file.BaseName();
|
||||
@@ -136,8 +149,15 @@ void CrashUploadListAndroid::LoadUnsuccessfulUploadList(
|
||||
RecordUnsuccessfulUploadListState(
|
||||
UnsuccessfulUploadListState::ADDING_AN_UPLOAD_ENTRY);
|
||||
id = id.substr(pos + 1);
|
||||
+ // Since current thread is an IO thread
|
||||
+ // to avoid failed DCHECK ThreadRestrictions::AssertSingletonAllowed()
|
||||
+ // remove ui::FormatBytes(): dcheck fail because it use base::FormatDouble()
|
||||
+ // and LazyInstance<NumberFormatWrapper>::DestructorAtExit().
|
||||
+ // also "upload.file_size" is unused.
|
||||
+ std::u16string file_size_string;
|
||||
UploadList::UploadInfo upload(id, info.creation_time, upload_state,
|
||||
- ui::FormatBytes(file_size));
|
||||
+ file_size_string);
|
||||
+ upload.file_path = file_path;
|
||||
uploads->push_back(upload);
|
||||
}
|
||||
}
|
||||
diff --git a/chrome/browser/crash_upload_list/crash_upload_list_android.h b/chrome/browser/crash_upload_list/crash_upload_list_android.h
|
||||
--- a/chrome/browser/crash_upload_list/crash_upload_list_android.h
|
||||
+++ b/chrome/browser/crash_upload_list/crash_upload_list_android.h
|
||||
@@ -32,6 +32,7 @@ class CrashUploadListAndroid : public TextLogUploadList {
|
||||
|
||||
std::vector<UploadInfo> LoadUploadList() override;
|
||||
void RequestSingleUpload(const std::string& local_id) override;
|
||||
+ void RequestNewExtraction() override;
|
||||
|
||||
private:
|
||||
void LoadUnsuccessfulUploadList(std::vector<UploadInfo>* uploads);
|
||||
diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/chrome_network_delegate.cc
|
||||
--- a/chrome/browser/net/chrome_network_delegate.cc
|
||||
+++ b/chrome/browser/net/chrome_network_delegate.cc
|
||||
@@ -129,6 +129,13 @@ bool IsAccessAllowedAndroid(const base::FilePath& path) {
|
||||
if (external_storage_path.IsParent(path))
|
||||
return true;
|
||||
|
||||
+ // access to the crash folder is allowed for the download by the user
|
||||
+ base::FilePath cache_dir;
|
||||
+ base::android::GetCacheDirectory(&cache_dir);
|
||||
+ base::FilePath upload_log_path = cache_dir.Append("Crash Reports");
|
||||
+ if (upload_log_path.IsParent(path))
|
||||
+ return true;
|
||||
+
|
||||
std::vector<base::FilePath> allowlist;
|
||||
std::vector<base::FilePath> all_download_dirs =
|
||||
base::android::GetAllPrivateDownloadsDirectories();
|
||||
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
|
||||
@@ -574,6 +574,7 @@ static_library("ui") {
|
||||
"//third_party/re2",
|
||||
"//third_party/webrtc_overrides:webrtc_component",
|
||||
"//third_party/zlib",
|
||||
+ "//third_party/zlib/google:zip",
|
||||
"//ui/accessibility",
|
||||
"//ui/base",
|
||||
"//ui/base:data_exchange",
|
||||
diff --git a/chrome/browser/ui/webui/crashes_ui.cc b/chrome/browser/ui/webui/crashes_ui.cc
|
||||
--- a/chrome/browser/ui/webui/crashes_ui.cc
|
||||
+++ b/chrome/browser/ui/webui/crashes_ui.cc
|
||||
@@ -38,6 +38,17 @@
|
||||
#include "google_apis/gaia/gaia_auth_util.h"
|
||||
#include "ui/base/resource/resource_bundle.h"
|
||||
|
||||
+#include "base/logging.h"
|
||||
+#include "base/debug/dump_without_crashing.h"
|
||||
+#include "base/files/file_util.h"
|
||||
+#include "base/files/file_enumerator.h"
|
||||
+#include "base/files/scoped_temp_dir.h"
|
||||
+#include "base/task/task_traits.h"
|
||||
+#include "base/task/thread_pool.h"
|
||||
+#include "base/android/path_utils.h"
|
||||
+#include "net/base/filename_util.h"
|
||||
+#include "third_party/zlib/google/zip.h"
|
||||
+
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
#include "chromeos/dbus/dbus_thread_manager.h"
|
||||
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
|
||||
@@ -75,6 +86,10 @@ content::WebUIDataSource* CreateCrashesUIHTMLSource() {
|
||||
return source;
|
||||
}
|
||||
|
||||
+constexpr base::TaskTraits kLoadingTaskTraits = {
|
||||
+ base::MayBlock(), base::TaskPriority::USER_BLOCKING,
|
||||
+ base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN};
|
||||
+
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// CrashesDOMHandler
|
||||
@@ -84,7 +99,7 @@ content::WebUIDataSource* CreateCrashesUIHTMLSource() {
|
||||
// The handler for Javascript messages for the chrome://crashes/ page.
|
||||
class CrashesDOMHandler : public WebUIMessageHandler {
|
||||
public:
|
||||
- CrashesDOMHandler();
|
||||
+ CrashesDOMHandler(content::WebContents* web_contents);
|
||||
~CrashesDOMHandler() override;
|
||||
|
||||
// WebUIMessageHandler implementation.
|
||||
@@ -96,6 +111,8 @@ class CrashesDOMHandler : public WebUIMessageHandler {
|
||||
// Asynchronously fetches the list of crashes. Called from JS.
|
||||
void HandleRequestCrashes(const base::ListValue* args);
|
||||
|
||||
+ void RequestCrashesList();
|
||||
+
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
// Asynchronously triggers crash uploading. Called from JS.
|
||||
void HandleRequestUploads(const base::ListValue* args);
|
||||
@@ -107,15 +124,28 @@ class CrashesDOMHandler : public WebUIMessageHandler {
|
||||
// Asynchronously requests a user triggered upload. Called from JS.
|
||||
void HandleRequestSingleCrashUpload(const base::ListValue* args);
|
||||
|
||||
+ std::string RequestSingleUpload(const std::string& local_id) const;
|
||||
+ void RequestSingleUploadCallback(const std::string& local_id, const std::string& filename);
|
||||
+
|
||||
+ // Asynchronously requests a user log extraction. Called from JS.
|
||||
+ void HandleRequestNewExtraction(const base::ListValue* args);
|
||||
+ void RequestNewExtraction();
|
||||
+
|
||||
+ // Requests remove all crash files. Called from JS.
|
||||
+ void HandleRequestClearAll(const base::ListValue* args);
|
||||
+ void ClearAll();
|
||||
+
|
||||
scoped_refptr<UploadList> upload_list_;
|
||||
bool list_available_;
|
||||
bool first_load_;
|
||||
+ content::WebContents* web_contents_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(CrashesDOMHandler);
|
||||
};
|
||||
|
||||
-CrashesDOMHandler::CrashesDOMHandler()
|
||||
- : list_available_(false), first_load_(true) {
|
||||
+CrashesDOMHandler::CrashesDOMHandler(content::WebContents* web_contents)
|
||||
+ : list_available_(false), first_load_(true),
|
||||
+ web_contents_(web_contents) {
|
||||
upload_list_ = CreateCrashUploadList();
|
||||
}
|
||||
|
||||
@@ -142,10 +172,24 @@ void CrashesDOMHandler::RegisterMessages() {
|
||||
crash_reporter::kCrashesUIRequestSingleCrashUpload,
|
||||
base::BindRepeating(&CrashesDOMHandler::HandleRequestSingleCrashUpload,
|
||||
base::Unretained(this)));
|
||||
+
|
||||
+ web_ui()->RegisterMessageCallback(
|
||||
+ crash_reporter::kCrashesUIHandleClearAll,
|
||||
+ base::BindRepeating(&CrashesDOMHandler::HandleRequestClearAll,
|
||||
+ base::Unretained(this)));
|
||||
+
|
||||
+ web_ui()->RegisterMessageCallback(
|
||||
+ crash_reporter::kCrashesUIHandleRequestNewExtraction,
|
||||
+ base::BindRepeating(&CrashesDOMHandler::HandleRequestNewExtraction,
|
||||
+ base::Unretained(this)));
|
||||
}
|
||||
|
||||
void CrashesDOMHandler::HandleRequestCrashes(const base::ListValue* args) {
|
||||
AllowJavascript();
|
||||
+ RequestCrashesList();
|
||||
+}
|
||||
+
|
||||
+void CrashesDOMHandler::RequestCrashesList() {
|
||||
if (first_load_) {
|
||||
first_load_ = false;
|
||||
if (list_available_)
|
||||
@@ -178,8 +222,7 @@ void CrashesDOMHandler::OnUploadListAvailable() {
|
||||
}
|
||||
|
||||
void CrashesDOMHandler::UpdateUI() {
|
||||
- bool crash_reporting_enabled =
|
||||
- ChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled();
|
||||
+ bool crash_reporting_enabled = true;
|
||||
|
||||
bool system_crash_reporter = false;
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
|
||||
@@ -241,12 +284,111 @@ void CrashesDOMHandler::HandleRequestSingleCrashUpload(
|
||||
bool success = args->GetString(0, &local_id);
|
||||
DCHECK(success);
|
||||
|
||||
- // Only allow manual uploads if crash uploads aren’t disabled by policy.
|
||||
- if (!ChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled() &&
|
||||
- IsMetricsReportingPolicyManaged()) {
|
||||
- return;
|
||||
+ base::ThreadPool::PostTaskAndReplyWithResult(
|
||||
+ FROM_HERE, kLoadingTaskTraits,
|
||||
+ base::BindOnce(&CrashesDOMHandler::RequestSingleUpload, base::Unretained(this), local_id),
|
||||
+ base::BindOnce(&CrashesDOMHandler::RequestSingleUploadCallback, base::Unretained(this), local_id));
|
||||
+}
|
||||
+
|
||||
+std::string CrashesDOMHandler::RequestSingleUpload(const std::string& local_id) const {
|
||||
+ // get crash file path
|
||||
+ std::string info_file_path = upload_list_->GetFilePathByLocalId(local_id);
|
||||
+ if (info_file_path.empty()) {
|
||||
+ LOG(ERROR) << "Crash report: file path is not set for " << local_id;
|
||||
+ return std::string();
|
||||
+ }
|
||||
+ base::FilePath crash_file_path(info_file_path);
|
||||
+
|
||||
+ // get android crash report dir
|
||||
+ base::FilePath cache_dir;
|
||||
+ base::android::GetCacheDirectory(&cache_dir);
|
||||
+ base::FilePath upload_log_path = cache_dir.Append("Crash Reports");
|
||||
+
|
||||
+ // crash reports can have multiple extensions (e.g. foo.dmp, foo.dmp.try1,
|
||||
+ // foo.skipped.try0), remove it
|
||||
+ base::FilePath zip_file_name = crash_file_path;
|
||||
+ while (zip_file_name != zip_file_name.RemoveExtension())
|
||||
+ zip_file_name = zip_file_name.RemoveExtension();
|
||||
+
|
||||
+ // make zip file name, like "ec708a7b-cb17-44e7-8dae-e32f6c45cb8c.zip"
|
||||
+ zip_file_name = upload_log_path.Append(zip_file_name.BaseName())
|
||||
+ .AddExtensionASCII(".zip");
|
||||
+ // since the download is always allowed, the generation takes place only
|
||||
+ // at the first request, so if exists return it
|
||||
+ if (base::PathExists(zip_file_name))
|
||||
+ return zip_file_name.value();
|
||||
+
|
||||
+ // original code remove the file immediately after upload.
|
||||
+ // we changed this behavior but it is still possible that the file no longer exists
|
||||
+ // because in uploads.log it could be indicated but the file was deleted by self-cleaning
|
||||
+ if (!base::PathExists(crash_file_path)) {
|
||||
+ LOG(ERROR) << "Crash report: file " << crash_file_path
|
||||
+ << " no more available";
|
||||
+ return std::string();
|
||||
+ }
|
||||
+
|
||||
+ std::vector<base::FilePath> files_list;
|
||||
+ files_list.push_back(crash_file_path.BaseName());
|
||||
+
|
||||
+ // open zip file
|
||||
+ base::File zip_f(zip_file_name,
|
||||
+ base::File::FLAG_CREATE | base::File::FLAG_WRITE);
|
||||
+ auto result = zip::ZipFiles(crash_file_path.DirName(), files_list, zip_f.GetPlatformFile());
|
||||
+ zip_f.Close();
|
||||
+ if (result) {
|
||||
+ return zip_file_name.value();
|
||||
+ }
|
||||
+
|
||||
+ LOG(ERROR) << "Crash report: cannot create zip content";
|
||||
+ return std::string();
|
||||
+}
|
||||
+
|
||||
+void CrashesDOMHandler::RequestSingleUploadCallback(const std::string& local_id,
|
||||
+ const std::string& file_name) {
|
||||
+ if (!file_name.empty()) {
|
||||
+ upload_list_->RequestSingleUploadAsync(local_id);
|
||||
+
|
||||
+ base::FilePath file_path(file_name);
|
||||
+ web_contents_->GetController().LoadURL(
|
||||
+ net::FilePathToFileURL(file_path), {}, {}, {});
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void CrashesDOMHandler::HandleRequestNewExtraction(
|
||||
+ const base::ListValue* args) {
|
||||
+ base::ThreadPool::PostTask(
|
||||
+ FROM_HERE, kLoadingTaskTraits,
|
||||
+ base::BindOnce(&CrashesDOMHandler::RequestNewExtraction, base::Unretained(this)));
|
||||
+}
|
||||
+
|
||||
+void CrashesDOMHandler::RequestNewExtraction() {
|
||||
+ base::debug::DumpWithoutCrashing();
|
||||
+ // ask java to get file from crashpad and to add logcat
|
||||
+ upload_list_->RequestNewExtraction();
|
||||
+}
|
||||
+
|
||||
+void CrashesDOMHandler::HandleRequestClearAll(
|
||||
+ const base::ListValue* args) {
|
||||
+ base::ThreadPool::PostTaskAndReply(
|
||||
+ FROM_HERE, kLoadingTaskTraits,
|
||||
+ base::BindOnce(&CrashesDOMHandler::ClearAll, base::Unretained(this)),
|
||||
+ base::BindOnce(&CrashesDOMHandler::RequestCrashesList, base::Unretained(this)));
|
||||
+}
|
||||
+
|
||||
+void CrashesDOMHandler::ClearAll() {
|
||||
+ // get android crash report dir
|
||||
+ base::FilePath cache_dir;
|
||||
+ base::android::GetCacheDirectory(&cache_dir);
|
||||
+ base::FilePath upload_log_path = cache_dir.Append("Crash Reports");
|
||||
+
|
||||
+ base::FileEnumerator dir_enum(
|
||||
+ upload_log_path,
|
||||
+ /*recursive=*/false, base::FileEnumerator::FILES);
|
||||
+ base::FilePath full_name;
|
||||
+ while (full_name = dir_enum.Next(), !full_name.empty()) {
|
||||
+ // remove all files, don't care for result
|
||||
+ base::DeleteFile(full_name);
|
||||
}
|
||||
- upload_list_->RequestSingleUploadAsync(local_id);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
@@ -258,7 +400,8 @@ void CrashesDOMHandler::HandleRequestSingleCrashUpload(
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
CrashesUI::CrashesUI(content::WebUI* web_ui) : WebUIController(web_ui) {
|
||||
- web_ui->AddMessageHandler(std::make_unique<CrashesDOMHandler>());
|
||||
+ web_ui->AddMessageHandler(std::make_unique<CrashesDOMHandler>(
|
||||
+ web_ui->GetWebContents()));
|
||||
|
||||
// Set up the chrome://crashes/ source.
|
||||
Profile* profile = Profile::FromWebUI(web_ui);
|
||||
diff --git a/components/crash/core/browser/crashes_ui_util.cc b/components/crash/core/browser/crashes_ui_util.cc
|
||||
--- a/components/crash/core/browser/crashes_ui_util.cc
|
||||
+++ b/components/crash/core/browser/crashes_ui_util.cc
|
||||
@@ -39,6 +39,8 @@ const CrashesUILocalizedString kCrashesUILocalizedStrings[] = {
|
||||
{"uploadId", IDS_CRASH_REPORT_UPLOADED_ID},
|
||||
{"uploadNowLinkText", IDS_CRASH_UPLOAD_NOW_LINK_TEXT},
|
||||
{"uploadTime", IDS_CRASH_REPORT_UPLOADED_TIME},
|
||||
+ {"clearAll", IDS_CRASH_CLEAR_ALL_TEXT},
|
||||
+ {"extractNow", IDS_CRASH_EXTRACT_NOW_TEXT},
|
||||
};
|
||||
|
||||
const size_t kCrashesUILocalizedStringsCount =
|
||||
@@ -52,6 +54,8 @@ const char kCrashesUIRequestCrashUpload[] = "requestCrashUpload";
|
||||
const char kCrashesUIShortProductName[] = "shortProductName";
|
||||
const char kCrashesUIUpdateCrashList[] = "update-crash-list";
|
||||
const char kCrashesUIRequestSingleCrashUpload[] = "requestSingleCrashUpload";
|
||||
+const char kCrashesUIHandleClearAll[] = "requestClearAll";
|
||||
+const char kCrashesUIHandleRequestNewExtraction[] = "requestNewExtraction";
|
||||
|
||||
std::string UploadInfoStateAsString(UploadList::UploadInfo::State state) {
|
||||
switch (state) {
|
||||
diff --git a/components/crash/core/browser/crashes_ui_util.h b/components/crash/core/browser/crashes_ui_util.h
|
||||
--- a/components/crash/core/browser/crashes_ui_util.h
|
||||
+++ b/components/crash/core/browser/crashes_ui_util.h
|
||||
@@ -36,6 +36,8 @@ extern const char kCrashesUIRequestCrashUpload[];
|
||||
extern const char kCrashesUIShortProductName[];
|
||||
extern const char kCrashesUIUpdateCrashList[];
|
||||
extern const char kCrashesUIRequestSingleCrashUpload[];
|
||||
+extern const char kCrashesUIHandleClearAll[];
|
||||
+extern const char kCrashesUIHandleRequestNewExtraction[];
|
||||
|
||||
// Converts and appends the most recent uploads to |out_value|.
|
||||
void UploadListToValue(UploadList* upload_list, base::ListValue* out_value);
|
||||
diff --git a/components/crash/core/browser/resources/crashes.css b/components/crash/core/browser/resources/crashes.css
|
||||
--- a/components/crash/core/browser/resources/crashes.css
|
||||
+++ b/components/crash/core/browser/resources/crashes.css
|
||||
@@ -3,7 +3,9 @@
|
||||
* found in the LICENSE file. */
|
||||
|
||||
body {
|
||||
- margin: 20px;
|
||||
+ margin: 0;
|
||||
+ padding: 1em;
|
||||
+ font-size: 100%;
|
||||
}
|
||||
|
||||
h1 {
|
||||
@@ -27,7 +29,6 @@ html[dir=rtl] h1 {
|
||||
background-color: rgb(235, 239, 250);
|
||||
border: 1px solid #bbb;
|
||||
border-radius: 2px;
|
||||
- display: flex;
|
||||
font-size: 100%;
|
||||
padding: 4px;
|
||||
}
|
||||
@@ -80,3 +81,65 @@ html[dir=rtl] h1 {
|
||||
.not-uploaded {
|
||||
color: #a0a0a0;
|
||||
}
|
||||
+
|
||||
+label {
|
||||
+ float: right;
|
||||
+}
|
||||
+
|
||||
+#countBanner > div {
|
||||
+ display: flex;
|
||||
+ justify-content: flex-end;
|
||||
+ margin-top: 10px;
|
||||
+}
|
||||
+
|
||||
+.spinner {
|
||||
+ width: 50px;
|
||||
+ height: 40px;
|
||||
+ text-align: center;
|
||||
+ font-size: 10px;
|
||||
+}
|
||||
+
|
||||
+.spinner > div {
|
||||
+ background-color: #333;
|
||||
+ height: 100%;
|
||||
+ width: 6px;
|
||||
+ display: inline-block;
|
||||
+
|
||||
+ -webkit-animation: sk-stretchdelay 1.2s infinite ease-in-out;
|
||||
+ animation: sk-stretchdelay 1.2s infinite ease-in-out;
|
||||
+}
|
||||
+
|
||||
+.spinner .rect2 {
|
||||
+ -webkit-animation-delay: -1.1s;
|
||||
+ animation-delay: -1.1s;
|
||||
+}
|
||||
+
|
||||
+.spinner .rect3 {
|
||||
+ -webkit-animation-delay: -1.0s;
|
||||
+ animation-delay: -1.0s;
|
||||
+}
|
||||
+
|
||||
+.spinner .rect4 {
|
||||
+ -webkit-animation-delay: -0.9s;
|
||||
+ animation-delay: -0.9s;
|
||||
+}
|
||||
+
|
||||
+.spinner .rect5 {
|
||||
+ -webkit-animation-delay: -0.8s;
|
||||
+ animation-delay: -0.8s;
|
||||
+}
|
||||
+
|
||||
+@-webkit-keyframes sk-stretchdelay {
|
||||
+ 0%, 40%, 100% { -webkit-transform: scaleY(0.4) }
|
||||
+ 20% { -webkit-transform: scaleY(1.0) }
|
||||
+}
|
||||
+
|
||||
+@keyframes sk-stretchdelay {
|
||||
+ 0%, 40%, 100% {
|
||||
+ transform: scaleY(0.4);
|
||||
+ -webkit-transform: scaleY(0.4);
|
||||
+ } 20% {
|
||||
+ transform: scaleY(1.0);
|
||||
+ -webkit-transform: scaleY(1.0);
|
||||
+ }
|
||||
+}
|
||||
diff --git a/components/crash/core/browser/resources/crashes.html b/components/crash/core/browser/resources/crashes.html
|
||||
--- a/components/crash/core/browser/resources/crashes.html
|
||||
+++ b/components/crash/core/browser/resources/crashes.html
|
||||
@@ -1,6 +1,7 @@
|
||||
<!doctype html>
|
||||
<html dir="$i18n{textdirection}" lang="$i18n{language}">
|
||||
<head>
|
||||
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta charset="utf-8">
|
||||
|
||||
<if expr="is_ios">
|
||||
@@ -39,6 +40,22 @@
|
||||
<input type="checkbox" id="showDevDetails">
|
||||
$i18n{showDeveloperDetails}
|
||||
</label>
|
||||
+ <div style="clear: both"></div>
|
||||
+ <div>
|
||||
+ <button class="button" id="clearAll">
|
||||
+ $i18n{clearAll}
|
||||
+ </button>
|
||||
+ <button class="button" id="newExtraction">
|
||||
+ $i18n{extractNow}
|
||||
+ </button>
|
||||
+ <div class="spinner" id="spinner" hidden>
|
||||
+ <div class="rect1"></div>
|
||||
+ <div class="rect2"></div>
|
||||
+ <div class="rect3"></div>
|
||||
+ <div class="rect4"></div>
|
||||
+ <div class="rect5"></div>
|
||||
+ </div>
|
||||
+ </div>
|
||||
</h2>
|
||||
|
||||
<div id="crashList">
|
||||
diff --git a/components/crash/core/browser/resources/crashes.js b/components/crash/core/browser/resources/crashes.js
|
||||
--- a/components/crash/core/browser/resources/crashes.js
|
||||
+++ b/components/crash/core/browser/resources/crashes.js
|
||||
@@ -49,6 +49,7 @@ function updateCrashList({
|
||||
|
||||
$('disabledMode').hidden = enabled;
|
||||
$('crashUploadStatus').hidden = !enabled || !dynamicBackend;
|
||||
+ $('spinner').hidden = true;
|
||||
|
||||
const template = crashList.getElementsByTagName('template')[0];
|
||||
|
||||
@@ -115,22 +116,16 @@ function updateCrashList({
|
||||
|
||||
uploadTime.querySelector('.value').textContent = crash.upload_time;
|
||||
|
||||
- sendNowButton.remove();
|
||||
- fileBugButton.onclick = () => fileBug(crash.id, os, version);
|
||||
+ fileBugButton.remove();
|
||||
} else {
|
||||
uploadId.remove();
|
||||
uploadTime.remove();
|
||||
fileBugButton.remove();
|
||||
- // Do not allow crash submission if the Chromium build does not support
|
||||
- // it, or if the user already requested it.
|
||||
- if (!manualUploads || crash.state === 'pending_user_requested') {
|
||||
- sendNowButton.remove();
|
||||
- }
|
||||
- sendNowButton.onclick = (e) => {
|
||||
- e.target.disabled = true;
|
||||
- chrome.send('requestSingleCrashUpload', [crash.local_id]);
|
||||
- };
|
||||
}
|
||||
+ sendNowButton.onclick = (e) => {
|
||||
+ e.target.disabled = true;
|
||||
+ chrome.send('requestSingleCrashUpload', [crash.local_id]);
|
||||
+ };
|
||||
|
||||
const fileSize = crashRow.querySelector('.file-size');
|
||||
if (crash.file_size === '') {
|
||||
@@ -201,6 +196,27 @@ function requestCrashUpload() {
|
||||
refreshCrashListId = setTimeout(requestCrashes, 5000);
|
||||
}
|
||||
|
||||
+/**
|
||||
+ * Request new log extraction.
|
||||
+ */
|
||||
+ function requestNewExtraction() {
|
||||
+ chrome.send('requestNewExtraction');
|
||||
+
|
||||
+ // show spinner
|
||||
+ $('spinner').hidden = false;
|
||||
+
|
||||
+ // Trigger a refresh in 3 seconds. Clear any previous requests.
|
||||
+ clearTimeout(refreshCrashListId);
|
||||
+ refreshCrashListId = setTimeout(requestCrashes, 3000);
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * Request remove all crash files.
|
||||
+ */
|
||||
+ function requestClearAll() {
|
||||
+ chrome.send('requestClearAll');
|
||||
+}
|
||||
+
|
||||
/**
|
||||
* Toggles hiding/showing the developer details of a crash report, depending
|
||||
* on the value of the check box.
|
||||
@@ -214,5 +230,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
addWebUIListener('update-crash-list', updateCrashList);
|
||||
$('uploadCrashes').onclick = requestCrashUpload;
|
||||
$('showDevDetails').onclick = toggleDevDetails;
|
||||
+ $('clearAll').onclick = requestClearAll;
|
||||
+ $('newExtraction').onclick = requestNewExtraction;
|
||||
requestCrashes();
|
||||
});
|
||||
diff --git a/components/crash_strings.grdp b/components/crash_strings.grdp
|
||||
--- a/components/crash_strings.grdp
|
||||
+++ b/components/crash_strings.grdp
|
||||
@@ -19,22 +19,22 @@
|
||||
Status:
|
||||
</message>
|
||||
<message name="IDS_CRASH_REPORT_STATUS_NOT_UPLOADED" desc="Value on chrome://crashes for the 'not uploaded' status of a crash report.">
|
||||
- Not uploaded
|
||||
+ Not saved
|
||||
</message>
|
||||
<message name="IDS_CRASH_REPORT_STATUS_PENDING" desc="Value on chrome://crashes for the 'pending' status of a crash report.">
|
||||
- Not yet uploaded, or ignored
|
||||
+ Not yet saved, or ignored
|
||||
</message>
|
||||
<message name="IDS_CRASH_REPORT_STATUS_PENDING_USER_REQUESTED" desc="Value on chrome://crashes for the 'pending user requested' status of a crash report.">
|
||||
- Upload requested by user
|
||||
+ Save requested by user
|
||||
</message>
|
||||
<message name="IDS_CRASH_REPORT_STATUS_UPLOADED" desc="Value on chrome://crashes for the 'uploaded' status of a crash report.">
|
||||
- Uploaded
|
||||
+ Saved
|
||||
</message>
|
||||
<message name="IDS_CRASH_REPORT_UPLOADED_ID" desc="Label on chrome://crashes for the identifier for an uploaded crash report on chrome://crashes">
|
||||
- Uploaded Crash Report ID:
|
||||
+ Saved Crash Report File:
|
||||
</message>
|
||||
<message name="IDS_CRASH_REPORT_UPLOADED_TIME" desc="Label on chrome://crashes for the time at which the crash report was uploaded.">
|
||||
- Upload Time:
|
||||
+ Saved Time:
|
||||
</message>
|
||||
<message name="IDS_CRASH_REPORT_LOCAL_ID" desc="Label on chrome://crashes for the identifier of a crash report on the user's machine">
|
||||
Local Crash Context:
|
||||
@@ -53,9 +53,15 @@
|
||||
Crash reporting is disabled.
|
||||
</message>
|
||||
<message name="IDS_CRASH_UPLOAD_MESSAGE" desc="Link text for triggering crash uploading on chrome://crashes">
|
||||
- Start uploading crashes
|
||||
+ Start saving crashes
|
||||
</message>
|
||||
<message name="IDS_CRASH_UPLOAD_NOW_LINK_TEXT" desc="Link text for manual uploads of a crash report">
|
||||
- Send now
|
||||
+ Save now
|
||||
+ </message>
|
||||
+ <message name="IDS_CRASH_CLEAR_ALL_TEXT" desc="Link text for clear all crash files">
|
||||
+ Clear all
|
||||
+ </message>
|
||||
+ <message name="IDS_CRASH_EXTRACT_NOW_TEXT" desc="Link text for manual generation of a crash report">
|
||||
+ Generate report
|
||||
</message>
|
||||
</grit-part>
|
||||
diff --git a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/CrashFileManager.java b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/CrashFileManager.java
|
||||
--- a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/CrashFileManager.java
|
||||
+++ b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/CrashFileManager.java
|
||||
@@ -107,6 +107,8 @@ public class CrashFileManager {
|
||||
|
||||
private static final Pattern TMP_PATTERN = Pattern.compile("\\.tmp\\z");
|
||||
|
||||
+ private static final String SAVED_MINIDUMP_ZIP_SUFFIX = ".zip";
|
||||
+
|
||||
// The maximum number of non-uploaded crashes that may be kept in the crash reports directory.
|
||||
// Chosen to attempt to balance between keeping a generous number of crashes, and not using up
|
||||
// too much filesystem storage space for obsolete crash reports.
|
||||
@@ -116,7 +118,7 @@ public class CrashFileManager {
|
||||
// The maximum age, in days, considered acceptable for a crash report. Reports older than this
|
||||
// age will be removed. The constant is chosen to be quite conservative, while still allowing
|
||||
// users to eventually reclaim filesystem storage space from obsolete crash reports.
|
||||
- private static final int MAX_CRASH_REPORT_AGE_IN_DAYS = 30;
|
||||
+ private static final int MAX_CRASH_REPORT_AGE_IN_DAYS = 5;
|
||||
|
||||
// The maximum number of non-uploaded crashes to copy to the crash reports directory. The
|
||||
// difference between this value and MAX_CRASH_REPORTS_TO_KEEP is that TO_KEEP is only checked
|
||||
@@ -586,6 +588,9 @@ public class CrashFileManager {
|
||||
&& !f.getName().contains(UPLOAD_FORCED_MINIDUMP_SUFFIX)) {
|
||||
continue;
|
||||
}
|
||||
+ // as above, zip files must also be excluded
|
||||
+ if (f.getName().endsWith(SAVED_MINIDUMP_ZIP_SUFFIX))
|
||||
+ continue;
|
||||
|
||||
String filenameSansExtension = f.getName().split("\\.")[0];
|
||||
if (filenameSansExtension.endsWith(localId)) {
|
||||
diff --git a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadCallable.java b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadCallable.java
|
||||
--- a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadCallable.java
|
||||
+++ b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadCallable.java
|
||||
@@ -63,26 +63,8 @@ public class MinidumpUploadCallable implements Callable<Integer> {
|
||||
if (mPermManager.isUploadEnabledForTests()) {
|
||||
Log.i(TAG, "Minidump upload enabled for tests, skipping other checks.");
|
||||
} else if (!CrashFileManager.isForcedUpload(mFileToUpload)) {
|
||||
- if (!mPermManager.isUsageAndCrashReportingPermittedByUser()) {
|
||||
- Log.i(TAG, "Minidump upload is not permitted by user. Marking file as skipped for "
|
||||
- + "cleanup to prevent future uploads.");
|
||||
- CrashFileManager.markUploadSkipped(mFileToUpload);
|
||||
- return MinidumpUploadStatus.USER_DISABLED;
|
||||
- }
|
||||
-
|
||||
- if (!mPermManager.isClientInMetricsSample()) {
|
||||
- Log.i(TAG, "Minidump upload skipped due to sampling. Marking file as skipped for "
|
||||
- + "cleanup to prevent future uploads.");
|
||||
- CrashFileManager.markUploadSkipped(mFileToUpload);
|
||||
- return MinidumpUploadStatus.DISABLED_BY_SAMPLING;
|
||||
- }
|
||||
-
|
||||
- if (!mPermManager.isNetworkAvailableForCrashUploads()) {
|
||||
- Log.i(TAG, "Minidump cannot currently be uploaded due to network constraints.");
|
||||
- return MinidumpUploadStatus.FAILURE;
|
||||
- }
|
||||
+ return MinidumpUploadStatus.USER_DISABLED;
|
||||
}
|
||||
-
|
||||
MinidumpUploader.Result result = mMinidumpUploader.upload(mFileToUpload);
|
||||
if (result.isSuccess()) {
|
||||
String uploadId = result.message();
|
||||
diff --git a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploader.java b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploader.java
|
||||
--- a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploader.java
|
||||
+++ b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploader.java
|
||||
@@ -120,31 +120,10 @@ public class MinidumpUploader {
|
||||
if (fileToUpload == null || !fileToUpload.exists()) {
|
||||
return Result.failure("Crash report does not exist");
|
||||
}
|
||||
- HttpURLConnection connection =
|
||||
- mHttpURLConnectionFactory.createHttpURLConnection(CRASH_URL_STRING);
|
||||
- if (connection == null) {
|
||||
- return Result.failure("Failed to create connection");
|
||||
- }
|
||||
- configureConnectionForHttpPost(connection, readBoundary(fileToUpload));
|
||||
-
|
||||
- try (InputStream minidumpInputStream = new FileInputStream(fileToUpload);
|
||||
- OutputStream requestBodyStream =
|
||||
- new GZIPOutputStream(connection.getOutputStream())) {
|
||||
- streamCopy(minidumpInputStream, requestBodyStream);
|
||||
- int responseCode = connection.getResponseCode();
|
||||
- if (isSuccessful(responseCode)) {
|
||||
- // The crash server returns the crash ID in the response body.
|
||||
- String responseContent = getResponseContentAsString(connection);
|
||||
- String uploadId = responseContent != null ? responseContent : "unknown";
|
||||
- return Result.success(uploadId);
|
||||
- } else {
|
||||
- // Return the remote error code and message.
|
||||
- return Result.uploadError(responseCode, connection.getResponseMessage());
|
||||
- }
|
||||
- } finally {
|
||||
- connection.disconnect();
|
||||
- }
|
||||
- } catch (IOException | RuntimeException e) {
|
||||
+ // for us, it's always good
|
||||
+ // returns the file name without path, which will be registered as local_id
|
||||
+ return Result.success(fileToUpload.getName());
|
||||
+ } catch (RuntimeException e) {
|
||||
return Result.failure(e.toString());
|
||||
}
|
||||
}
|
||||
diff --git a/components/upload_list/text_log_upload_list.cc b/components/upload_list/text_log_upload_list.cc
|
||||
--- a/components/upload_list/text_log_upload_list.cc
|
||||
+++ b/components/upload_list/text_log_upload_list.cc
|
||||
@@ -108,6 +108,7 @@ std::unique_ptr<TextLogUploadList::UploadInfo> TryParseCsvLogEntry(
|
||||
}
|
||||
auto info = std::make_unique<TextLogUploadList::UploadInfo>(components[1],
|
||||
upload_time);
|
||||
+ info->file_path = components[1];
|
||||
|
||||
// Add local ID if present.
|
||||
if (components.size() > 2)
|
||||
diff --git a/components/upload_list/upload_list.cc b/components/upload_list/upload_list.cc
|
||||
--- a/components/upload_list/upload_list.cc
|
||||
+++ b/components/upload_list/upload_list.cc
|
||||
@@ -55,7 +55,8 @@ UploadList::UploadInfo::UploadInfo(const UploadInfo& upload_info)
|
||||
capture_time(upload_info.capture_time),
|
||||
state(upload_info.state),
|
||||
source(upload_info.source),
|
||||
- file_size(upload_info.file_size) {}
|
||||
+ file_size(upload_info.file_size),
|
||||
+ file_path(upload_info.file_path) {}
|
||||
|
||||
UploadList::UploadInfo::~UploadInfo() = default;
|
||||
|
||||
@@ -108,6 +109,11 @@ void UploadList::RequestSingleUpload(const std::string& local_id) {
|
||||
NOTREACHED();
|
||||
}
|
||||
|
||||
+void UploadList::RequestNewExtraction() {
|
||||
+ // only available for Android. overrided in crash_upload_list_android.cc
|
||||
+ NOTREACHED();
|
||||
+}
|
||||
+
|
||||
void UploadList::OnLoadComplete(const std::vector<UploadInfo>& uploads) {
|
||||
uploads_ = uploads;
|
||||
if (!load_callback_.is_null())
|
||||
@@ -118,3 +124,12 @@ void UploadList::OnClearComplete() {
|
||||
if (!clear_callback_.is_null())
|
||||
std::move(clear_callback_).Run();
|
||||
}
|
||||
+
|
||||
+std::string UploadList::GetFilePathByLocalId(const std::string& local_id) {
|
||||
+ for (auto info : uploads_) {
|
||||
+ if (info.local_id == local_id) {
|
||||
+ return info.file_path;
|
||||
+ }
|
||||
+ }
|
||||
+ return std::string();
|
||||
+}
|
||||
diff --git a/components/upload_list/upload_list.h b/components/upload_list/upload_list.h
|
||||
--- a/components/upload_list/upload_list.h
|
||||
+++ b/components/upload_list/upload_list.h
|
||||
@@ -66,6 +66,9 @@ class UploadList : public base::RefCountedThreadSafe<UploadList> {
|
||||
|
||||
// Formatted file size for locally stored data.
|
||||
std::u16string file_size;
|
||||
+
|
||||
+ // path of crash file
|
||||
+ std::string file_path;
|
||||
};
|
||||
|
||||
UploadList();
|
||||
@@ -92,6 +95,12 @@ class UploadList : public base::RefCountedThreadSafe<UploadList> {
|
||||
// Must be called only after a Load() callback has been received.
|
||||
void GetUploads(size_t max_count, std::vector<UploadInfo>* uploads);
|
||||
|
||||
+ // Get full path of crash file for local_id
|
||||
+ std::string GetFilePathByLocalId(const std::string& local_id);
|
||||
+
|
||||
+ // Request new log extraction
|
||||
+ virtual void RequestNewExtraction();
|
||||
+
|
||||
protected:
|
||||
virtual ~UploadList();
|
||||
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -48,7 +48,7 @@ diff --git a/components/favicon/core/favicon_database.cc b/components/favicon/co
|
|||
+ return true;
|
||||
}
|
||||
|
||||
bool FaviconDatabase::TouchOnDemandFavicon(const GURL& icon_url,
|
||||
bool FaviconDatabase::SetFaviconsOutOfDateBetween(base::Time begin,
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
@ -3,24 +3,24 @@ Date: Sat, 2 May 2020 00:25:25 +0200
|
|||
Subject: Modify default preferences
|
||||
|
||||
---
|
||||
chrome/browser/background/background_mode_manager.cc | 2 +-
|
||||
chrome/browser/chrome_content_browser_client.cc | 2 +-
|
||||
chrome/browser/net/prediction_options.cc | 2 +-
|
||||
chrome/browser/net/prediction_options.h | 2 +-
|
||||
chrome/browser/profiles/profile.cc | 2 +-
|
||||
.../settings/reset_page/reset_profile_dialog.html | 2 +-
|
||||
chrome/browser/ui/browser_ui_prefs.cc | 4 ++--
|
||||
chrome/service/cloud_print/connector_settings.cc | 2 +-
|
||||
components/autofill/core/browser/autofill_manager.cc | 9 +++------
|
||||
components/autofill/core/common/autofill_prefs.cc | 2 +-
|
||||
components/bookmarks/browser/bookmark_utils.cc | 4 ++--
|
||||
.../safe_browsing/core/common/safe_browsing_prefs.cc | 4 ++--
|
||||
12 files changed, 17 insertions(+), 20 deletions(-)
|
||||
chrome/browser/background/background_mode_manager.cc | 2 +-
|
||||
chrome/browser/chrome_content_browser_client.cc | 2 +-
|
||||
chrome/browser/net/prediction_options.cc | 2 +-
|
||||
chrome/browser/net/prediction_options.h | 2 +-
|
||||
chrome/browser/profiles/profile.cc | 2 +-
|
||||
.../resources/settings/reset_page/reset_profile_dialog.html | 2 +-
|
||||
chrome/browser/ui/browser_ui_prefs.cc | 4 ++--
|
||||
chrome/service/cloud_print/connector_settings.cc | 2 +-
|
||||
components/autofill/core/browser/browser_autofill_manager.h | 4 ++--
|
||||
components/autofill/core/common/autofill_prefs.cc | 2 +-
|
||||
components/bookmarks/browser/bookmark_utils.cc | 4 ++--
|
||||
components/safe_browsing/core/common/safe_browsing_prefs.cc | 4 ++--
|
||||
12 files changed, 16 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/browser/background/background_mode_manager.cc
|
||||
--- a/chrome/browser/background/background_mode_manager.cc
|
||||
+++ b/chrome/browser/background/background_mode_manager.cc
|
||||
@@ -362,7 +362,7 @@ void BackgroundModeManager::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
@@ -373,7 +373,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
|
||||
@@ -1264,7 +1264,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
|
||||
@@ -1312,7 +1312,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
|
||||
@@ -247,7 +247,7 @@ const char Profile::kProfileKey[] = "__PROFILE__";
|
||||
@@ -280,7 +280,7 @@ const char Profile::kProfileKey[] = "__PROFILE__";
|
||||
void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kSearchSuggestEnabled,
|
||||
|
@ -92,7 +92,7 @@ diff --git a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.h
|
|||
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
|
||||
@@ -71,11 +71,11 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
@@ -72,11 +72,11 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true);
|
||||
registry->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, true);
|
||||
registry->RegisterBooleanPref(
|
||||
|
@ -118,32 +118,21 @@ diff --git a/chrome/service/cloud_print/connector_settings.cc b/chrome/service/c
|
|||
|
||||
xmpp_ping_enabled_ = prefs->GetBoolean(
|
||||
prefs::kCloudPrintXmppPingEnabled, false);
|
||||
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
|
||||
@@ -975,10 +975,7 @@ void AutofillManager::OnQueryFormFieldAutofillImpl(
|
||||
// suggestions available.
|
||||
// TODO(mathp): Differentiate between number of suggestions available
|
||||
// (current metric) and number shown to the user.
|
||||
- if (!has_logged_address_suggestions_count_) {
|
||||
- AutofillMetrics::LogAddressSuggestionsCount(suggestions.size());
|
||||
- has_logged_address_suggestions_count_ = true;
|
||||
- }
|
||||
+ has_logged_address_suggestions_count_ = true;
|
||||
}
|
||||
}
|
||||
diff --git a/components/autofill/core/browser/browser_autofill_manager.h b/components/autofill/core/browser/browser_autofill_manager.h
|
||||
--- a/components/autofill/core/browser/browser_autofill_manager.h
|
||||
+++ b/components/autofill/core/browser/browser_autofill_manager.h
|
||||
@@ -670,9 +670,9 @@ class BrowserAutofillManager
|
||||
std::unique_ptr<CreditCardFormEventLogger> credit_card_form_event_logger_;
|
||||
|
||||
@@ -1556,8 +1553,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;
|
||||
+ has_logged_autofill_enabled_ = true;
|
||||
+ has_logged_address_suggestions_count_ = true;
|
||||
did_show_suggestions_ = false;
|
||||
user_did_type_ = false;
|
||||
user_did_autofill_ = false;
|
||||
// Have we logged whether Autofill is enabled for this page load?
|
||||
- bool has_logged_autofill_enabled_ = false;
|
||||
+ bool has_logged_autofill_enabled_ = true;
|
||||
// Have we logged an address suggestions count metric for this page?
|
||||
- bool has_logged_address_suggestions_count_ = false;
|
||||
+ bool has_logged_address_suggestions_count_ = true;
|
||||
// Have we shown Autofill suggestions at least once?
|
||||
bool did_show_suggestions_ = false;
|
||||
// Has the user manually edited at least one form field among the autofillable
|
||||
diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/autofill/core/common/autofill_prefs.cc
|
||||
--- a/components/autofill/core/common/autofill_prefs.cc
|
||||
+++ b/components/autofill/core/common/autofill_prefs.cc
|
||||
|
@ -159,7 +148,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
|
||||
@@ -441,12 +441,12 @@ bool DoesBookmarkContainWords(const base::string16& title,
|
||||
@@ -440,12 +440,12 @@ bool DoesBookmarkContainWords(const std::u16string& title,
|
||||
void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kShowBookmarkBar,
|
||||
|
@ -177,7 +166,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
|
||||
@@ -196,9 +196,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||
@@ -190,9 +190,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 | 20 ++++++
|
||||
.../privacy/settings/PrivacySettings.java | 64 ++++++++++++++++++-
|
||||
2 files changed, 82 insertions(+), 2 deletions(-)
|
||||
.../java/res/xml/privacy_preferences.xml | 20 +++++++
|
||||
.../privacy/settings/PrivacySettings.java | 60 ++++++++++++++++++-
|
||||
2 files changed, 79 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -63,4 +63,24 @@
|
||||
@@ -56,4 +56,24 @@
|
||||
android:key="privacy_sandbox"
|
||||
android:title="@string/prefs_privacy_sandbox"
|
||||
android:fragment="org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsFragment"
|
||||
android:order="7"/>
|
||||
android:fragment="org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsFragment"/>
|
||||
+
|
||||
+ <PreferenceCategory
|
||||
+ android:key="services_category"
|
||||
|
@ -39,7 +39,15 @@ 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
|
||||
@@ -42,6 +42,13 @@ import org.chromium.ui.text.SpanApplier;
|
||||
@@ -19,6 +19,7 @@ import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat;
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.BuildInfo;
|
||||
import org.chromium.chrome.R;
|
||||
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl;
|
||||
import org.chromium.chrome.browser.preferences.Pref;
|
||||
import org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings;
|
||||
@@ -41,6 +42,13 @@ import org.chromium.ui.text.SpanApplier;
|
||||
|
||||
import org.chromium.base.Log;
|
||||
|
||||
|
@ -53,31 +61,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
/**
|
||||
* Fragment to keep track of the all the privacy related preferences.
|
||||
*/
|
||||
@@ -58,6 +65,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";
|
||||
@@ -58,6 +66,18 @@ public class PrivacySettings
|
||||
private static final String PREF_PROXY_OPTIONS = "proxy";
|
||||
+
|
||||
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
|
||||
|
||||
+ // 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,
|
||||
@@ -65,11 +79,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;
|
||||
|
@ -85,10 +77,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 ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
PrivacyPreferencesManagerImpl privacyPrefManager =
|
||||
@@ -108,6 +130,29 @@ public class PrivacySettings
|
||||
@@ -88,6 +108,29 @@ public class PrivacySettings
|
||||
|
||||
mManagedPreferenceDelegate = createManagedPreferenceDelegate();
|
||||
|
||||
|
@ -118,7 +110,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);
|
||||
@@ -140,6 +185,11 @@ public class PrivacySettings
|
||||
@@ -120,6 +163,11 @@ public class PrivacySettings
|
||||
} else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
|
||||
UserPrefs.get(Profile.getLastUsedRegularProfile())
|
||||
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
||||
|
@ -130,7 +122,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
} else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
|
||||
PrivacyPreferencesManagerImpl.getInstance().setNetworkPredictionEnabled(
|
||||
(boolean) newValue);
|
||||
@@ -155,6 +205,16 @@ public class PrivacySettings
|
||||
@@ -135,6 +183,16 @@ public class PrivacySettings
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -147,7 +139,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
@@ -165,7 +225,7 @@ public class PrivacySettings
|
||||
@@ -145,7 +203,7 @@ public class PrivacySettings
|
||||
* Updates the summaries for several preferences.
|
||||
*/
|
||||
public void updateSummaries() {
|
||||
|
|
|
@ -37,7 +37,7 @@ 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/base_rendering_context_2d.cc | 5 +
|
||||
.../canvas2d/canvas_rendering_context_2d.cc | 8 +-
|
||||
third_party/blink/renderer/platform/BUILD.gn | 5 +-
|
||||
.../platform/exported/web_runtime_features.cc | 12 ++
|
||||
|
@ -48,7 +48,7 @@ Added flag --fingerprinting-canvas-image-data-noise to disable Canvas image data
|
|||
third_party/ungoogled/BUILD.gn | 10 ++
|
||||
third_party/ungoogled/ungoogled_switches.cc | 18 ++
|
||||
third_party/ungoogled/ungoogled_switches.h | 18 ++
|
||||
24 files changed, 345 insertions(+), 3 deletions(-)
|
||||
24 files changed, 343 insertions(+), 3 deletions(-)
|
||||
create mode 100644 third_party/ungoogled/BUILD.gn
|
||||
create mode 100644 third_party/ungoogled/ungoogled_switches.cc
|
||||
create mode 100644 third_party/ungoogled/ungoogled_switches.h
|
||||
|
@ -56,7 +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
|
||||
@@ -2311,6 +2311,7 @@ static_library("browser") {
|
||||
@@ -2290,6 +2290,7 @@ static_library("browser") {
|
||||
"//services/device/public/cpp:device_features",
|
||||
"//services/device/public/cpp/serial:switches",
|
||||
"//services/device/public/cpp/usb",
|
||||
|
@ -67,15 +67,15 @@ 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
|
||||
@@ -173,6 +173,7 @@
|
||||
@@ -174,6 +174,7 @@
|
||||
#include "services/media_session/public/cpp/features.h"
|
||||
#include "services/network/public/cpp/features.h"
|
||||
#include "services/network/public/cpp/network_switches.h"
|
||||
+#include "third_party/ungoogled/ungoogled_switches.h"
|
||||
#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"
|
||||
@@ -2674,6 +2675,18 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
#include "third_party/blink/public/common/forcedark/forcedark_switches.h"
|
||||
@@ -2725,6 +2726,18 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
{"enable-webrtc-srtp-aes-gcm", flag_descriptions::kWebrtcSrtpAesGcmName,
|
||||
flag_descriptions::kWebrtcSrtpAesGcmDescription, kOsAll,
|
||||
SINGLE_VALUE_TYPE(switches::kEnableWebRtcSrtpAesGcm)},
|
||||
|
@ -97,7 +97,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
|
||||
--- a/content/browser/BUILD.gn
|
||||
+++ b/content/browser/BUILD.gn
|
||||
@@ -218,6 +218,7 @@ source_set("browser") {
|
||||
@@ -219,6 +219,7 @@ source_set("browser") {
|
||||
"//third_party/libyuv",
|
||||
"//third_party/re2",
|
||||
"//third_party/sqlite",
|
||||
|
@ -108,7 +108,7 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
|
|||
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
|
||||
--- a/content/browser/renderer_host/render_process_host_impl.cc
|
||||
+++ b/content/browser/renderer_host/render_process_host_impl.cc
|
||||
@@ -212,6 +212,7 @@
|
||||
@@ -209,6 +209,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"
|
||||
|
@ -116,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"
|
||||
@@ -3248,6 +3249,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
|
||||
@@ -3318,6 +3319,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
|
||||
switches::kDisableBreakpad,
|
||||
switches::kDisableDatabases,
|
||||
switches::kDisableFileSystem,
|
||||
|
@ -129,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
|
||||
@@ -104,6 +104,7 @@ target(link_target_type, "child") {
|
||||
@@ -102,6 +102,7 @@ target(link_target_type, "child") {
|
||||
"//third_party/blink/public/common",
|
||||
"//third_party/blink/public/strings",
|
||||
"//third_party/ced",
|
||||
|
@ -140,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
|
||||
@@ -37,6 +37,8 @@
|
||||
@@ -38,6 +38,8 @@
|
||||
#include "ui/gl/gl_switches.h"
|
||||
#include "ui/native_theme/native_theme_features.h"
|
||||
|
||||
|
@ -149,10 +149,10 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
|
|||
#if defined(OS_ANDROID)
|
||||
#include "base/android/build_info.h"
|
||||
#endif
|
||||
@@ -545,6 +547,13 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs(
|
||||
// They're moved here to distinguish them from actual base checks
|
||||
WebRuntimeFeatures::EnableOverlayScrollbars(ui::IsOverlayScrollbarEnabled());
|
||||
|
||||
@@ -542,6 +544,13 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs(
|
||||
if (!command_line.HasSwitch(switches::kDisableYUVImageDecoding) &&
|
||||
base::FeatureList::IsEnabled(
|
||||
blink::features::kDecodeLossyWebPImagesToYUV)) {
|
||||
+ WebRuntimeFeatures::EnableFingerprintingClientRectsNoise(
|
||||
+ !command_line.HasSwitch(switches::kFingerprintingClientRectsNoise));
|
||||
+ WebRuntimeFeatures::EnableFingerprintingCanvasMeasureTextNoise(
|
||||
|
@ -160,34 +160,34 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
|
|||
+ WebRuntimeFeatures::EnableFingerprintingCanvasImageDataNoise(
|
||||
+ !command_line.HasSwitch(switches::kFingerprintingCanvasImageDataNoise));
|
||||
+
|
||||
if (base::FeatureList::IsEnabled(blink::features::kFileHandlingAPI)) {
|
||||
WebRuntimeFeatures::EnableFeatureFromString("FileHandling", true);
|
||||
WebRuntimeFeatures::EnableDecodeLossyWebPImagesToYUV(true);
|
||||
}
|
||||
|
||||
diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_party/blink/public/platform/web_runtime_features.h
|
||||
--- a/third_party/blink/public/platform/web_runtime_features.h
|
||||
+++ b/third_party/blink/public/platform/web_runtime_features.h
|
||||
@@ -209,6 +209,9 @@ class WebRuntimeFeatures {
|
||||
@@ -214,6 +214,9 @@ class WebRuntimeFeatures {
|
||||
BLINK_PLATFORM_EXPORT static void EnableMediaControlsExpandGesture(bool);
|
||||
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 EnableHTMLImports(bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableAllowSyncXHRInPageDismissal(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
|
||||
@@ -43,6 +43,7 @@
|
||||
#include "base/debug/dump_without_crashing.h"
|
||||
#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"
|
||||
@@ -2389,6 +2390,23 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() {
|
||||
@@ -2160,6 +2161,23 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() {
|
||||
#if DCHECK_IS_ON()
|
||||
AssertLayoutTreeUpdated(*this);
|
||||
#endif
|
||||
|
@ -214,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
|
||||
@@ -444,6 +444,10 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
@@ -456,6 +456,10 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
has_xml_declaration_ = has_xml_declaration ? 1 : 0;
|
||||
}
|
||||
|
||||
|
@ -225,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;
|
||||
@@ -2001,6 +2005,9 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
@@ -2024,6 +2028,9 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
|
||||
base::ElapsedTimer start_time_;
|
||||
|
||||
|
@ -238,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
|
||||
@@ -2075,6 +2075,11 @@ DOMRectList* Element::getClientRects() {
|
||||
@@ -2120,6 +2120,11 @@ DOMRectList* Element::getClientRects() {
|
||||
DCHECK(element_layout_object);
|
||||
GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom(
|
||||
quads, *element_layout_object);
|
||||
|
@ -250,7 +250,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/
|
|||
return MakeGarbageCollected<DOMRectList>(quads);
|
||||
}
|
||||
|
||||
@@ -2092,6 +2097,9 @@ FloatRect Element::GetBoundingClientRectNoLifecycleUpdate() const {
|
||||
@@ -2137,6 +2142,9 @@ FloatRect Element::GetBoundingClientRectNoLifecycleUpdate() const {
|
||||
DCHECK(element_layout_object);
|
||||
GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result,
|
||||
*element_layout_object);
|
||||
|
@ -263,7 +263,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/
|
|||
diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/renderer/core/dom/range.cc
|
||||
--- a/third_party/blink/renderer/core/dom/range.cc
|
||||
+++ b/third_party/blink/renderer/core/dom/range.cc
|
||||
@@ -1615,6 +1615,12 @@ DOMRectList* Range::getClientRects() const {
|
||||
@@ -1614,6 +1614,12 @@ DOMRectList* Range::getClientRects() const {
|
||||
Vector<FloatQuad> quads;
|
||||
GetBorderAndTextQuads(quads);
|
||||
|
||||
|
@ -276,7 +276,7 @@ diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/re
|
|||
return MakeGarbageCollected<DOMRectList>(quads);
|
||||
}
|
||||
|
||||
@@ -1741,7 +1747,11 @@ FloatRect Range::BoundingRect() const {
|
||||
@@ -1740,7 +1746,11 @@ FloatRect Range::BoundingRect() const {
|
||||
|
||||
// If all rects are empty, return the first rect.
|
||||
if (result.IsEmpty() && !quads.IsEmpty())
|
||||
|
@ -332,7 +332,7 @@ diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.h b/third_
|
|||
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/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
|
||||
@@ -22,6 +22,7 @@
|
||||
@@ -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"
|
||||
|
@ -340,25 +340,23 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c
|
|||
|
||||
namespace blink {
|
||||
|
||||
@@ -1978,6 +1979,12 @@ ImageData* BaseRenderingContext2D::getImageDataInternal(
|
||||
@@ -2180,6 +2181,10 @@ 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);
|
||||
+ StaticBitmapImage::ShuffleSubchannelColorData(image_data_pixmap.addr(), image_data_pixmap.info(), sx, sy);
|
||||
+ }
|
||||
}
|
||||
|
||||
// Wrap |contents| in an ImageData.
|
||||
if (!IsPaint2D()) {
|
||||
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
|
||||
@@ -964,9 +964,15 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
|
||||
else
|
||||
direction = ToTextDirection(GetState().GetDirection(), canvas());
|
||||
@@ -983,9 +983,15 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
|
||||
TextDirection direction =
|
||||
ToTextDirection(GetState().GetDirection(), canvas());
|
||||
|
||||
- return MakeGarbageCollected<TextMetrics>(font, direction,
|
||||
+ TextMetrics* text_metrics = MakeGarbageCollected<TextMetrics>(font, direction,
|
||||
|
@ -376,7 +374,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
|
||||
@@ -1615,7 +1615,9 @@ component("platform") {
|
||||
@@ -1628,7 +1628,9 @@ component("platform") {
|
||||
"//third_party/blink/renderer:non_test_config",
|
||||
]
|
||||
|
||||
|
@ -387,7 +385,7 @@ 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",
|
||||
@@ -1681,6 +1683,7 @@ component("platform") {
|
||||
@@ -1694,6 +1696,7 @@ component("platform") {
|
||||
"//third_party/blink/public/strings",
|
||||
"//third_party/blink/renderer/platform/wtf",
|
||||
"//third_party/ced",
|
||||
|
@ -398,8 +396,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
|
||||
@@ -671,4 +671,16 @@ void WebRuntimeFeatures::EnableCSSColorSchemeUARendering(bool enable) {
|
||||
RuntimeEnabledFeatures::SetCSSColorSchemeUARenderingEnabled(enable);
|
||||
@@ -686,4 +686,16 @@ void WebRuntimeFeatures::EnableDocumentTransition(bool enable) {
|
||||
RuntimeEnabledFeatures::SetDocumentTransitionEnabled(enable);
|
||||
}
|
||||
|
||||
+void WebRuntimeFeatures::EnableFingerprintingClientRectsNoise(bool enable) {
|
||||
|
@ -631,9 +629,9 @@ 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
|
||||
@@ -919,6 +919,15 @@
|
||||
name: "FeaturePolicyReporting",
|
||||
status: "experimental"
|
||||
@@ -948,6 +948,15 @@
|
||||
origin_trial_allows_third_party: true,
|
||||
status: "experimental",
|
||||
},
|
||||
+ {
|
||||
+ name: "FingerprintingClientRectsNoise",
|
||||
|
@ -645,8 +643,8 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
|||
+ name: "FingerprintingCanvasImageDataNoise",
|
||||
+ },
|
||||
{
|
||||
name: "FeaturePolicyVibrateFeature"
|
||||
},
|
||||
// Also enabled when blink::features::kFileHandlingAPI is overridden
|
||||
// on the command line (or via chrome://flags).
|
||||
diff --git a/third_party/ungoogled/BUILD.gn b/third_party/ungoogled/BUILD.gn
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
|
|
|
@ -9,10 +9,10 @@ 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
|
||||
@@ -330,6 +330,8 @@ std::vector<base::string16> ChromeAutocompleteProviderClient::GetBuiltinURLs() {
|
||||
std::vector<base::string16>
|
||||
@@ -356,6 +356,8 @@ std::vector<std::u16string> ChromeAutocompleteProviderClient::GetBuiltinURLs() {
|
||||
std::vector<std::u16string>
|
||||
ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
|
||||
std::vector<base::string16> builtins_to_provide;
|
||||
std::vector<std::u16string> builtins_to_provide;
|
||||
+ builtins_to_provide.push_back(
|
||||
+ base::ASCIIToUTF16(chrome::kChromeUIFlagsURL));
|
||||
builtins_to_provide.push_back(
|
||||
|
|
|
@ -3,21 +3,13 @@ Date: Thu, 11 Jan 2018 13:27:34 +0200
|
|||
Subject: Open YouTube links in Bromite
|
||||
|
||||
---
|
||||
.../external_intents/ExternalNavigationHandler.java | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
.../external_intents/ExternalNavigationHandler.java | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
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
|
||||
@@ -572,6 +572,7 @@ public class ExternalNavigationHandler {
|
||||
startActivity(intent, false, mDelegate);
|
||||
return OverrideUrlLoadingResult.forExternalIntent();
|
||||
}
|
||||
+
|
||||
}
|
||||
|
||||
private static void loadUrlWithReferrer(
|
||||
@@ -1230,6 +1231,13 @@ public class ExternalNavigationHandler {
|
||||
@@ -1163,6 +1163,12 @@ public class ExternalNavigationHandler {
|
||||
OverrideUrlLoadingAsyncActionType.UI_GATING_BROWSER_NAVIGATION);
|
||||
}
|
||||
|
||||
|
@ -27,7 +19,6 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component
|
|||
+ if (DEBUG) Log.i(TAG, "NO_OVERRIDE: YouTube URL for YouTube app");
|
||||
+ return OverrideUrlLoadingResult.forNoOverride();
|
||||
+ }
|
||||
+
|
||||
// This should come after file intents, but before any returns of
|
||||
// OVERRIDE_WITH_EXTERNAL_INTENT.
|
||||
if (externalIntentRequestsDisabledForUrl(params)) {
|
||||
|
|
|
@ -3,10 +3,10 @@ Date: Sat, 28 Apr 2018 08:30:26 +0200
|
|||
Subject: Reduce HTTP headers in DoH requests to bare minimum
|
||||
|
||||
---
|
||||
net/base/load_flags_list.h | 9 +++++++++
|
||||
net/dns/dns_transaction.cc | 2 +-
|
||||
net/url_request/url_request_http_job.cc | 16 +++++++++++-----
|
||||
3 files changed, 21 insertions(+), 6 deletions(-)
|
||||
net/base/load_flags_list.h | 9 +++++++++
|
||||
net/dns/dns_transaction.cc | 2 +-
|
||||
net/url_request/url_request_http_job.cc | 8 +++++++-
|
||||
3 files changed, 17 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/net/base/load_flags_list.h b/net/base/load_flags_list.h
|
||||
--- a/net/base/load_flags_list.h
|
||||
|
@ -27,9 +27,9 @@ 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
|
||||
@@ -411,7 +411,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
|
||||
@@ -414,7 +414,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
|
||||
// Disable secure DNS for any DoH server hostname lookups to avoid deadlock.
|
||||
request_->SetDisableSecureDns(true);
|
||||
request_->SetSecureDnsPolicy(SecureDnsPolicy::kDisable);
|
||||
request_->SetLoadFlags(request_->load_flags() | LOAD_DISABLE_CACHE |
|
||||
- LOAD_BYPASS_PROXY);
|
||||
+ LOAD_MINIMAL_HEADERS | LOAD_BYPASS_PROXY);
|
||||
|
@ -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
|
||||
@@ -286,6 +286,7 @@ void URLRequestHttpJob::Start() {
|
||||
@@ -296,6 +296,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()) {
|
||||
@@ -293,11 +294,14 @@ void URLRequestHttpJob::Start() {
|
||||
@@ -303,11 +304,14 @@ void URLRequestHttpJob::Start() {
|
||||
request_info_.extra_headers.SetHeader(HttpRequestHeaders::kReferer,
|
||||
referer_value);
|
||||
}
|
||||
|
@ -62,24 +62,23 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
|
|||
|
||||
AddExtraHeaders();
|
||||
AddCookieHeaderAndStart();
|
||||
@@ -499,10 +503,12 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
} else {
|
||||
// Advertise "br" encoding only if transferred data is opaque to proxy.
|
||||
bool advertise_brotli = false;
|
||||
- if (request()->context()->enable_brotli()) {
|
||||
- if (request()->url().SchemeIsCryptographic() ||
|
||||
- IsLocalhost(request()->url())) {
|
||||
- advertise_brotli = true;
|
||||
@@ -523,6 +527,7 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
if (request_->Supports(SourceStream::SourceType::TYPE_DEFLATE)) {
|
||||
advertised_encoding_names.push_back("deflate");
|
||||
}
|
||||
+ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS)) {
|
||||
+ if (request()->context()->enable_brotli()) {
|
||||
+ if (request()->url().SchemeIsCryptographic() ||
|
||||
+ IsLocalhost(request()->url())) {
|
||||
+ advertise_brotli = true;
|
||||
+ }
|
||||
// Advertise "br" encoding only if transferred data is opaque to proxy.
|
||||
if (request()->context()->enable_brotli() &&
|
||||
request_->Supports(SourceStream::SourceType::TYPE_BROTLI)) {
|
||||
@@ -531,6 +536,7 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
advertised_encoding_names.push_back("br");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -520,7 +526,7 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
+ } // minimal headers
|
||||
if (!advertised_encoding_names.empty()) {
|
||||
// Tell the server what compression formats are supported.
|
||||
request_info_.extra_headers.SetHeader(
|
||||
@@ -540,7 +546,7 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,9 +5,9 @@ Subject: Remove SMS integration
|
|||
---
|
||||
.../content/browser/sms/SmsProviderGms.java | 21 +--------
|
||||
.../browser/sms/SmsUserConsentReceiver.java | 46 ++-----------------
|
||||
.../browser/sms/SmsVerificationReceiver.java | 37 ++++-----------
|
||||
.../browser/sms/SmsVerificationReceiver.java | 38 ++++-----------
|
||||
.../content/browser/sms/Wrappers.java | 28 +----------
|
||||
4 files changed, 16 insertions(+), 116 deletions(-)
|
||||
4 files changed, 16 insertions(+), 117 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
|
||||
|
@ -38,7 +38,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm
|
|||
if (mBackend == GmsBackend.AUTO || mBackend == GmsBackend.USER_CONSENT) {
|
||||
mUserConsentReceiver = new SmsUserConsentReceiver(this, mContext);
|
||||
}
|
||||
@@ -133,13 +121,6 @@ public class SmsProviderGms {
|
||||
@@ -138,13 +126,6 @@ public class SmsProviderGms {
|
||||
}
|
||||
|
||||
public Wrappers.SmsRetrieverClientWrapper getClient() {
|
||||
|
@ -52,7 +52,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm
|
|||
return mClient;
|
||||
}
|
||||
|
||||
@@ -161,4 +142,4 @@ public class SmsProviderGms {
|
||||
@@ -166,4 +147,4 @@ public class SmsProviderGms {
|
||||
void onCancel(long nativeSmsProviderGms);
|
||||
void onNotAvailable(long nativeSmsProviderGms);
|
||||
}
|
||||
|
@ -206,32 +206,33 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm
|
|||
+ }*/
|
||||
}
|
||||
|
||||
public void onPermissionDone(WindowAndroid window, int resultCode) {
|
||||
public void onPermissionDone(WindowAndroid window, int resultCode, boolean isLocalRequest) {
|
||||
@@ -134,7 +115,7 @@ public class SmsVerificationReceiver extends BroadcastReceiver {
|
||||
* task.
|
||||
*/
|
||||
public void onRetrieverTaskFailure(WindowAndroid window, Exception e) {
|
||||
public void onRetrieverTaskFailure(WindowAndroid window, boolean isLocalRequest, 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) {
|
||||
@@ -176,11 +157,12 @@ public class SmsVerificationReceiver extends BroadcastReceiver {
|
||||
reportBackendAvailability(BackendAvailability.API_NOT_CONNECTED);
|
||||
@@ -175,12 +156,12 @@ public class SmsVerificationReceiver extends BroadcastReceiver {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Log.w(TAG, "Unexpected exception", e);
|
||||
}
|
||||
- reportBackendAvailability(availability);
|
||||
+ reportBackendAvailability(availability); */
|
||||
+ Log.w(TAG, "Unexpected exception", e);
|
||||
- Log.w(TAG, "Unexpected exception", e);
|
||||
- }
|
||||
+ Log.w(TAG, "Unexpected exception", e); // marker
|
||||
+ } */
|
||||
}
|
||||
|
||||
public void listen(WindowAndroid window) {
|
||||
public void listen(WindowAndroid window, boolean isLocalRequest) {
|
||||
- Wrappers.SmsRetrieverClientWrapper client = mProvider.getClient();
|
||||
+ /* Wrappers.SmsRetrieverClientWrapper client = mProvider.getClient();
|
||||
Task<Void> task = client.startSmsCodeBrowserRetriever();
|
||||
|
||||
task.addOnSuccessListener(unused -> {
|
||||
@@ -192,7 +174,8 @@ public class SmsVerificationReceiver extends BroadcastReceiver {
|
||||
@@ -192,7 +173,8 @@ public class SmsVerificationReceiver extends BroadcastReceiver {
|
||||
mProvider.destoryVerificationReceiver();
|
||||
});
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -9,8 +9,8 @@ Subject: Remove blocklisted URLs upon bookmark creation
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
@@ -136,6 +136,8 @@ import org.chromium.chrome.browser.page_info.ChromePageInfoControllerDelegate;
|
||||
import org.chromium.chrome.browser.page_info.ChromePermissionParamsListBuilderDelegate;
|
||||
@@ -139,6 +139,8 @@ import org.chromium.chrome.browser.omaha.notification.UpdateNotificationControll
|
||||
import org.chromium.chrome.browser.page_info.ChromePageInfo;
|
||||
import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
|
||||
import org.chromium.chrome.browser.preferences.Pref;
|
||||
+import org.chromium.chrome.browser.suggestions.SuggestionsDependencyFactory;
|
||||
|
@ -18,7 +18,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
import org.chromium.chrome.browser.printing.TabPrinter;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
|
||||
@@ -223,6 +225,8 @@ import org.chromium.url.GURL;
|
||||
@@ -227,6 +229,8 @@ import org.chromium.url.GURL;
|
||||
import org.chromium.url.Origin;
|
||||
import org.chromium.webapk.lib.client.WebApkNavigationClient;
|
||||
|
||||
|
@ -27,7 +27,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
@@ -275,6 +279,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -274,6 +278,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
|
||||
private UmaSessionStats mUmaSessionStats;
|
||||
private ContextReporter mContextReporter;
|
||||
|
@ -35,8 +35,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
|
||||
private boolean mPartnerBrowserRefreshNeeded;
|
||||
|
||||
@@ -1320,6 +1325,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
mCompositorViewHolder = null;
|
||||
@@ -1351,6 +1356,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
mCompositorViewHolderSupplier.set(null);
|
||||
}
|
||||
|
||||
+ if (mMostVisitedSites != null) {
|
||||
|
@ -47,7 +47,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
onDestroyInternal();
|
||||
|
||||
if (mDidAddPolicyChangeListener) {
|
||||
@@ -1597,6 +1607,13 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -1643,6 +1653,13 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
|
||||
// Defense in depth against the UI being erroneously enabled.
|
||||
BookmarkBridge bridge = mBookmarkBridgeSupplier.get();
|
||||
|
|
|
@ -3,17 +3,17 @@ Date: Wed, 27 Jun 2018 01:32:28 +0200
|
|||
Subject: Remove help menu item
|
||||
|
||||
---
|
||||
chrome/android/java/res/menu/main_menu.xml | 3 ---
|
||||
.../org/chromium/chrome/browser/KeyboardShortcuts.java | 3 ---
|
||||
.../org/chromium/chrome/browser/app/ChromeActivity.java | 9 ---------
|
||||
.../chrome/browser/customtabs/BaseCustomTabActivity.java | 2 +-
|
||||
.../browser/directactions/MenuDirectActionHandler.java | 2 --
|
||||
5 files changed, 1 insertion(+), 18 deletions(-)
|
||||
chrome/android/java/res/menu/main_menu.xml | 3 ---
|
||||
.../org/chromium/chrome/browser/KeyboardShortcuts.java | 3 ---
|
||||
.../chromium/chrome/browser/app/ChromeActivity.java | 10 ----------
|
||||
.../browser/customtabs/BaseCustomTabActivity.java | 2 +-
|
||||
.../browser/directactions/MenuDirectActionHandler.java | 2 --
|
||||
5 files changed, 1 insertion(+), 19 deletions(-)
|
||||
|
||||
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
|
||||
@@ -114,9 +114,6 @@
|
||||
@@ -113,9 +113,6 @@
|
||||
<item android:id="@+id/preferences_id"
|
||||
android:title="@string/menu_settings"
|
||||
android:icon="@drawable/settings_cog" />
|
||||
|
@ -22,7 +22,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
|
|||
- android:icon="@drawable/help_outline" />
|
||||
<item android:id="@+id/enter_vr_id"
|
||||
android:title="@string/enter_vr"
|
||||
android:icon="@drawable/vr_headset" />
|
||||
android:icon="@drawable/gm_filled_cardboard_24" />
|
||||
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
|
||||
|
@ -39,14 +39,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcu
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
@@ -2142,15 +2142,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -2210,16 +2210,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
|
||||
final Tab currentTab = getActivityTab();
|
||||
|
||||
- if (id == R.id.help_id) {
|
||||
- String url = currentTab != null ? currentTab.getUrlString() : "";
|
||||
- String url = currentTab != null ? currentTab.getUrl().getSpec() : "";
|
||||
- Profile profile = getTabModelSelector().isIncognitoSelected()
|
||||
- ? Profile.getLastUsedRegularProfile().getPrimaryOTRProfile()
|
||||
- ? Profile.getLastUsedRegularProfile().getPrimaryOTRProfile(
|
||||
- /*createIfNeeded=*/true)
|
||||
- : Profile.getLastUsedRegularProfile();
|
||||
- startHelpAndFeedback(url, "MobileMenuFeedback", profile);
|
||||
- return true;
|
||||
|
@ -58,7 +59,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java
|
||||
@@ -497,7 +497,7 @@ public abstract class BaseCustomTabActivity extends ChromeActivity<BaseCustomTab
|
||||
@@ -500,7 +500,7 @@ public abstract class BaseCustomTabActivity extends ChromeActivity<BaseCustomTab
|
||||
@Override
|
||||
public boolean onMenuOrKeyboardAction(int id, boolean fromMenu) {
|
||||
// Disable creating new tabs, bookmark, history, print, help, focus_url, etc.
|
||||
|
|
|
@ -9,15 +9,15 @@ Subject: Remove offline measurement background task
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
|
||||
@@ -418,8 +418,6 @@ public class ProcessInitializationHandler {
|
||||
@@ -397,8 +397,6 @@ public class ProcessInitializationHandler {
|
||||
() -> VideoTutorialShareHelper.saveUrlsToSharedPrefs());
|
||||
deferredStartupHandler.addDeferredTask(
|
||||
() -> TosDialogBehaviorSharedPrefInvalidator.refreshSharedPreferenceIfTosSkipped());
|
||||
- deferredStartupHandler.addDeferredTask(
|
||||
- () -> OfflineMeasurementsBackgroundTask.maybeScheduleTaskAndReportMetrics());
|
||||
deferredStartupHandler.addDeferredTask(() -> QueryTileUtils.isQueryTilesEnabledOnNTP());
|
||||
}
|
||||
|
||||
deferredStartupHandler.addDeferredTask(
|
||||
()
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue