merge with upstream

This commit is contained in:
Carmelo Messina
2022-12-28 17:15:33 +01:00
parent 35ad42ef78
commit 4887cbf832
162 changed files with 5535 additions and 4116 deletions
+50 -42
View File
@@ -3,7 +3,26 @@ do-not-hide-.orig-files.patch
Do-not-link-with-libatomic.patch
do-not-add-suffix-to-package-name.patch
exit-on-failure-of-inclusion.patch
AV1-codec-support.patch
Disable-safe-browsing.patch
Remove-signin-and-sync-integrations.patch
Move-some-account-settings-back-to-privacy-settings.patch
Remove-contextual-search-manager.patch
kill-Vision.patch
kill-Location-fall-back-to-system.patch
kill-Auth.patch
Remove-binary-blob-integrations.patch
Remove-SMS-integration.patch
Remove-price-shopping-commerce-integrations.patch
Remove-voice-recognition-integration.patch
Do-not-compile-QR-code-sharing.patch
Timezone-customization.patch
Revert-the-removal-of-an-option-to-block-autoplay.patch
Add-support-for-ISupportHelpAndFeedback.patch
JIT-site-settings.patch
Site-setting-for-images.patch
Content-settings-infrastructure.patch
Add-webGL-site-setting.patch
Add-webRTC-site-settings.patch
Switch-to-fstack-protector-strong.patch
Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch
Bromite-package-name.patch
@@ -28,9 +47,7 @@ ungoogled-chromium-Disable-intranet-detector.patch
ungoogled-chromium-no-special-hosts-domains.patch
ungoogled-chromium-Disable-Gaia.patch
ungoogled-chromium-Disable-Network-Time-Tracker.patch
Disable-safe-browsing.patch
Disable-all-promo-dialogs.patch
Remove-signin-and-sync-integrations.patch
Disable-update-scheduler.patch
Add-English-only-search-engine.patch
Add-DuckDuckGo-Lite-search-engine.patch
@@ -41,7 +58,6 @@ Allow-playing-audio-in-background.patch
Add-flag-to-control-video-playback-resume-feature.patch
Add-exit-menu-item.patch
Remove-help-menu-item.patch
AudioBuffer-AnalyserNode-fp-mitigations.patch
Multiple-fingerprinting-mitigations.patch
Add-flag-to-configure-maximum-connections-per-host.patch
Do-not-ignore-download-location-prompt-setting.patch
@@ -52,8 +68,6 @@ Add-an-always-incognito-mode.patch
Keep-flag-to-allow-screenshots-in-Incognito-mode.patch
Add-option-to-not-persist-tabs-across-sessions.patch
Add-a-proxy-configuration-page.patch
Move-some-account-settings-back-to-privacy-settings.patch
Remove-contextual-search-manager.patch
Add-custom-tab-intents-privacy-option.patch
Disable-FLoC-and-privacy-sandbox.patch
History-number-of-days-privacy-setting.patch
@@ -68,14 +82,6 @@ autofill-miscellaneous.patch
Enable-native-Android-autofill.patch
first_run-deactivate-autoupdate-globally.patch
translate-disable-fetching-of-languages-from-server.patch
kill-Vision.patch
kill-Location-fall-back-to-system.patch
kill-Auth.patch
Remove-binary-blob-integrations.patch
Remove-SMS-integration.patch
Remove-price-shopping-commerce-integrations.patch
Remove-voice-recognition-integration.patch
Do-not-compile-QR-code-sharing.patch
Offer-builtin-autocomplete-for-chrome-flags.patch
Use-4-tile-rows-never-show-logo.patch
Disable-various-metrics.patch
@@ -87,7 +93,8 @@ Disable-offline-pages-in-CCT.patch
Disable-media-router-and-remoting-by-default.patch
Restore-Search-Ready-Omnibox-flag.patch
disable-AdsBlockedInfoBar.patch
Bromite-AdBlockUpdaterService.patch
Bromite-subresource-adblocker.patch
Bromite-auto-updater.patch
Replace-DoH-probe-domain-with-RIPE-domain.patch
Increase-number-of-autocomplete-matches-to-10.patch
Disable-requests-for-single-word-Omnibar-searches.patch
@@ -100,6 +107,7 @@ Disable-feeds-support-by-default.patch
Show-site-settings-for-cookies-javascript-and-ads.patch
Disable-DRM-media-origin-IDs-preprovisioning.patch
Disable-smart-selection-by-default.patch
Guard-for-user-agent-reduction.patch
AImageReader-CFI-crash-mitigations.patch
Add-menu-item-to-view-source.patch
Revert-removal-of-execution-context-address-space.patch
@@ -112,10 +120,8 @@ Disable-the-DIAL-repeating-discovery.patch
Block-qjz9zk-or-trk-requests.patch
Hardening-against-incognito-mode-detection.patch
Remove-weblayer-dependency-on-Play-Services.patch
Timezone-customization.patch
Restore-Simplified-NTP-launch.patch
Add-option-to-use-home-page-as-NTP.patch
Revert-the-removal-of-an-option-to-block-autoplay.patch
Disable-text-fragments-by-default.patch
disable-WebView-variations-support.patch
Enable-network-isolation-features.patch
@@ -123,32 +129,24 @@ Revert-flags-remove-num-raster-threads.patch
webview-Hard-no-to-persistent-histograms.patch
Ignore-enterprise-policies-for-secure-DNS.patch
Add-menu-item-to-bookmark-all-tabs.patch
Ask-user-before-closing-all-tabs.patch
Re-introduce-modal-dialog-flag-to-close-all-tabs.patch
Add-option-to-force-tablet-UI.patch
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
Unexpire-tab-groups-flags.patch
Add-flag-for-omnibox-autocomplete-filtering.patch
Revert-Delete-block-external-form-redirects.patch
Enable-IntentBlockExternalFormRedirectsNoGesture.patch
Add-flag-to-disable-external-intent-requests.patch
Enable-share-intent.patch
Logcat-crash-reports-UI.patch
Add-support-for-ISupportHelpAndFeedback.patch
JIT-site-settings.patch
API-level-21-prevent-crash-on-download.patch
Add-flag-to-disable-vibration.patch
mime_util-force-text-x-suse-ymp-to-be-downloaded.patch
Client-hints-overrides.patch
Disable-AGSA-by-default.patch
Allow-building-without-enable_reporting.patch
Disable-lock-icon-in-address-bar-by-default.patch
Enable-share-intent.patch
Site-setting-for-images.patch
Bromite-auto-updater.patch
Experimental-user-scripts-support.patch
Keep-empty-tabs-between-sessions.patch
Disable-third-party-origin-trials.patch
@@ -178,10 +176,7 @@ Disable-TLS-resumption.patch
Remove-mremap-from-seccomp-baseline-policy.patch
Move-navigation-bar-to-bottom.patch
Welcome-screen.patch
Content-settings-infrastructure.patch
Add-webGL-site-setting.patch
Add-site-engagement-flag.patch
Add-webRTC-site-settings.patch
Enable-Certificate-Transparency.patch
Invalidate-components-public-key.patch
Improve-plain-text-rendering-on-mobile.patch
@@ -192,19 +187,21 @@ Remove-preload-of-com.google.android.gms.fonts.patch
Partition-Blink-memory-cache.patch
Remove-navigator.connection-info.patch
Disable-PrivacyGuide.patch
Re-introduce-modal-dialog-flag-to-close-all-tabs.patch
sharing-hub-always-use-visible-URL.patch
Re-introduce-kWebAuthCable.patch
Revert-clipboard-user-gesture-requirement-removal.patch
Viewport-Protection.patch
Enable-HEVC-by-default.patch
Partition-blobs-by-top-frame-URL.patch
Override-Navigator-Language.patch
Partition-blobs-by-top-frame-url.patch
Disable-add-to-home-screen-prompt.patch
Remove-http-referrals-in-cross-origin-navigation.patch
Remove-HTTP-referrals-in-cross-origin-navigation.patch
Enable-ECH-by-default.patch
Disable-StartSurface-feature.patch
Clamp-time-resolution-in-requestAnimationFrame.patch
Enable-PermuteTLSExtensions-by-default.patch
Enable-third-party-storage-partitioning.patch
Restore-adaptive-button-in-top-toolbar-customization.patch
Add-kill-switch-for-unsupported-clangd-flags.patch
Fix-WebWorker-requestAnimationFrame.patch
00Enable-ThirdPartyStoragePartitioning-flag.patch
00OpenSearch--miscellaneous--fixup-.patch
00Eyeo-Adblock.patch
00Eyeo-Adblock-Remove-Privacy-Issues.patch
@@ -234,17 +231,28 @@ Fix-WebWorker-requestAnimationFrame.patch
00Timezone-customization--win-fixup-.patch
00Add-webGL-site-setting--win-fixup-.patch
00Add-webRTC-site-settings--win-fixup-.patch
00Viewport-Protection--win-fixup-.patch
00Eyeo-Adblock--win-fixup-.patch
00Content-settings-infrastructure--win-fixup-.patch
00ungoogled-chromium--no-special-hosts-d--win-fixup-.patch
00Client-hints-overrides--win-fixup-.patch
00Logcat-crash-reports-UI--win-fixup-.patch
00Fix-windows-build.patch
00ungoogled-chr-no-special-hosts-domains--add-fixup-.patch
00Disable-fetching-of-all-field-trials--add-fixup-.patch
00Add-menu-item-to-view-source--add-fixup-.patch
00Add-AudioContextAPI-flags.patch
AudioBuffer-AnalyserNode-fp-mitigations.patch
00Disable-Component-Updates.patch
00wip-add-browser-policy.patch
00temporary-fix-libaom-build-error.patch
00temporary-fix-libaom-build-error.patch
00Guard-for-user-agent-reduction--add-fixup-.patch
00Client-hints-overrides--add-fixup-.patch
00Add-AllowUserCertificates-flag--win-fixup-.patch
00Viewport-Protection-flag.patch
00Viewport-Protection-Site-Setting.patch
00Temp-Disable-kAutomaticLazyFrameLoadingToEmbeds.patch
00Enable-kPostMessageDifferentPartitionSameOriginBlocked.patch
00Move-navigation-bar-to-bottom--add-fixup-.patch
00Always-open-browser-controls-in-new-tab.patch
00Eyeo-Adblock-Remove--fixup-.patch
00Remove-HTTP-referrals-in-cross-origin-navi--fixup-.patch
00win-enable-pdf-plugin.patch
00win-disable-annotate-downloads.patch
00win-enable-HighEfficiencyMode-by-default.patch
@@ -0,0 +1,26 @@
From: Your Name <you@example.com>
Date: Mon, 19 Dec 2022 11:23:10 +0000
Subject: Add AllowUserCertificates flag (win fixup)
---
chrome/browser/about_flags.cc | 2 ++
1 file changed, 2 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
@@ -8897,10 +8897,12 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(features::kWin10TabSearchCaptionButton)},
#endif // BUILDFLAG(IS_WIN)
+#if BUILDFLAG(IS_ANDROID)
{"allow-user-certificates",
flag_descriptions::kAllowUserCertificatesName,
flag_descriptions::kAllowUserCertificatesDescription, kOsAndroid,
FEATURE_VALUE_TYPE(chrome::android::kAllowUserCertificates)},
+#endif
{"omnibox-updated-connection-security-indicators",
flag_descriptions::kOmniboxUpdatedConnectionSecurityIndicatorsName,
flag_descriptions::kOmniboxUpdatedConnectionSecurityIndicatorsDescription,
--
2.25.1
@@ -1,542 +0,0 @@
From: Your Name <you@example.com>
Date: Mon, 7 Nov 2022 16:45:13 +0000
Subject: Add AudioContextAPI flags
---
chrome/browser/about_flags.cc | 8 ++++
chrome/browser/flag_descriptions.cc | 9 ++++
chrome/browser/flag_descriptions.h | 5 +++
third_party/blink/common/features.cc | 5 +++
third_party/blink/public/common/features.h | 3 ++
.../modules/webaudio/analyser_handler.h | 16 +++----
.../modules/webaudio/analyser_node.cc | 20 +++++----
.../renderer/modules/webaudio/analyser_node.h | 8 ++--
.../modules/webaudio/analyser_node.idl | 8 ++--
.../renderer/modules/webaudio/audio_buffer.cc | 34 ++++++++++++--
.../renderer/modules/webaudio/audio_buffer.h | 7 +--
.../modules/webaudio/audio_buffer.idl | 6 +++
.../modules/webaudio/audio_context.cc | 5 +++
.../modules/webaudio/base_audio_context.cc | 12 +++++
.../modules/webaudio/base_audio_context.h | 2 +
.../modules/webaudio/realtime_analyser.cc | 45 +++++++++++++++++--
.../modules/webaudio/realtime_analyser.h | 10 +++--
17 files changed, 164 insertions(+), 39 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
@@ -3667,6 +3667,14 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kKioskEnableAppServiceDescription, kOsCrOS,
FEATURE_VALUE_TYPE(features::kKioskEnableAppService)},
#endif // BUILDFLAG(IS_CHROMEOS)
+ {"audio-context-api",
+ flag_descriptions::kAudioContextAPIEnabledName,
+ flag_descriptions::kAudioContextAPIEnabledDescription, kOsAll,
+ FEATURE_VALUE_TYPE(blink::features::kAudioContextAPIEnabled)},
+ {"fingerprinting-audio-context-data-noise",
+ flag_descriptions::kAudioContextShuffleEnabledName,
+ flag_descriptions::kAudioContextShuffleEnabledDescription, kOsAll,
+ FEATURE_VALUE_TYPE(blink::features::kAudioContextShuffleEnabled)},
#if !BUILDFLAG(IS_ANDROID)
{"enable-webrtc-remote-event-log",
flag_descriptions::kWebRtcRemoteEventLogName,
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
@@ -3353,6 +3353,15 @@ const char kWebrtcUseMinMaxVEADimensionsDescription[] =
"When enabled, WebRTC will only use the Video Encode Accelerator for "
"video resolutions inside those published as supported.";
+const char kAudioContextAPIEnabledName[] =
+ "Audio Context API";
+const char kAudioContextAPIEnabledDescription[] =
+ "When enabled, api are available for the audio context.";
+const char kAudioContextShuffleEnabledName[] =
+ "Enable Audio Context fingerprint deception";
+const char kAudioContextShuffleEnabledDescription[] =
+ "Scale the output values of xxx with a randomly selected factor.";
+
const char kWebUsbDeviceDetectionName[] =
"Automatic detection of WebUSB-compatible devices";
const char kWebUsbDeviceDetectionDescription[] =
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
@@ -1905,6 +1905,11 @@ extern const char kWebrtcSrtpAesGcmDescription[];
extern const char kWebrtcUseMinMaxVEADimensionsName[];
extern const char kWebrtcUseMinMaxVEADimensionsDescription[];
+extern const char kAudioContextAPIEnabledName[];
+extern const char kAudioContextAPIEnabledDescription[];
+extern const char kAudioContextShuffleEnabledName[];
+extern const char kAudioContextShuffleEnabledDescription[];
+
extern const char kWebUsbDeviceDetectionName[];
extern const char kWebUsbDeviceDetectionDescription[];
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
@@ -621,6 +621,11 @@ BASE_FEATURE(kWebRtcUseMinMaxVEADimensions,
#endif
);
+const base::Feature kAudioContextAPIEnabled {
+ "AudioContextAPIEnabled", base::FEATURE_ENABLED_BY_DEFAULT};
+const base::Feature kAudioContextShuffleEnabled {
+ "AudioContextShuffleEnabled", base::FEATURE_ENABLED_BY_DEFAULT};
+
// Blink garbage collection.
// Enables compaction of backing stores on Blink's heap.
BASE_FEATURE(kBlinkHeapCompaction,
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h
--- a/third_party/blink/public/common/features.h
+++ b/third_party/blink/public/common/features.h
@@ -247,6 +247,9 @@ BLINK_COMMON_EXPORT bool IsPlzDedicatedWorkerEnabled();
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kWebRtcUseMinMaxVEADimensions);
+BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kAudioContextAPIEnabled);
+BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kAudioContextShuffleEnabled);
+
// Blink garbage collection.
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBlinkHeapCompaction);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBlinkHeapConcurrentMarking);
diff --git a/third_party/blink/renderer/modules/webaudio/analyser_handler.h b/third_party/blink/renderer/modules/webaudio/analyser_handler.h
--- a/third_party/blink/renderer/modules/webaudio/analyser_handler.h
+++ b/third_party/blink/renderer/modules/webaudio/analyser_handler.h
@@ -40,17 +40,17 @@ class AnalyserHandler final : public AudioBasicInspectorHandler {
return analyser_.SmoothingTimeConstant();
}
- void GetFloatFrequencyData(DOMFloat32Array* array, double current_time) {
- analyser_.GetFloatFrequencyData(array, current_time);
+ void GetFloatFrequencyData(DOMFloat32Array* array, double current_time, ExceptionState& exception_state) {
+ analyser_.GetFloatFrequencyData(array, current_time, exception_state);
}
- void GetByteFrequencyData(DOMUint8Array* array, double current_time) {
- analyser_.GetByteFrequencyData(array, current_time);
+ void GetByteFrequencyData(DOMUint8Array* array, double current_time, ExceptionState& exception_state) {
+ analyser_.GetByteFrequencyData(array, current_time, exception_state);
}
- void GetFloatTimeDomainData(DOMFloat32Array* array) {
- analyser_.GetFloatTimeDomainData(array);
+ void GetFloatTimeDomainData(DOMFloat32Array* array, ExceptionState& exception_state) {
+ analyser_.GetFloatTimeDomainData(array, exception_state);
}
- void GetByteTimeDomainData(DOMUint8Array* array) {
- analyser_.GetByteTimeDomainData(array);
+ void GetByteTimeDomainData(DOMUint8Array* array, ExceptionState& exception_state) {
+ analyser_.GetByteTimeDomainData(array, exception_state);
}
// AnalyserNode needs special handling when updating the pull status
diff --git a/third_party/blink/renderer/modules/webaudio/analyser_node.cc b/third_party/blink/renderer/modules/webaudio/analyser_node.cc
--- a/third_party/blink/renderer/modules/webaudio/analyser_node.cc
+++ b/third_party/blink/renderer/modules/webaudio/analyser_node.cc
@@ -117,22 +117,26 @@ double AnalyserNode::smoothingTimeConstant() const {
return GetAnalyserHandler().SmoothingTimeConstant();
}
-void AnalyserNode::getFloatFrequencyData(NotShared<DOMFloat32Array> array) {
+void AnalyserNode::getFloatFrequencyData(NotShared<DOMFloat32Array> array,
+ ExceptionState& exception_state) {
GetAnalyserHandler().GetFloatFrequencyData(array.Get(),
- context()->currentTime());
+ context()->currentTime(), exception_state);
}
-void AnalyserNode::getByteFrequencyData(NotShared<DOMUint8Array> array) {
+void AnalyserNode::getByteFrequencyData(NotShared<DOMUint8Array> array,
+ ExceptionState& exception_state) {
GetAnalyserHandler().GetByteFrequencyData(array.Get(),
- context()->currentTime());
+ context()->currentTime(), exception_state);
}
-void AnalyserNode::getFloatTimeDomainData(NotShared<DOMFloat32Array> array) {
- GetAnalyserHandler().GetFloatTimeDomainData(array.Get());
+void AnalyserNode::getFloatTimeDomainData(NotShared<DOMFloat32Array> array,
+ ExceptionState& exception_state) {
+ GetAnalyserHandler().GetFloatTimeDomainData(array.Get(), exception_state);
}
-void AnalyserNode::getByteTimeDomainData(NotShared<DOMUint8Array> array) {
- GetAnalyserHandler().GetByteTimeDomainData(array.Get());
+void AnalyserNode::getByteTimeDomainData(NotShared<DOMUint8Array> array,
+ ExceptionState& exception_state) {
+ GetAnalyserHandler().GetByteTimeDomainData(array.Get(), exception_state);
}
void AnalyserNode::ReportDidCreate() {
diff --git a/third_party/blink/renderer/modules/webaudio/analyser_node.h b/third_party/blink/renderer/modules/webaudio/analyser_node.h
--- a/third_party/blink/renderer/modules/webaudio/analyser_node.h
+++ b/third_party/blink/renderer/modules/webaudio/analyser_node.h
@@ -57,10 +57,10 @@ class AnalyserNode final : public AudioBasicInspectorNode {
double maxDecibels() const;
void setSmoothingTimeConstant(double, ExceptionState&);
double smoothingTimeConstant() const;
- void getFloatFrequencyData(NotShared<DOMFloat32Array>);
- void getByteFrequencyData(NotShared<DOMUint8Array>);
- void getFloatTimeDomainData(NotShared<DOMFloat32Array>);
- void getByteTimeDomainData(NotShared<DOMUint8Array>);
+ void getFloatFrequencyData(NotShared<DOMFloat32Array>, ExceptionState&);
+ void getByteFrequencyData(NotShared<DOMUint8Array>, ExceptionState&);
+ void getFloatTimeDomainData(NotShared<DOMFloat32Array>, ExceptionState&);
+ void getByteTimeDomainData(NotShared<DOMUint8Array>, ExceptionState&);
// InspectorHelperMixin
void ReportDidCreate() final;
diff --git a/third_party/blink/renderer/modules/webaudio/analyser_node.idl b/third_party/blink/renderer/modules/webaudio/analyser_node.idl
--- a/third_party/blink/renderer/modules/webaudio/analyser_node.idl
+++ b/third_party/blink/renderer/modules/webaudio/analyser_node.idl
@@ -40,10 +40,10 @@
// Copies the current frequency data into the passed array.
// If the array has fewer elements than the frequencyBinCount, the excess elements will be dropped.
- //[HighEntropy, Measure] void getFloatFrequencyData(Float32Array array);
- //[HighEntropy, Measure] void getByteFrequencyData(Uint8Array array);
+ [HighEntropy, Measure, RaisesException] void getFloatFrequencyData(Float32Array array);
+ [HighEntropy, Measure, RaisesException] void getByteFrequencyData(Uint8Array array);
// Real-time waveform data
- //[HighEntropy, Measure] void getFloatTimeDomainData(Float32Array array);
- //[HighEntropy, Measure] void getByteTimeDomainData(Uint8Array array);
+ [HighEntropy, Measure, RaisesException] void getFloatTimeDomainData(Float32Array array);
+ [HighEntropy, Measure, RaisesException] void getByteTimeDomainData(Uint8Array array);
};
diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc
--- a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc
+++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc
@@ -29,6 +29,7 @@
#include "third_party/blink/renderer/modules/webaudio/audio_buffer.h"
#include <memory>
+#include "third_party/blink/public/common/features.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_audio_buffer_options.h"
#include "third_party/blink/renderer/modules/webaudio/base_audio_context.h"
#include "third_party/blink/renderer/platform/audio/audio_bus.h"
@@ -197,8 +198,14 @@ AudioBuffer::AudioBuffer(AudioBus* bus)
}
NotShared<DOMFloat32Array> AudioBuffer::getChannelData(
+ ScriptState* script_state,
unsigned channel_index,
ExceptionState& exception_state) {
+ if (!base::FeatureList::IsEnabled(features::kAudioContextAPIEnabled)) {
+ exception_state.ThrowDOMException(
+ DOMExceptionCode::kNotSupportedError, "getChannelData() is unavailable");
+ return NotShared<DOMFloat32Array>(nullptr);
+ }
if (channel_index >= channels_.size()) {
exception_state.ThrowDOMException(
DOMExceptionCode::kIndexSizeError,
@@ -208,7 +215,16 @@ NotShared<DOMFloat32Array> AudioBuffer::getChannelData(
return NotShared<DOMFloat32Array>(nullptr);
}
- return getChannelData(channel_index);
+ NotShared<DOMFloat32Array> array = getChannelData(channel_index);
+ DOMFloat32Array* destination_array = array.Get();
+ size_t len = destination_array->length();
+ if (len > 0) {
+ float* destination = destination_array->Data();
+ for (unsigned i = 0; i < len; ++i) {
+ destination[i] = BaseAudioContext::ShuffleAudioData(destination[i], i);
+ }
+ }
+ return array;
}
NotShared<DOMFloat32Array> AudioBuffer::getChannelData(unsigned channel_index) {
@@ -219,13 +235,20 @@ NotShared<DOMFloat32Array> AudioBuffer::getChannelData(unsigned channel_index) {
return NotShared<DOMFloat32Array>(channels_[channel_index].Get());
}
-void AudioBuffer::copyFromChannel(NotShared<DOMFloat32Array> destination,
+void AudioBuffer::copyFromChannel(ScriptState* script_state,
+ NotShared<DOMFloat32Array> destination,
int32_t channel_number,
ExceptionState& exception_state) {
- return copyFromChannel(destination, channel_number, 0, exception_state);
+ if (!base::FeatureList::IsEnabled(features::kAudioContextAPIEnabled)) {
+ exception_state.ThrowDOMException(
+ DOMExceptionCode::kNotSupportedError, "copyFromChannel() is unavailable");
+ return;
+ }
+ return copyFromChannel(script_state, destination, channel_number, 0, exception_state);
}
-void AudioBuffer::copyFromChannel(NotShared<DOMFloat32Array> destination,
+void AudioBuffer::copyFromChannel(ScriptState* script_state,
+ NotShared<DOMFloat32Array> destination,
int32_t channel_number,
size_t buffer_offset,
ExceptionState& exception_state) {
@@ -264,6 +287,9 @@ void AudioBuffer::copyFromChannel(NotShared<DOMFloat32Array> destination,
DCHECK_LE(buffer_offset + count, data_length);
memmove(dst, src + buffer_offset, count * sizeof(*src));
+ for (unsigned i = 0; i < count; i++) {
+ dst[i] = BaseAudioContext::ShuffleAudioData(dst[i], i);
+ }
}
void AudioBuffer::copyToChannel(NotShared<DOMFloat32Array> source,
diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.h b/third_party/blink/renderer/modules/webaudio/audio_buffer.h
--- a/third_party/blink/renderer/modules/webaudio/audio_buffer.h
+++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.h
@@ -44,6 +44,7 @@ class AudioBus;
class AudioBufferOptions;
class ExceptionState;
class SharedAudioBuffer;
+class ScriptState;
class MODULES_EXPORT AudioBuffer final : public ScriptWrappable {
DEFINE_WRAPPERTYPEINFO();
@@ -88,13 +89,13 @@ class MODULES_EXPORT AudioBuffer final : public ScriptWrappable {
// Channel data access
unsigned numberOfChannels() const { return channels_.size(); }
- NotShared<DOMFloat32Array> getChannelData(unsigned channel_index,
+ NotShared<DOMFloat32Array> getChannelData(ScriptState*, unsigned channel_index,
ExceptionState&);
NotShared<DOMFloat32Array> getChannelData(unsigned channel_index);
- void copyFromChannel(NotShared<DOMFloat32Array>,
+ void copyFromChannel(ScriptState*, NotShared<DOMFloat32Array>,
int32_t channel_number,
ExceptionState&);
- void copyFromChannel(NotShared<DOMFloat32Array>,
+ void copyFromChannel(ScriptState*, NotShared<DOMFloat32Array>,
int32_t channel_number,
size_t buffer_offset,
ExceptionState&);
diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.idl b/third_party/blink/renderer/modules/webaudio/audio_buffer.idl
--- a/third_party/blink/renderer/modules/webaudio/audio_buffer.idl
+++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.idl
@@ -37,6 +37,12 @@
// Channel access
readonly attribute unsigned long numberOfChannels;
+ [CallWith=ScriptState, HighEntropy=Direct, Measure, RaisesException] Float32Array getChannelData(
+ unsigned long channelIndex);
+ [CallWith=ScriptState, HighEntropy, Measure, RaisesException] void copyFromChannel(
+ Float32Array destination,
+ unsigned long channelNumber,
+ optional unsigned long bufferOffset = 0);
[RaisesException] void copyToChannel(
Float32Array source,
unsigned long channelNumber,
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
@@ -10,6 +10,7 @@
#include "services/metrics/public/cpp/ukm_builders.h"
#include "services/metrics/public/cpp/ukm_recorder.h"
#include "third_party/blink/public/common/browser_interface_broker_proxy.h"
+#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
#include "third_party/blink/public/platform/web_audio_latency_hint.h"
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
@@ -508,6 +509,10 @@ double AudioContext::baseLatency() const {
DCHECK(IsMainThread());
DCHECK(destination());
+ if (!base::FeatureList::IsEnabled(features::kAudioContextShuffleEnabled) &&
+ !base::FeatureList::IsEnabled(features::kAudioContextAPIEnabled)) {
+ return base_latency_;
+ }
// remove precision past two decimal digits
int l = base_latency_ * 100;
return double(l)/100;
diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b/third_party/blink/renderer/modules/webaudio/base_audio_context.cc
--- a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc
+++ b/third_party/blink/renderer/modules/webaudio/base_audio_context.cc
@@ -29,6 +29,7 @@
#include "base/metrics/histogram_functions.h"
#include "build/build_config.h"
+#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/mojom/devtools/console_message.mojom-blink.h"
#include "third_party/blink/public/mojom/frame/lifecycle.mojom-shared.h"
#include "third_party/blink/public/platform/platform.h"
@@ -702,6 +703,17 @@ Document* BaseAudioContext::GetDocument() const {
return window ? window->document() : nullptr;
}
+/*static*/
+float BaseAudioContext::ShuffleAudioData(float data, unsigned index) {
+ if (base::FeatureList::IsEnabled(features::kAudioContextShuffleEnabled)) {
+ float rnd = 1.0f +
+ (base::RandDouble() / 10000.0) *
+ (base::RandInt(0,10) > 5 ? 1.f : -1.f);
+ return data * rnd;
+ }
+ return data;
+}
+
void BaseAudioContext::NotifySourceNodeStartedProcessing(AudioNode* node) {
DCHECK(IsMainThread());
GraphAutoLocker locker(this);
diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.h b/third_party/blink/renderer/modules/webaudio/base_audio_context.h
--- a/third_party/blink/renderer/modules/webaudio/base_audio_context.h
+++ b/third_party/blink/renderer/modules/webaudio/base_audio_context.h
@@ -338,6 +338,8 @@ class MODULES_EXPORT BaseAudioContext
// if the execution context does not exist.
bool CheckExecutionContextAndThrowIfNecessary(ExceptionState&);
+ static float ShuffleAudioData(float data, unsigned index);
+
protected:
enum ContextType { kRealtimeContext, kOfflineContext };
diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc
--- a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc
+++ b/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc
@@ -29,6 +29,9 @@
#include <algorithm>
#include <complex>
+#include "third_party/blink/public/common/features.h"
+#include "third_party/blink/renderer/modules/webaudio/realtime_analyser.h"
+#include "third_party/blink/renderer/modules/webaudio/base_audio_context.h"
#include "third_party/blink/renderer/platform/audio/audio_bus.h"
#include "third_party/blink/renderer/platform/audio/audio_utilities.h"
#include "third_party/blink/renderer/platform/audio/vector_math.h"
@@ -95,10 +98,17 @@ bool RealtimeAnalyser::SetFftSize(uint32_t size) {
}
void RealtimeAnalyser::GetFloatFrequencyData(DOMFloat32Array* destination_array,
- double current_time) {
+ double current_time,
+ ExceptionState& exception_state) {
DCHECK(IsMainThread());
DCHECK(destination_array);
+ if (!base::FeatureList::IsEnabled(features::kAudioContextAPIEnabled)) {
+ exception_state.ThrowDOMException(
+ DOMExceptionCode::kNotSupportedError, "GetFloatFrequencyData() is unavailable");
+ return;
+ }
+
if (current_time <= last_analysis_time_) {
ConvertFloatToDb(destination_array);
return;
@@ -112,10 +122,17 @@ void RealtimeAnalyser::GetFloatFrequencyData(DOMFloat32Array* destination_array,
}
void RealtimeAnalyser::GetByteFrequencyData(DOMUint8Array* destination_array,
- double current_time) {
+ double current_time,
+ ExceptionState& exception_state) {
DCHECK(IsMainThread());
DCHECK(destination_array);
+ if (!base::FeatureList::IsEnabled(features::kAudioContextAPIEnabled)) {
+ exception_state.ThrowDOMException(
+ DOMExceptionCode::kNotSupportedError, "GetByteFrequencyData() is unavailable");
+ return;
+ }
+
if (current_time <= last_analysis_time_) {
// FIXME: Is it worth caching the data so we don't have to do the conversion
// every time? Perhaps not, since we expect many calls in the same
@@ -132,10 +149,17 @@ void RealtimeAnalyser::GetByteFrequencyData(DOMUint8Array* destination_array,
}
void RealtimeAnalyser::GetFloatTimeDomainData(
- DOMFloat32Array* destination_array) {
+ DOMFloat32Array* destination_array,
+ ExceptionState& exception_state) {
DCHECK(IsMainThread());
DCHECK(destination_array);
+ if (!base::FeatureList::IsEnabled(features::kAudioContextAPIEnabled)) {
+ exception_state.ThrowDOMException(
+ DOMExceptionCode::kNotSupportedError, "GetFloatTimeDomainData() is unavailable");
+ return;
+ }
+
unsigned fft_size = FftSize();
size_t len =
std::min(static_cast<size_t>(fft_size), destination_array->length());
@@ -154,15 +178,23 @@ void RealtimeAnalyser::GetFloatTimeDomainData(
input_buffer[(i + write_index - fft_size + kInputBufferSize) %
kInputBufferSize];
+ value = BaseAudioContext::ShuffleAudioData(value, i);
destination[i] = value;
}
}
}
-void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) {
+void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array,
+ ExceptionState& exception_state) {
DCHECK(IsMainThread());
DCHECK(destination_array);
+ if (!base::FeatureList::IsEnabled(features::kAudioContextAPIEnabled)) {
+ exception_state.ThrowDOMException(
+ DOMExceptionCode::kNotSupportedError, "GetByteTimeDomainData() is unavailable");
+ return;
+ }
+
unsigned fft_size = FftSize();
size_t len =
std::min(static_cast<size_t>(fft_size), destination_array->length());
@@ -181,6 +213,8 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) {
input_buffer[(i + write_index - fft_size + kInputBufferSize) %
kInputBufferSize];
+ value = BaseAudioContext::ShuffleAudioData(value, i);
+
// Scale from nominal -1 -> +1 to unsigned byte.
double scaled_value = 128 * (value + 1);
@@ -308,6 +342,8 @@ void RealtimeAnalyser::ConvertToByteData(DOMUint8Array* destination_array) {
double scaled_value =
UCHAR_MAX * (db_mag - min_decibels) * range_scale_factor;
+ scaled_value = BaseAudioContext::ShuffleAudioData(scaled_value, i);
+
// Clip to valid range.
if (scaled_value < 0) {
scaled_value = 0;
@@ -333,6 +369,7 @@ void RealtimeAnalyser::ConvertFloatToDb(DOMFloat32Array* destination_array) {
float linear_value = source[i];
double db_mag = audio_utilities::LinearToDecibels(linear_value);
destination[i] = static_cast<float>(db_mag);
+ destination[i] = BaseAudioContext::ShuffleAudioData(destination[i], i);
}
}
}
diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.h b/third_party/blink/renderer/modules/webaudio/realtime_analyser.h
--- a/third_party/blink/renderer/modules/webaudio/realtime_analyser.h
+++ b/third_party/blink/renderer/modules/webaudio/realtime_analyser.h
@@ -32,6 +32,8 @@
#include "third_party/blink/renderer/core/typed_arrays/dom_typed_array.h"
#include "third_party/blink/renderer/platform/audio/audio_array.h"
#include "third_party/blink/renderer/platform/audio/fft_frame.h"
+#include "third_party/blink/renderer/platform/bindings/exception_messages.h"
+#include "third_party/blink/renderer/platform/bindings/exception_state.h"
namespace blink {
@@ -71,10 +73,10 @@ class RealtimeAnalyser final {
void SetSmoothingTimeConstant(double k) { smoothing_time_constant_ = k; }
double SmoothingTimeConstant() const { return smoothing_time_constant_; }
- void GetFloatFrequencyData(DOMFloat32Array*, double);
- void GetByteFrequencyData(DOMUint8Array*, double);
- void GetFloatTimeDomainData(DOMFloat32Array*);
- void GetByteTimeDomainData(DOMUint8Array*);
+ void GetFloatFrequencyData(DOMFloat32Array*, double, ExceptionState&);
+ void GetByteFrequencyData(DOMUint8Array*, double, ExceptionState&);
+ void GetFloatTimeDomainData(DOMFloat32Array*, ExceptionState&);
+ void GetByteTimeDomainData(DOMUint8Array*, ExceptionState&);
// The audio thread writes input data here.
void WriteInput(AudioBus*, uint32_t frames_to_process);
--
2.25.1
@@ -13,7 +13,7 @@ Subject: Add bookmark import/export actions (win fixup)
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -3632,6 +3632,8 @@ static_library("browser") {
@@ -3630,6 +3630,8 @@ static_library("browser") {
"badging/badge_manager_factory.h",
"banners/app_banner_manager_desktop.cc",
"banners/app_banner_manager_desktop.h",
@@ -25,7 +25,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -9145,11 +9145,13 @@ const FeatureEntry kFeatureEntries[] = {
@@ -9138,11 +9138,13 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(net::features::kIsCleartextPermitted)},
#endif
@@ -9,7 +9,7 @@ Subject: Add flag to configure maximum connecti (win fixup)
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
@@ -1070,10 +1070,12 @@ const FeatureEntry::Choice kForceColorProfileChoices[] = {
@@ -1064,10 +1064,12 @@ const FeatureEntry::Choice kForceColorProfileChoices[] = {
switches::kForceDisplayColorProfile, "hdr10"},
};
@@ -10,14 +10,12 @@ Subject: Add flag to disable IPv6 probes (win fixup)
net/base/features.cc | 4 ++++
net/base/features.h | 3 +++
net/dns/host_resolver_manager.cc | 2 +-
services/network/public/cpp/features.cc | 4 ----
services/network/public/cpp/features.h | 2 --
9 files changed, 11 insertions(+), 16 deletions(-)
7 files changed, 11 insertions(+), 10 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
@@ -6098,7 +6098,7 @@ const FeatureEntry kFeatureEntries[] = {
@@ -6087,7 +6087,7 @@ const FeatureEntry kFeatureEntries[] = {
{"ipv6-probing",
flag_descriptions::kIPv6ProbingName,
flag_descriptions::kIPv6ProbingDescription, kOsAll,
@@ -102,7 +100,7 @@ diff --git a/net/base/features.h b/net/base/features.h
kUseDnsHttpsSvcbEnforceSecureResponse;
+// Enable IPv6 ping probes to RIPE DNS.
+NET_EXPORT extern const base::Feature kIPv6Probing;
+NET_EXPORT BASE_DECLARE_FEATURE(kIPv6Probing);
+
// If we are still waiting for an HTTPS transaction after all the
// other transactions in an insecure DnsTask have completed, we will compute a
@@ -119,31 +117,5 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
// pretend IPv6 connectivy probe is successful when probing is disabled
SetLastIPv6ProbeResult(true);
} else {
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
@@ -42,10 +42,6 @@ BASE_FEATURE(kThrottleDelayable,
"ThrottleDelayable",
base::FEATURE_ENABLED_BY_DEFAULT);
-// Enable IPv6 ping probes to RIPE DNS.
-const base::Feature kIPv6Probing{"IPv6Probing",
- base::FEATURE_ENABLED_BY_DEFAULT};
-
// When kPriorityRequestsDelayableOnSlowConnections is enabled, HTTP
// requests fetched from a SPDY/QUIC/H2 proxies can be delayed by the
// ResourceScheduler just as HTTP/1.1 resources are. However, requests from such
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
@@ -48,8 +48,6 @@ COMPONENT_EXPORT(NETWORK_CPP)
extern const base::FeatureParam<TrustTokenOriginTrialSpec>
kTrustTokenOperationsRequiringOriginTrial;
COMPONENT_EXPORT(NETWORK_CPP)
-extern const base::Feature kIPv6Probing;
-COMPONENT_EXPORT(NETWORK_CPP)
extern const base::FeatureParam<bool> kPlatformProvidedTrustTokenIssuance;
COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kEnableSaveDataHeader);
--
2.25.1
@@ -9,7 +9,7 @@ Subject: Add flag to disable external intent re (win fixup)
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
@@ -3628,9 +3628,11 @@ const FeatureEntry kFeatureEntries[] = {
@@ -3621,9 +3621,11 @@ const FeatureEntry kFeatureEntries[] = {
{"ui-disable-partial-swap", flag_descriptions::kUiPartialSwapName,
flag_descriptions::kUiPartialSwapDescription, kOsAll,
SINGLE_DISABLE_VALUE_TYPE(switches::kUIDisablePartialSwap)},
@@ -1,29 +0,0 @@
From: Your Name <you@example.com>
Date: Mon, 7 Nov 2022 16:10:21 +0000
Subject: Add menu item to view source (add fixup)
---
.../app/appmenu/AppMenuPropertiesDelegateImpl.java | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
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
@@ -1212,8 +1212,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
protected void updateViewSourceMenuItem(
Menu menu, Tab currentTab) {
MenuItem viewSourceMenuItem = menu.findItem(R.id.view_source_id);
- String url = currentTab.getUrl().getSpec();
- viewSourceMenuItem.setVisible(!url.isEmpty() && !url.startsWith("view-source:"));
+ if (currentTab != null) {
+ String url = currentTab.getUrl().getSpec();
+ viewSourceMenuItem.setVisible(!url.isEmpty() && !url.startsWith("view-source:"));
+ } else {
+ // currentTab maybe null with start surface
+ viewSourceMenuItem.setVisible(false);
+ }
}
/**
--
2.25.1
@@ -17,8 +17,7 @@ Subject: Add webRTC site settings (win fixup)
.../views/page_info/page_info_view_factory.cc | 3 +++
.../settings_localized_strings_provider.cc | 7 ++++++
.../ui/webui/settings/site_settings_helper.cc | 1 +
.../core/browser/content_settings_registry.cc | 2 +-
15 files changed, 76 insertions(+), 1 deletion(-)
14 files changed, 75 insertions(+)
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
--- a/chrome/app/settings_strings.grdp
@@ -236,17 +235,5 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
// Add new content settings here if a corresponding Javascript string
// representation for it is not required, for example if the content setting
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
--- a/components/content_settings/core/browser/content_settings_registry.cc
+++ b/components/content_settings/core/browser/content_settings_registry.cc
@@ -709,7 +709,7 @@ void ContentSettingsRegistry::Init() {
ValidSettings(CONTENT_SETTING_ALLOW,
CONTENT_SETTING_BLOCK),
WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
- WebsiteSettingsRegistry::PLATFORM_ANDROID,
+ WebsiteSettingsRegistry::ALL_PLATFORMS,
ContentSettingsInfo::INHERIT_IN_INCOGNITO,
ContentSettingsInfo::PERSISTENT,
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS,
--
2.25.1
@@ -0,0 +1,45 @@
From: Your Name <you@example.com>
Date: Wed, 28 Dec 2022 07:19:58 +0000
Subject: Always open browser controls in new tab
---
.../chrome/browser/tab/TabContextMenuItemDelegate.java | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
@@ -19,6 +19,7 @@ import org.chromium.base.IntentUtils;
import org.chromium.base.PackageManagerUtils;
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.supplier.Supplier;
+import org.chromium.cc.input.BrowserControlsState;
import org.chromium.chrome.browser.DefaultBrowserInfo;
import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.bookmarks.BookmarkModel;
@@ -33,6 +34,7 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
import org.chromium.chrome.browser.offlinepages.RequestCoordinatorBridge;
import org.chromium.chrome.browser.profiles.Profile;
+import org.chromium.chrome.browser.tab.TabBrowserControlsConstraintsHelper;
import org.chromium.chrome.browser.tab.state.CriticalPersistedTabData;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tabmodel.document.TabDelegate;
@@ -202,6 +204,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
@Override
public void onOpenInNewTab(GURL url, Referrer referrer, boolean navigateToTab) {
+ TabBrowserControlsConstraintsHelper.get(mTab).update(BrowserControlsState.SHOWN, true);
RecordUserAction.record("MobileNewTabOpened");
RecordUserAction.record("LinkOpenedInNewTab");
LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec());
@@ -214,6 +217,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
@Override
public void onOpenInNewTabInGroup(GURL url, Referrer referrer) {
+ TabBrowserControlsConstraintsHelper.get(mTab).update(BrowserControlsState.SHOWN, true);
RecordUserAction.record("MobileNewTabOpened");
RecordUserAction.record("LinkOpenedInNewTab");
LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec());
--
2.25.1
@@ -0,0 +1,24 @@
From: Your Name <you@example.com>
Date: Sun, 18 Dec 2022 16:38:48 +0000
Subject: Client hints overrides (add fixup)
---
.../blink/renderer/platform/runtime_enabled_features.json5 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
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
@@ -2716,8 +2716,8 @@
public: true,
},
{
- name: "UserAgentClientHint",
- status: "stable",
+ name: "UserAgentClientHint", // always disabled
+ status: "experimental", // in bromite
base_feature: "UserAgentClientHint",
},
{
--
2.25.1
@@ -1,26 +0,0 @@
From: Your Name <you@example.com>
Date: Thu, 13 Oct 2022 10:33:34 +0000
Subject: Client hints overrides (win fixup)
---
content/common/user_agent.cc | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc
--- a/content/common/user_agent.cc
+++ b/content/common/user_agent.cc
@@ -323,7 +323,11 @@ std::string BuildUserAgentFromProduct(const std::string& product) {
}
std::string BuildModelInfo() {
- return "SAMSUNG SM-G960U";
+ std::string model;
+#if BUILDFLAG(IS_ANDROID)
+ model = "SAMSUNG SM-G960U";
+#endif
+ return model;
}
#if BUILDFLAG(IS_ANDROID)
--
2.25.1
@@ -6,8 +6,10 @@ Subject: Disable fetching of all field trials (add fixup)
chrome/browser/net/system_network_context_manager.cc | 1 -
components/variations/net/BUILD.gn | 2 --
content/browser/loader/url_loader_throttles.cc | 2 --
content/browser/origin_trials/origin_trials_utils.cc | 2 +-
content/public/common/content_features.cc | 4 ++--
content/renderer/variations_render_thread_observer.cc | 9 ---------
4 files changed, 14 deletions(-)
6 files changed, 3 insertions(+), 17 deletions(-)
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
@@ -44,6 +46,32 @@ diff --git a/content/browser/loader/url_loader_throttles.cc b/content/browser/lo
ClientHintsControllerDelegate* client_hint_delegate =
browser_context->GetClientHintsControllerDelegate();
diff --git a/content/browser/origin_trials/origin_trials_utils.cc b/content/browser/origin_trials/origin_trials_utils.cc
--- a/content/browser/origin_trials/origin_trials_utils.cc
+++ b/content/browser/origin_trials/origin_trials_utils.cc
@@ -14,7 +14,7 @@ namespace {
std::vector<std::string> GetHeaderValues(
base::StringPiece header_name,
const net::HttpResponseHeaders* headers) {
- if (!headers) {
+ if ((true)) {
return {};
}
size_t iter = 0;
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
@@ -773,8 +773,8 @@ BASE_FEATURE(kPepperCrossOriginRedirectRestriction,
// things before receiving the response, for instance it can affect the next
// navigation's network request.
BASE_FEATURE(kPersistentOriginTrials,
- "PersistentOriginTrials",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ "PersistentOriginTrials", // always disabled
+ base::FEATURE_DISABLED_BY_DEFAULT); // in bromite
// A browser-side equivalent of the Blink feature "DocumentPictureInPictureAPI".
// This is used for sanity checks to ensure that the feature can't be enabled by
diff --git a/content/renderer/variations_render_thread_observer.cc b/content/renderer/variations_render_thread_observer.cc
--- a/content/renderer/variations_render_thread_observer.cc
+++ b/content/renderer/variations_render_thread_observer.cc
@@ -81,7 +81,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"//chrome/browser/share",
"//chrome/browser/sharing:buildflags",
"//chrome/browser/sharing/proto",
@@ -3771,10 +3764,6 @@ static_library("browser") {
@@ -3769,10 +3762,6 @@ static_library("browser") {
"enterprise/connectors/analysis/content_analysis_dialog.h",
"enterprise/connectors/analysis/content_analysis_downloads_delegate.cc",
"enterprise/connectors/analysis/content_analysis_downloads_delegate.h",
@@ -92,7 +92,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"enterprise/connectors/analysis/request_handler_base.cc",
"enterprise/connectors/analysis/request_handler_base.h",
"enterprise/connectors/common.cc",
@@ -8229,7 +8218,6 @@ static_library("test_support") {
@@ -8227,7 +8216,6 @@ static_library("test_support") {
public_deps = [
":browser",
"//chrome/browser/profiles:profile",
@@ -1038,16 +1038,16 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b
// Retrieves and formats the saved passwords domains from signon_realms.
std::vector<std::string> GetMatchingDomains(
const std::vector<password_manager::MatchingReusedCredential>&
@@ -982,7 +982,7 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry(
@@ -981,7 +981,7 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry(
bool password_field_exists,
uint64_t reused_password_hash,
const std::string& domain) {
-#if !BUILDFLAG(IS_ANDROID)
+#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_WIN)
// If the webpage is not an extension page, do nothing.
if (!GURL(domain).SchemeIs(kExtensionScheme)) {
return;
@@ -1022,7 +1022,18 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry(
@@ -1021,7 +1021,18 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry(
void ChromePasswordManagerClient::LogPasswordReuseDetectedEvent() {
}
@@ -1,22 +0,0 @@
From: Your Name <you@example.com>
Date: Fri, 23 Sep 2022 11:24:45 +0000
Subject: Enable ThirdPartyStoragePartitioning flag
---
net/base/features.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/base/features.cc b/net/base/features.cc
--- a/net/base/features.cc
+++ b/net/base/features.cc
@@ -366,7 +366,7 @@ const base::FeatureParam<bool> kStorageAccessAPIAutoDenyOutsideFPS{
// by the top level site to reduce fingerprinting.
BASE_FEATURE(kThirdPartyStoragePartitioning,
"ThirdPartyStoragePartitioning",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kAlpsParsing, "AlpsParsing", base::FEATURE_ENABLED_BY_DEFAULT);
--
2.25.1
@@ -0,0 +1,22 @@
From: Your Name <you@example.com>
Date: Wed, 21 Dec 2022 13:44:39 +0000
Subject: Enable kPostMessageDifferentPartitionSameOriginBlocked
---
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
@@ -1650,7 +1650,7 @@ const base::FeatureParam<int> kDocumentMaxEventNodePathCachedEntries{
BASE_FEATURE(kPostMessageDifferentPartitionSameOriginBlocked,
"PostMessageDifferentPartitionSameOriginBlocked",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ base::FEATURE_ENABLED_BY_DEFAULT);
} // namespace features
} // namespace blink
--
2.25.1
@@ -20,7 +20,7 @@ Subject: Experimental user scripts support (win fixup)
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -3536,11 +3536,13 @@ static_library("browser") {
@@ -3534,11 +3534,13 @@ static_library("browser") {
]
deps += [ "//chrome/android/modules/dev_ui/provider:native" ]
}
@@ -42,7 +42,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -7773,9 +7773,11 @@ const FeatureEntry kFeatureEntries[] = {
@@ -7762,9 +7762,11 @@ const FeatureEntry kFeatureEntries[] = {
chromeos::features::kClipboardHistoryNudgeSessionReset)},
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
@@ -0,0 +1,71 @@
From: Your Name <you@example.com>
Date: Wed, 28 Dec 2022 07:32:41 +0000
Subject: Eyeo Adblock Remove (fixup)
---
third_party/blink/renderer/core/css/style_engine.cc | 8 ++++++++
third_party/blink/renderer/core/css/style_engine.h | 1 +
.../blink/renderer/core/exported/web_document.cc | 13 ++++++++++---
3 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/third_party/blink/renderer/core/css/style_engine.cc b/third_party/blink/renderer/core/css/style_engine.cc
--- a/third_party/blink/renderer/core/css/style_engine.cc
+++ b/third_party/blink/renderer/core/css/style_engine.cc
@@ -503,6 +503,14 @@ void StyleEngine::UpdateActiveStyleSheetsInShadow(
}
}
+bool StyleEngine::ActiveUserStyleSheetsContainsKey(const StyleSheetKey& injection_key) {
+ for (auto& sheet : injected_user_style_sheets_)
+ if (sheet.first == injection_key)
+ return true;
+
+ return false;
+}
+
void StyleEngine::UpdateActiveUserStyleSheets() {
DCHECK(user_style_dirty_);
diff --git a/third_party/blink/renderer/core/css/style_engine.h b/third_party/blink/renderer/core/css/style_engine.h
--- a/third_party/blink/renderer/core/css/style_engine.h
+++ b/third_party/blink/renderer/core/css/style_engine.h
@@ -236,6 +236,7 @@ class CORE_EXPORT StyleEngine final : public GarbageCollected<StyleEngine>,
}
void ViewportStyleSettingChanged();
+ bool ActiveUserStyleSheetsContainsKey(const StyleSheetKey& injection_key);
void InjectSheet(const StyleSheetKey&,
StyleSheetContents*,
WebCssOrigin = WebCssOrigin::kAuthor);
diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_party/blink/renderer/core/exported/web_document.cc
--- a/third_party/blink/renderer/core/exported/web_document.cc
+++ b/third_party/blink/renderer/core/exported/web_document.cc
@@ -272,6 +272,16 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet(
Document* document = Unwrap<Document>();
DCHECK(document);
+ const WebStyleSheetKey& injection_key =
+ key && !key->IsNull() ? *key : WebString::FromUTF8("abp");
+ DCHECK(!injection_key.IsEmpty());
+
+ // Check if the css in already present
+ if (document->GetStyleEngine().ActiveUserStyleSheetsContainsKey(injection_key)) {
+ LOG(WARNING) << "[eyeo] Skip add css as already in collection";
+ return injection_key;
+ }
+
auto* parsed_sheet = MakeGarbageCollected<StyleSheetContents>(
MakeGarbageCollected<CSSParserContext>(*document));
parsed_sheet->ParseString(source_code);
@@ -293,9 +303,6 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet(
{SchedulingPolicy::DisableBackForwardCache()});
}
- const WebStyleSheetKey& injection_key =
- key && !key->IsNull() ? *key : GenerateStyleSheetKey();
- DCHECK(!injection_key.IsEmpty());
document->GetStyleEngine().InjectSheet(injection_key, parsed_sheet, origin);
return injection_key;
}
--
2.25.1
+3 -3
View File
@@ -1111,7 +1111,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//components/autofill/android:autofill_java",
"//components/autofill/android:prefeditor_autofill_java",
"//components/autofill_assistant/android:public_dependencies_java",
@@ -1603,6 +1609,7 @@ if (current_toolchain == default_toolchain) {
@@ -1599,6 +1605,7 @@ if (current_toolchain == default_toolchain) {
"//chrome/test/android:chrome_java_integration_test_support",
"//chrome/test/android:chrome_java_test_pagecontroller",
"//chrome/test/android/test_trusted_web_activity:test_trusted_web_activity_java",
@@ -1119,7 +1119,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//components/autofill/android:autofill_java",
"//components/autofill/android:prefeditor_autofill_java",
"//components/autofill_assistant/android:public_dependencies_java",
@@ -4161,6 +4168,7 @@ group("jni_headers") {
@@ -4157,6 +4164,7 @@ group("jni_headers") {
"//chrome/browser/ui/messages/android:jni_headers",
"//chrome/browser/util:jni_headers",
"//chrome/browser/webauthn/android:jni_headers",
@@ -1293,7 +1293,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"android/android_theme_resources.h",
"android/autocomplete/tab_matcher_android.cc",
"android/autocomplete/tab_matcher_android.h",
@@ -3293,6 +3326,7 @@ static_library("browser") {
@@ -3291,6 +3324,7 @@ static_library("browser") {
"webauthn/android/conditional_ui_delegate_android.cc",
"webauthn/android/conditional_ui_delegate_android.h",
]
@@ -0,0 +1,67 @@
From: Your Name <you@example.com>
Date: Sun, 18 Dec 2022 16:37:43 +0000
Subject: Guard for user-agent reduction (add fixup)
---
chrome/browser/chrome_content_browser_client.cc | 2 +-
content/common/user_agent.cc | 13 +++++--------
.../platform/runtime_enabled_features.json5 | 3 ++-
3 files changed, 8 insertions(+), 10 deletions(-)
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
@@ -1475,7 +1475,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs(
registry->RegisterIntegerPref(
prefs::kUserAgentReduction,
static_cast<int>(
- embedder_support::UserAgentReductionEnterprisePolicyState::kDefault));
+ embedder_support::UserAgentReductionEnterprisePolicyState::kForceEnabled));
registry->RegisterBooleanPref(prefs::kOriginAgentClusterDefaultEnabled, true);
registry->RegisterIntegerPref(
prefs::kForceMajorVersionToMinorPositionInUserAgent,
diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc
--- a/content/common/user_agent.cc
+++ b/content/common/user_agent.cc
@@ -323,14 +323,7 @@ std::string BuildUserAgentFromProduct(const std::string& product) {
}
std::string BuildModelInfo() {
- std::string model;
-#if BUILDFLAG(IS_ANDROID)
- // Only send the model information if on the release build of Android,
- // matching user agent behaviour.
- if (base::SysInfo::GetAndroidBuildCodename() == "REL")
- model = base::SysInfo::HardwareModelName();
-#endif
- return model;
+ return std::string();
}
#if BUILDFLAG(IS_ANDROID)
@@ -351,6 +344,10 @@ std::string GetAndroidOSInfo(
IncludeAndroidModel include_android_model) {
std::string android_info_str;
+ // Do not send information about the device.
+ include_android_model = IncludeAndroidModel::Exclude;
+ include_android_build_number = IncludeAndroidBuildNumber::Exclude;
+
// Send information about the device.
bool semicolon_inserted = false;
if (include_android_model == IncludeAndroidModel::Include) {
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
@@ -2721,7 +2721,8 @@
base_feature: "UserAgentClientHint",
},
{
- name: "UserAgentReduction",
+ name: "UserAgentReduction", // always enabled
+ status: "stable", // in bromite
origin_trial_feature_name: "UserAgentReduction",
origin_trial_allows_third_party: true,
// iOS not included as it should not send a reduced User-Agent string.
--
2.25.1
@@ -0,0 +1,146 @@
From: Your Name <you@example.com>
Date: Tue, 27 Dec 2022 16:58:28 +0000
Subject: Move navigation bar to bottom (add fixup)
---
.../TabListContainerViewBinder.java | 4 --
.../tab_management/TabListCoordinator.java | 69 ++++++++++++++++++-
.../tab_management/TabSwitcherMediator.java | 3 +
3 files changed, 69 insertions(+), 7 deletions(-)
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java
@@ -21,8 +21,6 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import org.chromium.components.browser_ui.styles.ChromeColors;
import org.chromium.ui.modelutil.PropertyKey;
import org.chromium.ui.modelutil.PropertyModel;
-import org.chromium.chrome.browser.flags.CachedFeatureFlags;
-import org.chromium.chrome.browser.flags.ChromeFeatureList;
/**
* ViewBinder for TabListRecyclerView.
@@ -59,8 +57,6 @@ class TabListContainerViewBinder {
params.topMargin = newTopMargin;
view.requestLayout();
} else if (BOTTOM_CONTROLS_HEIGHT == propertyKey) {
- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM))
- return;
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) view.getLayoutParams();
params.bottomMargin = model.get(BOTTOM_CONTROLS_HEIGHT);
view.requestLayout();
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java
@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.tasks.tab_management;
import static org.chromium.chrome.browser.tasks.tab_management.TabListModel.CardProperties.CARD_TYPE;
import android.content.Context;
+import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@@ -98,6 +99,62 @@ public class TabListCoordinator
private boolean mLayoutListenerRegistered;
private @Nullable TabStripSnapshotter mTabStripSnapshotter;
+ public class GridLayoutManagerDockBottom extends GridLayoutManager {
+ Context mContext;
+
+ TabListRecyclerView mRecyclerView;
+
+ int mTopPadding = -1;
+ int mLastPosition = -1;
+ boolean mIsFirstLayout = true;
+
+ public GridLayoutManagerDockBottom(Context context, int spanCount) {
+ super(context, spanCount);
+ mContext = context;
+ }
+
+ public void setTabListRecyclerView(TabListRecyclerView recyclerView) {
+ mRecyclerView = recyclerView;
+ }
+
+ public void ResetTopPosition() {
+ mIsFirstLayout = true;
+ }
+
+ @Override
+ public int getPaddingTop() {
+ if (mContext.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
+ return 0;
+ if (mTopPadding == -1) return super.getPaddingTop();
+ return mTopPadding;
+ }
+
+ @Override
+ public void scrollToPositionWithOffset(int position, int offset) {
+ mLastPosition = position;
+ super.scrollToPositionWithOffset(position, -1);
+ }
+
+ @Override
+ public void onLayoutCompleted(RecyclerView.State state) {
+ super.onLayoutCompleted(state);
+
+ View lastView = findViewByPosition(findFirstVisibleItemPosition());
+ if (lastView != null) {
+ mTopPadding = mRecyclerView.getHeight() - lastView.getHeight();
+ if (mIsFirstLayout) {
+ mIsFirstLayout = false;
+ scrollToPositionWithOffset(mLastPosition, 0);
+ }
+ }
+
+ if (mLastPosition != -1 && mLastPosition >= state.getItemCount()) {
+ ResetTopPosition();
+ scrollToPositionWithOffset(state.getItemCount()-getSpanCount(), 0);
+ }
+ }
+ }
+
/**
* Construct a coordinator for UI that shows a list of tabs.
* @param mode Modes of showing the list of tabs. Can be used in GRID or STRIP.
@@ -258,9 +315,12 @@ public class TabListCoordinator
if (mMode == TabListMode.GRID) {
GridLayoutManager gridLayoutManager =
new GridLayoutManager(context, GRID_LAYOUT_SPAN_COUNT_COMPACT);
- // invert the order if the toolbar is at bottom
- if (titleProvider != null && CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM))
- gridLayoutManager.setReverseLayout(true);
+ if (titleProvider != null && CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) {
+ gridLayoutManager =
+ new GridLayoutManagerDockBottom(context, GRID_LAYOUT_SPAN_COUNT_COMPACT);
+ ((GridLayoutManagerDockBottom)gridLayoutManager)
+ .setTabListRecyclerView(mRecyclerView);
+ }
mRecyclerView.setLayoutManager(gridLayoutManager);
mMediator.registerOrientationListener(gridLayoutManager);
mMediator.updateSpanCount(gridLayoutManager,
@@ -440,6 +500,9 @@ public class TabListCoordinator
}
registerLayoutChangeListener();
mRecyclerView.prepareTabSwitcherView();
+ GridLayoutManager glm = (GridLayoutManager) mRecyclerView.getLayoutManager();
+ if (glm instanceof GridLayoutManagerDockBottom)
+ ((GridLayoutManagerDockBottom)glm).ResetTopPosition();
mMediator.prepareTabSwitcherView();
mMediator.registerOnScrolledListener(mRecyclerView);
}
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java
@@ -760,6 +760,9 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView
private void setInitialScrollIndexOffset() {
int offset = mMode == TabListMode.CAROUSEL ? INITIAL_SCROLL_INDEX_OFFSET_CAROUSEL
: INITIAL_SCROLL_INDEX_OFFSET_GTS;
+ if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) {
+ offset = 0;
+ }
int initialPosition = Math.max(
mTabModelSelector.getTabModelFilterProvider().getCurrentTabModelFilter().index()
- offset,
--
2.25.1
@@ -0,0 +1,522 @@
From: Your Name <you@example.com>
Date: Wed, 28 Dec 2022 12:22:07 +0000
Subject: Remove HTTP referrals in cross origin navi (fixup)
---
chrome/android/chrome_java_resources.gni | 2 +
chrome/android/chrome_java_sources.gni | 2 +
...button_group_referer_policy_preference.xml | 47 ++++++++++
.../java/res/xml/privacy_preferences.xml | 8 +-
.../res/xml/referer_policy_preferences.xml | 31 +++++++
.../privacy/settings/PrivacySettings.java | 12 ++-
.../RadioButtonGroupRefererSettings.java | 89 +++++++++++++++++++
.../settings/RefererSettingsFragment.java | 79 ++++++++++++++++
.../net/system_network_context_manager.cc | 4 +
chrome/browser/renderer_preferences_util.cc | 1 +
.../strings/android_chrome_strings.grd | 25 +++++-
chrome/browser/ui/prefs/pref_watcher.cc | 2 +
chrome/browser/ui/prefs/prefs_tab_helper.cc | 2 +
chrome/common/pref_names.cc | 3 +
chrome/common/pref_names.h | 1 +
.../renderer_host/navigation_request.cc | 5 +-
.../renderer_preferences.h | 1 +
17 files changed, 299 insertions(+), 15 deletions(-)
create mode 100644 chrome/android/java/res/layout/radio_button_group_referer_policy_preference.xml
create mode 100644 chrome/android/java/res/xml/referer_policy_preferences.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/RadioButtonGroupRefererSettings.java
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/RefererSettingsFragment.java
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
@@ -658,6 +658,8 @@ chrome_java_resources = [
"java/res/xml/phone_as_a_security_key_accessory_filter.xml",
"java/res/xml/incognito_preferences.xml",
"java/res/xml/privacy_preferences.xml",
+ "java/res/xml/referer_policy_preferences.xml",
+ "java/res/layout/radio_button_group_referer_policy_preference.xml",
"java/res/xml/search_widget_info.xml",
"java/res/xml/tracing_preferences.xml",
"java/res/xml/useragent_preferences.xml",
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -923,6 +923,8 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java",
"java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java",
"java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java",
+ "java/src/org/chromium/chrome/browser/privacy/settings/RefererSettingsFragment.java",
+ "java/src/org/chromium/chrome/browser/privacy/settings/RadioButtonGroupRefererSettings.java",
"java/src/org/chromium/chrome/browser/provider/BaseColumns.java",
"java/src/org/chromium/chrome/browser/provider/BookmarkColumns.java",
"java/src/org/chromium/chrome/browser/provider/ChromeBrowserProviderImpl.java",
diff --git a/chrome/android/java/res/layout/radio_button_group_referer_policy_preference.xml b/chrome/android/java/res/layout/radio_button_group_referer_policy_preference.xml
new file mode 100644
--- /dev/null
+++ b/chrome/android/java/res/layout/radio_button_group_referer_policy_preference.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ This file is part of Bromite.
+
+ Bromite is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Bromite is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
+-->
+
+<org.chromium.components.browser_ui.widget.RadioButtonWithDescriptionLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:focusable="false">
+
+ <org.chromium.components.browser_ui.widget.RadioButtonWithDescription
+ android:id="@+id/no_cross_origin_top_frame_policy"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:primaryText="@string/no_cross_origin_top_frame_policy_title"
+ app:descriptionText="@string/no_cross_origin_top_frame_policy_summary" />
+
+ <org.chromium.components.browser_ui.widget.RadioButtonWithDescription
+ android:id="@+id/standard_referer_policy"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:primaryText="@string/standard_referer_policy_title"
+ app:descriptionText="@string/standard_referer_policy_summary" />
+
+ <org.chromium.components.browser_ui.widget.RadioButtonWithDescription
+ android:id="@+id/disable_referer_policy"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:primaryText="@string/disable_referer_policy_title"
+ app:descriptionText="@string/disable_referer_policy_summary" />
+
+</org.chromium.components.browser_ui.widget.RadioButtonWithDescriptionLayout>
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
@@ -60,10 +60,10 @@ found in the LICENSE file.
android:title="@string/close_tabs_on_exit_title"
android:summary="@string/close_tabs_on_exit_summary"
android:defaultValue="false" />
- <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
- android:key="enable_referrers"
- android:title="@string/enable_referrers_title"
- android:defaultValue="false" />
+ <Preference
+ android:key="referers_policy"
+ android:title="@string/referers_policy_title"
+ android:fragment="org.chromium.chrome.browser.privacy.settings.RefererSettingsFragment"/>
<Preference
android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings"
android:key="do_not_track"
diff --git a/chrome/android/java/res/xml/referer_policy_preferences.xml b/chrome/android/java/res/xml/referer_policy_preferences.xml
new file mode 100644
--- /dev/null
+++ b/chrome/android/java/res/xml/referer_policy_preferences.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ This file is part of Bromite.
+
+ Bromite is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Bromite is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+
+ <org.chromium.components.browser_ui.settings.TextMessagePreference
+ android:key="summary"
+ android:summary="@string/referers_policy_summary"
+ app:allowDividerBelow="false" />
+ <org.chromium.chrome.browser.privacy.settings.RadioButtonGroupRefererSettings
+ android:key="referer_page_radio_button_group"
+ android:selectable="false"
+ app:allowDividerAbove="false"
+ app:allowDividerBelow="false" />
+</PreferenceScreen>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.incognito.reauth.IncognitoReauthSettingSwitchPreference;
import org.chromium.chrome.browser.preferences.Pref;
import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsFragment;
+import org.chromium.chrome.browser.privacy.settings.RefererSettingsFragment;
import org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings;
import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxBridge;
import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxReferrer;
@@ -61,7 +62,7 @@ public class PrivacySettings
private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode";
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_ENABLE_REFERRERS = "enable_referrers";
+ private static final String PREF_REFERER_POLICY = "referers_policy";
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
private static final String PREF_PRIVACY_GUIDE = "privacy_guide";
private static final String PREF_INCOGNITO_LOCK = "incognito_lock";
@@ -175,9 +176,6 @@ public class PrivacySettings
} else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
UserPrefs.get(Profile.getLastUsedRegularProfile())
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
- } else if (PREF_ENABLE_REFERRERS.equals(key)) {
- UserPrefs.get(Profile.getLastUsedRegularProfile())
- .setBoolean(Pref.ENABLE_REFERRERS, (boolean) newValue);
} else if (PREF_HTTPS_FIRST_MODE.equals(key)) {
UserPrefs.get(Profile.getLastUsedRegularProfile())
.setBoolean(Pref.HTTPS_ONLY_MODE_ENABLED, (boolean) newValue);
@@ -231,9 +229,9 @@ public class PrivacySettings
: R.string.text_off);
}
- ChromeSwitchPreference enableReferrerPref = findPreference(PREF_ENABLE_REFERRERS);
- enableReferrerPref.setChecked(prefService.getBoolean(Pref.ENABLE_REFERRERS));
- enableReferrerPref.setOnPreferenceChangeListener(this);
+ Preference refererPolicyPref = findPreference(PREF_REFERER_POLICY);
+ refererPolicyPref.setSummary(
+ RefererSettingsFragment.getRefererSummaryString(getContext()));
Preference preloadPagesPreference = findPreference(PREF_PRELOAD_PAGES);
if (preloadPagesPreference != null) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/RadioButtonGroupRefererSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/RadioButtonGroupRefererSettings.java
new file mode 100644
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/RadioButtonGroupRefererSettings.java
@@ -0,0 +1,89 @@
+/*
+ This file is part of Bromite.
+
+ Bromite is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Bromite is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
+*/
+
+package org.chromium.chrome.browser.privacy.settings;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.RadioGroup;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
+import org.chromium.chrome.R;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
+import org.chromium.components.browser_ui.widget.RadioButtonWithDescription;
+import org.chromium.components.browser_ui.widget.RadioButtonWithDescriptionLayout;
+
+public class RadioButtonGroupRefererSettings extends Preference
+ implements RadioGroup.OnCheckedChangeListener {
+
+ private RadioButtonWithDescription mStandardReferer;
+ private RadioButtonWithDescription mNoCrossOriginReferer;
+ private RadioButtonWithDescription mNoReferer;
+ private int mRefererPolicy;
+
+ public RadioButtonGroupRefererSettings(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ setLayoutResource(R.layout.radio_button_group_referer_policy_preference);
+ }
+
+ public void init(boolean enableReferer, int refererPolicy) {
+ if (!enableReferer)
+ mRefererPolicy = 0;
+ else
+ mRefererPolicy = refererPolicy;
+ }
+
+ @Override
+ public void onCheckedChanged(RadioGroup group, int checkedId) {
+ if (checkedId == mStandardReferer.getId()) {
+ mRefererPolicy = 1;
+ } else if (checkedId == mNoCrossOriginReferer.getId()) {
+ mRefererPolicy = 2;
+ } else if (checkedId == mNoReferer.getId()) {
+ mRefererPolicy = 0;
+ } else {
+ assert false : "Should not be reached.";
+ }
+ callChangeListener(mRefererPolicy);
+ }
+
+ @Override
+ public void onBindViewHolder(PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+
+ mStandardReferer = (RadioButtonWithDescription) holder.findViewById(
+ R.id.standard_referer_policy);
+ mNoCrossOriginReferer = (RadioButtonWithDescription) holder.findViewById(
+ R.id.no_cross_origin_top_frame_policy);
+ mNoReferer = (RadioButtonWithDescription) holder.findViewById(R.id.disable_referer_policy);
+
+ RadioButtonWithDescriptionLayout groupLayout =
+ (RadioButtonWithDescriptionLayout) mNoReferer.getRootView();
+ setCheckedState(mRefererPolicy);
+ groupLayout.setOnCheckedChangeListener(this);
+ }
+
+ public void setCheckedState(int checkedState) {
+ mRefererPolicy = checkedState;
+ mStandardReferer.setChecked(checkedState == 1);
+ mNoCrossOriginReferer.setChecked(checkedState == 2);
+ mNoReferer.setChecked(checkedState == 0);
+ }
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/RefererSettingsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/RefererSettingsFragment.java
new file mode 100644
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/RefererSettingsFragment.java
@@ -0,0 +1,79 @@
+/*
+ This file is part of Bromite.
+
+ Bromite is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Bromite is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
+*/
+
+package org.chromium.chrome.browser.privacy.settings;
+
+import android.os.Bundle;
+import android.content.Context;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceFragmentCompat;
+
+import org.chromium.chrome.R;
+import org.chromium.chrome.browser.preferences.Pref;
+import org.chromium.chrome.browser.profiles.Profile;
+import org.chromium.components.browser_ui.settings.TextMessagePreference;
+import org.chromium.components.browser_ui.settings.SettingsUtils;
+import org.chromium.components.prefs.PrefService;
+import org.chromium.components.user_prefs.UserPrefs;
+
+public class RefererSettingsFragment
+ extends PreferenceFragmentCompat
+ implements Preference.OnPreferenceChangeListener {
+
+ static final String PREF_REFERER_POLICY = "referer_page_radio_button_group";
+
+ private RadioButtonGroupRefererSettings mRefererPreference;
+ private final PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
+
+ public static String getRefererSummaryString(Context context) {
+ int policy = UserPrefs.get(Profile.getLastUsedRegularProfile())
+ .getInteger(Pref.REFERRERS_POLICY);
+
+ if (policy == 0) {
+ return context.getString(R.string.disable_referer_policy_title);
+ }
+ if (policy == 1) {
+ return context.getString(R.string.standard_referer_policy_title);
+ }
+ if (policy == 2) {
+ return context.getString(R.string.no_cross_origin_top_frame_policy_title);
+ }
+ assert false : "Should not be reached";
+ return "";
+ }
+
+ @Override
+ public void onCreatePreferences(Bundle bundle, String s) {
+ SettingsUtils.addPreferencesFromResource(this, R.xml.referer_policy_preferences);
+ getActivity().setTitle(R.string.referers_policy_title);
+
+ mRefererPreference = findPreference(PREF_REFERER_POLICY);
+ mRefererPreference.init(prefService.getBoolean(Pref.ENABLE_REFERRERS),
+ prefService.getInteger(Pref.REFERRERS_POLICY));
+ mRefererPreference.setOnPreferenceChangeListener(this);
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ UserPrefs.get(Profile.getLastUsedRegularProfile())
+ .setInteger(Pref.REFERRERS_POLICY, (int)newValue);
+ UserPrefs.get(Profile.getLastUsedRegularProfile())
+ .setBoolean(Pref.ENABLE_REFERRERS, (int)newValue != 0);
+ return true;
+ }
+}
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
@@ -479,6 +479,9 @@ SystemNetworkContextManager::SystemNetworkContextManager(
base::BindRepeating(&SystemNetworkContextManager::UpdateReferrersEnabled,
base::Unretained(this)));
+ local_state_->SetDefaultPrefValue(
+ prefs::kReferrersPolicy, base::Value(2));
+
pref_change_registrar_.Add(
prefs::kExplicitlyAllowedNetworkPorts,
base::BindRepeating(
@@ -545,6 +548,7 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) {
// the system NetworkContext, and the per-profile pref values are used for
// the profile NetworkContexts.
registry->RegisterBooleanPref(prefs::kEnableReferrers, true);
+ registry->RegisterIntegerPref(prefs::kReferrersPolicy, 2);
registry->RegisterBooleanPref(prefs::kQuickCheckEnabled, true);
diff --git a/chrome/browser/renderer_preferences_util.cc b/chrome/browser/renderer_preferences_util.cc
--- a/chrome/browser/renderer_preferences_util.cc
+++ b/chrome/browser/renderer_preferences_util.cc
@@ -115,6 +115,7 @@ void UpdateFromSystemSettings(blink::RendererPreferences* prefs,
prefs->accept_languages = GetLanguageListForProfile(
profile, pref_service->GetString(language::prefs::kAcceptLanguages));
prefs->enable_referrers = pref_service->GetBoolean(prefs::kEnableReferrers);
+ prefs->referrers_policy = pref_service->GetInteger(prefs::kReferrersPolicy);
prefs->enable_do_not_track =
pref_service->GetBoolean(prefs::kEnableDoNotTrack);
prefs->enable_encrypted_media =
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
@@ -879,8 +879,29 @@ CHAR_LIMIT guidelines:
For example, some websites may respond to this request by showing you ads that arent based on other websites youve visited. Many websites will still collect and use your browsing data — for example to improve security, to provide content, ads and recommendations, and to generate reporting statistics.
</message>
- <message name="IDS_ENABLE_REFERRERS_TITLE" desc="Title for 'Enable referrers' preference">
- Enable HTTP Referer header
+ <message name="IDS_REFERERS_POLICY_TITLE" desc="Title for 'Enable referers' preference">
+ HTTP Referer header policy
+ </message>
+ <message name="IDS_REFERERS_POLICY_SUMMARY" desc="Summary for a section in Settings that controls referer policy.">
+ Allow to change default HTTP Referer header policy
+ </message>
+ <message name="IDS_STANDARD_REFERER_POLICY_TITLE" desc="Title for 'standard referer' preference">
+ Standard HTTP Referrer header policy
+ </message>
+ <message name="IDS_STANDARD_REFERER_POLICY_SUMMARY" desc="Summary for 'standard referer' preference">
+ Send only origin if the request is cross-origin
+ </message>
+ <message name="IDS_NO_CROSS_ORIGIN_TOP_FRAME_POLICY_TITLE" desc="Title for 'standard referer' preference">
+ Disable if cross-origin and user begins navigation
+ </message>
+ <message name="IDS_NO_CROSS_ORIGIN_TOP_FRAME_POLICY_SUMMARY" desc="Summary for 'no cross origin referer' preference">
+ Remove referrer if the navigation is cross-origin and occurs in the top frame otherwise send only origin if the request is cross-origin
+ </message>
+ <message name="IDS_DISABLE_REFERER_POLICY_TITLE" desc="Title for 'disable referer' preference">
+ Disable all referrers
+ </message>
+ <message name="IDS_DISABLE_REFERER_POLICY_SUMMARY" desc="Summary for 'disable referer' preference">
+ Disable all referrers, may break navigation
</message>
<message name="IDS_CAN_MAKE_PAYMENT_TITLE" desc="Title for preference to allow websites to know whether you have payment methods available through PaymentRequest.CanMakePayment interface">
Access payment methods
diff --git a/chrome/browser/ui/prefs/pref_watcher.cc b/chrome/browser/ui/prefs/pref_watcher.cc
--- a/chrome/browser/ui/prefs/pref_watcher.cc
+++ b/chrome/browser/ui/prefs/pref_watcher.cc
@@ -97,6 +97,8 @@ PrefWatcher::PrefWatcher(Profile* profile) : profile_(profile) {
renderer_callback);
profile_pref_change_registrar_.Add(prefs::kEnableReferrers,
renderer_callback);
+ profile_pref_change_registrar_.Add(prefs::kReferrersPolicy,
+ renderer_callback);
profile_pref_change_registrar_.Add(prefs::kEnableEncryptedMedia,
renderer_callback);
profile_pref_change_registrar_.Add(prefs::kWebRTCIPHandlingPolicy,
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,6 +360,8 @@ void PrefsTabHelper::RegisterProfilePrefs(
registry->RegisterBooleanPref(
prefs::kEnableReferrers,
!base::FeatureList::IsEnabled(features::kNoReferrers));
+ registry->RegisterIntegerPref(
+ prefs::kReferrersPolicy, 2); // NoCrossOriginReferer
registry->RegisterBooleanPref(prefs::kEnableEncryptedMedia, true);
registry->RegisterBooleanPref(prefs::kScrollToTextFragmentEnabled, false);
#if BUILDFLAG(IS_ANDROID)
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
@@ -1432,6 +1432,9 @@ const char kEnableHyperlinkAuditing[] = "enable_a_ping";
// Whether to enable sending referrers.
const char kEnableReferrers[] = "enable_referrers";
+// Set referrer policy.
+const char kReferrersPolicy[] = "referrers_policy";
+
// Whether to send the DNT header.
const char kEnableDoNotTrack[] = "enable_do_not_track";
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
@@ -442,6 +442,7 @@ extern const char kPinnedTabs[];
extern const char kDisable3DAPIs[];
extern const char kEnableHyperlinkAuditing[];
extern const char kEnableReferrers[];
+extern const char kReferrersPolicy[];
extern const char kEnableDoNotTrack[];
extern const char kEnableEncryptedMedia[];
diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc
--- a/content/browser/renderer_host/navigation_request.cc
+++ b/content/browser/renderer_host/navigation_request.cc
@@ -431,8 +431,9 @@ void AddAdditionalRequestHeaders(
blink::mojom::Referrer(GURL(), network::mojom::ReferrerPolicy::kNever);
}
- if (!url::IsSameOriginWith(referrer->url.GetAsReferrer(), url) &&
- frame_tree_node->IsOutermostMainFrame()) {
+ if (render_prefs.enable_referrers && render_prefs.referrers_policy == 2 &&
+ !url::IsSameOriginWith(referrer->url.GetAsReferrer(), url) &&
+ frame_tree_node->IsOutermostMainFrame()) {
// remove referrer if the navigation is done on the top frame
*referrer =
blink::mojom::Referrer(GURL(), network::mojom::ReferrerPolicy::kNever);
diff --git a/third_party/blink/public/common/renderer_preferences/renderer_preferences.h b/third_party/blink/public/common/renderer_preferences/renderer_preferences.h
--- a/third_party/blink/public/common/renderer_preferences/renderer_preferences.h
+++ b/third_party/blink/public/common/renderer_preferences/renderer_preferences.h
@@ -40,6 +40,7 @@ struct BLINK_COMMON_EXPORT RendererPreferences {
absl::optional<base::TimeDelta> caret_blink_interval;
bool use_custom_colors{true};
bool enable_referrers{true};
+ uint32_t referrers_policy{2};
bool allow_cross_origin_auth_prompt{false};
bool enable_do_not_track{false};
bool enable_encrypted_media{true};
--
2.25.1
@@ -24,7 +24,7 @@ Subject: Remove signin and sync integrations (win fixup)
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -4282,8 +4282,6 @@ static_library("browser") {
@@ -4280,8 +4280,6 @@ static_library("browser") {
"sharing_hub/sharing_hub_service_factory.h",
"signin/signin_promo.cc",
"signin/signin_promo.h",
@@ -33,7 +33,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"signin/signin_ui_util.cc",
"signin/signin_ui_util.h",
"speech/chrome_speech_recognition_service.cc",
@@ -6999,12 +6997,6 @@ static_library("browser") {
@@ -6997,12 +6995,6 @@ static_library("browser") {
"signin/signin_ui_delegate_impl_dice.cc",
"signin/signin_ui_delegate_impl_dice.h",
]
@@ -9,7 +9,7 @@ Subject: Restore Search Ready Omnibox flag (win fixup)
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
@@ -9187,9 +9187,11 @@ const FeatureEntry kFeatureEntries[] = {
@@ -9180,9 +9180,11 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kPervasiveSystemAccentColorDescription, kOsWin,
SINGLE_VALUE_TYPE(switches::kPervasiveSystemAccentColor)},
#endif
@@ -0,0 +1,22 @@
From: Your Name <you@example.com>
Date: Tue, 20 Dec 2022 15:09:46 +0000
Subject: Temp Disable kAutomaticLazyFrameLoadingToEmbeds
---
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
@@ -50,7 +50,7 @@ const base::FeatureParam<int> kSkipFrameCountForLazyAds(
// Vitals.
BASE_FEATURE(kAutomaticLazyFrameLoadingToEmbeds,
"AutomaticLazyFrameLoadingToEmbeds", // must be enabled
- base::FEATURE_ENABLED_BY_DEFAULT); // in Bromite
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
// The timeout value that forces loading iframes that are lazy loaded by
// LazyEmbeds. After this timeout, the frame loading is triggered even when the
--
2.25.1
@@ -1,252 +0,0 @@
From: Your Name <you@example.com>
Date: Thu, 13 Oct 2022 10:10:26 +0000
Subject: Viewport Protection (win fixup)
---
chrome/app/settings_strings.grdp | 19 ++++++++++++++++
chrome/browser/resources/settings/icons.html | 2 ++
.../settings/privacy_page/privacy_page.html | 22 +++++++++++++++++++
chrome/browser/resources/settings/route.ts | 1 +
.../resources/settings/settings_routes.ts | 1 +
.../site_settings/category_default_setting.ts | 1 +
.../settings/site_settings/constants.ts | 1 +
.../settings_category_default_radio_group.ts | 1 +
.../settings/site_settings/site_details.html | 5 +++++
.../recent_site_permissions.ts | 2 ++
.../site_settings_page/site_settings_page.ts | 9 ++++++++
.../views/page_info/page_info_view_factory.cc | 3 +++
.../settings_localized_strings_provider.cc | 7 ++++++
.../ui/webui/settings/site_settings_helper.cc | 1 +
.../core/browser/content_settings_registry.cc | 2 +-
15 files changed, 76 insertions(+), 1 deletion(-)
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
@@ -3869,6 +3869,25 @@
Not allowed to use WebRTC
</message>
+ <message name="IDS_SITE_SETTINGS_VIEWPORT_PROTECTION_TITLE" desc="Description of the viewport protection content setting page title.">
+ Viewport Protection
+ </message>
+ <message name="IDS_SETTINGS_SITE_SETTINGS_VIEWPORT_PROTECTION_DESCRIPTION" desc="Description of the viewport protection content setting.">
+ Enable Viewport Protection
+ </message>
+ <message name="IDS_SETTINGS_SITE_SETTINGS_VIEWPORT_PROTECTION_ALLOWED" desc="Label for the enabled option of the viewport protection setting.">
+ Viewport Protection is enabled
+ </message>
+ <message name="IDS_SETTINGS_SITE_SETTINGS_VIEWPORT_PROTECTION_BLOCKED" desc="Label for the disabled option of the viewport protection setting.">
+ Viewport Protection is disabled
+ </message>
+ <message name="IDS_SETTINGS_SITE_SETTINGS_VIEWPORT_PROTECTION_ALLOWED_EXCEPTIONS" desc="Label for the allowed exceptions site list of the viewport protection setting.">
+ Allowed to use Viewport Protection
+ </message>
+ <message name="IDS_SETTINGS_SITE_SETTINGS_VIEWPORT_PROTECTION_BLOCKED_EXCEPTIONS" desc="Label for the blocked exceptions site list of the viewport protection setting.">
+ Not allowed to use Viewport Protection
+ </message>
+
<if expr="not is_chromeos">
<!-- Import Settings Dialog -->
<message name="IDS_SETTINGS_IMPORT_SETTINGS_TITLE" desc="Dialog title for import dialog.">
diff --git a/chrome/browser/resources/settings/icons.html b/chrome/browser/resources/settings/icons.html
--- a/chrome/browser/resources/settings/icons.html
+++ b/chrome/browser/resources/settings/icons.html
@@ -180,6 +180,8 @@ NOTE: Chrome OS icons go in ./chromeos/os_icons.html.
<g id="webgl-off"><path d="M13.002 4.001H7.106L5.252 2.148c.232-.094.485-.147.75-.147h8l6 6v8.896l-2-2V9.001h-5v-5z" fill="#5F6368"></path><path d="M16.002 12.001h-.896l.896.896v-.896zM.6 3.45l1.414-1.414 19.94 19.94-1.414 1.414L.6 3.45zM3.986 20.01V6.84l2 2V20.01h11.172l1.765 1.766c-.28.15-.599.234-.937.234H5.976c-1.1 0-1.99-.9-1.99-2z" fill="#5F6368"></path><path d="M9.158 12.01H7.986v2h3.172l-2-2zM13.158 16.01H7.986v2h7.172l-2-2z" fill="#5F6368"></path></g>
<g id="webrtc"><path d="M8 16h8v2H8v-2zm0-4h8v2H8v-2zm6-10H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11z" fill="#5F6368"></path></g>
<g id="webrtc-off"><path d="M13.002 4.001H7.106L5.252 2.148c.232-.094.485-.147.75-.147h8l6 6v8.896l-2-2V9.001h-5v-5z" fill="#5F6368"></path><path d="M16.002 12.001h-.896l.896.896v-.896zM.6 3.45l1.414-1.414 19.94 19.94-1.414 1.414L.6 3.45zM3.986 20.01V6.84l2 2V20.01h11.172l1.765 1.766c-.28.15-.599.234-.937.234H5.976c-1.1 0-1.99-.9-1.99-2z" fill="#5F6368"></path><path d="M9.158 12.01H7.986v2h3.172l-2-2zM13.158 16.01H7.986v2h7.172l-2-2z" fill="#5F6368"></path></g>
+ <g id="viewport-protection"><path d="M8 16h8v2H8v-2zm0-4h8v2H8v-2zm6-10H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11z" fill="#5F6368"></path></g>
+ <g id="viewport-protection-off"><path d="M13.002 4.001H7.106L5.252 2.148c.232-.094.485-.147.75-.147h8l6 6v8.896l-2-2V9.001h-5v-5z" fill="#5F6368"></path><path d="M16.002 12.001h-.896l.896.896v-.896zM.6 3.45l1.414-1.414 19.94 19.94-1.414 1.414L.6 3.45zM3.986 20.01V6.84l2 2V20.01h11.172l1.765 1.766c-.28.15-.599.234-.937.234H5.976c-1.1 0-1.99-.9-1.99-2z" fill="#5F6368"></path><path d="M9.158 12.01H7.986v2h3.172l-2-2zM13.158 16.01H7.986v2h7.172l-2-2z" fill="#5F6368"></path></g>
</defs>
</svg>
</iron-iconset-svg>
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html
--- a/chrome/browser/resources/settings/privacy_page/privacy_page.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html
@@ -1102,4 +1102,26 @@
</category-setting-exceptions>
</settings-subpage>
</template>
+ <template is="dom-if" route-path="/content/viewport-protection" no-search>
+ <settings-subpage page-title="$i18n{siteSettingsViewportProtection}"
+ search-label="$i18n{siteSettingsAllSitesSearch}"
+ search-term="{{searchFilter_}}">
+ <div class="content-settings-header secondary">
+ $i18n{siteSettingsViewportProtectionDescription}
+ </div>
+ <settings-category-default-radio-group
+ category="[[contentSettingsTypesEnum_.VIEWPORT]]"
+ allow-option-label="$i18n{siteSettingsViewportProtectionAllowed}"
+ allow-option-icon="settings:viewport-protection"
+ block-option-label="$i18n{siteSettingsViewportProtectionBlocked}"
+ block-option-icon="settings:viewport-protection-off">
+ </settings-category-default-radio-group>
+ <category-setting-exceptions
+ category="[[contentSettingsTypesEnum_.VIEWPORT]]"
+ block-header="$i18n{siteSettingsViewportProtectionBlockedExceptions}"
+ allow-header="$i18n{siteSettingsViewportProtectionAllowedExceptions}"
+ search-filter="[[searchFilter_]]">
+ </category-setting-exceptions>
+ </settings-subpage>
+ </template>
</settings-animated-pages>
diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts
--- a/chrome/browser/resources/settings/route.ts
+++ b/chrome/browser/resources/settings/route.ts
@@ -105,6 +105,7 @@ function addPrivacyChildRoutes(r: Partial<SettingsRoutes>) {
r.SITE_SETTINGS_TIMEZONE_OVERRIDE = r.SITE_SETTINGS.createChild('timezone-override');
r.SITE_SETTINGS_WEBGL = r.SITE_SETTINGS.createChild('webgl');
r.SITE_SETTINGS_WEBRTC = r.SITE_SETTINGS.createChild('webrtc');
+ r.SITE_SETTINGS_VIEWPORT = r.SITE_SETTINGS.createChild('viewport-protection');
}
/**
diff --git a/chrome/browser/resources/settings/settings_routes.ts b/chrome/browser/resources/settings/settings_routes.ts
--- a/chrome/browser/resources/settings/settings_routes.ts
+++ b/chrome/browser/resources/settings/settings_routes.ts
@@ -99,4 +99,5 @@ export interface SettingsRoutes {
SITE_SETTINGS_TIMEZONE_OVERRIDE: Route;
SITE_SETTINGS_WEBGL: Route;
SITE_SETTINGS_WEBRTC: Route;
+ SITE_SETTINGS_VIEWPORT: Route;
}
diff --git a/chrome/browser/resources/settings/site_settings/category_default_setting.ts b/chrome/browser/resources/settings/site_settings/category_default_setting.ts
--- a/chrome/browser/resources/settings/site_settings/category_default_setting.ts
+++ b/chrome/browser/resources/settings/site_settings/category_default_setting.ts
@@ -200,6 +200,7 @@ export class CategoryDefaultSettingElement extends
case ContentSettingsTypes.TIMEZONE_OVERRIDE:
case ContentSettingsTypes.WEBGL:
case ContentSettingsTypes.WEBRTC:
+ case ContentSettingsTypes.VIEWPORT:
// "Allowed" vs "Blocked".
this.browserProxy.setDefaultValueForContentType(
this.category,
diff --git a/chrome/browser/resources/settings/site_settings/constants.ts b/chrome/browser/resources/settings/site_settings/constants.ts
--- a/chrome/browser/resources/settings/site_settings/constants.ts
+++ b/chrome/browser/resources/settings/site_settings/constants.ts
@@ -47,6 +47,7 @@ export enum ContentSettingsTypes {
TIMEZONE_OVERRIDE = 'timezone-override',
WEBGL = 'webgl',
WEBRTC = 'webrtc',
+ VIEWPORT = 'viewport',
// The following item is not in the C++ kContentSettingsTypeGroupNames, but it
// is used everywhere where ContentSettingsTypes is used in JS.
diff --git a/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts b/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts
--- a/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts
+++ b/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts
@@ -144,6 +144,7 @@ export class SettingsCategoryDefaultRadioGroupElement extends
case ContentSettingsTypes.TIMEZONE_OVERRIDE:
case ContentSettingsTypes.WEBGL:
case ContentSettingsTypes.WEBRTC:
+ case ContentSettingsTypes.VIEWPORT:
// "Allowed" vs "Blocked".
return ContentSetting.ALLOW;
case ContentSettingsTypes.AR:
diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html
--- a/chrome/browser/resources/settings/site_settings/site_details.html
+++ b/chrome/browser/resources/settings/site_settings/site_details.html
@@ -278,4 +278,9 @@
icon="settings:webrtc"
label="$i18n{siteSettingsWebRTC}">
</site-details-permission>
+ <site-details-permission
+ category="[[contentSettingsTypesEnum_.VIEWPORT]]"
+ icon="settings:viewport-protection"
+ label="$i18n{siteSettingsViewportProtection}">
+ </site-details-permission>
</div>
diff --git a/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.ts b/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.ts
--- a/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.ts
+++ b/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.ts
@@ -206,6 +206,8 @@ export class SettingsRecentSitePermissionsElement extends
return this.i18n('siteSettingsWebglMidSentence');
case ContentSettingsTypes.WEBRTC:
return this.i18n('siteSettingsWebRTCMidSentence');
+ case ContentSettingsTypes.VIEWPORT:
+ return this.i18n('siteSettingsViewportProtectionMidSentence');
default:
return '';
}
diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
--- a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
+++ b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
@@ -353,6 +353,14 @@ function getCategoryItemMap(): Map<ContentSettingsTypes, CategoryListItem> {
enabledLabel: 'siteSettingsWebRTCAllowed',
disabledLabel: 'siteSettingsWebRTCBlocked',
},
+ {
+ route: routes.SITE_SETTINGS_VIEWPORT,
+ id: Id.VIEWPORT,
+ label: 'siteSettingsViewportProtection',
+ icon: 'settings:viewport-protection',
+ enabledLabel: 'siteSettingsViewportProtectionAllowed',
+ disabledLabel: 'siteSettingsViewportProtectionBlocked',
+ },
];
categoryItemMap = new Map(categoryList.map(item => [item.id, item]));
@@ -440,6 +448,7 @@ export class SettingsSiteSettingsPageElement extends PolymerElement {
Id.TIMEZONE_OVERRIDE,
Id.WEBGL,
Id.WEBRTC,
+ Id.VIEWPORT,
]),
};
},
diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrome/browser/ui/views/page_info/page_info_view_factory.cc
--- a/chrome/browser/ui/views/page_info/page_info_view_factory.cc
+++ b/chrome/browser/ui/views/page_info/page_info_view_factory.cc
@@ -347,6 +347,9 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
case ContentSettingsType::WEBRTC:
icon = &vector_icons::kProtectedContentIcon;
break;
+ case ContentSettingsType::VIEWPORT:
+ icon = &vector_icons::kProtectedContentIcon;
+ break;
default:
// All other |ContentSettingsType|s do not have icons on desktop or are
// not shown in the Page Info bubble.
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -2171,6 +2171,13 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source,
{"siteSettingsWebRTCAllowedExceptions",IDS_SETTINGS_SITE_SETTINGS_WEBRTC_ALLOWED_EXCEPTIONS},
{"siteSettingsWebRTCBlockedExceptions", IDS_SETTINGS_SITE_SETTINGS_WEBRTC_BLOCKED_EXCEPTIONS},
{"siteSettingsWebRTCMidSentence", IDS_SITE_SETTINGS_WEBRTC_TITLE},
+ {"siteSettingsViewportProtection", IDS_SITE_SETTINGS_VIEWPORT_PROTECTION_TITLE},
+ {"siteSettingsViewportProtectionDescription", IDS_SETTINGS_SITE_SETTINGS_VIEWPORT_PROTECTION_DESCRIPTION},
+ {"siteSettingsViewportProtectionAllowed", IDS_SETTINGS_SITE_SETTINGS_VIEWPORT_PROTECTION_ALLOWED},
+ {"siteSettingsViewportProtectionBlocked", IDS_SETTINGS_SITE_SETTINGS_VIEWPORT_PROTECTION_BLOCKED},
+ {"siteSettingsViewportProtectionAllowedExceptions",IDS_SETTINGS_SITE_SETTINGS_VIEWPORT_PROTECTION_ALLOWED_EXCEPTIONS},
+ {"siteSettingsViewportProtectionBlockedExceptions", IDS_SETTINGS_SITE_SETTINGS_VIEWPORT_PROTECTION_BLOCKED_EXCEPTIONS},
+ {"siteSettingsViewportProtectionMidSentence", IDS_SITE_SETTINGS_VIEWPORT_PROTECTION_TITLE},
{"addSite", IDS_SETTINGS_ADD_SITE},
{"addSiteTitle", IDS_SETTINGS_ADD_SITE_TITLE},
#if BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/browser/ui/webui/settings/site_settings_helper.cc
--- a/chrome/browser/ui/webui/settings/site_settings_helper.cc
+++ b/chrome/browser/ui/webui/settings/site_settings_helper.cc
@@ -119,6 +119,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = {
{ContentSettingsType::TIMEZONE_OVERRIDE, "timezone-override"},
{ContentSettingsType::WEBGL, "webgl"},
{ContentSettingsType::WEBRTC, "webrtc"},
+ {ContentSettingsType::VIEWPORT, "viewport"},
// Add new content settings here if a corresponding Javascript string
// representation for it is not required, for example if the content setting
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
--- a/components/content_settings/core/browser/content_settings_registry.cc
+++ b/components/content_settings/core/browser/content_settings_registry.cc
@@ -681,7 +681,7 @@ void ContentSettingsRegistry::Init() {
ValidSettings(CONTENT_SETTING_ALLOW,
CONTENT_SETTING_BLOCK),
WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
- WebsiteSettingsRegistry::PLATFORM_ANDROID,
+ WebsiteSettingsRegistry::ALL_PLATFORMS,
ContentSettingsInfo::INHERIT_IN_INCOGNITO,
ContentSettingsInfo::PERSISTENT,
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS,
--
2.25.1
@@ -0,0 +1,650 @@
From: Your Name <you@example.com>
Date: Tue, 20 Dec 2022 14:27:02 +0000
Subject: Viewport Protection Site Setting
---
chrome/app/settings_strings.grdp | 19 ++++
chrome/browser/resources/settings/icons.html | 2 +
.../settings/privacy_page/privacy_page.html | 22 +++++
chrome/browser/resources/settings/route.ts | 1 +
.../resources/settings/settings_routes.ts | 1 +
.../site_settings/category_default_setting.ts | 1 +
.../settings/site_settings/constants.ts | 1 +
.../settings_category_default_radio_group.ts | 1 +
.../settings/site_settings/site_details.html | 5 ++
.../recent_site_permissions.ts | 2 +
.../site_settings_page/site_settings_page.ts | 9 ++
.../views/page_info/page_info_view_factory.cc | 3 +
.../settings_localized_strings_provider.cc | 7 ++
.../ui/webui/settings/site_settings_helper.cc | 1 +
.../browser_ui/site_settings/android/BUILD.gn | 3 +
.../BromiteCustomContentSettingImpl.java | 1 +
.../BromiteViewportContentSetting.java | 86 +++++++++++++++++++
.../site_settings/SiteSettingsCategory.java | 5 +-
.../strings/android/browser_ui_strings.grd | 1 +
.../browser_ui/strings/android/viewport.grdp | 18 ++++
components/components_strings.grd | 1 +
.../core/browser/content_settings_registry.cc | 16 +++-
.../core/browser/content_settings_utils.cc | 2 +
.../core/common/content_settings.cc | 4 +-
.../core/common/content_settings.h | 1 +
.../core/common/content_settings.mojom | 1 +
.../common/content_settings_mojom_traits.cc | 3 +-
.../common/content_settings_mojom_traits.h | 5 ++
.../core/common/content_settings_types.h | 2 +
.../renderer/content_settings_agent_impl.cc | 9 ++
.../renderer/content_settings_agent_impl.h | 1 +
third_party/blink/common/features.cc | 2 +-
.../platform/web_content_settings_client.h | 2 +
.../renderer/core/frame/local_dom_window.cc | 1 +
third_party/blink/renderer/core/page/page.cc | 2 +
35 files changed, 235 insertions(+), 6 deletions(-)
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteViewportContentSetting.java
create mode 100644 components/browser_ui/strings/android/viewport.grdp
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
@@ -3869,6 +3869,25 @@
Not allowed to use WebRTC
</message>
+ <message name="IDS_SITE_SETTINGS_VIEWPORT_PROTECTION_TITLE" desc="Description of the viewport protection content setting page title.">
+ Viewport Protection
+ </message>
+ <message name="IDS_SETTINGS_SITE_SETTINGS_VIEWPORT_PROTECTION_DESCRIPTION" desc="Description of the viewport protection content setting.">
+ Enable Viewport Protection
+ </message>
+ <message name="IDS_SETTINGS_SITE_SETTINGS_VIEWPORT_PROTECTION_ALLOWED" desc="Label for the enabled option of the viewport protection setting.">
+ Viewport Protection is enabled
+ </message>
+ <message name="IDS_SETTINGS_SITE_SETTINGS_VIEWPORT_PROTECTION_BLOCKED" desc="Label for the disabled option of the viewport protection setting.">
+ Viewport Protection is disabled
+ </message>
+ <message name="IDS_SETTINGS_SITE_SETTINGS_VIEWPORT_PROTECTION_ALLOWED_EXCEPTIONS" desc="Label for the allowed exceptions site list of the viewport protection setting.">
+ Allowed to use Viewport Protection
+ </message>
+ <message name="IDS_SETTINGS_SITE_SETTINGS_VIEWPORT_PROTECTION_BLOCKED_EXCEPTIONS" desc="Label for the blocked exceptions site list of the viewport protection setting.">
+ Not allowed to use Viewport Protection
+ </message>
+
<if expr="not is_chromeos">
<!-- Import Settings Dialog -->
<message name="IDS_SETTINGS_IMPORT_SETTINGS_TITLE" desc="Dialog title for import dialog.">
diff --git a/chrome/browser/resources/settings/icons.html b/chrome/browser/resources/settings/icons.html
--- a/chrome/browser/resources/settings/icons.html
+++ b/chrome/browser/resources/settings/icons.html
@@ -180,6 +180,8 @@ NOTE: Chrome OS icons go in ./chromeos/os_icons.html.
<g id="webgl-off"><path d="M13.002 4.001H7.106L5.252 2.148c.232-.094.485-.147.75-.147h8l6 6v8.896l-2-2V9.001h-5v-5z" fill="#5F6368"></path><path d="M16.002 12.001h-.896l.896.896v-.896zM.6 3.45l1.414-1.414 19.94 19.94-1.414 1.414L.6 3.45zM3.986 20.01V6.84l2 2V20.01h11.172l1.765 1.766c-.28.15-.599.234-.937.234H5.976c-1.1 0-1.99-.9-1.99-2z" fill="#5F6368"></path><path d="M9.158 12.01H7.986v2h3.172l-2-2zM13.158 16.01H7.986v2h7.172l-2-2z" fill="#5F6368"></path></g>
<g id="webrtc"><path d="M8 16h8v2H8v-2zm0-4h8v2H8v-2zm6-10H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11z" fill="#5F6368"></path></g>
<g id="webrtc-off"><path d="M13.002 4.001H7.106L5.252 2.148c.232-.094.485-.147.75-.147h8l6 6v8.896l-2-2V9.001h-5v-5z" fill="#5F6368"></path><path d="M16.002 12.001h-.896l.896.896v-.896zM.6 3.45l1.414-1.414 19.94 19.94-1.414 1.414L.6 3.45zM3.986 20.01V6.84l2 2V20.01h11.172l1.765 1.766c-.28.15-.599.234-.937.234H5.976c-1.1 0-1.99-.9-1.99-2z" fill="#5F6368"></path><path d="M9.158 12.01H7.986v2h3.172l-2-2zM13.158 16.01H7.986v2h7.172l-2-2z" fill="#5F6368"></path></g>
+ <g id="viewport-protection"><path d="M8 16h8v2H8v-2zm0-4h8v2H8v-2zm6-10H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11z" fill="#5F6368"></path></g>
+ <g id="viewport-protection-off"><path d="M13.002 4.001H7.106L5.252 2.148c.232-.094.485-.147.75-.147h8l6 6v8.896l-2-2V9.001h-5v-5z" fill="#5F6368"></path><path d="M16.002 12.001h-.896l.896.896v-.896zM.6 3.45l1.414-1.414 19.94 19.94-1.414 1.414L.6 3.45zM3.986 20.01V6.84l2 2V20.01h11.172l1.765 1.766c-.28.15-.599.234-.937.234H5.976c-1.1 0-1.99-.9-1.99-2z" fill="#5F6368"></path><path d="M9.158 12.01H7.986v2h3.172l-2-2zM13.158 16.01H7.986v2h7.172l-2-2z" fill="#5F6368"></path></g>
</defs>
</svg>
</iron-iconset-svg>
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html
--- a/chrome/browser/resources/settings/privacy_page/privacy_page.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html
@@ -1102,4 +1102,26 @@
</category-setting-exceptions>
</settings-subpage>
</template>
+ <template is="dom-if" route-path="/content/viewport-protection" no-search>
+ <settings-subpage page-title="$i18n{siteSettingsViewportProtection}"
+ search-label="$i18n{siteSettingsAllSitesSearch}"
+ search-term="{{searchFilter_}}">
+ <div class="content-settings-header secondary">
+ $i18n{siteSettingsViewportProtectionDescription}
+ </div>
+ <settings-category-default-radio-group
+ category="[[contentSettingsTypesEnum_.VIEWPORT]]"
+ allow-option-label="$i18n{siteSettingsViewportProtectionAllowed}"
+ allow-option-icon="settings:viewport-protection"
+ block-option-label="$i18n{siteSettingsViewportProtectionBlocked}"
+ block-option-icon="settings:viewport-protection-off">
+ </settings-category-default-radio-group>
+ <category-setting-exceptions
+ category="[[contentSettingsTypesEnum_.VIEWPORT]]"
+ block-header="$i18n{siteSettingsViewportProtectionBlockedExceptions}"
+ allow-header="$i18n{siteSettingsViewportProtectionAllowedExceptions}"
+ search-filter="[[searchFilter_]]">
+ </category-setting-exceptions>
+ </settings-subpage>
+ </template>
</settings-animated-pages>
diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts
--- a/chrome/browser/resources/settings/route.ts
+++ b/chrome/browser/resources/settings/route.ts
@@ -105,6 +105,7 @@ function addPrivacyChildRoutes(r: Partial<SettingsRoutes>) {
r.SITE_SETTINGS_TIMEZONE_OVERRIDE = r.SITE_SETTINGS.createChild('timezone-override');
r.SITE_SETTINGS_WEBGL = r.SITE_SETTINGS.createChild('webgl');
r.SITE_SETTINGS_WEBRTC = r.SITE_SETTINGS.createChild('webrtc');
+ r.SITE_SETTINGS_VIEWPORT = r.SITE_SETTINGS.createChild('viewport-protection');
}
/**
diff --git a/chrome/browser/resources/settings/settings_routes.ts b/chrome/browser/resources/settings/settings_routes.ts
--- a/chrome/browser/resources/settings/settings_routes.ts
+++ b/chrome/browser/resources/settings/settings_routes.ts
@@ -99,4 +99,5 @@ export interface SettingsRoutes {
SITE_SETTINGS_TIMEZONE_OVERRIDE: Route;
SITE_SETTINGS_WEBGL: Route;
SITE_SETTINGS_WEBRTC: Route;
+ SITE_SETTINGS_VIEWPORT: Route;
}
diff --git a/chrome/browser/resources/settings/site_settings/category_default_setting.ts b/chrome/browser/resources/settings/site_settings/category_default_setting.ts
--- a/chrome/browser/resources/settings/site_settings/category_default_setting.ts
+++ b/chrome/browser/resources/settings/site_settings/category_default_setting.ts
@@ -200,6 +200,7 @@ export class CategoryDefaultSettingElement extends
case ContentSettingsTypes.TIMEZONE_OVERRIDE:
case ContentSettingsTypes.WEBGL:
case ContentSettingsTypes.WEBRTC:
+ case ContentSettingsTypes.VIEWPORT:
// "Allowed" vs "Blocked".
this.browserProxy.setDefaultValueForContentType(
this.category,
diff --git a/chrome/browser/resources/settings/site_settings/constants.ts b/chrome/browser/resources/settings/site_settings/constants.ts
--- a/chrome/browser/resources/settings/site_settings/constants.ts
+++ b/chrome/browser/resources/settings/site_settings/constants.ts
@@ -47,6 +47,7 @@ export enum ContentSettingsTypes {
TIMEZONE_OVERRIDE = 'timezone-override',
WEBGL = 'webgl',
WEBRTC = 'webrtc',
+ VIEWPORT = 'viewport',
// The following item is not in the C++ kContentSettingsTypeGroupNames, but it
// is used everywhere where ContentSettingsTypes is used in JS.
diff --git a/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts b/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts
--- a/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts
+++ b/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts
@@ -144,6 +144,7 @@ export class SettingsCategoryDefaultRadioGroupElement extends
case ContentSettingsTypes.TIMEZONE_OVERRIDE:
case ContentSettingsTypes.WEBGL:
case ContentSettingsTypes.WEBRTC:
+ case ContentSettingsTypes.VIEWPORT:
// "Allowed" vs "Blocked".
return ContentSetting.ALLOW;
case ContentSettingsTypes.AR:
diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html
--- a/chrome/browser/resources/settings/site_settings/site_details.html
+++ b/chrome/browser/resources/settings/site_settings/site_details.html
@@ -278,4 +278,9 @@
icon="settings:webrtc"
label="$i18n{siteSettingsWebRTC}">
</site-details-permission>
+ <site-details-permission
+ category="[[contentSettingsTypesEnum_.VIEWPORT]]"
+ icon="settings:viewport-protection"
+ label="$i18n{siteSettingsViewportProtection}">
+ </site-details-permission>
</div>
diff --git a/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.ts b/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.ts
--- a/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.ts
+++ b/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.ts
@@ -206,6 +206,8 @@ export class SettingsRecentSitePermissionsElement extends
return this.i18n('siteSettingsWebglMidSentence');
case ContentSettingsTypes.WEBRTC:
return this.i18n('siteSettingsWebRTCMidSentence');
+ case ContentSettingsTypes.VIEWPORT:
+ return this.i18n('siteSettingsViewportProtectionMidSentence');
default:
return '';
}
diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
--- a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
+++ b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
@@ -353,6 +353,14 @@ function getCategoryItemMap(): Map<ContentSettingsTypes, CategoryListItem> {
enabledLabel: 'siteSettingsWebRTCAllowed',
disabledLabel: 'siteSettingsWebRTCBlocked',
},
+ {
+ route: routes.SITE_SETTINGS_VIEWPORT,
+ id: Id.VIEWPORT,
+ label: 'siteSettingsViewportProtection',
+ icon: 'settings:viewport-protection',
+ enabledLabel: 'siteSettingsViewportProtectionAllowed',
+ disabledLabel: 'siteSettingsViewportProtectionBlocked',
+ },
];
categoryItemMap = new Map(categoryList.map(item => [item.id, item]));
@@ -440,6 +448,7 @@ export class SettingsSiteSettingsPageElement extends PolymerElement {
Id.TIMEZONE_OVERRIDE,
Id.WEBGL,
Id.WEBRTC,
+ Id.VIEWPORT,
]),
};
},
diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrome/browser/ui/views/page_info/page_info_view_factory.cc
--- a/chrome/browser/ui/views/page_info/page_info_view_factory.cc
+++ b/chrome/browser/ui/views/page_info/page_info_view_factory.cc
@@ -347,6 +347,9 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
case ContentSettingsType::WEBRTC:
icon = &vector_icons::kProtectedContentIcon;
break;
+ case ContentSettingsType::VIEWPORT:
+ icon = &vector_icons::kProtectedContentIcon;
+ break;
default:
// All other |ContentSettingsType|s do not have icons on desktop or are
// not shown in the Page Info bubble.
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -2171,6 +2171,13 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source,
{"siteSettingsWebRTCAllowedExceptions",IDS_SETTINGS_SITE_SETTINGS_WEBRTC_ALLOWED_EXCEPTIONS},
{"siteSettingsWebRTCBlockedExceptions", IDS_SETTINGS_SITE_SETTINGS_WEBRTC_BLOCKED_EXCEPTIONS},
{"siteSettingsWebRTCMidSentence", IDS_SITE_SETTINGS_WEBRTC_TITLE},
+ {"siteSettingsViewportProtection", IDS_SITE_SETTINGS_VIEWPORT_PROTECTION_TITLE},
+ {"siteSettingsViewportProtectionDescription", IDS_SETTINGS_SITE_SETTINGS_VIEWPORT_PROTECTION_DESCRIPTION},
+ {"siteSettingsViewportProtectionAllowed", IDS_SETTINGS_SITE_SETTINGS_VIEWPORT_PROTECTION_ALLOWED},
+ {"siteSettingsViewportProtectionBlocked", IDS_SETTINGS_SITE_SETTINGS_VIEWPORT_PROTECTION_BLOCKED},
+ {"siteSettingsViewportProtectionAllowedExceptions",IDS_SETTINGS_SITE_SETTINGS_VIEWPORT_PROTECTION_ALLOWED_EXCEPTIONS},
+ {"siteSettingsViewportProtectionBlockedExceptions", IDS_SETTINGS_SITE_SETTINGS_VIEWPORT_PROTECTION_BLOCKED_EXCEPTIONS},
+ {"siteSettingsViewportProtectionMidSentence", IDS_SITE_SETTINGS_VIEWPORT_PROTECTION_TITLE},
{"addSite", IDS_SETTINGS_ADD_SITE},
{"addSiteTitle", IDS_SETTINGS_ADD_SITE_TITLE},
#if BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/browser/ui/webui/settings/site_settings_helper.cc
--- a/chrome/browser/ui/webui/settings/site_settings_helper.cc
+++ b/chrome/browser/ui/webui/settings/site_settings_helper.cc
@@ -119,6 +119,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = {
{ContentSettingsType::TIMEZONE_OVERRIDE, "timezone-override"},
{ContentSettingsType::WEBGL, "webgl"},
{ContentSettingsType::WEBRTC, "webrtc"},
+ {ContentSettingsType::VIEWPORT, "viewport"},
// Add new content settings here if a corresponding Javascript string
// representation for it is not required, for example if the content setting
diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn
--- a/components/browser_ui/site_settings/android/BUILD.gn
+++ b/components/browser_ui/site_settings/android/BUILD.gn
@@ -98,6 +98,9 @@ android_library("java") {
sources += [
"java/src/org/chromium/components/browser_ui/site_settings/BromiteWebRTCContentSetting.java",
]
+ sources += [
+ "java/src/org/chromium/components/browser_ui/site_settings/BromiteViewportContentSetting.java",
+ ]
annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
resources_package = "org.chromium.components.browser_ui.site_settings"
deps = [
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java
@@ -45,6 +45,7 @@ public abstract class BromiteCustomContentSettingImpl {
mItemList = new ArrayList<BromiteCustomContentSetting>();
mItemList.add(new BromiteWebGLContentSetting());
mItemList.add(new BromiteWebRTCContentSetting());
+ mItemList.add(new BromiteViewportContentSetting());
}
public static SiteSettingsCategory createFromType(
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteViewportContentSetting.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteViewportContentSetting.java
new file mode 100644
--- /dev/null
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteViewportContentSetting.java
@@ -0,0 +1,86 @@
+/*
+ This file is part of Bromite.
+
+ Bromite is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Bromite is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
+*/
+
+package org.chromium.components.browser_ui.site_settings;
+
+import org.chromium.components.browser_ui.site_settings.ContentSettingsResources;
+import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory;
+import org.chromium.components.content_settings.ContentSettingValues;
+import org.chromium.components.content_settings.ContentSettingsType;
+import org.chromium.content_public.browser.BrowserContextHandle;
+
+import androidx.annotation.Nullable;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import java.util.ArrayList;
+
+public class BromiteViewportContentSetting extends BromiteCustomContentSetting {
+ public BromiteViewportContentSetting() {
+ super(/*contentSettingsType*/ ContentSettingsType.VIEWPORT,
+ /*siteSettingsCategory*/ SiteSettingsCategory.Type.VIEWPORT,
+ /*defaultEnabledValue*/ ContentSettingValues.ALLOW,
+ /*defaultDisabledValue*/ ContentSettingValues.BLOCK,
+ /*allowException*/ true,
+ /*preferenceKey*/ "viewport",
+ /*profilePrefKey*/ "viewport");
+ }
+
+ @Override
+ public ContentSettingsResources.ResourceItem getResourceItem() {
+ return new ContentSettingsResources.ResourceItem(
+ /*icon*/ R.drawable.web_asset,
+ /*title*/ R.string.viewport_permission_title,
+ /*defaultEnabledValue*/ getDefaultEnabledValue(),
+ /*defaultDisabledValue*/ getDefaultDisabledValue(),
+ /*enabledSummary*/ R.string.website_settings_category_viewport_enabled,
+ /*disabledSummary*/ R.string.website_settings_category_viewport_disabled);
+ }
+
+ @Override
+ public int getCategorySummary(@Nullable @ContentSettingValues int value) {
+ switch (value) {
+ case ContentSettingValues.ALLOW:
+ return R.string.website_settings_category_viewport_enabled;
+ case ContentSettingValues.BLOCK:
+ return R.string.website_settings_category_viewport_disabled;
+ default:
+ // this will cause a runtime exception
+ return 0;
+ }
+ }
+
+ @Override
+ public boolean requiresTriStateContentSetting() {
+ return false;
+ }
+
+ @Override
+ public boolean showOnlyDescriptions() {
+ return true;
+ }
+
+ @Override
+ public int getAddExceptionDialogMessage() {
+ return R.string.website_settings_category_viewport_enabled;
+ }
+
+ @Override
+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSettingValues int value) {
+ return value != ContentSettingValues.BLOCK;
+ }
+}
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java
@@ -44,7 +44,7 @@ public class SiteSettingsCategory {
Type.PROTECTED_MEDIA, Type.SENSORS, Type.SOUND, Type.USB, Type.VIRTUAL_REALITY,
Type.USE_STORAGE, Type.AUTO_DARK_WEB_CONTENT, Type.REQUEST_DESKTOP_SITE,
Type.FEDERATED_IDENTITY_API, Type.TIMEZONE_OVERRIDE, Type.AUTOPLAY, Type.JAVASCRIPT_JIT,
- Type.IMAGES, Type.WEBGL, Type.WEBRTC})
+ Type.IMAGES, Type.WEBGL, Type.WEBRTC, Type.VIEWPORT})
@Retention(RetentionPolicy.SOURCE)
public @interface Type {
// All updates here must also be reflected in {@link #preferenceKey(int)
@@ -81,10 +81,11 @@ public class SiteSettingsCategory {
int IMAGES = 29;
int WEBGL = 30;
int WEBRTC = 31;
+ int VIEWPORT = 32;
/**
* Number of handled categories used for calculating array sizes.
*/
- int NUM_ENTRIES = 32;
+ int NUM_ENTRIES = 33;
}
private final BrowserContextHandle mBrowserContextHandle;
diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd
--- a/components/browser_ui/strings/android/browser_ui_strings.grd
+++ b/components/browser_ui/strings/android/browser_ui_strings.grd
@@ -176,6 +176,7 @@
<part file="site_settings.grdp" />
<part file="webgl.grdp" />
<part file="webrtc.grdp" />
+ <part file="viewport.grdp" />
<message name="IDS_GOT_IT" desc="Button for the user to accept a disclosure/message" formatter_data="android_java">
Got it
diff --git a/components/browser_ui/strings/android/viewport.grdp b/components/browser_ui/strings/android/viewport.grdp
new file mode 100644
--- /dev/null
+++ b/components/browser_ui/strings/android/viewport.grdp
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<grit-part>
+ <message name="IDS_SITE_SETTINGS_TYPE_VIEWPORT" desc="The label used for viewport size change site settings controls.">
+ Viewport Size Protection
+ </message>
+ <message name="IDS_SITE_SETTINGS_TYPE_VIEWPORT_MID_SENTENCE" desc="The label used for viewport size change site settings controls when used mid-sentence.">
+ Viewport Size Protection
+ </message>
+ <message name="IDS_VIEWPORT_PERMISSION_TITLE" desc="Title of the permission to use viewport size change [CHAR-LIMIT=32]">
+ Viewport Size Protection
+ </message>
+ <message name="IDS_WEBSITE_SETTINGS_CATEGORY_VIEWPORT_ENABLED" desc="Summary text explaining that viewport size change is full enabled.">
+ Enabled
+ </message>
+ <message name="IDS_WEBSITE_SETTINGS_CATEGORY_VIEWPORT_DISABLED" desc="Summary text explaining that viewport size change is full disabled.">
+ Disabled
+ </message>
+</grit-part>
diff --git a/components/components_strings.grd b/components/components_strings.grd
--- a/components/components_strings.grd
+++ b/components/components_strings.grd
@@ -341,6 +341,7 @@
<part file="browser_ui/strings/android/webgl.grdp" />
<part file="browser_ui/strings/android/webrtc.grdp" />
+ <part file="browser_ui/strings/android/viewport.grdp" />
<if expr="not is_ios">
<part file="history_clusters_strings.grdp" />
</if>
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
--- a/components/content_settings/core/browser/content_settings_registry.cc
+++ b/components/content_settings/core/browser/content_settings_registry.cc
@@ -681,7 +681,7 @@ void ContentSettingsRegistry::Init() {
ValidSettings(CONTENT_SETTING_ALLOW,
CONTENT_SETTING_BLOCK),
WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
- WebsiteSettingsRegistry::PLATFORM_ANDROID,
+ WebsiteSettingsRegistry::ALL_PLATFORMS,
ContentSettingsInfo::INHERIT_IN_INCOGNITO,
ContentSettingsInfo::PERSISTENT,
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS,
@@ -702,6 +702,20 @@ void ContentSettingsRegistry::Init() {
/*show_into_info_page*/ true,
/*permission_type_ui*/ IDS_SITE_SETTINGS_TYPE_WEBRTC,
/*permission_type_ui_mid_sentence*/ IDS_SITE_SETTINGS_TYPE_WEBRTC_MID_SENTENCE);
+
+ Register(ContentSettingsType::VIEWPORT, "viewport", CONTENT_SETTING_BLOCK,
+ WebsiteSettingsInfo::SYNCABLE,
+ AllowlistedSchemes(),
+ ValidSettings(CONTENT_SETTING_ALLOW,
+ CONTENT_SETTING_BLOCK),
+ WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
+ WebsiteSettingsRegistry::ALL_PLATFORMS,
+ ContentSettingsInfo::INHERIT_IN_INCOGNITO,
+ ContentSettingsInfo::PERSISTENT,
+ ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS,
+ /*show_into_info_page*/ true,
+ /*permission_type_ui*/ IDS_SITE_SETTINGS_TYPE_VIEWPORT,
+ /*permission_type_ui_mid_sentence*/ IDS_SITE_SETTINGS_TYPE_VIEWPORT_MID_SENTENCE);
}
void ContentSettingsRegistry::Register(
diff --git a/components/content_settings/core/browser/content_settings_utils.cc b/components/content_settings/core/browser/content_settings_utils.cc
--- a/components/content_settings/core/browser/content_settings_utils.cc
+++ b/components/content_settings/core/browser/content_settings_utils.cc
@@ -160,6 +160,8 @@ void GetRendererContentSettingRules(const HostContentSettingsMap* map,
&(rules->webgl_rules));
map->GetSettingsForOneType(ContentSettingsType::WEBRTC,
&(rules->webrtc_rules));
+ map->GetSettingsForOneType(ContentSettingsType::VIEWPORT,
+ &(rules->viewport_rules));
}
bool IsMorePermissive(ContentSetting a, ContentSetting b) {
diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc
--- a/components/content_settings/core/common/content_settings.cc
+++ b/components/content_settings/core/common/content_settings.cc
@@ -209,7 +209,8 @@ bool RendererContentSettingRules::IsRendererContentSetting(
content_type == ContentSettingsType::AUTO_DARK_WEB_CONTENT ||
content_type == ContentSettingsType::TIMEZONE_OVERRIDE ||
content_type == ContentSettingsType::WEBGL ||
- content_type == ContentSettingsType::WEBRTC;
+ content_type == ContentSettingsType::WEBRTC ||
+ content_type == ContentSettingsType::VIEWPORT;
}
void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL(
@@ -223,6 +224,7 @@ void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL(
FilterRulesForType(autoplay_rules, outermost_main_frame_url);
FilterRulesForType(webgl_rules, outermost_main_frame_url);
FilterRulesForType(webrtc_rules, outermost_main_frame_url);
+ FilterRulesForType(viewport_rules, outermost_main_frame_url);
}
RendererContentSettingRules::RendererContentSettingRules() = default;
diff --git a/components/content_settings/core/common/content_settings.h b/components/content_settings/core/common/content_settings.h
--- a/components/content_settings/core/common/content_settings.h
+++ b/components/content_settings/core/common/content_settings.h
@@ -98,6 +98,7 @@ struct RendererContentSettingRules {
std::string timezone_override_value;
ContentSettingsForOneType webgl_rules;
ContentSettingsForOneType webrtc_rules;
+ ContentSettingsForOneType viewport_rules;
};
namespace content_settings {
diff --git a/components/content_settings/core/common/content_settings.mojom b/components/content_settings/core/common/content_settings.mojom
--- a/components/content_settings/core/common/content_settings.mojom
+++ b/components/content_settings/core/common/content_settings.mojom
@@ -83,4 +83,5 @@ struct RendererContentSettingRules {
string timezone_override_value;
array<ContentSettingPatternSource> webgl_rules;
array<ContentSettingPatternSource> webrtc_rules;
+ array<ContentSettingPatternSource> viewport_rules;
};
diff --git a/components/content_settings/core/common/content_settings_mojom_traits.cc b/components/content_settings/core/common/content_settings_mojom_traits.cc
--- a/components/content_settings/core/common/content_settings_mojom_traits.cc
+++ b/components/content_settings/core/common/content_settings_mojom_traits.cc
@@ -107,7 +107,8 @@ bool StructTraits<content_settings::mojom::RendererContentSettingRulesDataView,
data.ReadTimezoneOverrideRules(&out->timezone_override_rules) &&
data.ReadTimezoneOverrideValue(&out->timezone_override_value) &&
data.ReadWebglRules(&out->webgl_rules) &&
- data.ReadWebrtcRules(&out->webrtc_rules);
+ data.ReadWebrtcRules(&out->webrtc_rules) &&
+ data.ReadViewportRules(&out->viewport_rules);
}
} // namespace mojo
diff --git a/components/content_settings/core/common/content_settings_mojom_traits.h b/components/content_settings/core/common/content_settings_mojom_traits.h
--- a/components/content_settings/core/common/content_settings_mojom_traits.h
+++ b/components/content_settings/core/common/content_settings_mojom_traits.h
@@ -175,6 +175,11 @@ struct StructTraits<
return r.webrtc_rules;
}
+ static const std::vector<ContentSettingPatternSource>& viewport_rules(
+ const RendererContentSettingRules& r) {
+ return r.viewport_rules;
+ }
+
static bool Read(
content_settings::mojom::RendererContentSettingRulesDataView data,
RendererContentSettingRules* out);
diff --git a/components/content_settings/core/common/content_settings_types.h b/components/content_settings/core/common/content_settings_types.h
--- a/components/content_settings/core/common/content_settings_types.h
+++ b/components/content_settings/core/common/content_settings_types.h
@@ -281,6 +281,8 @@ enum class ContentSettingsType : int32_t {
WEBRTC,
+ VIEWPORT,
+
// Setting to indicate whether browser should allow signing into a website via
// the browser FedCM API.
FEDERATED_IDENTITY_API,
diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc b/components/content_settings/renderer/content_settings_agent_impl.cc
--- a/components/content_settings/renderer/content_settings_agent_impl.cc
+++ b/components/content_settings/renderer/content_settings_agent_impl.cc
@@ -467,6 +467,15 @@ bool ContentSettingsAgentImpl::AllowWebRTC(bool enabled_per_settings) {
url::Origin(frame->GetDocument().GetSecurityOrigin()).GetURL());
}
+bool ContentSettingsAgentImpl::AllowViewportChange(bool enabled_per_settings) {
+ if (!content_setting_rules_)
+ return false;
+ blink::WebLocalFrame* frame = render_frame()->GetWebFrame();
+ return CONTENT_SETTING_ALLOW == GetContentSettingFromRules(
+ content_setting_rules_->viewport_rules,
+ url::Origin(frame->GetDocument().GetSecurityOrigin()).GetURL());
+}
+
bool ContentSettingsAgentImpl::IsAllowlistedForContentSettings() const {
if (should_allowlist_)
return true;
diff --git a/components/content_settings/renderer/content_settings_agent_impl.h b/components/content_settings/renderer/content_settings_agent_impl.h
--- a/components/content_settings/renderer/content_settings_agent_impl.h
+++ b/components/content_settings/renderer/content_settings_agent_impl.h
@@ -101,6 +101,7 @@ class ContentSettingsAgentImpl
bool ShouldAutoupgradeMixedContent() override;
bool AllowWebgl(bool enabled_per_settings) override;
bool AllowWebRTC(bool enabled_per_settings) override;
+ bool AllowViewportChange(bool enabled_per_settings) override;
bool allow_running_insecure_content() const {
return allow_running_insecure_content_;
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
@@ -1639,7 +1639,7 @@ BASE_FEATURE(kDocumentEventNodePathCaching,
BASE_FEATURE(kViewportProtection,
"ViewportProtection",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kNewGetDisplayMediaPickerOrder,
"NewGetDisplayMediaPickerOrder",
diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/third_party/blink/public/platform/web_content_settings_client.h
--- a/third_party/blink/public/platform/web_content_settings_client.h
+++ b/third_party/blink/public/platform/web_content_settings_client.h
@@ -103,6 +103,8 @@ class WebContentSettingsClient {
virtual bool AllowWebRTC(bool default_value) { return default_value; }
+ virtual bool AllowViewportChange(bool default_value) { return default_value; }
+
// Reports that passive mixed content was found at the provided URL.
virtual void PassiveInsecureContentFound(const WebURL&) {}
diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc
--- a/third_party/blink/renderer/core/frame/local_dom_window.cc
+++ b/third_party/blink/renderer/core/frame/local_dom_window.cc
@@ -2224,6 +2224,7 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
// var w = window.open()
// var not_emulated_screen_info = w.screen
bool protection_enabled = base::FeatureList::IsEnabled(features::kViewportProtection);
+ protection_enabled |= GetFrame()->GetContentSettingsClient()->AllowViewportChange(false);
result.frame->GetPage()->CalculateEmulatedScreenSetting(
To<LocalFrame>(result.frame),
/*force*/ protection_enabled);
diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc
--- a/third_party/blink/renderer/core/page/page.cc
+++ b/third_party/blink/renderer/core/page/page.cc
@@ -887,6 +887,8 @@ void Page::UpdateAcceleratedCompositingSettings() {
void Page::CalculateEmulatedScreenSetting(LocalFrame* frame, bool force) {
bool isEnabled = base::FeatureList::IsEnabled(features::kViewportProtection);
+ blink::WebContentSettingsClient* settings = frame->GetContentSettingsClient();
+ isEnabled |= (settings && settings->AllowViewportChange(false));
if (isEnabled || force) {
// this is the maximum (and minimum) value which in percentage
// corresponds to +- 0.03%
--
2.25.1
@@ -0,0 +1,636 @@
From: Your Name <you@example.com>
Date: Tue, 20 Dec 2022 11:06:42 +0000
Subject: Viewport Protection flag
---
chrome/browser/about_flags.cc | 5 ++
chrome/browser/flag_descriptions.cc | 6 ++
chrome/browser/flag_descriptions.h | 3 +
third_party/blink/common/features.cc | 4 +
third_party/blink/public/common/features.h | 3 +
.../common/widget/device_emulation_params.h | 6 +-
.../core/css/resolver/style_resolver.cc | 10 ++-
.../blink/renderer/core/events/mouse_event.h | 19 ++++-
.../renderer/core/events/pointer_event.h | 11 +++
.../renderer/core/exported/web_view_impl.cc | 2 +-
.../renderer/core/frame/local_dom_window.cc | 28 ++++++-
.../blink/renderer/core/frame/local_frame.cc | 12 ++-
.../blink/renderer/core/frame/local_frame.h | 6 +-
.../core/frame/screen_metrics_emulator.cc | 18 ++++-
.../core/frame/screen_metrics_emulator.h | 14 ++++
.../core/frame/web_frame_widget_impl.cc | 8 ++
.../core/frame/web_remote_frame_impl.cc | 3 +-
.../blink/renderer/core/input/touch.cc | 17 ++++-
third_party/blink/renderer/core/page/page.cc | 76 +++++++++++++++++++
third_party/blink/renderer/core/page/page.h | 7 ++
20 files changed, 241 insertions(+), 17 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
@@ -7627,6 +7627,11 @@ const FeatureEntry kFeatureEntries[] = {
"PaintPreviewShowOnStartup")},
#endif // BUILDFLAG(ENABLE_PAINT_PREVIEW) && BUILDFLAG(IS_ANDROID)
+ {"viewport-protection",
+ flag_descriptions::kViewportProtectionName,
+ flag_descriptions::kViewportProtectionDescription, kOsAll,
+ FEATURE_VALUE_TYPE(blink::features::kViewportProtection)},
+
#if BUILDFLAG(IS_ANDROID)
{"block-external-form-redirects-no-gesture",
flag_descriptions::kIntentBlockExternalFormRedirectsNoGestureName,
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
@@ -6847,6 +6847,12 @@ const char kPaintPreviewStartupDescription[] =
"instead.";
#endif // ENABLE_PAINT_PREVIEW && BUILDFLAG(IS_ANDROID)
+const char kViewportProtectionName[] = "Viewport Protection";
+const char kViewportProtectionDescription[] =
+ "Scale the viewport and the screen by a random factor to prevent "
+ "coordinate-based fingerprinting scripts. The factor is changed at each "
+ "change of origin.";
+
#if BUILDFLAG(ENABLE_WEBUI_TAB_STRIP)
const char kWebUITabStripFlagId[] = "webui-tab-strip";
const char kWebUITabStripName[] = "WebUI tab strip";
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
@@ -3948,6 +3948,9 @@ extern const char kPaintPreviewStartupName[];
extern const char kPaintPreviewStartupDescription[];
#endif // ENABLE_PAINT_PREVIEW && BUILDFLAG(IS_ANDROID)
+extern const char kViewportProtectionName[];
+extern const char kViewportProtectionDescription[];
+
#if BUILDFLAG(ENABLE_WEBUI_TAB_STRIP)
extern const char kWebUITabStripFlagId[];
extern const char kWebUITabStripName[];
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
@@ -1637,6 +1637,10 @@ BASE_FEATURE(kDocumentEventNodePathCaching,
"DocumentEventNodePathCaching",
base::FEATURE_DISABLED_BY_DEFAULT);
+BASE_FEATURE(kViewportProtection,
+ "ViewportProtection",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
BASE_FEATURE(kNewGetDisplayMediaPickerOrder,
"NewGetDisplayMediaPickerOrder",
base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h
--- a/third_party/blink/public/common/features.h
+++ b/third_party/blink/public/common/features.h
@@ -867,6 +867,9 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kThreadedBodyLoader);
// If enabled, will cache for each node's EventPath::NodePath in document.
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kDocumentEventNodePathCaching);
+// Enable blink viewport protection
+BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kViewportProtection);
+
// When an application calls getDisplayMedia(), a media-picker is displayed
// to the user, allowing them to share a tab, a window or a screen.
// * If this flag is enabled, the order is - tabs, windows, screens.
diff --git a/third_party/blink/public/common/widget/device_emulation_params.h b/third_party/blink/public/common/widget/device_emulation_params.h
--- a/third_party/blink/public/common/widget/device_emulation_params.h
+++ b/third_party/blink/public/common/widget/device_emulation_params.h
@@ -19,6 +19,9 @@ namespace blink {
struct DeviceEmulationParams {
mojom::EmulatedScreenType screen_type = mojom::EmulatedScreenType::kDesktop;
+ // Forces screen recalculation the same way as mobile
+ bool force_mobile_calc = false;
+
// Emulated screen size. Typically full / physical size of the device screen
// in DIP. Empty size means using default value: original one for kDesktop
// screen position, equal to |view_size| for kMobile.
@@ -71,7 +74,8 @@ inline bool operator==(const DeviceEmulationParams& a,
a.screen_orientation_angle == b.screen_orientation_angle &&
a.viewport_offset == b.viewport_offset &&
a.viewport_scale == b.viewport_scale &&
- a.window_segments == b.window_segments;
+ a.window_segments == b.window_segments &&
+ a.force_mobile_calc == b.force_mobile_calc;
}
inline bool operator!=(const DeviceEmulationParams& a,
diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
--- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
@@ -1557,8 +1557,14 @@ scoped_refptr<ComputedStyle> StyleResolver::InitialStyleForElement() const {
initial_style->SetRtlOrdering(
GetDocument().VisuallyOrdered() ? EOrder::kVisual : EOrder::kLogical);
- initial_style->SetZoom(InitialZoom());
- initial_style->SetEffectiveZoom(initial_style->Zoom());
+ if (GetDocument().GetPage() && GetDocument().GetPage()->IsScreenEmulated()) {
+ // hides the zoom override to the dom on the html tag
+ initial_style->SetZoom(1);
+ initial_style->SetEffectiveZoom(InitialZoom());
+ } else {
+ initial_style->SetZoom(InitialZoom());
+ initial_style->SetEffectiveZoom(initial_style->Zoom());
+ }
initial_style->SetInForcedColorsMode(GetDocument().InForcedColorsMode());
initial_style->SetTapHighlightColor(
ComputedStyleInitialValues::InitialTapHighlightColor());
diff --git a/third_party/blink/renderer/core/events/mouse_event.h b/third_party/blink/renderer/core/events/mouse_event.h
--- a/third_party/blink/renderer/core/events/mouse_event.h
+++ b/third_party/blink/renderer/core/events/mouse_event.h
@@ -31,6 +31,7 @@
#include "third_party/blink/renderer/core/dom/events/simulated_click_options.h"
#include "third_party/blink/renderer/core/events/ui_event_with_key_state.h"
#include "third_party/blink/renderer/platform/wtf/casting.h"
+#include "third_party/blink/renderer/core/page/page.h"
namespace blink {
@@ -143,8 +144,22 @@ class CORE_EXPORT MouseEvent : public UIEventWithKeyState {
// Note that these values are adjusted to counter the effects of zoom, so that
// values exposed via DOM APIs are invariant under zooming.
- virtual double screenX() const { return std::floor(screen_x_); }
- virtual double screenY() const { return std::floor(screen_y_); }
+ virtual double screenX() const {
+ if (view() && view()->GetFrame() &&
+ view()->GetFrame()->GetPage() &&
+ view()->GetFrame()->GetPage()->IsScreenEmulated()) {
+ return std::floor(page_x_);
+ }
+ return std::floor(screen_x_);
+ }
+ virtual double screenY() const {
+ if (view() && view()->GetFrame() &&
+ view()->GetFrame()->GetPage() &&
+ view()->GetFrame()->GetPage()->IsScreenEmulated()) {
+ return std::floor(page_y_);
+ }
+ return std::floor(screen_y_);
+ }
virtual double clientX() const { return std::floor(client_x_); }
virtual double clientY() const { return std::floor(client_y_); }
diff --git a/third_party/blink/renderer/core/events/pointer_event.h b/third_party/blink/renderer/core/events/pointer_event.h
--- a/third_party/blink/renderer/core/events/pointer_event.h
+++ b/third_party/blink/renderer/core/events/pointer_event.h
@@ -9,6 +9,7 @@
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/events/mouse_event.h"
#include "third_party/blink/renderer/platform/wtf/casting.h"
+#include "third_party/blink/renderer/core/page/page.h"
namespace blink {
@@ -57,11 +58,21 @@ class CORE_EXPORT PointerEvent : public MouseEvent {
double screenX() const override {
if (ShouldHaveIntegerCoordinates())
return MouseEvent::screenX();
+ if (view() && view()->GetFrame() &&
+ view()->GetFrame()->GetPage() &&
+ view()->GetFrame()->GetPage()->IsScreenEmulated()) {
+ return page_x_;
+ }
return screen_x_;
}
double screenY() const override {
if (ShouldHaveIntegerCoordinates())
return MouseEvent::screenY();
+ if (view() && view()->GetFrame() &&
+ view()->GetFrame()->GetPage() &&
+ view()->GetFrame()->GetPage()->IsScreenEmulated()) {
+ return page_y_;
+ }
return screen_y_;
}
double clientX() const override {
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc
--- a/third_party/blink/renderer/core/exported/web_view_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
@@ -1031,7 +1031,7 @@ WebPagePopupImpl* WebViewImpl::OpenPagePopup(PagePopupClient* client) {
page_popup_ = WebPagePopupImpl::Create(
std::move(popup_widget_host), std::move(widget_host),
std::move(widget_receiver), this, agent_group_scheduler,
- opener_widget->GetOriginalScreenInfos(), client);
+ opener_widget->GetScreenInfos(), client);
EnablePopupMouseWheelEventListener(web_opener_frame->LocalRoot());
return page_popup_.get();
}
diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc
--- a/third_party/blink/renderer/core/frame/local_dom_window.cc
+++ b/third_party/blink/renderer/core/frame/local_dom_window.cc
@@ -1437,6 +1437,11 @@ int LocalDOMWindow::outerHeight() const {
if (!page)
return 0;
+ // If screen is emulated and this frame is remote cross-origin
+ // return innerHeight
+ if (page->IsScreenEmulated() && frame->IsCrossOriginToOutermostMainFrame())
+ return innerHeight();
+
ChromeClient& chrome_client = page->GetChromeClient();
if (page->GetSettings().GetReportScreenSizeInPhysicalPixelsQuirk()) {
return static_cast<int>(
@@ -1462,6 +1467,11 @@ int LocalDOMWindow::outerWidth() const {
if (!page)
return 0;
+ // If screen is emulated and this frame is remote cross-origin
+ // return innerWidth
+ if (page->IsScreenEmulated() && frame->IsCrossOriginToOutermostMainFrame())
+ return innerWidth();
+
ChromeClient& chrome_client = page->GetChromeClient();
if (page->GetSettings().GetReportScreenSizeInPhysicalPixelsQuirk()) {
return static_cast<int>(
@@ -1650,7 +1660,8 @@ double LocalDOMWindow::devicePixelRatio() const {
if (!GetFrame())
return 0.0;
- return GetFrame()->DevicePixelRatio();
+ // never send the zoom factor override value
+ return GetFrame()->DevicePixelRatio(/*with_zoom_factor*/false);
}
void LocalDOMWindow::scrollBy(double x, double y) const {
@@ -2203,6 +2214,21 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
if (!completed_url.IsEmpty() || result.new_window)
result.frame->Navigate(frame_request, WebFrameLoadType::kStandard);
+ if (result.frame->IsLocalFrame()) {
+ // we need to use opener setting when opening a iframe without url
+ // (as "about:blank") to force emulated screen
+ // since result.frame.GetContentSettingsClient()->AllowViewportChange()
+ // in the Page::DidCommitLoad() event returns false for these urls
+ //
+ // prevent this js code:
+ // var w = window.open()
+ // var not_emulated_screen_info = w.screen
+ bool protection_enabled = base::FeatureList::IsEnabled(features::kViewportProtection);
+ result.frame->GetPage()->CalculateEmulatedScreenSetting(
+ To<LocalFrame>(result.frame),
+ /*force*/ protection_enabled);
+ }
+
// TODO(japhet): window-open-noopener.html?_top and several tests in
// html/browsers/windows/browsing-context-names/ appear to require that
// the special case target names (_top, _parent, _self) ignore opener
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
@@ -1278,6 +1278,10 @@ gfx::SizeF LocalFrame::ResizePageRectsKeepingRatio(
return gfx::SizeF(result_width, result_height);
}
+void LocalFrame::SetPageZoomFactorBaseValue(float factor) {
+ page_zoom_factor_base_value_ = factor;
+}
+
void LocalFrame::SetPageZoomFactor(float factor) {
SetPageAndTextZoomFactors(factor, text_zoom_factor_);
}
@@ -1417,12 +1421,16 @@ device::mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() {
return mojo_handler_->GetDevicePosture();
}
-double LocalFrame::DevicePixelRatio() const {
+double LocalFrame::DevicePixelRatio(bool with_zoom_factor) const {
if (!page_)
return 0;
double ratio = page_->InspectorDeviceScaleFactorOverride();
- ratio *= PageZoomFactor();
+ // with_zoom_factor is default true
+ if (with_zoom_factor)
+ ratio *= PageZoomFactor();
+ else
+ ratio = page_zoom_factor_;
return ratio;
}
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h
--- a/third_party/blink/renderer/core/frame/local_frame.h
+++ b/third_party/blink/renderer/core/frame/local_frame.h
@@ -381,13 +381,14 @@ class CORE_EXPORT LocalFrame final
void SetInViewSourceMode(bool = true);
void SetPageZoomFactor(float);
- float PageZoomFactor() const { return page_zoom_factor_; }
+ void SetPageZoomFactorBaseValue(float factor);
+ float PageZoomFactor() const { return page_zoom_factor_ + page_zoom_factor_base_value_; }
void SetTextZoomFactor(float);
float TextZoomFactor() const { return text_zoom_factor_; }
void SetPageAndTextZoomFactors(float page_zoom_factor,
float text_zoom_factor);
- double DevicePixelRatio() const;
+ double DevicePixelRatio(bool with_zoom_factor = true) const;
// Informs the local root's document and its local descendant subtree that a
// media query value changed.
@@ -934,6 +935,7 @@ class CORE_EXPORT LocalFrame final
unsigned hidden_ : 1;
float page_zoom_factor_;
+ float page_zoom_factor_base_value_ = 0;
float text_zoom_factor_;
Member<CoreProbeSink> probe_sink_;
diff --git a/third_party/blink/renderer/core/frame/screen_metrics_emulator.cc b/third_party/blink/renderer/core/frame/screen_metrics_emulator.cc
--- a/third_party/blink/renderer/core/frame/screen_metrics_emulator.cc
+++ b/third_party/blink/renderer/core/frame/screen_metrics_emulator.cc
@@ -34,6 +34,7 @@ void ScreenMetricsEmulator::Trace(Visitor* vistor) const {
}
void ScreenMetricsEmulator::DisableAndApply() {
+ override_screen_type_ = false;
frame_widget_->SetScreenMetricsEmulationParameters(false, emulation_params_);
frame_widget_->SetScreenRects(original_view_screen_rect_,
original_window_screen_rect_);
@@ -45,7 +46,16 @@ void ScreenMetricsEmulator::DisableAndApply() {
void ScreenMetricsEmulator::ChangeEmulationParams(
const DeviceEmulationParams& params) {
+ if (!params.force_mobile_calc) {
+ // user has activated device emulator via devtools
+ override_screen_type_ = true;
+ // we need to save requested value
+ last_screen_type_ = params.screen_type;
+ }
emulation_params_ = params;
+ if (override_screen_type_) {
+ emulation_params_.screen_type = last_screen_type_;
+ }
Apply();
}
@@ -163,6 +173,9 @@ void ScreenMetricsEmulator::Apply() {
frame_widget_->SetScreenInfoAndSize(emulated_screen_infos,
/*widget_size=*/widget_size,
/*visible_viewport_size=*/widget_size);
+
+ // save emulated window size
+ window_size_ = window_size;
}
void ScreenMetricsEmulator::UpdateVisualProperties(
@@ -191,9 +204,8 @@ void ScreenMetricsEmulator::OnUpdateScreenRects(
const gfx::Rect& window_screen_rect) {
original_view_screen_rect_ = view_screen_rect;
original_window_screen_rect_ = window_screen_rect;
- if (emulating_desktop()) {
- Apply();
- }
+ // needed as we need browser ui size
+ Apply();
}
} // namespace blink
diff --git a/third_party/blink/renderer/core/frame/screen_metrics_emulator.h b/third_party/blink/renderer/core/frame/screen_metrics_emulator.h
--- a/third_party/blink/renderer/core/frame/screen_metrics_emulator.h
+++ b/third_party/blink/renderer/core/frame/screen_metrics_emulator.h
@@ -61,6 +61,11 @@ class ScreenMetricsEmulator : public GarbageCollected<ScreenMetricsEmulator> {
// Emulated position of the main frame widget (aka view) rect.
gfx::Point ViewRectOrigin();
+ // Get emulated window size
+ const gfx::Size& ViewWindowSize() const {
+ return window_size_;
+ }
+
// Disables emulation and applies non-emulated values to the
// WebFrameWidgetImpl. Call this before destroying the ScreenMetricsEmulator.
void DisableAndApply();
@@ -77,6 +82,8 @@ class ScreenMetricsEmulator : public GarbageCollected<ScreenMetricsEmulator> {
private:
bool emulating_desktop() const {
+ if (emulation_params_.force_mobile_calc == true)
+ return false;
return emulation_params_.screen_type ==
mojom::blink::EmulatedScreenType::kDesktop;
}
@@ -89,6 +96,10 @@ class ScreenMetricsEmulator : public GarbageCollected<ScreenMetricsEmulator> {
// Parameters as passed by `WebFrameWidgetImpl::EnableDeviceEmulation()`
DeviceEmulationParams emulation_params_;
+ // Used to remember the user's choice if devtools are activated
+ bool override_screen_type_ = false;
+ mojom::EmulatedScreenType last_screen_type_;
+
// Original values to restore back after emulation ends.
display::ScreenInfos original_screen_infos_;
gfx::Size original_widget_size_;
@@ -96,6 +107,9 @@ class ScreenMetricsEmulator : public GarbageCollected<ScreenMetricsEmulator> {
gfx::Rect original_view_screen_rect_;
gfx::Rect original_window_screen_rect_;
std::vector<gfx::Rect> original_root_window_segments_;
+
+ // Actual size after apply
+ gfx::Size window_size_;
};
} // namespace blink
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
--- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
@@ -1578,6 +1578,14 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
if (auto* device_emulator = DeviceEmulator()) {
device_emulator->UpdateVisualProperties(visual_properties);
+ // Shink the view according to browsercontrols
+ size_ = widget_base_->DIPsToCeiledBlinkSpace(
+ device_emulator->ViewWindowSize());
+ View()->ResizeWithBrowserControls(
+ size_.value(),
+ widget_base_->DIPsToCeiledBlinkSpace(
+ widget_base_->VisibleViewportSizeInDIPs()),
+ visual_properties.browser_controls_params);
return;
}
diff --git a/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc b/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc
--- a/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc
@@ -349,7 +349,8 @@ void WebRemoteFrameImpl::InitializeFrameVisualProperties(
visual_properties.page_scale_factor = ancestor_widget->PageScaleInMainFrame();
visual_properties.is_pinch_gesture_active =
ancestor_widget->PinchGestureActiveInMainFrame();
- visual_properties.screen_infos = ancestor_widget->GetOriginalScreenInfos();
+ // for a cross-site iframe, set the actual (original or emulated) screen infos
+ visual_properties.screen_infos = ancestor_widget->GetScreenInfos();
visual_properties.visible_viewport_size =
ancestor_widget->VisibleViewportSizeInDIPs();
const WebVector<gfx::Rect>& window_segments =
diff --git a/third_party/blink/renderer/core/input/touch.cc b/third_party/blink/renderer/core/input/touch.cc
--- a/third_party/blink/renderer/core/input/touch.cc
+++ b/third_party/blink/renderer/core/input/touch.cc
@@ -30,6 +30,7 @@
#include "third_party/blink/renderer/core/frame/local_frame_view.h"
#include "third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h"
#include "ui/gfx/geometry/point_f.h"
+#include "third_party/blink/renderer/core/page/page.h"
namespace blink {
@@ -75,7 +76,13 @@ Touch::Touch(LocalFrame* frame,
radius_(radius),
rotation_angle_(rotation_angle),
force_(force),
- absolute_location_(PageToAbsolute(frame, page_pos)) {}
+ absolute_location_(PageToAbsolute(frame, page_pos)) {
+ if (frame->GetPage() && frame->GetPage()->IsScreenEmulated()) {
+ // use page_pos instead of screen_pos
+ screen_pos_.set_x(page_pos_.x());
+ screen_pos_.set_y(page_pos_.y());
+ }
+ }
Touch::Touch(EventTarget* target,
int identifier,
@@ -105,7 +112,13 @@ Touch::Touch(LocalFrame* frame, const TouchInit* initializer)
radius_(initializer->radiusX(), initializer->radiusY()),
rotation_angle_(initializer->rotationAngle()),
force_(initializer->force()),
- absolute_location_(PageToAbsolute(frame, page_pos_)) {}
+ absolute_location_(PageToAbsolute(frame, page_pos_)) {
+ if (frame->GetPage() && frame->GetPage()->IsScreenEmulated()) {
+ // use page_pos instead of screen_pos
+ screen_pos_.set_x(page_pos_.x());
+ screen_pos_.set_y(page_pos_.y());
+ }
+ }
Touch* Touch::CloneWithNewTarget(EventTarget* event_target) const {
return MakeGarbageCollected<Touch>(
diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc
--- a/third_party/blink/renderer/core/page/page.cc
+++ b/third_party/blink/renderer/core/page/page.cc
@@ -23,6 +23,7 @@
#include "base/compiler_specific.h"
#include "base/feature_list.h"
+#include "build/build_config.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/mojom/frame/lifecycle.mojom-blink-forward.h"
#include "third_party/blink/public/platform/platform.h"
@@ -92,6 +93,9 @@
#include "third_party/blink/renderer/platform/scheduler/public/agent_group_scheduler.h"
#include "third_party/blink/renderer/platform/scheduler/public/frame_scheduler.h"
#include "third_party/skia/include/core/SkColor.h"
+#include "base/rand_util.h"
+#include "third_party/blink/public/common/widget/device_emulation_params.h"
+#include "third_party/blink/renderer/core/exported/web_view_impl.h"
namespace blink {
@@ -881,7 +885,79 @@ void Page::UpdateAcceleratedCompositingSettings() {
}
}
+void Page::CalculateEmulatedScreenSetting(LocalFrame* frame, bool force) {
+ bool isEnabled = base::FeatureList::IsEnabled(features::kViewportProtection);
+ if (isEnabled || force) {
+ // this is the maximum (and minimum) value which in percentage
+ // corresponds to +- 0.03%
+ // more or less 3-6 pixels according to the resolution 300-600px
+ // little enough not to change the page view the user is used to,
+ // but enough to change all bounds, especially those in floating point
+ const int max_range = 300;
+
+ // only for the local main frame
+ // the other local frames use the values from main
+ // while the remote ones do not communicate the values to the parent
+ // (and they will be local main frame in their page context)
+ if (main_frame_ == frame) {
+ // set the scale factor
+ double scale_factor = 0;
+ if (override_window_scale_factor_ != 0) {
+ scale_factor = override_window_scale_factor_;
+ } else {
+ // we allow the increase or decrease of the screen size (and view)
+ scale_factor = 1.0 + base::RandInt(-max_range, max_range) / 10000.0;
+ }
+
+ // save the value, so a same domain navigation will reuse same value
+ override_window_scale_factor_ = scale_factor;
+
+ // we divide the value in half: half for the screen and the view,
+ // which then the latter will be scaled again by the zoom
+ double half_random = (scale_factor - 1.0) / 2.0;
+
+ // set emulation params
+ DeviceEmulationParams params;
+ // the screen size is changed to match the widget size with force_mobile_calc
+ params.force_mobile_calc = true;
+ params.screen_type = mojom::EmulatedScreenType::kDesktop;
+ // scale the widget size (and the screen size) by half_random scale factor
+ params.scale = 1 / (1.0 + half_random);
+
+ GetChromeClient().GetWebView()->EnableDeviceEmulation(params);
+
+ // set zoom factor
+ // the zoom factor is used by all the functions that manage the bounds,
+ // which is multiplied by the values in pixels when computed
+ // we do not modify the actual value but only the one used internally
+ // it becomes the base value used as the zoom property of the css, but
+ // it does not appear on the dom (which always remains 1.0)
+ double zoom_factor = 0;
+ if (override_zoom_factor_ != 0) {
+ zoom_factor = override_zoom_factor_;
+ } else {
+ // we only allow the page size to decrease, otherwise the scroll
+ // bars would not be visible
+ zoom_factor = base::RandInt(0, max_range/2) / 10000.0;
+ }
+
+ // save the value, so a same domain navigation will reuse same value
+ override_zoom_factor_ = zoom_factor;
+
+ frame->SetPageZoomFactorBaseValue(zoom_factor);
+ }
+ is_screen_emulated = true;
+ } else {
+ if (is_screen_emulated && main_frame_ == frame) {
+ GetChromeClient().GetWebView()->DisableDeviceEmulation();
+ frame->SetPageZoomFactorBaseValue(0);
+ }
+ is_screen_emulated = false;
+ }
+}
+
void Page::DidCommitLoad(LocalFrame* frame) {
+ CalculateEmulatedScreenSetting(frame);
if (main_frame_ == frame) {
GetConsoleMessageStorage().Clear();
GetInspectorIssueStorage().Clear();
diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/renderer/core/page/page.h
--- a/third_party/blink/renderer/core/page/page.h
+++ b/third_party/blink/renderer/core/page/page.h
@@ -410,6 +410,9 @@ class CORE_EXPORT Page final : public GarbageCollected<Page>,
}
mojom::blink::FencedFrameMode FencedFrameMode() { return fenced_frame_mode_; }
+ void CalculateEmulatedScreenSetting(LocalFrame* frame, bool force = false);
+ bool IsScreenEmulated() { return is_screen_emulated; }
+
private:
friend class ScopedPagePauser;
@@ -539,6 +542,10 @@ class CORE_EXPORT Page final : public GarbageCollected<Page>,
// browser side FrameTree has the FrameTree::Type of kFencedFrame.
bool is_fenced_frame_tree_ = false;
+ bool is_screen_emulated = false;
+ double override_window_scale_factor_ = 0;
+ double override_zoom_factor_ = 0;
+
// If the page is hosted inside an MPArch fenced frame, this tracks the
// mode that the fenced frame is set to. This will always be set to kDefault
// for the ShadowDOM implementation of fenced frames.
--
2.25.1
@@ -9,9 +9,9 @@ Subject: temporary fix libaom build error
diff --git a/third_party/libaom/BUILD.gn b/third_party/libaom/BUILD.gn
--- a/third_party/libaom/BUILD.gn
+++ b/third_party/libaom/BUILD.gn
@@ -260,11 +260,11 @@ static_library("libaom") {
# will detect CPU
sources += aom_ports_arm_sources
@@ -258,11 +258,11 @@ static_library("libaom") {
cpu_arch_full == "arm-neon-cpu-detect") {
deps += [ ":libaom_intrinsics_neon" ]
}
- if (current_cpu == "arm64" || current_cpu == "arm") {
- # This is needed by all arm boards due to aom_arm_cpu_caps()
@@ -3,39 +3,39 @@ Date: Wed, 19 Oct 2022 13:01:32 +0000
Subject: ungoogled-chr no special hosts/domains (add fixup)
---
chrome/browser/BUILD.gn | 8 -
.../android/metrics/uma_session_stats.cc | 10 --
chrome/browser/browser_process_impl.cc | 1 -
.../browser/chrome_content_browser_client.cc | 13 +-
chrome/browser/extensions/BUILD.gn | 1 -
.../log_sources/chrome_internal_log_source.cc | 5 -
chrome/browser/first_run/first_run.cc | 9 --
chrome/browser/google/BUILD.gn | 2 +-
.../long_screenshots_tab_service.cc | 22 ---
.../metrics/chrome_metrics_service_client.cc | 2 +-
.../chrome_metrics_services_manager_client.cc | 5 +-
.../metrics/metrics_reporting_state.cc | 76 ---------
.../net/system_network_context_manager.cc | 1 -
.../modules/recipes/recipes_service.cc | 3 +-
.../one_google_bar_loader_impl.cc | 3 +-
.../new_tab_page/promos/promo_service.cc | 6 +-
.../page_load_metrics_initialize.cc | 2 -
...hrome_browser_main_extra_parts_profiles.cc | 1 -
.../ui_thread_search_terms_data.cc | 4 -
chrome/browser/ui/BUILD.gn | 1 -
.../ui/webui/new_tab_page/new_tab_page_ui.cc | 5 -
.../webui/settings/reset_settings_handler.cc | 1 -
.../upgrade_detector/upgrade_detector_impl.cc | 2 +-
chrome/common/BUILD.gn | 2 -
.../url_loader_throttle_provider_impl.cc | 7 -
chrome/test/BUILD.gn | 1 -
components/google/core/common/google_util.cc | 151 +-----------------
components/google/core/common/google_util.h | 14 +-
.../search_engines/search_terms_data.cc | 4 +-
components/search_provider_logos/BUILD.gn | 2 -
.../logo_service_impl.cc | 16 +-
components/url_matcher/url_util.cc | 83 ----------
32 files changed, 20 insertions(+), 443 deletions(-)
chrome/browser/BUILD.gn | 8 --
.../android/metrics/uma_session_stats.cc | 10 ---
chrome/browser/browser_process_impl.cc | 1 -
.../browser/chrome_content_browser_client.cc | 13 +--
chrome/browser/extensions/BUILD.gn | 1 -
.../log_sources/chrome_internal_log_source.cc | 5 --
chrome/browser/first_run/first_run.cc | 9 --
chrome/browser/google/BUILD.gn | 2 +-
.../long_screenshots_tab_service.cc | 22 -----
.../metrics/chrome_metrics_service_client.cc | 2 +-
.../chrome_metrics_services_manager_client.cc | 5 +-
.../metrics/metrics_reporting_state.cc | 76 -----------------
.../net/system_network_context_manager.cc | 1 -
.../modules/recipes/recipes_service.cc | 3 +-
.../one_google_bar_loader_impl.cc | 3 +-
.../new_tab_page/promos/promo_service.cc | 6 +-
.../page_load_metrics_initialize.cc | 2 -
...hrome_browser_main_extra_parts_profiles.cc | 1 -
.../ui_thread_search_terms_data.cc | 4 -
chrome/browser/ui/BUILD.gn | 1 -
.../ui/webui/new_tab_page/new_tab_page_ui.cc | 5 --
.../webui/settings/reset_settings_handler.cc | 1 -
.../upgrade_detector/upgrade_detector_impl.cc | 2 +-
chrome/common/BUILD.gn | 2 -
.../url_loader_throttle_provider_impl.cc | 7 --
chrome/test/BUILD.gn | 1 -
components/google/core/common/google_util.cc | 70 +---------------
components/google/core/common/google_util.h | 10 +--
.../search_engines/search_terms_data.cc | 4 +-
components/search_provider_logos/BUILD.gn | 2 -
.../logo_service_impl.cc | 16 +---
components/url_matcher/url_util.cc | 83 -------------------
32 files changed, 19 insertions(+), 359 deletions(-)
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
@@ -67,7 +67,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"//chrome/common",
"//chrome/common:buildflags",
"//chrome/common:constants",
@@ -7692,8 +7686,6 @@ static_library("browser") {
@@ -7690,8 +7684,6 @@ static_library("browser") {
"supervised_user/supervised_user_constants.h",
"supervised_user/supervised_user_denylist.cc",
"supervised_user/supervised_user_denylist.h",
@@ -575,7 +575,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
diff --git a/components/google/core/common/google_util.cc b/components/google/core/common/google_util.cc
--- a/components/google/core/common/google_util.cc
+++ b/components/google/core/common/google_util.cc
@@ -29,7 +29,7 @@ namespace google_util {
@@ -52,7 +52,7 @@ bool IsCanonicalHostGoogleHostname(base::StringPiece canonical_host,
// Global functions -----------------------------------------------------------
@@ -584,7 +584,7 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co
std::string GetGoogleLocale(const std::string& application_locale) {
// Google does not recognize "nb" for Norwegian Bokmal; it uses "no".
@@ -38,8 +38,7 @@ std::string GetGoogleLocale(const std::string& application_locale) {
@@ -61,8 +61,7 @@ std::string GetGoogleLocale(const std::string& application_locale) {
GURL AppendGoogleLocaleParam(const GURL& url,
const std::string& application_locale) {
@@ -594,47 +594,7 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co
}
std::string GetGoogleCountryCode(const GURL& google_homepage_url) {
@@ -83,156 +82,12 @@ bool IsYoutubeDomainUrl(const GURL& url, SubdomainPermission subdomain_permissio
}
bool IsGoogleAssociatedDomainUrl(const GURL& url) { // disabled on Bromite
- if ((true))
- return false;
-
- // Some domains don't have international TLD extensions, so testing for them
- // is very straightforward.
- static const char* kSuffixesToSetHeadersFor[] = {
- ".android.com",
- ".doubleclick.com",
- ".doubleclick.net",
- ".ggpht.com",
- ".googleadservices.com",
- ".googleapis.com",
- ".googlesyndication.com",
- ".googleusercontent.com",
- ".googlevideo.com",
- ".gstatic.com",
- ".litepages.googlezip.net",
- ".youtubekids.com",
- ".ytimg.com",
- };
- const std::string host = url.host();
- for (size_t i = 0; i < std::size(kSuffixesToSetHeadersFor); ++i) {
- if (base::EndsWith(host, kSuffixesToSetHeadersFor[i],
- base::CompareCase::INSENSITIVE_ASCII)) {
- return true;
- }
- }
-
- // Exact hostnames in lowercase to set headers for.
- static const char* kHostsToSetHeadersFor[] = {
- "googleweblight.com",
- };
- for (size_t i = 0; i < std::size(kHostsToSetHeadersFor); ++i) {
- if (base::EqualsCaseInsensitiveASCII(host, kHostsToSetHeadersFor[i]))
- return true;
- }
-
@@ -133,69 +132,4 @@ bool IsGoogleAssociatedDomainUrl(const GURL& url) {
return false;
}
@@ -664,9 +624,9 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co
- return *kGoogleRegisterableDomains;
-}
-
GURL AppendToAsyncQueryParam(const GURL& url,
const std::string& key,
const std::string& value) {
-GURL AppendToAsyncQueryParam(const GURL& url,
- const std::string& key,
- const std::string& value) {
- const std::string param_name = "async";
- const std::string key_value = key + ":" + value;
- bool replaced = false;
@@ -701,54 +661,6 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co
- GURL::Replacements replacements;
- replacements.SetQueryStr(output);
- return url.ReplaceComponents(replacements);
+ return url;
}
-
-GoogleSearchMode GoogleSearchModeFromUrl(const GURL& url) {
- static_assert(GoogleSearchMode::kMaxValue == GoogleSearchMode::kFlights,
- "This function should be updated if new values are added to "
- "GoogleSearchMode");
-
- base::StringPiece query_str = url.query_piece();
- url::Component query(0, static_cast<int>(url.query_piece().length()));
- url::Component key, value;
- GoogleSearchMode mode = GoogleSearchMode::kUnspecified;
- while (url::ExtractQueryKeyValue(query_str.data(), &query, &key, &value)) {
- base::StringPiece key_str = query_str.substr(key.begin, key.len);
- if (key_str != "tbm") {
- continue;
- }
- if (mode != GoogleSearchMode::kUnspecified) {
- // There is more than one tbm parameter, which is not expected. Return
- // kUnknown to signify the result can't be trusted.
- return GoogleSearchMode::kUnknown;
- }
- base::StringPiece value_str = query_str.substr(value.begin, value.len);
- if (value_str == "isch") {
- mode = GoogleSearchMode::kImages;
- } else if (value_str == "web") {
- mode = GoogleSearchMode::kWeb;
- } else if (value_str == "nws") {
- mode = GoogleSearchMode::kNews;
- } else if (value_str == "shop") {
- mode = GoogleSearchMode::kShopping;
- } else if (value_str == "vid") {
- mode = GoogleSearchMode::kVideos;
- } else if (value_str == "bks") {
- mode = GoogleSearchMode::kBooks;
- } else if (value_str == "flm") {
- mode = GoogleSearchMode::kFlights;
- } else if (value_str == "lcl") {
- mode = GoogleSearchMode::kLocal;
- } else {
- mode = GoogleSearchMode::kUnknown;
- }
- }
- if (mode == GoogleSearchMode::kUnspecified) {
- // No tbm query parameter means this is the Web mode.
- mode = GoogleSearchMode::kWeb;
- }
- return mode;
-}
-
} // namespace google_util
@@ -779,17 +691,6 @@ diff --git a/components/google/core/common/google_util.h b/components/google/cor
// Appends the provided |key| and |value| pair to the "async" query param list,
// according to the format used by the Google servers:
//
@@ -154,10 +146,6 @@ GURL AppendToAsyncQueryParam(const GURL& url,
const std::string& key,
const std::string& value);
-// Returns Google Search mode used by the user. This corresponds to the tab
-// (e.g. web result, image results, video results, etc.) the user is on. This
-// information is extracted from the "tbm" query parameter on the Search URL.
-GoogleSearchMode GoogleSearchModeFromUrl(const GURL& url);
} // namespace google_util
diff --git a/components/search_engines/search_terms_data.cc b/components/search_engines/search_terms_data.cc
--- a/components/search_engines/search_terms_data.cc
+++ b/components/search_engines/search_terms_data.cc
@@ -0,0 +1,24 @@
From: Your Name <you@example.com>
Date: Wed, 28 Dec 2022 15:46:59 +0000
Subject: win disable annotate downloads
---
components/download/internal/common/download_file_impl.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/components/download/internal/common/download_file_impl.cc b/components/download/internal/common/download_file_impl.cc
--- a/components/download/internal/common/download_file_impl.cc
+++ b/components/download/internal/common/download_file_impl.cc
@@ -358,8 +358,8 @@ void DownloadFileImpl::RenameAndAnnotate(
std::unique_ptr<RenameParameters> parameters(new RenameParameters(
ANNOTATE_WITH_SOURCE_INFORMATION, full_path, std::move(callback)));
parameters->client_guid = client_guid;
- parameters->source_url = source_url;
- parameters->referrer_url = referrer_url;
+ parameters->source_url = GURL();
+ parameters->referrer_url = GURL();
parameters->remote_quarantine = std::move(remote_quarantine);
RenameWithRetryInternal(std::move(parameters));
}
--
2.25.1
@@ -0,0 +1,42 @@
From: Your Name <you@example.com>
Date: Wed, 28 Dec 2022 15:47:58 +0000
Subject: win enable HighEfficiencyMode by default
---
components/performance_manager/features.cc | 2 +-
components/performance_manager/user_tuning/prefs.cc | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/components/performance_manager/features.cc b/components/performance_manager/features.cc
--- a/components/performance_manager/features.cc
+++ b/components/performance_manager/features.cc
@@ -25,7 +25,7 @@ BASE_FEATURE(kBackgroundTabLoadingFromPerformanceManager,
BASE_FEATURE(kHighEfficiencyModeAvailable,
"HighEfficiencyModeAvailable",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kBatterySaverModeAvailable,
"BatterySaverModeAvailable",
diff --git a/components/performance_manager/user_tuning/prefs.cc b/components/performance_manager/user_tuning/prefs.cc
--- a/components/performance_manager/user_tuning/prefs.cc
+++ b/components/performance_manager/user_tuning/prefs.cc
@@ -23,7 +23,7 @@ const char kManagedTabDiscardingExceptions[] =
"performance_tuning.tab_discarding.exceptions.managed";
void RegisterLocalStatePrefs(PrefRegistrySimple* registry) {
- registry->RegisterBooleanPref(kHighEfficiencyModeEnabled, false);
+ registry->RegisterBooleanPref(kHighEfficiencyModeEnabled, true);
registry->RegisterIntegerPref(
kBatterySaverModeState,
static_cast<int>(BatterySaverModeState::kEnabledBelowThreshold));
@@ -48,4 +48,4 @@ BatterySaverModeState GetCurrentBatterySaverModeState(
return static_cast<BatterySaverModeState>(state);
}
-} // namespace performance_manager::user_tuning::prefs
\ No newline at end of file
+} // namespace performance_manager::user_tuning::prefs
--
2.25.1
@@ -0,0 +1,23 @@
From: Your Name <you@example.com>
Date: Wed, 28 Dec 2022 15:46:38 +0000
Subject: win enable pdf plugin
---
third_party/blink/renderer/core/frame/local_frame.cc | 2 ++
1 file changed, 2 insertions(+)
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
@@ -1929,7 +1929,9 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
}
PluginData* LocalFrame::GetPluginData() const {
+ if (!Loader().AllowPlugins())
return nullptr;
+ return GetPage()->GetPluginData();
}
void LocalFrame::SetAdTrackerForTesting(AdTracker* ad_tracker) {
--
2.25.1
@@ -84,7 +84,7 @@ 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
@@ -2502,9 +2502,9 @@
@@ -2501,9 +2501,9 @@
"expiry_milestone": 115
},
{
@@ -177,14 +177,14 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list.txt
--- a/gpu/config/gpu_workaround_list.txt
+++ b/gpu/config/gpu_workaround_list.txt
@@ -16,6 +16,7 @@ depth_stencil_renderbuffer_resize_emulation
@@ -15,6 +15,7 @@ decode_encode_srgb_for_generatemipmap
depth_stencil_renderbuffer_resize_emulation
disable_2d_canvas_auto_flush
disable_accelerated_av1_decode
disable_accelerated_av1_encode
+disable_aimagereader
disable_accelerated_av1_encode
disable_accelerated_h264_encode
disable_accelerated_hevc_decode
disable_accelerated_vp8_decode
diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
--- a/gpu/ipc/service/gpu_init.cc
+++ b/gpu/ipc/service/gpu_init.cc
@@ -231,28 +231,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
@@ -854,6 +854,11 @@ BASE_FEATURE(kMediaDrmPreprovisioningAtStartup,
"MediaDrmPreprovisioningAtStartup",
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -750,6 +750,11 @@ BASE_FEATURE(kHardwareSecureDecryptionExperiment,
// Allows automatically disabling hardware secure Content Decryption Module
// (CDM) after failures or crashes to fallback to software secure CDMs. If this
// feature is disabled, the fallback will never happen and users could be stuck
+// Enables the Android Image Reader path for Video decoding(for AVDA and MCVD)
+BASE_FEATURE(kAImageReaderVideoOutput,
+ "AImageReaderVideoOutput",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
// Enable picture in picture web api for android.
BASE_FEATURE(kPictureInPictureAPI,
"PictureInPictureAPI",
// in playback failures.
BASE_FEATURE(kHardwareSecureDecryptionFallback,
"HardwareSecureDecryptionFallback",
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
@@ -246,6 +246,7 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kMediaControlsExpandGesture);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kMediaDrmPersistentLicense);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kMediaDrmPreprovisioning);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kMediaDrmPreprovisioningAtStartup);
@@ -232,6 +232,7 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVp8TemporalLayerHWEncoding);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVp9kSVCHWEncoding);
#endif // defined(ARCH_CPU_X86_FAMILY) && BUILDFLAG(IS_CHROMEOS)
MEDIA_EXPORT BASE_DECLARE_FEATURE(kVideoBlitColorAccuracy);
+MEDIA_EXPORT BASE_DECLARE_FEATURE(kAImageReaderVideoOutput);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kCanPlayHls);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kPictureInPictureAPI);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kHlsPlayer);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kVp9kSVCHWDecoding);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kWakeLockOptimisationHiddenMuted);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kWebContentsCaptureHiDpi);
--
2.25.1
@@ -1,47 +0,0 @@
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
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../BundleToPersistableBundleConverter.java | 13 +++++++++++--
1 file changed, 11 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
@@ -4,6 +4,7 @@
package org.chromium.components.background_task_scheduler.internal;
+import android.os.Build;
import android.os.Bundle;
import android.os.PersistableBundle;
@@ -82,9 +83,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.25.1
-60
View File
@@ -1,60 +0,0 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sun, 16 Dec 2018 15:24:19 +0100
Subject: AV1 codec support
libaom build fixes (requires -fPIC)
Report AV1 as playable on Android
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
third_party/libaom/BUILD.gn | 6 ++++--
third_party/libaom/libaom_srcs.gni | 5 +++++
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/third_party/libaom/BUILD.gn b/third_party/libaom/BUILD.gn
--- a/third_party/libaom/BUILD.gn
+++ b/third_party/libaom/BUILD.gn
@@ -85,7 +85,7 @@ if (current_cpu == "x86" || (current_cpu == "x64" && !is_msan)) {
sources += aom_dsp_encoder_asm_sse2_x86_64
sources += aom_dsp_encoder_asm_ssse3_x86_64
}
- defines = [ "CHROMIUM" ]
+ defines = [ "CHROMIUM", "PIC" ]
include_dirs = libaom_include_dirs
}
@@ -197,7 +197,7 @@ if (current_cpu == "arm64" || cpu_arch_full == "arm-neon" ||
configs += [ "//build/config/compiler:no_chromium_code" ]
if (current_cpu == "arm") {
configs -= [ "//build/config/compiler:compiler_arm_fpu" ]
- cflags = [ "-mfpu=neon" ]
+ cflags = [ "-mfpu=neon", "-fPIC" ]
}
configs += [ ":libaom_config" ]
@@ -257,6 +257,8 @@ static_library("libaom") {
if (current_cpu == "arm64" || cpu_arch_full == "arm-neon" ||
cpu_arch_full == "arm-neon-cpu-detect") {
deps += [ ":libaom_intrinsics_neon" ]
+ # will detect CPU
+ sources += aom_ports_arm_sources
}
if (current_cpu == "arm64" || current_cpu == "arm") {
# This is needed by all arm boards due to aom_arm_cpu_caps()
diff --git a/third_party/libaom/libaom_srcs.gni b/third_party/libaom/libaom_srcs.gni
--- a/third_party/libaom/libaom_srcs.gni
+++ b/third_party/libaom/libaom_srcs.gni
@@ -635,6 +635,11 @@ aom_rc_interface_sources = [
"//third_party/libaom/source/libaom/test/yuv_video_source.h",
]
+aom_ports_arm_sources = [
+ "//third_party/libaom/source/libaom/aom_ports/arm_cpudetect.c",
+ "//third_party/libaom/source/libaom/aom_ports/arm.h",
+ ]
+
aom_rtcd_sources = [
"//third_party/libaom/source/libaom/aom_dsp/aom_dsp_rtcd.c",
"//third_party/libaom/source/libaom/aom_scale/aom_scale_rtcd.c",
--
2.25.1
@@ -5,17 +5,17 @@ Subject: Add AllowUserCertificates flag
Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../src/org/chromium/chrome/browser/app/ChromeActivity.java | 3 +++
.../chrome/browser/app/flags/ChromeCachedFlags.java | 1 +
chrome/browser/about_flags.cc | 6 +++++-
chrome/browser/flag_descriptions.cc | 5 +++++
chrome/browser/flag_descriptions.h | 3 +++
chrome/browser/flags/android/chrome_feature_list.cc | 5 +++++
chrome/browser/flags/android/chrome_feature_list.h | 1 +
.../chromium/chrome/browser/flags/CachedFeatureFlags.java | 1 +
.../chromium/chrome/browser/flags/ChromeFeatureList.java | 3 +++
net/android/java/src/org/chromium/net/X509Util.java | 5 +++++
10 files changed, 32 insertions(+), 1 deletion(-)
.../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 | 5 +++++
chrome/browser/flags/android/chrome_feature_list.h | 1 +
.../chromium/chrome/browser/flags/CachedFeatureFlags.java | 1 +
.../org/chromium/chrome/browser/flags/ChromeFeatureList.java | 3 +++
net/android/java/src/org/chromium/net/X509Util.java | 5 +++++
10 files changed, 31 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
@@ -51,19 +51,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/Chrom
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
@@ -3695,7 +3695,11 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kExtensionsOnChromeUrlsDescription, kOsAll,
SINGLE_VALUE_TYPE(extensions::switches::kExtensionsOnChromeURLs)},
#endif // ENABLE_EXTENSIONS
-#if BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(IS_ANDROID) // Bromite allow user certificates
@@ -8830,6 +8830,10 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(features::kWin10TabSearchCaptionButton)},
#endif // BUILDFLAG(IS_WIN)
+ {"allow-user-certificates",
+ flag_descriptions::kAllowUserCertificatesName,
+ flag_descriptions::kAllowUserCertificatesDescription, kOsAndroid,
+ FEATURE_VALUE_TYPE(chrome::android::kAllowUserCertificates)},
{"osk-resizes-visual-viewport-by-default",
flag_descriptions::kEnableOskResizesVisualViewportByDefaultName,
flag_descriptions::kEnableOskResizesVisualViewportByDefaultDescription,
{"omnibox-updated-connection-security-indicators",
flag_descriptions::kOmniboxUpdatedConnectionSecurityIndicatorsName,
flag_descriptions::kOmniboxUpdatedConnectionSecurityIndicatorsDescription,
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
@@ -95,7 +93,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -149,6 +149,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -148,6 +148,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&feed::kFeedNoViewCache,
&feed::kFeedReplaceAll,
&feed::kInterestFeedContentSuggestions,
@@ -103,28 +101,28 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
&feed::kInterestFeedV1ClicksAndViewsConditionalUpload,
&feed::kInterestFeedV2,
&feed::kInterestFeedV2Autoplay,
@@ -467,6 +468,10 @@ BASE_FEATURE(kAdaptiveButtonInTopToolbarCustomizationV2,
"AdaptiveButtonInTopToolbarCustomizationV2",
@@ -468,6 +469,10 @@ BASE_FEATURE(kAllowNewIncognitoTabIntents,
"AllowNewIncognitoTabIntents",
base::FEATURE_ENABLED_BY_DEFAULT);
+BASE_FEATURE(kAllowUserCertificates,
+ "AllowUserCertificates",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
BASE_FEATURE(kAddToHomescreenIPH,
"AddToHomescreenIPH",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kFocusOmniboxInIncognitoTabIntents,
"FocusOmniboxInIncognitoTabIntents",
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
@@ -12,6 +12,7 @@
namespace chrome {
namespace android {
+extern const base::Feature kAllowUserCertificates;
// Alphabetical:
BASE_DECLARE_FEATURE(kAdaptiveButtonInTopToolbar);
@@ -17,6 +17,7 @@ BASE_DECLARE_FEATURE(kAdaptiveButtonInTopToolbar);
BASE_DECLARE_FEATURE(kAdaptiveButtonInTopToolbarCustomizationV2);
BASE_DECLARE_FEATURE(kAddToHomescreenIPH);
BASE_DECLARE_FEATURE(kAllowNewIncognitoTabIntents);
+BASE_DECLARE_FEATURE(kAllowUserCertificates);
BASE_DECLARE_FEATURE(kAndroidScrollOptimizations);
BASE_DECLARE_FEATURE(kAndroidSearchEngineChoiceNotification);
BASE_DECLARE_FEATURE(kAssistantConsentModal);
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
@@ -147,7 +145,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
public static final String ABOUT_THIS_SITE_BANNER = "AboutThisSiteBanner";
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR = "AdaptiveButtonInTopToolbar";
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 =
@@ -646,6 +647,8 @@ public abstract class ChromeFeatureList {
@@ -648,6 +649,8 @@ public abstract class ChromeFeatureList {
public static final String FEED_REPLACE_ALL = "FeedReplaceAll";
/* Alphabetical: */
@@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -9071,6 +9071,10 @@ const FeatureEntry kFeatureEntries[] = {
@@ -9070,6 +9070,10 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kRequestDesktopSiteExceptionsName,
flag_descriptions::kRequestDesktopSiteExceptionsDescription, kOsAndroid,
FEATURE_VALUE_TYPE(features::kRequestDesktopSiteExceptions)},
@@ -44,7 +44,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
@@ -957,6 +957,9 @@ extern const char kHideShelfControlsInTabletModeDescription[];
@@ -960,6 +960,9 @@ extern const char kHideShelfControlsInTabletModeDescription[];
extern const char kHttpsOnlyModeName[];
extern const char kHttpsOnlyModeDescription[];
@@ -57,16 +57,16 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
diff --git a/net/base/features.cc b/net/base/features.cc
--- a/net/base/features.cc
+++ b/net/base/features.cc
@@ -73,6 +73,10 @@ BASE_FEATURE(kEncryptedClientHello,
"EncryptedClientHello",
base::FEATURE_DISABLED_BY_DEFAULT);
@@ -113,6 +113,10 @@ BASE_FEATURE(kPartitionNelAndReportingByNetworkIsolationKey,
"PartitionNelAndReportingByNetworkIsolationKey", // must be enabled
base::FEATURE_ENABLED_BY_DEFAULT); // in Bromite
+BASE_FEATURE(kIsCleartextPermitted,
+ "IsCleartextPermitted",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
BASE_FEATURE(kNetworkQualityEstimator,
"NetworkQualityEstimator",
BASE_FEATURE(kEnableDoubleKeyNetworkAnonymizationKey,
"EnableDoubleKeyNetworkAnonymizationKey",
base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/net/base/features.h b/net/base/features.h
--- a/net/base/features.h
@@ -75,7 +75,7 @@ diff --git a/net/base/features.h b/net/base/features.h
// origin requests are restricted to contain at most the source origin.
NET_EXPORT BASE_DECLARE_FEATURE(kCapReferrerToOriginOnCrossOrigin);
+NET_EXPORT extern const base::Feature kIsCleartextPermitted;
+NET_EXPORT BASE_DECLARE_FEATURE(kIsCleartextPermitted);
+
// Support for altering the parameters used for DNS transaction timeout. See
// ResolveContext::SecureTransactionTimeout().
@@ -3,11 +3,15 @@ Date: Thu, 29 Mar 2018 00:43:32 +0200
Subject: Add a proxy configuration page
Accessible from proxy settings and chrome://proxy
Allows to use a PAC script URL, automatic configuration and explicit proxy
settings.
Allows to use a PAC script URL, automatic configuration and explicit proxy settings.
Offer auto-complete for the proxy page URL.
Store proxy settings in LocalState instead of Profile, so that proxy is used
for SimpleURLLoaders as well.
Store proxy settings in LocalState instead of Profile, so that proxy is used for SimpleURLLoaders as well;
this implementation is the same as the one in ChromeOS which gets proxy information from the LocalState
for the system network context; this is strictly not correct on Android because the network context is
never connected to any user profile and only gets proxy information from the system.
Existing settings on Profile are migrated to LocalState on startup.
Credits to @uazo for the LocalState integration.
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
@@ -72,7 +76,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
@@ -54,6 +54,7 @@ public class PrivacySettings
@@ -59,6 +59,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";
@@ -637,7 +641,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
@@ -287,6 +287,8 @@ static_library("ui") {
@@ -285,6 +285,8 @@ static_library("ui") {
"webui/metrics_internals/metrics_internals_ui.h",
"webui/net_export_ui.cc",
"webui/net_export_ui.h",
@@ -649,7 +653,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
--- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
@@ -61,6 +61,7 @@
@@ -60,6 +60,7 @@
#include "chrome/browser/ui/webui/ntp_tiles_internals_ui.h"
#include "chrome/browser/ui/webui/omnibox/omnibox_ui.h"
#include "chrome/browser/ui/webui/policy/policy_ui.h"
@@ -657,7 +661,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom
#include "chrome/browser/ui/webui/predictors/predictors_ui.h"
#include "chrome/browser/ui/webui/segmentation_internals/segmentation_internals_ui.h"
#include "chrome/browser/ui/webui/signin_internals_ui.h"
@@ -798,6 +799,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
@@ -795,6 +796,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
return &NewWebUI<MetricsInternalsUI>;
if (url.host_piece() == chrome::kChromeUINetExportHost)
return &NewWebUI<NetExportUI>;
@@ -1288,7 +1292,7 @@ diff --git a/components/proxy_config/proxy_config_dictionary.h b/components/prox
static base::Value::Dict CreateFixedServers(const std::string& proxy_server,
- const std::string& bypass_list);
+ const std::string& bypass_list,
+ bool reverse_bypass);
+ bool reverse_bypass);
static base::Value::Dict CreateSystem();
// Encodes the proxy server as "<url-scheme>=<proxy-scheme>://<proxy>".
@@ -1298,7 +1302,7 @@ diff --git a/components/proxy_config/proxy_config_dictionary.h b/components/prox
const std::string& proxy_server,
- const std::string& bypass_list);
+ const std::string& bypass_list,
+ bool reverse_bypass);
+ bool reverse_bypass);
base::Value::Dict dict_;
};
@@ -35,7 +35,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/history/HistoryManager.java | 18 +-
.../chrome/browser/history/HistoryPage.java | 16 ++
.../native_page/NativePageFactory.java | 4 +-
.../chrome/browser/ntp/RecentTabsManager.java | 27 ++-
.../chrome/browser/ntp/RecentTabsManager.java | 28 ++-
.../privacy/settings/IncognitoSettings.java | 160 ++++++++++++++++++
.../browser/settings/SettingsActivity.java | 4 +
.../HistoricalTabModelObserver.java | 6 +-
@@ -59,7 +59,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/history/history_tab_helper.h | 10 +-
.../android/offline_page_bridge.cc | 11 +-
.../android/offline_page_model_factory.cc | 20 ++-
.../android/request_coordinator_factory.cc | 26 ++-
.../android/request_coordinator_factory.cc | 27 ++-
.../offline_page_model_factory.h | 1 +
.../offline_pages/recent_tab_helper.cc | 19 ++-
.../browser/offline_pages/recent_tab_helper.h | 3 +
@@ -68,7 +68,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/ui/android/native_page/BUILD.gn | 2 +
.../browser/ui/native_page/NativePage.java | 12 +-
.../strings/android_chrome_strings.grd | 31 ++++
.../browser/toolbar/LocationBarModel.java | 11 +-
.../browser/toolbar/LocationBarModel.java | 7 +-
chrome/browser/ui/messages/android/BUILD.gn | 1 +
.../snackbar/INeedSnackbarManager.java | 27 +++
chrome/common/pref_names.cc | 6 +
@@ -84,7 +84,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../omnibox/browser/base_search_provider.cc | 2 +-
components/omnibox/browser/search_provider.cc | 4 +-
.../host_content_settings_map_factory.cc | 1 +
65 files changed, 721 insertions(+), 77 deletions(-)
65 files changed, 719 insertions(+), 77 deletions(-)
create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java
@@ -93,7 +93,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -661,6 +661,7 @@ chrome_java_resources = [
@@ -652,6 +652,7 @@ chrome_java_resources = [
"java/res/xml/main_preferences.xml",
"java/res/xml/manage_sync_preferences.xml",
"java/res/xml/phone_as_a_security_key_accessory_filter.xml",
@@ -112,7 +112,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_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/ActivityUtils.java",
@@ -964,6 +965,7 @@ chrome_java_sources = [
@@ -914,6 +915,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/privacy/settings/IncognitoLockSettings.java",
"java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java",
"java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java",
@@ -228,7 +228,7 @@ new file mode 100644
+ public static void migrateSettingToNative() {
+ if (isAlwaysIncognito()) {
+ PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
+ if(!prefService.getBoolean(Pref.ALWAYS_INCOGNITO_ENABLED)) {
+ if (!prefService.getBoolean(Pref.ALWAYS_INCOGNITO_ENABLED)) {
+ Log.i(TAG, "Pref migration from java to native");
+ prefService.setBoolean(Pref.ALWAYS_INCOGNITO_ENABLED, true);
+ }
@@ -272,15 +272,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
@@ -98,6 +98,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchFieldTrial;
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager;
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager.ContextualSearchTabPromotionDelegate;
@@ -93,6 +93,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.ContentOffsetProvi
import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
import org.chromium.chrome.browser.compositor.layouts.content.TabContentManagerHandler;
import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsModule;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.dependency_injection.ChromeActivityComponent;
import org.chromium.chrome.browser.dependency_injection.ModuleFactoryOverrides;
import org.chromium.chrome.browser.device.DeviceClassManager;
@@ -1830,6 +1831,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -1808,6 +1809,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
throw new IllegalStateException(
"Attempting to access TabCreator before initialization");
}
@@ -301,7 +301,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
import org.chromium.chrome.browser.banners.AppMenuVerbiage;
import org.chromium.chrome.browser.bookmarks.BookmarkFeatures;
import org.chromium.chrome.browser.bookmarks.BookmarkModel;
@@ -101,6 +102,10 @@ import java.util.ArrayList;
@@ -99,6 +100,10 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -312,7 +312,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
/**
* Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu
* items based on activity state.
@@ -562,6 +567,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -560,6 +565,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
}
private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) {
@@ -326,7 +326,7 @@ 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 isOverviewModeMenu = menuGroup == MenuGroup.OVERVIEW_MODE_MENU;
@@ -640,7 +652,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -636,7 +648,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
}
if (item.getItemId() == R.id.recent_tabs_menu_id) {
@@ -343,7 +343,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
}
if (item.getItemId() == R.id.menu_group_tabs) {
item.setVisible(isMenuGroupTabsVisible);
@@ -880,7 +900,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -876,7 +896,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
// is not persisted when adding to the homescreen.
// * If creating shortcuts it not supported by the current home screen.
return WebappsUtils.isAddToHomeIntentSupported() && !isChromeScheme && !isFileScheme
@@ -616,8 +616,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
@@ -24,6 +24,15 @@ import org.chromium.components.signin.identitymanager.ConsentLevel;
import org.chromium.components.signin.metrics.SigninAccessPoint;
@@ -21,6 +21,15 @@ import org.chromium.chrome.browser.ui.favicon.FaviconHelper;
import org.chromium.chrome.browser.ui.favicon.FaviconHelper.FaviconImageCallback;
import org.chromium.url.GURL;
+import android.content.Intent;
@@ -632,7 +632,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -81,7 +90,8 @@ public class RecentTabsManager implements AccountsChangeObserver {
@@ -78,7 +87,8 @@ public class RecentTabsManager {
*/
public RecentTabsManager(Tab tab, TabModelSelector tabModelSelector, Profile profile,
Context context, Runnable showHistoryManager) {
@@ -642,7 +642,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM
mActiveTab = tab;
mTabModelSelector = tabModelSelector;
mShowHistoryManager = showHistoryManager;
@@ -213,6 +223,21 @@ public class RecentTabsManager implements AccountsChangeObserver {
@@ -210,6 +220,22 @@ public class RecentTabsManager {
*/
public void openRecentlyClosedTab(RecentlyClosedTab tab, int windowDisposition) {
if (mIsDestroyed) return;
@@ -654,8 +654,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM
+ Intent intent = new Intent(Intent.ACTION_VIEW,
+ Uri.parse(tab.getUrl().getSpec()));
+ intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName());
+ if (windowDisposition != WindowOpenDisposition.CURRENT_TAB)
+ intent.putExtra(Browser.EXTRA_CREATE_NEW_TAB, true);
+ if (windowDisposition != WindowOpenDisposition.CURRENT_TAB) {
+ intent.putExtra(IntentHandler.EXTRA_OPEN_NEW_INCOGNITO_TAB, true);
+ }
+ intent.setPackage(context.getPackageName());
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ IntentHandler.startActivityForTrustedIntent(intent);
@@ -840,7 +841,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable;
import org.chromium.components.browser_ui.accessibility.AccessibilitySettings;
@@ -253,6 +254,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -254,6 +255,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
if (fragment instanceof AdPersonalizationRemovedFragment) {
((AdPersonalizationRemovedFragment) fragment).setSnackbarManager(getSnackbarManager());
}
@@ -962,7 +963,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
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
@@ -126,6 +126,8 @@ import org.chromium.components.webapps.bottomsheet.PwaBottomSheetControllerFacto
@@ -122,6 +122,8 @@ import org.chromium.components.webapps.bottomsheet.PwaBottomSheetControllerFacto
import org.chromium.content_public.browser.WebContents;
import org.chromium.ui.base.ActivityWindowAndroid;
import org.chromium.ui.base.DeviceFormFactor;
@@ -971,7 +972,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
import org.chromium.ui.base.IntentRequestTracker;
import org.chromium.ui.modaldialog.ModalDialogManager;
@@ -492,7 +494,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@@ -482,7 +484,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
mAppMenuCoordinator == null ? null : mAppMenuCoordinator.getAppMenuHandler();
mEmptyBackgroundViewWrapper =
new EmptyBackgroundViewWrapper(mTabModelSelectorSupplier.get(),
@@ -1059,7 +1060,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.app.tab_activity_glue.TabReparentingController;
import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
@@ -526,7 +527,8 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
@@ -523,7 +524,8 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
return ret;
}
},
@@ -1117,7 +1118,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI
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
@@ -4886,6 +4886,10 @@ const FeatureEntry kFeatureEntries[] = {
@@ -4837,6 +4837,10 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kOfflinePagesLivePageSharingName,
flag_descriptions::kOfflinePagesLivePageSharingDescription, kOsAndroid,
FEATURE_VALUE_TYPE(offline_pages::kOfflinePagesLivePageSharingFeature)},
@@ -1294,15 +1295,14 @@ 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
@@ -570,9 +570,9 @@ BASE_FEATURE(kCCTNewDownloadTab,
@@ -561,8 +561,8 @@ BASE_FEATURE(kCCTNewDownloadTab,
BASE_FEATURE(kCCTIncognito, "CCTIncognito", base::FEATURE_ENABLED_BY_DEFAULT);
-BASE_FEATURE(kCCTIncognitoAvailableToThirdParty,
+BASE_FEATURE(kCCTIncognitoAvailableToThirdParty, // Enabled by default in Bromite
"CCTIncognitoAvailableToThirdParty",
BASE_FEATURE(kCCTIncognitoAvailableToThirdParty,
- "CCTIncognitoAvailableToThirdParty",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ base::FEATURE_ENABLED_BY_DEFAULT);
+ "CCTIncognitoAvailableToThirdParty", // must be enabled
+ base::FEATURE_ENABLED_BY_DEFAULT); // in Bromite
BASE_FEATURE(kCCTPackageNameRecording,
"CCTPackageNameRecording",
@@ -1325,7 +1325,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
Profile::FromBrowserContext(web_contents()->GetBrowserContext());
+
+#if BUILDFLAG(IS_ANDROID)
+ if(profile->GetOriginalProfile()->GetPrefs()->GetBoolean(prefs::kIncognitoTabHistoryEnabled)) {
+ if (profile->GetOriginalProfile()->GetPrefs()->GetBoolean(prefs::kIncognitoTabHistoryEnabled)) {
+ return HistoryServiceFactory::GetForProfile(profile, ServiceAccessType::IMPLICIT_ACCESS);
+ }
+#endif
@@ -1402,7 +1402,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_bridge.cc b/chrom
+ bool is_trusted = true;
+ // in always incognito, never trust input file (show file name in url)
+ ProfileKey* profile_key = ProfileKey::FromSimpleFactoryKey(key_);
+ if(profile_key->GetPrefs()->GetBoolean(prefs::kIncognitoTabHistoryEnabled))
+ if (profile_key->GetPrefs()->GetBoolean(prefs::kIncognitoTabHistoryEnabled))
+ is_trusted = false;
+
ValidateFileCallback(launch_location, j_callback_obj,
@@ -1458,11 +1458,11 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc
+SimpleFactoryKey* OfflinePageModelFactory::GetKeyToUse(
+ SimpleFactoryKey* key) const {
+ ProfileKey* profile_key = ProfileKey::FromSimpleFactoryKey(key);
+ if(profile_key->GetPrefs()->GetBoolean(prefs::kIncognitoTabHistoryEnabled) == false) {
+ if (profile_key->GetPrefs()->GetBoolean(prefs::kIncognitoTabHistoryEnabled) == false) {
+ return SimpleKeyedServiceFactory::GetKeyToUse(key);
+ } else {
+ return profile_key->GetOriginalKey();
+ }
+
+ return profile_key->GetOriginalKey();
+}
+
} // namespace offline_pages
@@ -1499,31 +1499,32 @@ diff --git a/chrome/browser/offline_pages/android/request_coordinator_factory.cc
// Depends on OfflinePageModelFactory in SimpleDependencyManager.
}
@@ -79,6 +86,11 @@ RequestCoordinator* RequestCoordinatorFactory::GetForBrowserContext(
@@ -79,6 +86,12 @@ RequestCoordinator* RequestCoordinatorFactory::GetForBrowserContext(
KeyedService* RequestCoordinatorFactory::BuildServiceInstanceFor(
content::BrowserContext* context) const {
+ if(context->IsOffTheRecord() &&
+ if (context->IsOffTheRecord() &&
+ Profile::FromBrowserContext(context)->GetOriginalProfile()
+ ->GetPrefs()->GetBoolean(prefs::kIncognitoTabHistoryEnabled) == false) {
+ // do not track history in incognito mode if preference is disabled
+ return nullptr;
+ }
std::unique_ptr<OfflinerPolicy> policy(new OfflinerPolicy());
std::unique_ptr<Offliner> offliner;
OfflinePageModel* model =
@@ -111,4 +123,16 @@ KeyedService* RequestCoordinatorFactory::BuildServiceInstanceFor(
@@ -111,4 +124,16 @@ KeyedService* RequestCoordinatorFactory::BuildServiceInstanceFor(
return request_coordinator;
}
+content::BrowserContext*
+RequestCoordinatorFactory::GetBrowserContextToUse(
+ content::BrowserContext* context) const {
+ if(Profile::FromBrowserContext(context)->GetOriginalProfile()
+ if (Profile::FromBrowserContext(context)->GetOriginalProfile()
+ ->GetPrefs()->GetBoolean(prefs::kIncognitoTabHistoryEnabled) == false) {
+ return BrowserContextKeyedServiceFactory::GetBrowserContextToUse(context);
+ } else {
+ return chrome::GetBrowserContextRedirectedInIncognito(context);
+ }
+
+ return chrome::GetBrowserContextRedirectedInIncognito(context);
+}
+
+
@@ -1558,8 +1559,8 @@ diff --git a/chrome/browser/offline_pages/recent_tab_helper.cc b/chrome/browser/
// WebContents with its origin as well.
snapshots_enabled_ = !tab_id_.empty() &&
!web_contents()->GetBrowserContext()->IsOffTheRecord();
+ if(!tab_id_.empty() && web_contents()->GetBrowserContext()->IsOffTheRecord()) {
+ if(Profile::FromBrowserContext(web_contents()->GetBrowserContext())
+ if (!tab_id_.empty() && web_contents()->GetBrowserContext()->IsOffTheRecord()) {
+ if (Profile::FromBrowserContext(web_contents()->GetBrowserContext())
+ ->GetOriginalProfile()
+ ->GetPrefs()->GetBoolean(prefs::kIncognitoTabHistoryEnabled) == true) {
+ snapshots_enabled_ = true;
@@ -1701,7 +1702,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
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
@@ -1177,6 +1177,37 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1151,6 +1151,37 @@ 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>
@@ -1768,26 +1769,15 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
}
/**
@@ -430,6 +433,10 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
if (mOptimizationsEnabled) {
autocompleteSchemeClassifier = mChromeAutocompleteSchemeClassifier;
cachedSpannableDisplayText = mSpannableDisplayTextCache.get(cacheKey);
+ if (mIsAlwaysIncognito) {
+ // the profile may be destroyed and no longer be valid
+ autocompleteSchemeClassifier = new ChromeAutocompleteSchemeClassifier(getProfile());
+ }
} else {
autocompleteSchemeClassifier = new ChromeAutocompleteSchemeClassifier(getProfile());
}
@@ -447,7 +454,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
}
}
} finally {
- if (!mOptimizationsEnabled) {
+ if (!mOptimizationsEnabled || mIsAlwaysIncognito) {
autocompleteSchemeClassifier.destroy();
}
}
@@ -207,7 +210,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
*/
public void initializeWithNative() {
mOptimizationsEnabled =
- ChromeFeatureList.isEnabled(ChromeFeatureList.ANDROID_SCROLL_OPTIMIZATIONS);
+ ChromeFeatureList.isEnabled(ChromeFeatureList.ANDROID_SCROLL_OPTIMIZATIONS) && !mIsAlwaysIncognito;
mLastUsedNonOTRProfile = Profile.getLastUsedRegularProfile();
mNativeLocationBarModelAndroid = LocationBarModelJni.get().init(LocationBarModel.this);
diff --git a/chrome/browser/ui/messages/android/BUILD.gn b/chrome/browser/ui/messages/android/BUILD.gn
--- a/chrome/browser/ui/messages/android/BUILD.gn
+++ b/chrome/browser/ui/messages/android/BUILD.gn
@@ -1873,7 +1863,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
diff --git a/components/content_settings/core/browser/content_settings_pref_provider.cc b/components/content_settings/core/browser/content_settings_pref_provider.cc
--- a/components/content_settings/core/browser/content_settings_pref_provider.cc
+++ b/components/content_settings/core/browser/content_settings_pref_provider.cc
@@ -120,10 +120,12 @@ void PrefProvider::RegisterProfilePrefs(
@@ -122,10 +122,12 @@ void PrefProvider::RegisterProfilePrefs(
PrefProvider::PrefProvider(PrefService* prefs,
bool off_the_record,
@@ -1886,7 +1876,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
store_last_modified_(store_last_modified),
clock_(base::DefaultClock::GetInstance()) {
TRACE_EVENT_BEGIN("startup", "PrefProvider::PrefProvider");
@@ -157,7 +159,9 @@ PrefProvider::PrefProvider(PrefService* prefs,
@@ -159,7 +161,9 @@ PrefProvider::PrefProvider(PrefService* prefs,
content_settings_prefs_.insert(std::make_pair(
info->type(), std::make_unique<ContentSettingsPref>(
info->type(), prefs_, &pref_change_registrar_,
@@ -1908,7 +1898,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
bool store_last_modified,
bool restore_session);
@@ -85,6 +86,7 @@ class PrefProvider : public UserModifiableProvider {
@@ -88,6 +89,7 @@ class PrefProvider : public UserModifiableProvider {
raw_ptr<PrefService> prefs_;
const bool off_the_record_;
@@ -1955,7 +1945,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
bool store_last_modified,
bool restore_session);
@@ -439,6 +440,8 @@ class HostContentSettingsMap : public content_settings::Observer,
@@ -442,6 +443,8 @@ class HostContentSettingsMap : public content_settings::Observer,
// Whether this settings map is for an incognito or guest session.
bool is_off_the_record_;
@@ -249,7 +249,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
import android.text.TextUtils;
import android.util.Pair;
@@ -45,6 +58,32 @@ import java.util.HashMap;
@@ -42,6 +55,32 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -282,7 +282,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/**
* Provides the communication channel for Android to fetch and manipulate the
* bookmark model stored in native.
@@ -526,6 +565,209 @@ class BookmarkBridge {
@@ -442,6 +481,209 @@ class BookmarkBridge {
mNativeBookmarkBridge, BookmarkBridge.this, id.getId(), id.getType());
}
@@ -492,7 +492,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/**
* Synchronously gets a list of bookmarks that match the specified search query.
* @param query Keyword used for searching bookmarks.
@@ -1074,6 +1316,39 @@ class BookmarkBridge {
@@ -990,6 +1232,39 @@ class BookmarkBridge {
depthList.add(depth);
}
@@ -532,7 +532,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
private static List<Pair<Integer, Integer>> createPairsList(int[] left, int[] right) {
List<Pair<Integer, Integer>> pairList = new ArrayList<Pair<Integer, Integer>>();
for (int i = 0; i < left.length; i++) {
@@ -1145,6 +1420,9 @@ class BookmarkBridge {
@@ -1061,6 +1336,9 @@ class BookmarkBridge {
int getChildCount(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type);
void getChildIDs(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type,
List<BookmarkId> bookmarksList);
@@ -565,7 +565,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
@@ -37,6 +37,8 @@ import org.chromium.components.browser_ui.util.ConversionUtils;
@@ -36,6 +36,8 @@ import org.chromium.components.browser_ui.util.ConversionUtils;
import org.chromium.components.browser_ui.widget.dragreorder.DragStateDelegate;
import org.chromium.components.browser_ui.widget.selectable_list.SelectableListLayout;
import org.chromium.components.browser_ui.widget.selectable_list.SelectableListToolbar.SearchDelegate;
@@ -574,7 +574,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate;
import org.chromium.components.favicon.LargeIconBridge;
import org.chromium.url.GURL;
@@ -60,6 +62,8 @@ public class BookmarkManager
@@ -59,6 +61,8 @@ public class BookmarkManager
private ComponentName mOpenBookmarkComponentName;
private ViewGroup mMainView;
private BookmarkModel mBookmarkModel;
@@ -583,7 +583,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;
@@ -356,6 +360,14 @@ public class BookmarkManager
@@ -344,6 +348,14 @@ public class BookmarkManager
mNativePage = nativePage;
}
@@ -598,7 +598,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
@@ -552,6 +564,16 @@ public class BookmarkManager
@@ -540,6 +552,16 @@ public class BookmarkManager
}
}
@@ -718,7 +718,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
configs += [
"//build/config/compiler:wexit_time_destructors",
"//build/config:precompiled_headers",
@@ -2919,6 +2926,8 @@ static_library("browser") {
@@ -2904,6 +2911,8 @@ static_library("browser") {
"autofill/manual_filling_controller.h",
"autofill/manual_filling_controller_impl.cc",
"autofill/manual_filling_controller_impl.h",
@@ -727,7 +727,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"autofill/manual_filling_utils.cc",
"autofill/manual_filling_utils.h",
"autofill/manual_filling_view_interface.h",
@@ -3602,8 +3611,6 @@ static_library("browser") {
@@ -3583,8 +3592,6 @@ static_library("browser") {
"badging/badge_manager_factory.h",
"banners/app_banner_manager_desktop.cc",
"banners/app_banner_manager_desktop.h",
@@ -739,7 +739,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -9088,6 +9088,12 @@ const FeatureEntry kFeatureEntries[] = {
@@ -9039,6 +9039,12 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(features::kRequestDesktopSiteExceptions)},
#endif
@@ -1279,7 +1279,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -182,6 +182,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -181,6 +181,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kCastDeviceFilter,
&kClearOmniboxFocusAfterNavigation,
&kCloseTabSuggestions,
@@ -1287,7 +1287,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
&kCriticalPersistedTabData,
&kCommerceCoupons,
&kCCTBackgroundTab,
@@ -1156,6 +1157,11 @@ BASE_FEATURE(kWebApkTrampolineOnInitialIntent,
@@ -1114,6 +1115,11 @@ BASE_FEATURE(kWebApkTrampolineOnInitialIntent,
"WebApkTrampolineOnInitialIntent",
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -1302,14 +1302,14 @@ 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
@@ -171,6 +171,7 @@ BASE_DECLARE_FEATURE(kTabSwitcherOnReturn);
@@ -161,6 +161,7 @@ BASE_DECLARE_FEATURE(kDiscoverFeedMultiColumn);
BASE_DECLARE_FEATURE(kTabStripRedesign);
BASE_DECLARE_FEATURE(kTabSwitcherOnReturn);
BASE_DECLARE_FEATURE(kTabToGTSAnimation);
+BASE_DECLARE_FEATURE(kBookmarksExportUseSaf);
BASE_DECLARE_FEATURE(kTestDefaultDisabled);
BASE_DECLARE_FEATURE(kTestDefaultEnabled);
+BASE_DECLARE_FEATURE(kBookmarksExportUseSaf);
BASE_DECLARE_FEATURE(kToolbarMicIphAndroid);
BASE_DECLARE_FEATURE(kToolbarPhoneOptimizations);
BASE_DECLARE_FEATURE(kToolbarScrollAblationAndroid);
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
@@ -196,7 +196,7 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAsso
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
@@ -4791,6 +4791,21 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -4788,6 +4788,21 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</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>
+2 -2
View File
@@ -88,7 +88,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.chrome.browser.ChromeActivitySessionTracker;
import org.chromium.chrome.browser.ChromeApplicationImpl;
import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate;
@@ -2342,6 +2343,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -2292,6 +2293,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
return true;
}
@@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -3496,6 +3496,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3470,6 +3470,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_MENU_AUTO_DARK_WEB_CONTENTS" desc="Menu item in Chrome's overflow/options menu. When Chrome's browser UI is set to dark theme and this option is checked, sites will have a dark theme automatically applied as well. [CHAR_LIMIT=24]">
Dark theme
</message>
@@ -40,7 +40,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
const FeatureEntry::FeatureParam kAdaptiveButton_AlwaysNone[] = {
{"mode", "always-none"}};
const FeatureEntry::FeatureParam kAdaptiveButton_AlwaysNewTab[] = {
@@ -4376,7 +4392,11 @@ const FeatureEntry kFeatureEntries[] = {
@@ -4371,7 +4387,11 @@ const FeatureEntry kFeatureEntries[] = {
kOsMac | kOsLinux | kOsWin,
FEATURE_VALUE_TYPE(features::kSystemNotifications)},
#endif // BUILDFLAG(ENABLE_SYSTEM_NOTIFICATIONS) && !BUILDFLAG(IS_CHROMEOS_ASH)
@@ -8,14 +8,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/flag_descriptions.cc | 4 ++++
chrome/browser/flag_descriptions.h | 3 +++
.../browser/loader/browser_initiated_resource_request.cc | 8 ++++++++
services/network/public/cpp/features.cc | 4 ++++
services/network/public/cpp/features.h | 2 ++
6 files changed, 25 insertions(+), 1 deletion(-)
services/network/public/cpp/features.cc | 5 +++++
services/network/public/cpp/features.h | 2 +-
6 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -4986,7 +4986,10 @@ const FeatureEntry kFeatureEntries[] = {
@@ -4981,7 +4981,10 @@ const FeatureEntry kFeatureEntries[] = {
{"force-text-direction", flag_descriptions::kForceTextDirectionName,
flag_descriptions::kForceTextDirectionDescription, kOsAll,
MULTI_VALUE_TYPE(kForceTextDirectionChoices)},
@@ -44,7 +44,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
@@ -659,6 +659,9 @@ extern const char kDeprecateAltClickDescription[];
@@ -662,6 +662,9 @@ extern const char kDeprecateAltClickDescription[];
extern const char kDeprecateAltBasedSixPackName[];
extern const char kDeprecateAltBasedSixPackDescription[];
@@ -84,10 +84,11 @@ 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
@@ -20,6 +20,10 @@ BASE_FEATURE(kExpectCTReporting,
@@ -20,6 +20,11 @@ BASE_FEATURE(kExpectCTReporting,
"ExpectCTReporting",
base::FEATURE_ENABLED_BY_DEFAULT);
+// Enable save-data header separately (without enabled data reduction service).
+BASE_FEATURE(kEnableSaveDataHeader,
+ "EnableSaveDataHeader",
+ base::FEATURE_DISABLED_BY_DEFAULT);
@@ -98,12 +99,12 @@ 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
@@ -52,6 +52,8 @@ extern const base::Feature kIPv6Probing;
@@ -50,7 +50,7 @@ extern const base::FeatureParam<TrustTokenOriginTrialSpec>
kTrustTokenOperationsRequiringOriginTrial;
COMPONENT_EXPORT(NETWORK_CPP)
extern const base::FeatureParam<bool> kPlatformProvidedTrustTokenIssuance;
-
+COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kEnableSaveDataHeader);
+
COMPONENT_EXPORT(NETWORK_CPP)
BASE_DECLARE_FEATURE(kWebSocketReassembleShortMessages);
@@ -33,7 +33,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
const FeatureEntry::Choice kMemlogModeChoices[] = {
{flags_ui::kGenericExperimentChoiceDisabled, "", ""},
{flag_descriptions::kMemlogModeMinimal, heap_profiling::kMemlogMode,
@@ -4933,6 +4938,9 @@ const FeatureEntry kFeatureEntries[] = {
@@ -4884,6 +4889,9 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kAndroidPictureInPictureAPIName,
flag_descriptions::kAndroidPictureInPictureAPIDescription, kOsAndroid,
FEATURE_VALUE_TYPE(media::kPictureInPictureAPI)},
@@ -9,23 +9,23 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/about_flags.cc | 4 ++++
chrome/browser/flag_descriptions.cc | 5 +++++
chrome/browser/flag_descriptions.h | 3 +++
media/base/media_switches.cc | 4 ----
4 files changed, 12 insertions(+), 4 deletions(-)
media/base/media_switches.cc | 8 ++------
4 files changed, 14 insertions(+), 6 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
@@ -3648,6 +3648,10 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kWebRtcRemoteEventLogName,
flag_descriptions::kWebRtcRemoteEventLogDescription, kOsDesktop,
FEATURE_VALUE_TYPE(features::kWebRtcRemoteEventLog)},
@@ -3661,6 +3661,10 @@ const FeatureEntry kFeatureEntries[] = {
SINGLE_VALUE_TYPE(extensions::switches::kExtensionsOnChromeURLs)},
#endif // ENABLE_EXTENSIONS
#if BUILDFLAG(IS_ANDROID)
+ {"resume-background-video",
+ flag_descriptions::kResumeBackgroundVideoName,
+ flag_descriptions::kResumeBackgroundVideoDescription, kOsAll,
+ FEATURE_VALUE_TYPE(media::kResumeBackgroundVideo)},
#endif
{"enable-webrtc-srtp-aes-gcm", flag_descriptions::kWebrtcSrtpAesGcmName,
flag_descriptions::kWebrtcSrtpAesGcmDescription, kOsAll,
{"osk-resizes-visual-viewport-by-default",
flag_descriptions::kEnableOskResizesVisualViewportByDefaultName,
flag_descriptions::kEnableOskResizesVisualViewportByDefaultDescription,
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
@@ -57,15 +57,18 @@ 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
@@ -303,11 +303,7 @@ BASE_FEATURE(kPreloadMetadataLazyLoad,
@@ -302,12 +302,8 @@ BASE_FEATURE(kPreloadMetadataLazyLoad,
// Let videos be resumed via remote controls (for example, the notification)
// when in background.
BASE_FEATURE(kResumeBackgroundVideo,
"resume-background-video",
- "resume-background-video",
-#if BUILDFLAG(IS_ANDROID)
- base::FEATURE_ENABLED_BY_DEFAULT
-#else
base::FEATURE_DISABLED_BY_DEFAULT
- base::FEATURE_DISABLED_BY_DEFAULT
-#endif
+ "resume-background-video", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT // in Bromite
);
// When enabled, MediaCapabilities will check with GPU Video Accelerator
@@ -10,14 +10,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
components/subresource_filter/tools/BUILD.gn | 6 ++++++
.../url_formatter/spoof_checks/top_domains/BUILD.gn | 3 ++-
net/dns/host_resolver_manager.cc | 9 ++++++++-
services/network/public/cpp/features.cc | 4 ++++
services/network/public/cpp/features.h | 2 ++
services/network/public/cpp/features.cc | 5 +++++
services/network/public/cpp/features.h | 1 +
8 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -6037,6 +6037,10 @@ const FeatureEntry kFeatureEntries[] = {
@@ -6036,6 +6036,10 @@ const FeatureEntry kFeatureEntries[] = {
{"enable-reader-mode-in-cct", flag_descriptions::kReaderModeInCCTName,
flag_descriptions::kReaderModeInCCTDescription, kOsAndroid,
FEATURE_VALUE_TYPE(chrome::android::kReaderModeInCCT)},
@@ -128,13 +128,14 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc
--- a/services/network/public/cpp/features.cc
+++ b/services/network/public/cpp/features.cc
@@ -38,6 +38,10 @@ BASE_FEATURE(kThrottleDelayable,
@@ -38,6 +38,11 @@ BASE_FEATURE(kThrottleDelayable,
"ThrottleDelayable",
base::FEATURE_ENABLED_BY_DEFAULT);
+// Enable IPv6 ping probes to RIPE DNS.
+const base::Feature kIPv6Probing{"IPv6Probing",
+ base::FEATURE_ENABLED_BY_DEFAULT};
+BASE_FEATURE(kIPv6Probing,
+ "IPv6Probing",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
// When kPriorityRequestsDelayableOnSlowConnections is enabled, HTTP
// requests fetched from a SPDY/QUIC/H2 proxies can be delayed by the
@@ -142,14 +143,13 @@ 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
@@ -48,6 +48,8 @@ COMPONENT_EXPORT(NETWORK_CPP)
extern const base::FeatureParam<TrustTokenOriginTrialSpec>
kTrustTokenOperationsRequiringOriginTrial;
@@ -17,6 +17,7 @@ COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kExpectCTReporting);
COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kNetworkErrorLogging);
COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kReporting);
COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kThrottleDelayable);
+COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kIPv6Probing);
COMPONENT_EXPORT(NETWORK_CPP)
+extern const base::Feature kIPv6Probing;
+COMPONENT_EXPORT(NETWORK_CPP)
extern const base::FeatureParam<bool> kPlatformProvidedTrustTokenIssuance;
BASE_DECLARE_FEATURE(kDelayRequestsOnMultiplexedConnections);
COMPONENT_EXPORT(NETWORK_CPP)
--
2.25.1
@@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -3622,6 +3622,9 @@ const FeatureEntry kFeatureEntries[] = {
@@ -3621,6 +3621,9 @@ const FeatureEntry kFeatureEntries[] = {
{"ui-disable-partial-swap", flag_descriptions::kUiPartialSwapName,
flag_descriptions::kUiPartialSwapDescription, kOsAll,
SINGLE_DISABLE_VALUE_TYPE(switches::kUIDisablePartialSwap)},
@@ -28,7 +28,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
@@ -3961,6 +3961,12 @@ const char kPhotoPickerVideoSupportName[] = "Photo Picker Video Support";
@@ -3966,6 +3966,12 @@ const char kPhotoPickerVideoSupportName[] = "Photo Picker Video Support";
const char kPhotoPickerVideoSupportDescription[] =
"Enables video files to be shown in the Photo Picker dialog";
@@ -44,7 +44,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
@@ -2271,6 +2271,9 @@ extern const char kQueryTilesNTPDescription[];
@@ -2274,6 +2274,9 @@ extern const char kQueryTilesNTPDescription[];
extern const char kQueryTilesOnStartName[];
extern const char kQueryTilesOnStartDescription[];
extern const char kQueryTilesSingleTierName[];
@@ -4,22 +4,22 @@ Subject: Add flag to disable vibration
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/browser/about_flags.cc | 4 ++++
chrome/browser/flag_descriptions.cc | 3 +++
chrome/browser/flag_descriptions.h | 2 ++
content/child/runtime_features.cc | 1 +
content/public/common/content_features.cc | 4 ++++
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(+)
chrome/browser/about_flags.cc | 4 ++++
chrome/browser/flag_descriptions.cc | 3 +++
chrome/browser/flag_descriptions.h | 2 ++
content/child/runtime_features.cc | 1 +
content/public/common/content_features.cc | 5 +++++
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, 29 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
@@ -7468,6 +7468,10 @@ const FeatureEntry kFeatureEntries[] = {
@@ -7467,6 +7467,10 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(features::kNewMacNotificationAPI)},
#endif
@@ -33,7 +33,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -6453,6 +6453,9 @@ extern const char kLacrosScreenCoordinatesDescription[];
@@ -6463,6 +6463,9 @@ extern const char kLacrosScreenCoordinatesDescription[];
#endif // #if BUILDFLAG(IS_CHROMEOS_LACROS)
@@ -46,7 +46,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
@@ -3932,6 +3932,8 @@ extern const char kWebUITabStripTabDragIntegrationName[];
@@ -3938,6 +3938,8 @@ extern const char kWebUITabStripTabDragIntegrationName[];
extern const char kWebUITabStripTabDragIntegrationDescription[];
#endif // BUILDFLAG(ENABLE_WEBUI_TAB_STRIP) && BUILDFLAG(IS_CHROMEOS_ASH)
@@ -69,13 +69,14 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
--- a/content/public/common/content_features.cc
+++ b/content/public/common/content_features.cc
@@ -130,6 +130,10 @@ BASE_FEATURE(kBackForwardCacheMemoryControls,
@@ -130,6 +130,11 @@ BASE_FEATURE(kBackForwardCacheMemoryControls,
#endif
);
+// Enables vibration; an user gesture will still be required if enabled.
+const base::Feature kVibration{"Vibration",
+ base::FEATURE_DISABLED_BY_DEFAULT};
+BASE_FEATURE(kVibration,
+ "Vibration",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
// When this feature is enabled, private network requests initiated from
// non-secure contexts in the `public` address space are blocked.
@@ -87,7 +88,7 @@ diff --git a/content/public/common/content_features.h b/content/public/common/co
kCompositorLockTimeout;
#endif // BUILDFLAG(IS_ANDROID)
+CONTENT_EXPORT extern const base::Feature kVibration;
+CONTENT_EXPORT BASE_DECLARE_FEATURE(kVibration);
+
#if BUILDFLAG(IS_MAC)
@@ -258,7 +258,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
import org.chromium.components.embedder_support.util.Origin;
import org.chromium.content_public.browser.BrowserContextHandle;
import org.chromium.content_public.browser.ContentFeatureList;
@@ -537,6 +538,11 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
@@ -539,6 +540,11 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
}
}
@@ -270,7 +270,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
private void setUpClearDataPreference() {
ClearWebsiteStorage preference = findPreference(PREF_CLEAR_DATA);
long usage = mSite.getTotalUsage();
@@ -955,6 +961,10 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
@@ -963,6 +969,10 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
if (contentType == mHighlightedPermission) {
switchPreference.setBackgroundColor(mHighlightColor);
}
@@ -345,7 +345,7 @@ diff --git a/components/browser_ui/site_settings/android/website_preference_brid
diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd
--- a/components/browser_ui/strings/android/browser_ui_strings.grd
+++ b/components/browser_ui/strings/android/browser_ui_strings.grd
@@ -606,6 +606,11 @@
@@ -608,6 +608,11 @@
<message name="IDS_PAGE_INFO_URL_TRUNCATED" desc="Accessibility announcement when the URL in PageInfo switches from full to truncated display">
URL truncated
</message>
@@ -371,7 +371,7 @@ diff --git a/components/content_settings/android/BUILD.gn b/components/content_s
diff --git a/components/content_settings/core/browser/content_settings_utils.cc b/components/content_settings/core/browser/content_settings_utils.cc
--- a/components/content_settings/core/browser/content_settings_utils.cc
+++ b/components/content_settings/core/browser/content_settings_utils.cc
@@ -185,6 +185,35 @@ base::Time GetConstraintExpiration(const base::TimeDelta duration) {
@@ -189,6 +189,35 @@ base::Time GetConstraintExpiration(const base::TimeDelta duration) {
return base::Time::Now() + duration;
}
@@ -492,7 +492,7 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_
}
}
@@ -123,13 +128,15 @@ public class PermissionParamsListBuilder {
@@ -124,13 +129,15 @@ public class PermissionParamsListBuilder {
public final String nameMidSentence;
public final int type;
public final @ContentSettingValues int setting;
@@ -512,7 +512,7 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_
diff --git a/components/page_info/android/page_info_controller_android.cc b/components/page_info/android/page_info_controller_android.cc
--- a/components/page_info/android/page_info_controller_android.cc
+++ b/components/page_info/android/page_info_controller_android.cc
@@ -162,6 +162,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
@@ -171,6 +171,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
std::map<ContentSettingsType, ContentSetting>
user_specified_settings_to_display;
@@ -521,7 +521,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
for (const auto& permission : permission_info_list) {
if (base::Contains(permissions_to_display, permission.type)) {
@@ -170,6 +172,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
@@ -179,6 +181,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
if (setting_to_display) {
user_specified_settings_to_display[permission.type] =
*setting_to_display;
@@ -530,7 +530,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
}
}
}
@@ -186,7 +190,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
@@ -195,7 +199,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
ConvertUTF16ToJavaString(env, setting_title),
ConvertUTF16ToJavaString(env, setting_title_mid_sentence),
static_cast<jint>(permission),
@@ -540,7 +540,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
}
}
@@ -199,7 +204,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
@@ -208,7 +213,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
env, controller_jobject_, ConvertUTF16ToJavaString(env, object_title),
ConvertUTF16ToJavaString(env, object_title),
static_cast<jint>(chosen_object->ui_info.content_settings_type),
@@ -553,7 +553,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc
--- a/components/page_info/page_info.cc
+++ b/components/page_info/page_info.cc
@@ -1168,6 +1168,8 @@ void PageInfo::PresentSitePermissions() {
@@ -1189,6 +1189,8 @@ void PageInfo::PresentSitePermissions() {
permission_info.source = info.source;
permission_info.is_one_time = (info.metadata.session_model ==
content_settings::SessionModel::OneTime);
@@ -6,7 +6,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/android/java/res/menu/main_menu.xml | 7 +++
.../chrome/browser/ChromeTabbedActivity.java | 24 ++++++++
.../browser/bookmarks/BookmarkBridge.java | 60 +++++++++++++++++++
.../browser/bookmarks/BookmarkBridge.java | 61 +++++++++++++++++++
.../browser/bookmarks/BookmarkUtils.java | 4 ++
.../bookmarks/android/bookmark_bridge.cc | 17 ++++++
.../bookmarks/android/bookmark_bridge.h | 4 ++
@@ -25,7 +25,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
components/bookmarks/browser/bookmark_node.h | 5 ++
components/bookmarks/browser/model_loader.cc | 3 +-
.../bookmark_specifics_conversions.cc | 1 +
21 files changed, 200 insertions(+), 10 deletions(-)
21 files changed, 201 insertions(+), 10 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
@@ -41,16 +41,16 @@ 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" />
@@ -187,6 +191,9 @@ found in the LICENSE file.
<item android:id="@+id/menu_select_tabs"
android:title="@string/menu_select_tabs"
android:icon="@drawable/ic_select_tabs" />
@@ -184,6 +188,9 @@ found in the LICENSE file.
<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" />
<item android:id="@+id/menu_select_tabs"
android:title="@string/menu_select_tabs"
android:icon="@drawable/ic_select_tabs" />
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
@@ -110,7 +110,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
import org.chromium.base.ObserverList;
import org.chromium.base.ThreadUtils;
import org.chromium.base.annotations.CalledByNative;
@@ -39,6 +40,10 @@ import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim;
@@ -40,6 +41,10 @@ import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.read_later.ReadingListUtils;
import org.chromium.chrome.browser.tab.Tab;
@@ -121,15 +121,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
import org.chromium.components.bookmarks.BookmarkId;
import org.chromium.components.bookmarks.BookmarkItem;
import org.chromium.components.bookmarks.BookmarkType;
@@ -85,6 +90,7 @@ import java.io.File;
@@ -86,6 +91,8 @@ import java.io.File;
* bookmark model stored in native.
*/
class BookmarkBridge {
+ private static final String TAG = "BookmarkBridge";
+
private final Profile mProfile;
private boolean mIsDestroyed;
private boolean mIsDoingExtensiveChanges;
@@ -392,6 +398,16 @@ class BookmarkBridge {
@@ -393,6 +400,16 @@ class BookmarkBridge {
mNativeBookmarkBridge, BookmarkBridge.this);
}
@@ -146,7 +147,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/**
* @return Id representing the special "other" folder from bookmark model.
*/
@@ -1029,6 +1045,49 @@ class BookmarkBridge {
@@ -1030,6 +1047,49 @@ class BookmarkBridge {
mNativeBookmarkBridge, BookmarkBridge.this, title, url);
}
@@ -196,7 +197,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/**
* @param url The URL of the reading list item.
* @return The reading list item with the URL, or null if no such reading list item.
@@ -1326,6 +1385,7 @@ class BookmarkBridge {
@@ -1327,6 +1387,7 @@ class BookmarkBridge {
void getAllFoldersWithDepths(long nativeBookmarkBridge, BookmarkBridge caller,
List<BookmarkId> folderList, List<Integer> depthList);
BookmarkId getRootFolderId(long nativeBookmarkBridge, BookmarkBridge caller);
@@ -348,7 +349,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/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
@@ -3588,6 +3588,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3606,6 +3606,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_MENU_TRACK_PRICES" desc="Menu item for tracking prices on tabs. [CHAR_LIMIT=27]">
Track prices
</message>
@@ -506,14 +507,14 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark
int64_t* max_node_id,
std::string* sync_metadata_str);
@@ -114,6 +116,7 @@ class BookmarkCodec {
@@ -113,6 +115,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 kDateLastUsed[];
+ static const char kTabsBookmarkFolderNameKey[];
static const char kDateLastUsed[];
// Possible values for kTypeKey.
static const char kTypeURL[];
@@ -130,6 +133,7 @@ class BookmarkCodec {
bool DecodeHelper(BookmarkNode* bb_node,
BookmarkNode* other_folder_node,
@@ -4,14 +4,14 @@ Subject: Add menu item to view source
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/android/java/res/menu/custom_tabs_menu.xml | 3 +++
chrome/android/java/res/menu/main_menu.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 | 4 ++++
7 files changed, 32 insertions(+)
.../android/java/res/menu/custom_tabs_menu.xml | 3 +++
chrome/android/java/res/menu/main_menu.xml | 3 +++
.../chrome/browser/ChromeTabbedActivity.java | 2 ++
.../chrome/browser/app/ChromeActivity.java | 5 +++++
.../appmenu/AppMenuPropertiesDelegateImpl.java | 18 ++++++++++++++++++
.../CustomTabAppMenuPropertiesDelegate.java | 1 +
.../android/strings/android_chrome_strings.grd | 4 ++++
7 files changed, 36 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
@@ -54,7 +54,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
@@ -2448,6 +2448,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -2445,6 +2445,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
return true;
}
@@ -69,7 +69,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
@@ -540,6 +540,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -543,6 +543,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
isChromeScheme, isFileScheme, isContentScheme, isIncognito, url));
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isChromeScheme);
@@ -77,8 +77,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
updateAutoDarkMenuItem(menu, currentTab, isChromeScheme);
@@ -1202,6 +1203,19 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
stopPriceTrackingMenuItem.setVisible(false);
@@ -1242,6 +1243,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
stopPriceTrackingMenuItem.setVisible(false);
}
+ /**
@@ -90,8 +90,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
+ protected void updateViewSourceMenuItem(
+ Menu menu, Tab currentTab) {
+ MenuItem viewSourceMenuItem = menu.findItem(R.id.view_source_id);
+ String url = currentTab.getUrl().getSpec();
+ viewSourceMenuItem.setVisible(!url.isEmpty() && !url.startsWith("view-source:"));
+ boolean visible = false;
+ if (currentTab != null) {
+ String url = currentTab.getUrl().getSpec();
+ visible = !url.isEmpty() && !url.startsWith("view-source:");
+ }
+ viewSourceMenuItem.setVisible(visible);
+ }
+
/**
@@ -84,7 +84,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
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
@@ -1442,6 +1442,12 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1439,6 +1439,12 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_PRIVACY_GUIDE_SB_ENHANCED_ITEM_SEVEN" desc="Seventh bullet point that describes the details of the Safe Browsing control.">
Temporarily links this data to your Google Account when youre signed in, to protect you across Google apps
</message>
@@ -68,16 +68,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
import org.chromium.chrome.R;
import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
@@ -54,6 +57,8 @@ public class PrivacySettings
private static final String PREF_PRIVACY_GUIDE = "privacy_guide";
private static final String PREF_INCOGNITO_LOCK = "incognito_lock";
@@ -67,6 +70,8 @@ public class PrivacySettings
SharedPreferencesManager.getInstance();
private final PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
+ private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
+
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
private IncognitoLockSettings mIncognitoLockSettings;
@@ -115,7 +120,11 @@ public class PrivacySettings
@@ -132,7 +137,11 @@ public class PrivacySettings
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String key = preference.getKey();
@@ -90,7 +90,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_HTTPS_FIRST_MODE.equals(key)) {
@@ -156,6 +165,11 @@ public class PrivacySettings
@@ -176,6 +185,11 @@ public class PrivacySettings
PreloadPagesSettingsFragment.getPreloadPagesSummaryString(getContext()));
}
@@ -105,7 +105,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
@@ -4478,6 +4478,12 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -4420,6 +4420,12 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</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>
@@ -156,7 +156,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
@@ -1257,6 +1257,9 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1254,6 +1254,9 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_CLEAR_BROWSING_DATA_TAB_PERIOD_HOUR" desc="The option to delete browsing data from the last hour.">
Last hour
</message>
+6 -6
View File
@@ -29,7 +29,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
#include "components/shared_highlighting/core/common/shared_highlighting_features.h"
#include "components/signin/core/browser/dice_account_reconcilor_delegate.h"
#include "components/signin/public/base/signin_buildflags.h"
@@ -9175,6 +9176,11 @@ const FeatureEntry kFeatureEntries[] = {
@@ -9174,6 +9175,11 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kSearchReadyOmniboxDescription, kOsAndroid,
FEATURE_VALUE_TYPE(chrome::android::kSearchReadyOmniboxFeature)},
@@ -59,15 +59,15 @@ 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
@@ -1969,6 +1969,9 @@ extern const char kReduceUserAgentMinorVersionDescription[];
extern const char kReduceUserAgentPlatformOsCpuName[];
extern const char kReduceUserAgentPlatformOsCpuDescription[];
@@ -1975,6 +1975,9 @@ extern const char kReduceUserAgentPlatformOsCpuDescription[];
extern const char kSkipServiceWorkerFetchHandlerName[];
extern const char kSkipServiceWorkerFetchHandlerDescription[];
+extern const char kSiteEngagementName[];
+extern const char kSiteEngagementDescription[];
+
extern const char kSkipServiceWorkerFetchHandlerName[];
extern const char kSkipServiceWorkerFetchHandlerDescription[];
extern const char kWebSQLAccessName[];
extern const char kWebSQLAccessDescription[];
diff --git a/components/site_engagement/content/site_engagement_score.cc b/components/site_engagement/content/site_engagement_score.cc
--- a/components/site_engagement/content/site_engagement_score.cc
@@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -67,6 +67,7 @@ import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFacto
@@ -66,6 +66,7 @@ import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFacto
import org.chromium.components.browser_ui.modaldialog.AppModalPresenter;
import org.chromium.components.browser_ui.settings.FragmentSettingsLauncher;
import org.chromium.components.browser_ui.settings.SettingsLauncher;
@@ -20,7 +20,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
import org.chromium.components.browser_ui.site_settings.SiteSettingsPreferenceFragment;
import org.chromium.components.browser_ui.widget.displaystyle.UiConfig;
import org.chromium.components.browser_ui.widget.displaystyle.ViewResizer;
@@ -333,9 +334,13 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -329,9 +330,13 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
finish();
return true;
} else if (item.getItemId() == R.id.menu_id_general_help) {
+4 -4
View File
@@ -214,11 +214,11 @@ diff --git a/components/components_strings.grd b/components/components_strings.g
@@ -338,6 +338,7 @@
<part file="version_ui_strings.grdp" />
<part file="webapps_strings.grdp" />
<part file="user_scripts/strings/userscripts_strings.grdp" />
+ <part file="browser_ui/strings/android/webgl.grdp" />
+ <part file="browser_ui/strings/android/webgl.grdp" />
<if expr="not is_ios">
<part file="history_clusters_strings.grdp" />
</if>
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
--- a/components/content_settings/core/browser/content_settings_registry.cc
+++ b/components/content_settings/core/browser/content_settings_registry.cc
@@ -414,7 +414,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h
--- a/third_party/blink/renderer/core/execution_context/execution_context.h
+++ b/third_party/blink/renderer/core/execution_context/execution_context.h
@@ -97,6 +97,7 @@ class SecurityOrigin;
@@ -96,6 +96,7 @@ class SecurityOrigin;
class ScriptState;
class ScriptWrappable;
class TrustedTypePolicyFactory;
@@ -422,7 +422,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context
enum ReasonForCallingCanExecuteScripts {
kAboutToExecuteScript,
@@ -105,6 +106,10 @@ enum ReasonForCallingCanExecuteScripts {
@@ -104,6 +105,10 @@ enum ReasonForCallingCanExecuteScripts {
enum ReferrerPolicySource { kPolicySourceHttpHeader, kPolicySourceMetaTag };
+3 -3
View File
@@ -209,12 +209,12 @@ diff --git a/components/components_strings.grd b/components/components_strings.g
+++ b/components/components_strings.grd
@@ -339,6 +339,7 @@
<part file="webapps_strings.grdp" />
<part file="user_scripts/strings/userscripts_strings.grdp" />
<part file="browser_ui/strings/android/webgl.grdp" />
+ <part file="browser_ui/strings/android/webrtc.grdp" />
<if expr="not is_ios">
<part file="history_clusters_strings.grdp" />
</if>
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
--- a/components/content_settings/core/browser/content_settings_registry.cc
+++ b/components/content_settings/core/browser/content_settings_registry.cc
@@ -385,7 +385,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d
#include "third_party/blink/public/platform/web_url.h"
#include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h"
#include "third_party/blink/public/web/web_document.h"
@@ -767,6 +768,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
@@ -765,6 +766,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
// origin.
WebRTCIPHandlingPolicy policy =
GetWebRTCIPHandlingPolicy(webrtc_ip_handling_policy);
@@ -5,7 +5,7 @@ Subject: Allow building without enable_reporting
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../browser/devtools/protocol/network_handler.cc | 2 ++
.../cross_origin_embedder_policy_reporter.cc | 3 +++
.../cross_origin_embedder_policy_reporter.cc | 7 +++++--
.../cross_origin_opener_policy_reporter.cc | 16 +++++++---------
.../browser/network/reporting_service_proxy.cc | 3 +++
.../renderer_host/render_frame_host_impl.cc | 6 ------
@@ -19,7 +19,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../blink/renderer/core/frame/local_frame.h | 6 +++---
.../renderer/core/frame/reporting_context.cc | 9 +++++++++
.../renderer/core/frame/reporting_context.h | 7 +++++--
15 files changed, 48 insertions(+), 23 deletions(-)
15 files changed, 50 insertions(+), 25 deletions(-)
diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc
--- a/content/browser/devtools/protocol/network_handler.cc
@@ -51,22 +51,33 @@ diff --git a/content/browser/network/cross_origin_embedder_policy_reporter.cc b/
#include "base/strings/string_piece.h"
#include "base/values.h"
#include "content/public/browser/storage_partition.h"
@@ -112,6 +113,7 @@ void CrossOriginEmbedderPolicyReporter::QueueAndNotify(
@@ -95,8 +96,6 @@ void CrossOriginEmbedderPolicyReporter::Clone(
void CrossOriginEmbedderPolicyReporter::QueueAndNotify(
std::initializer_list<std::pair<base::StringPiece, base::StringPiece>> body,
bool report_only) {
- const absl::optional<std::string>& endpoint =
- report_only ? report_only_endpoint_ : endpoint_;
const char* const disposition = report_only ? "reporting" : "enforce";
if (observer_) {
std::vector<blink::mojom::ReportBodyElementPtr> list;
@@ -111,6 +110,9 @@ void CrossOriginEmbedderPolicyReporter::QueueAndNotify(
observer_->Notify(blink::mojom::Report::New(
kType, context_url_, blink::mojom::ReportBody::New(std::move(list))));
}
if (endpoint) {
+#if BUILDFLAG(ENABLE_REPORTING)
+ const absl::optional<std::string>& endpoint =
+ report_only ? report_only_endpoint_ : endpoint_;
if (endpoint) {
base::Value::Dict body_to_pass;
for (const auto& pair : body) {
body_to_pass.Set(pair.first, pair.second);
@@ -124,6 +126,7 @@ void CrossOriginEmbedderPolicyReporter::QueueAndNotify(
network_anonymization_key_,
@@ -125,6 +127,7 @@ void CrossOriginEmbedderPolicyReporter::QueueAndNotify(
/*user_agent=*/absl::nullopt, std::move(body_to_pass));
}
+#endif
}
+#endif
}
} // namespace content
diff --git a/content/browser/network/cross_origin_opener_policy_reporter.cc b/content/browser/network/cross_origin_opener_policy_reporter.cc
--- a/content/browser/network/cross_origin_opener_policy_reporter.cc
+++ b/content/browser/network/cross_origin_opener_policy_reporter.cc
@@ -1,25 +0,0 @@
From: uazo <uazo@users.noreply.github.com>
Date: Sat, 20 Nov 2021 17:42:41 +0000
Subject: Ask user before closing all tabs
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/browser/flags/android/chrome_feature_list.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
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
@@ -543,8 +543,8 @@ BASE_FEATURE(kClearOmniboxFocusAfterNavigation,
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kCloseTabSuggestions,
- "CloseTabSuggestions",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ "CloseTabSuggestions", // Enabled by default in Bromite
+ base::FEATURE_ENABLED_BY_DEFAULT); // ^
BASE_FEATURE(kCriticalPersistedTabData,
"CriticalPersistedTabData",
--
2.25.1
@@ -6,49 +6,209 @@ Truncate base latency precision to two digits
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../blink/renderer/modules/webaudio/analyser_node.idl | 8 ++++----
.../blink/renderer/modules/webaudio/audio_buffer.idl | 6 ------
.../blink/renderer/modules/webaudio/audio_context.cc | 4 +++-
3 files changed, 7 insertions(+), 11 deletions(-)
chrome/browser/about_flags.cc | 4 ++++
chrome/browser/flag_descriptions.cc | 5 ++++
chrome/browser/flag_descriptions.h | 3 +++
third_party/blink/common/features.cc | 4 ++++
third_party/blink/public/common/features.h | 2 ++
.../renderer/modules/webaudio/audio_buffer.cc | 24 +++++++++++++++----
.../renderer/modules/webaudio/audio_buffer.h | 7 +++---
.../modules/webaudio/audio_buffer.idl | 4 ++--
.../modules/webaudio/audio_context.cc | 5 +++-
.../modules/webaudio/base_audio_context.cc | 12 ++++++++++
.../modules/webaudio/base_audio_context.h | 2 ++
.../modules/webaudio/realtime_analyser.cc | 9 +++++++
12 files changed, 71 insertions(+), 10 deletions(-)
diff --git a/third_party/blink/renderer/modules/webaudio/analyser_node.idl b/third_party/blink/renderer/modules/webaudio/analyser_node.idl
--- a/third_party/blink/renderer/modules/webaudio/analyser_node.idl
+++ b/third_party/blink/renderer/modules/webaudio/analyser_node.idl
@@ -40,10 +40,10 @@
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
@@ -3660,6 +3660,10 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kKioskEnableAppServiceDescription, kOsCrOS,
FEATURE_VALUE_TYPE(features::kKioskEnableAppService)},
#endif // BUILDFLAG(IS_CHROMEOS)
+ {"fingerprinting-audio-context-data-noise",
+ flag_descriptions::kAudioContextShuffleEnabledName,
+ flag_descriptions::kAudioContextShuffleEnabledDescription, kOsAll,
+ FEATURE_VALUE_TYPE(blink::features::kAudioContextShuffleEnabled)},
#if !BUILDFLAG(IS_ANDROID)
{"enable-webrtc-remote-event-log",
flag_descriptions::kWebRtcRemoteEventLogName,
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
@@ -3353,6 +3353,11 @@ const char kWebrtcUseMinMaxVEADimensionsDescription[] =
"When enabled, WebRTC will only use the Video Encode Accelerator for "
"video resolutions inside those published as supported.";
// Copies the current frequency data into the passed array.
// If the array has fewer elements than the frequencyBinCount, the excess elements will be dropped.
- [HighEntropy, Measure] void getFloatFrequencyData(Float32Array array);
- [HighEntropy, Measure] void getByteFrequencyData(Uint8Array array);
+ //[HighEntropy, Measure] void getFloatFrequencyData(Float32Array array);
+ //[HighEntropy, Measure] void getByteFrequencyData(Uint8Array array);
+const char kAudioContextShuffleEnabledName[] =
+ "Enable Audio Context fingerprint deception";
+const char kAudioContextShuffleEnabledDescription[] =
+ "Scale the output values of xxx with a randomly selected factor.";
+
const char kWebUsbDeviceDetectionName[] =
"Automatic detection of WebUSB-compatible devices";
const char kWebUsbDeviceDetectionDescription[] =
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
@@ -1905,6 +1905,9 @@ extern const char kWebrtcSrtpAesGcmDescription[];
extern const char kWebrtcUseMinMaxVEADimensionsName[];
extern const char kWebrtcUseMinMaxVEADimensionsDescription[];
// Real-time waveform data
- [HighEntropy, Measure] void getFloatTimeDomainData(Float32Array array);
- [HighEntropy, Measure] void getByteTimeDomainData(Uint8Array array);
+ //[HighEntropy, Measure] void getFloatTimeDomainData(Float32Array array);
+ //[HighEntropy, Measure] void getByteTimeDomainData(Uint8Array array);
};
+extern const char kAudioContextShuffleEnabledName[];
+extern const char kAudioContextShuffleEnabledDescription[];
+
extern const char kWebUsbDeviceDetectionName[];
extern const char kWebUsbDeviceDetectionDescription[];
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
@@ -617,6 +617,10 @@ BASE_FEATURE(kWebRtcUseMinMaxVEADimensions,
#endif
);
+BASE_FEATURE(kAudioContextShuffleEnabled,
+ "AudioContextShuffleEnabled",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
// Blink garbage collection.
// Enables compaction of backing stores on Blink's heap.
BASE_FEATURE(kBlinkHeapCompaction,
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h
--- a/third_party/blink/public/common/features.h
+++ b/third_party/blink/public/common/features.h
@@ -247,6 +247,8 @@ BLINK_COMMON_EXPORT bool IsPlzDedicatedWorkerEnabled();
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kWebRtcUseMinMaxVEADimensions);
+BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kAudioContextShuffleEnabled);
+
// Blink garbage collection.
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBlinkHeapCompaction);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBlinkHeapConcurrentMarking);
diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc
--- a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc
+++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc
@@ -29,6 +29,7 @@
#include "third_party/blink/renderer/modules/webaudio/audio_buffer.h"
#include <memory>
+#include "third_party/blink/public/common/features.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_audio_buffer_options.h"
#include "third_party/blink/renderer/modules/webaudio/base_audio_context.h"
#include "third_party/blink/renderer/platform/audio/audio_bus.h"
@@ -197,6 +198,7 @@ AudioBuffer::AudioBuffer(AudioBus* bus)
}
NotShared<DOMFloat32Array> AudioBuffer::getChannelData(
+ ScriptState* script_state,
unsigned channel_index,
ExceptionState& exception_state) {
if (channel_index >= channels_.size()) {
@@ -208,7 +210,16 @@ NotShared<DOMFloat32Array> AudioBuffer::getChannelData(
return NotShared<DOMFloat32Array>(nullptr);
}
- return getChannelData(channel_index);
+ NotShared<DOMFloat32Array> array = getChannelData(channel_index);
+ DOMFloat32Array* destination_array = array.Get();
+ size_t len = destination_array->length();
+ if (len > 0) {
+ float* destination = destination_array->Data();
+ for (unsigned i = 0; i < len; ++i) {
+ destination[i] = BaseAudioContext::ShuffleAudioData(destination[i], i);
+ }
+ }
+ return array;
}
NotShared<DOMFloat32Array> AudioBuffer::getChannelData(unsigned channel_index) {
@@ -219,13 +230,15 @@ NotShared<DOMFloat32Array> AudioBuffer::getChannelData(unsigned channel_index) {
return NotShared<DOMFloat32Array>(channels_[channel_index].Get());
}
-void AudioBuffer::copyFromChannel(NotShared<DOMFloat32Array> destination,
+void AudioBuffer::copyFromChannel(ScriptState* script_state,
+ NotShared<DOMFloat32Array> destination,
int32_t channel_number,
ExceptionState& exception_state) {
- return copyFromChannel(destination, channel_number, 0, exception_state);
+ return copyFromChannel(script_state, destination, channel_number, 0, exception_state);
}
-void AudioBuffer::copyFromChannel(NotShared<DOMFloat32Array> destination,
+void AudioBuffer::copyFromChannel(ScriptState* script_state,
+ NotShared<DOMFloat32Array> destination,
int32_t channel_number,
size_t buffer_offset,
ExceptionState& exception_state) {
@@ -264,6 +277,9 @@ void AudioBuffer::copyFromChannel(NotShared<DOMFloat32Array> destination,
DCHECK_LE(buffer_offset + count, data_length);
memmove(dst, src + buffer_offset, count * sizeof(*src));
+ for (unsigned i = 0; i < count; i++) {
+ dst[i] = BaseAudioContext::ShuffleAudioData(dst[i], i);
+ }
}
void AudioBuffer::copyToChannel(NotShared<DOMFloat32Array> source,
diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.h b/third_party/blink/renderer/modules/webaudio/audio_buffer.h
--- a/third_party/blink/renderer/modules/webaudio/audio_buffer.h
+++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.h
@@ -44,6 +44,7 @@ class AudioBus;
class AudioBufferOptions;
class ExceptionState;
class SharedAudioBuffer;
+class ScriptState;
class MODULES_EXPORT AudioBuffer final : public ScriptWrappable {
DEFINE_WRAPPERTYPEINFO();
@@ -88,13 +89,13 @@ class MODULES_EXPORT AudioBuffer final : public ScriptWrappable {
// Channel data access
unsigned numberOfChannels() const { return channels_.size(); }
- NotShared<DOMFloat32Array> getChannelData(unsigned channel_index,
+ NotShared<DOMFloat32Array> getChannelData(ScriptState*, unsigned channel_index,
ExceptionState&);
NotShared<DOMFloat32Array> getChannelData(unsigned channel_index);
- void copyFromChannel(NotShared<DOMFloat32Array>,
+ void copyFromChannel(ScriptState*, NotShared<DOMFloat32Array>,
int32_t channel_number,
ExceptionState&);
- void copyFromChannel(NotShared<DOMFloat32Array>,
+ void copyFromChannel(ScriptState*, NotShared<DOMFloat32Array>,
int32_t channel_number,
size_t buffer_offset,
ExceptionState&);
diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.idl b/third_party/blink/renderer/modules/webaudio/audio_buffer.idl
--- a/third_party/blink/renderer/modules/webaudio/audio_buffer.idl
+++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.idl
@@ -37,12 +37,6 @@
@@ -37,9 +37,9 @@
// Channel access
readonly attribute unsigned long numberOfChannels;
- [HighEntropy=Direct, Measure, RaisesException] Float32Array getChannelData(
- unsigned long channelIndex);
+ [CallWith=ScriptState, HighEntropy=Direct, Measure, RaisesException] Float32Array getChannelData(
unsigned long channelIndex);
- [HighEntropy, Measure, RaisesException] void copyFromChannel(
- Float32Array destination,
- unsigned long channelNumber,
- optional unsigned long bufferOffset = 0);
[RaisesException] void copyToChannel(
Float32Array source,
+ [CallWith=ScriptState, HighEntropy, Measure, RaisesException] void copyFromChannel(
Float32Array destination,
unsigned long channelNumber,
optional unsigned long bufferOffset = 0);
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
@@ -508,7 +508,9 @@ double AudioContext::baseLatency() const {
@@ -10,6 +10,7 @@
#include "services/metrics/public/cpp/ukm_builders.h"
#include "services/metrics/public/cpp/ukm_recorder.h"
#include "third_party/blink/public/common/browser_interface_broker_proxy.h"
+#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
#include "third_party/blink/public/platform/web_audio_latency_hint.h"
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
@@ -508,7 +509,9 @@ double AudioContext::baseLatency() const {
DCHECK(IsMainThread());
DCHECK(destination());
@@ -59,5 +219,93 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/thir
}
double AudioContext::outputLatency() const {
diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b/third_party/blink/renderer/modules/webaudio/base_audio_context.cc
--- a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc
+++ b/third_party/blink/renderer/modules/webaudio/base_audio_context.cc
@@ -29,6 +29,7 @@
#include "base/metrics/histogram_functions.h"
#include "build/build_config.h"
+#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/mojom/devtools/console_message.mojom-blink.h"
#include "third_party/blink/public/mojom/frame/lifecycle.mojom-shared.h"
#include "third_party/blink/public/platform/platform.h"
@@ -702,6 +703,17 @@ Document* BaseAudioContext::GetDocument() const {
return window ? window->document() : nullptr;
}
+/*static*/
+float BaseAudioContext::ShuffleAudioData(float data, unsigned index) {
+ if (base::FeatureList::IsEnabled(features::kAudioContextShuffleEnabled)) {
+ float rnd = 1.0f +
+ (base::RandDouble() / 10000.0) *
+ (base::RandInt(0,10) > 5 ? 1.f : -1.f);
+ return data * rnd;
+ }
+ return data;
+}
+
void BaseAudioContext::NotifySourceNodeStartedProcessing(AudioNode* node) {
DCHECK(IsMainThread());
GraphAutoLocker locker(this);
diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.h b/third_party/blink/renderer/modules/webaudio/base_audio_context.h
--- a/third_party/blink/renderer/modules/webaudio/base_audio_context.h
+++ b/third_party/blink/renderer/modules/webaudio/base_audio_context.h
@@ -338,6 +338,8 @@ class MODULES_EXPORT BaseAudioContext
// if the execution context does not exist.
bool CheckExecutionContextAndThrowIfNecessary(ExceptionState&);
+ static float ShuffleAudioData(float data, unsigned index);
+
protected:
enum ContextType { kRealtimeContext, kOfflineContext };
diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc
--- a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc
+++ b/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc
@@ -29,6 +29,9 @@
#include <algorithm>
#include <complex>
+#include "third_party/blink/public/common/features.h"
+#include "third_party/blink/renderer/modules/webaudio/realtime_analyser.h"
+#include "third_party/blink/renderer/modules/webaudio/base_audio_context.h"
#include "third_party/blink/renderer/platform/audio/audio_bus.h"
#include "third_party/blink/renderer/platform/audio/audio_utilities.h"
#include "third_party/blink/renderer/platform/audio/vector_math.h"
@@ -154,6 +157,7 @@ void RealtimeAnalyser::GetFloatTimeDomainData(
input_buffer[(i + write_index - fft_size + kInputBufferSize) %
kInputBufferSize];
+ value = BaseAudioContext::ShuffleAudioData(value, i);
destination[i] = value;
}
}
@@ -181,6 +185,8 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) {
input_buffer[(i + write_index - fft_size + kInputBufferSize) %
kInputBufferSize];
+ value = BaseAudioContext::ShuffleAudioData(value, i);
+
// Scale from nominal -1 -> +1 to unsigned byte.
double scaled_value = 128 * (value + 1);
@@ -308,6 +314,8 @@ void RealtimeAnalyser::ConvertToByteData(DOMUint8Array* destination_array) {
double scaled_value =
UCHAR_MAX * (db_mag - min_decibels) * range_scale_factor;
+ scaled_value = BaseAudioContext::ShuffleAudioData(scaled_value, i);
+
// Clip to valid range.
if (scaled_value < 0) {
scaled_value = 0;
@@ -333,6 +341,7 @@ void RealtimeAnalyser::ConvertFloatToDb(DOMFloat32Array* destination_array) {
float linear_value = source[i];
double db_mag = audio_utilities::LinearToDecibels(linear_value);
destination[i] = static_cast<float>(db_mag);
+ destination[i] = BaseAudioContext::ShuffleAudioData(destination[i], i);
}
}
}
--
2.25.1
@@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc
--- a/third_party/blink/renderer/core/execution_context/execution_context.cc
+++ b/third_party/blink/renderer/core/execution_context/execution_context.cc
@@ -670,4 +670,20 @@ bool ExecutionContext::RequireTrustedTypes() const {
@@ -693,4 +693,20 @@ bool ExecutionContext::RequireTrustedTypes() const {
return require_safe_types_;
}
@@ -47,7 +47,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h
--- a/third_party/blink/renderer/core/execution_context/execution_context.h
+++ b/third_party/blink/renderer/core/execution_context/execution_context.h
@@ -391,6 +391,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable<ExecutionContext>,
@@ -396,6 +396,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable<ExecutionContext>,
void SetAddressSpace(network::mojom::blink::IPAddressSpace ip_address_space);
HeapObserverSet<ContextLifecycleObserver>& ContextLifecycleObserverSet();
+15 -14
View File
@@ -3,6 +3,7 @@ Date: Thu, 7 Oct 2021 14:27:12 +0000
Subject: Bromite auto updater
Enable checking for new versions, with notifications and proxy support.
Restore InlineUpdateFlow feature.
Some parts authored by csagan5.
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
@@ -62,7 +63,7 @@ diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
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
@@ -814,6 +814,9 @@ chrome_java_sources = [
@@ -812,6 +812,9 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java",
"java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java",
"java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java",
@@ -1250,7 +1251,7 @@ new file mode 100644
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
@@ -263,6 +263,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -251,6 +251,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kNewWindowAppMenu,
&kNotificationPermissionVariant,
&kPageAnnotationsService,
@@ -1258,32 +1259,32 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
&kBookmarksImprovedSaveFlow,
&kBookmarksRefresh,
&kBackGestureRefactorAndroid,
@@ -810,6 +811,10 @@ BASE_FEATURE(kIncognitoScreenshot,
"IncognitoScreenshot",
@@ -693,6 +694,10 @@ BASE_FEATURE(kContextMenuTranslateWithGoogleLens,
"ContextMenuTranslateWithGoogleLens",
base::FEATURE_DISABLED_BY_DEFAULT);
+BASE_FEATURE(kInlineUpdateFlow,
+ "InlineUpdateFlow",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
BASE_FEATURE(kInfobarScrollOptimization,
"InfobarScrollOptimization",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kLensCameraAssistedSearch,
"LensCameraAssistedSearch",
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
@@ -102,6 +102,7 @@ BASE_DECLARE_FEATURE(kHandleMediaIntents);
@@ -91,6 +91,7 @@ BASE_DECLARE_FEATURE(kGridTabSwitcherForTablets);
BASE_DECLARE_FEATURE(kHandleMediaIntents);
BASE_DECLARE_FEATURE(kImmersiveUiMode);
BASE_DECLARE_FEATURE(kIncognitoReauthenticationForAndroid);
BASE_DECLARE_FEATURE(kIncognitoScreenshot);
+BASE_DECLARE_FEATURE(kInlineUpdateFlow);
BASE_DECLARE_FEATURE(kIncognitoScreenshot);
BASE_DECLARE_FEATURE(kInfobarScrollOptimization);
BASE_DECLARE_FEATURE(kImprovedA2HS);
BASE_DECLARE_FEATURE(kInstanceSwitcher);
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
@@ -387,6 +387,7 @@ public abstract class ChromeFeatureList {
@@ -385,6 +385,7 @@ public abstract class ChromeFeatureList {
"IncognitoReauthenticationForAndroid";
public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot";
public static final String INFOBAR_SCROLL_OPTIMIZATION = "InfobarScrollOptimization";
@@ -1294,7 +1295,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
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
@@ -1888,6 +1888,12 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1837,6 +1837,12 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_DEPRECATION_WARNING" desc="Warning about Chrome updates no longer being supported">
Chrome updates are no longer supported for this version of Android
</message>
@@ -1307,7 +1308,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
<!-- Account management UI strings. -->
<message name="IDS_ACCOUNT_MANAGEMENT_TITLE" desc="Header title for the account management screen. [CHAR_LIMIT=32]">
@@ -3504,7 +3510,10 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3453,7 +3459,10 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<!-- Main menu items -->
<message name="IDS_MENU_UPDATE" desc="Menu item for updating chrome. [CHAR_LIMIT=24]">
@@ -1319,7 +1320,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
</message>
<message name="IDS_MENU_UPDATE_SUMMARY_DEFAULT" desc="Summary string for update menu item explaining that a newer version of Chrome is available. [CHAR_LIMIT=30]">
Newer version is available
@@ -3515,6 +3524,18 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3464,6 +3473,18 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_MENU_UPDATE_UNSUPPORTED_SUMMARY_DEFAULT" desc="Summary string for update menu item explaining that the Android version on the device is unsupported. [CHAR_LIMIT=30]">
Android version is unsupported
</message>
+1 -1
View File
@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -51,7 +51,7 @@ chrome_jni_registration_header =
@@ -47,7 +47,7 @@ chrome_jni_registration_header =
chrome_jni_for_test_registration_header = "$root_build_dir/gen/chrome/browser/android/chrome_jni_for_test_registration.h"
if (current_toolchain == default_toolchain) {
@@ -1,6 +1,6 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sat, 14 Sep 2019 10:20:08 +0200
Subject: Bromite AdBlockUpdaterService
Subject: Bromite subresource adblocker
Add option to configure the ad blocker filters URL
Disable look-alike, metrics, ablation and navigation throttles
@@ -8,6 +8,7 @@ Do not use experiments to enable/disable presets
Always enable ad filtering
Download filters by checking Last-Modified header first
Fix RestoreForeignSessionTab by recreating the tab (issue #681)
Enable AutomaticLazyFrameLoadingToAds and AutomaticLazyFrameLoadingToEmbeds features
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
@@ -49,7 +50,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/subresource_filter_features.cc | 116 +-------
.../core/common/indexed_ruleset.cc | 5 +-
.../navigation_throttle_runner.cc | 5 -
38 files changed, 1160 insertions(+), 129 deletions(-)
third_party/blink/common/features.cc | 12 +-
39 files changed, 1166 insertions(+), 135 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
@@ -62,14 +64,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -401,6 +401,7 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/download/android:java",
"//chrome/browser/download/android:java_resources",
"//chrome/browser/enterprise/util:java",
@@ -372,6 +372,7 @@ if (current_toolchain == default_toolchain) {
"//chrome/android/modules/image_editor/provider:java",
"//chrome/android/modules/stack_unwinder/provider:java",
"//chrome/android/webapk/libs/client:client_java",
+ "//chrome/browser/endpoint_fetcher:java",
"//chrome/browser/feature_engagement:java",
"//chrome/browser/feature_guide/notifications:java",
"//chrome/browser/feed/android:java",
"//chrome/android/webapk/libs/common:common_java",
"//chrome/android/webapk/libs/common:splash_java",
"//chrome/android/webapk/libs/runtime_library:webapk_service_aidl_java",
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
@@ -77,7 +79,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
"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/adblock_editor.xml",
"java/res/layout/auto_sign_in_first_run_dialog.xml",
"java/res/layout/autofill_billing_address_dropdown.xml",
"java/res/layout/autofill_card_unmask_prompt.xml",
@@ -92,7 +94,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
@@ -908,6 +908,8 @@ chrome_java_sources = [
@@ -907,6 +907,8 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/permissions/PermissionSettingsBridge.java",
"java/src/org/chromium/chrome/browser/permissions/PermissionUpdateRequester.java",
"java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java",
@@ -555,16 +557,16 @@ 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
@@ -1753,6 +1753,9 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
// Just initialize the policy prefs service here. Variations seed fetching
// will be initialized when the app enters foreground mode.
variations_service->set_policy_pref_service(profile->GetPrefs());
@@ -415,6 +415,9 @@ StartupProfileInfo CreateInitialProfile(
// missing code in the above test.
CHECK(profile_info.profile) << "Cannot get default profile.";
+ // force AdBlock updater initialisation
+ g_browser_process->adblock_updater();
+
#else
// We are in regular browser boot sequence. Open initial tabs and enter the
// main message loop.
#if BUILDFLAG(IS_CHROMEOS_LACROS)
// Lacros has a special "primary" profile that is tied to the active ChromeOS
diff --git a/chrome/browser/flags/android/cached_feature_flags.cc b/chrome/browser/flags/android/cached_feature_flags.cc
--- a/chrome/browser/flags/android/cached_feature_flags.cc
+++ b/chrome/browser/flags/android/cached_feature_flags.cc
@@ -702,7 +704,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp
--- a/components/browser_ui/strings/android/site_settings.grdp
+++ b/components/browser_ui/strings/android/site_settings.grdp
@@ -282,8 +282,8 @@
@@ -303,8 +303,8 @@
<message name="IDS_INTRUSIVE_ADS_INFORMATION" desc="The extra information at the top of the Site Details page when the site tends to show intrusive ads">
This site shows intrusive or misleading ads
</message>
@@ -1866,5 +1868,41 @@ diff --git a/content/browser/renderer_host/navigation_throttle_runner.cc b/conte
}
NavigationThrottle* NavigationThrottleRunner::GetDeferringThrottle() const {
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
@@ -28,8 +28,8 @@ BASE_FEATURE(kAnonymousIframeOriginTrial,
// Apply lazy-loading to ad frames which have embeds likely impacting Core Web
// Vitals.
BASE_FEATURE(kAutomaticLazyFrameLoadingToAds,
- "AutomaticLazyFrameLoadingToAds",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ "AutomaticLazyFrameLoadingToAds", // must be enabled
+ base::FEATURE_ENABLED_BY_DEFAULT); // in Bromite
// The timeout value that forces loading iframes that are lazy loaded by
// LazyAds. After this timeout, the frame loading is triggered even when the
@@ -49,8 +49,8 @@ const base::FeatureParam<int> kSkipFrameCountForLazyAds(
// Apply lazy-loading to frames which have embeds likely impacting Core Web
// Vitals.
BASE_FEATURE(kAutomaticLazyFrameLoadingToEmbeds,
- "AutomaticLazyFrameLoadingToEmbeds",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ "AutomaticLazyFrameLoadingToEmbeds", // must be enabled
+ base::FEATURE_ENABLED_BY_DEFAULT); // in Bromite
// The timeout value that forces loading iframes that are lazy loaded by
// LazyEmbeds. After this timeout, the frame loading is triggered even when the
@@ -72,8 +72,8 @@ const base::FeatureParam<int> kSkipFrameCountForLazyEmbeds(
// to gather Blink.AutomaticLazyLoadFrame.LazyEmbedFrameCount UKM data even when
// kAutomaticLazyFrameLoadingToEmbeds is disabled.
BASE_FEATURE(kAutomaticLazyFrameLoadingToEmbedUrls,
- "AutomaticLazyFrameLoadingToEmbedUrls",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ "AutomaticLazyFrameLoadingToEmbedUrls", // must be disabled
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
// Define the strategy for LazyEmbeds to decide which frames we apply
// lazy-loading or not. If the loading strategy is kAllowList, the detection
--
2.25.1
@@ -1,9 +1,12 @@
From: uazo <uazo@users.noreply.github.com>
Date: Mon, 3 Oct 2022 09:39:07 +0000
Subject: Fix WebWorker requestAnimationFrame
Subject: Clamp time resolution in requestAnimationFrame
Aligns requestAnimationFrame's callback to the w3c specification
See bugid 1236113
Aligns requestAnimationFrame's WebWorker callback to the W3C specification
See https://bugs.chromium.org/p/chromium/issues/detail?id=1236113
Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../animation_frame/worker_animation_frame_provider.cc | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
@@ -11,16 +14,15 @@ See bugid 1236113
diff --git a/third_party/blink/renderer/core/animation_frame/worker_animation_frame_provider.cc b/third_party/blink/renderer/core/animation_frame/worker_animation_frame_provider.cc
--- a/third_party/blink/renderer/core/animation_frame/worker_animation_frame_provider.cc
+++ b/third_party/blink/renderer/core/animation_frame/worker_animation_frame_provider.cc
@@ -8,7 +8,9 @@
@@ -7,6 +7,8 @@
#include "base/trace_event/trace_event.h"
#include "third_party/blink/renderer/core/execution_context/agent.h"
#include "third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.h"
#include "third_party/blink/renderer/core/timing/worker_global_scope_performance.h"
+#include "third_party/blink/renderer/core/workers/worker_global_scope.h"
#include "third_party/blink/renderer/platform/scheduler/public/event_loop.h"
+#include "third_party/blink/renderer/platform/wtf/casting.h"
#include "third_party/blink/renderer/core/timing/worker_global_scope_performance.h"
#include "third_party/blink/renderer/platform/scheduler/public/event_loop.h"
#include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
namespace blink {
@@ -63,7 +65,11 @@ void WorkerAnimationFrameProvider::BeginFrame(const viz::BeginFrameArgs& args) {
}
}
+17 -58
View File
@@ -3,22 +3,19 @@ Date: Thu, 22 Jul 2021 23:10:52 +0200
Subject: Client hints overrides
Disable critical client hints
Hard-code model to SAMSUNG SM-G960U
use Google Chrome branding for client hints
Use Google Chrome branding for client hints
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
components/embedder_support/user_agent_utils.cc | 4 +---
content/browser/client_hints/client_hints.cc | 3 ++-
content/browser/loader/navigation_url_loader_impl.cc | 5 +++++
content/common/user_agent.cc | 9 +--------
content/public/common/content_features.cc | 2 +-
services/network/public/cpp/client_hints.cc | 1 +
services/network/public/cpp/features.cc | 2 +-
third_party/blink/common/client_hints/client_hints.cc | 1 +
.../blink/common/client_hints/enabled_client_hints.cc | 4 +++-
third_party/blink/common/features.cc | 4 ++--
10 files changed, 18 insertions(+), 17 deletions(-)
components/embedder_support/user_agent_utils.cc | 4 +---
content/browser/client_hints/client_hints.cc | 3 ++-
content/browser/loader/navigation_url_loader_impl.cc | 5 +++++
content/public/common/content_features.cc | 4 ++--
services/network/public/cpp/client_hints.cc | 1 +
services/network/public/cpp/features.cc | 2 +-
third_party/blink/common/client_hints/client_hints.cc | 1 +
.../blink/common/client_hints/enabled_client_hints.cc | 4 +++-
8 files changed, 16 insertions(+), 8 deletions(-)
diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedder_support/user_agent_utils.cc
--- a/components/embedder_support/user_agent_utils.cc
@@ -62,34 +59,17 @@ diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/brow
LogAcceptCHFrameStatus(AcceptCHFrameRestart::kFramePresent);
// Given that this is happening in the middle of navigation, there should
diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc
--- a/content/common/user_agent.cc
+++ b/content/common/user_agent.cc
@@ -323,14 +323,7 @@ std::string BuildUserAgentFromProduct(const std::string& product) {
}
std::string BuildModelInfo() {
- std::string model;
-#if BUILDFLAG(IS_ANDROID)
- // Only send the model information if on the release build of Android,
- // matching user agent behaviour.
- if (base::SysInfo::GetAndroidBuildCodename() == "REL")
- model = base::SysInfo::HardwareModelName();
-#endif
- return model;
+ return "SAMSUNG SM-G960U";
}
#if BUILDFLAG(IS_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
@@ -248,7 +248,7 @@ BASE_FEATURE(kCrashReporting,
@@ -248,8 +248,8 @@ BASE_FEATURE(kCrashReporting,
// Enables support for the `Critical-CH` response header.
// https://github.com/WICG/client-hints-infrastructure/blob/master/reliability.md#critical-ch
BASE_FEATURE(kCriticalClientHint,
"CriticalClientHint",
- "CriticalClientHint",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ "CriticalClientHint", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
// Enable debugging the issue crbug.com/1201355
BASE_FEATURE(kDebugHistoryInterventionNoUserActivation,
@@ -107,12 +87,12 @@ diff --git a/services/network/public/cpp/client_hints.cc b/services/network/publ
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
@@ -197,7 +197,7 @@ BASE_FEATURE(kWebSocketReassembleShortMessages,
@@ -198,7 +198,7 @@ BASE_FEATURE(kWebSocketReassembleShortMessages,
// Enable support for ACCEPT_CH H2/3 frame as part of Client Hint Reliability.
// See:
// https://tools.ietf.org/html/draft-davidben-http-client-hint-reliability-02#section-4.3
-BASE_FEATURE(kAcceptCHFrame, "AcceptCHFrame", base::FEATURE_ENABLED_BY_DEFAULT);
+BASE_FEATURE(kAcceptCHFrame, "AcceptCHFrame", base::FEATURE_DISABLED_BY_DEFAULT); // disabled by default
+BASE_FEATURE(kAcceptCHFrame, "AcceptCHFrame", base::FEATURE_DISABLED_BY_DEFAULT); // disabled by default in Bromite
BASE_FEATURE(kSCTAuditingRetryReports,
"SCTAuditingRetryReports",
@@ -155,26 +135,5 @@ diff --git a/third_party/blink/common/client_hints/enabled_client_hints.cc b/thi
for (const auto& elem : network::GetClientHintToNameMap()) {
const auto& type = elem.first;
if (IsEnabled(type))
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
@@ -553,7 +553,7 @@ BASE_FEATURE(kAudioWorkletThreadRealtimePriority,
BASE_FEATURE(kLightweightNoStatePrefetch,
"LightweightNoStatePrefetch",
#if BUILDFLAG(IS_ANDROID)
- base::FEATURE_ENABLED_BY_DEFAULT
+ base::FEATURE_DISABLED_BY_DEFAULT
#else
base::FEATURE_DISABLED_BY_DEFAULT
#endif
@@ -1091,7 +1091,7 @@ BASE_FEATURE(kForceMajorVersionInMinorPositionInUserAgent,
// Enable `sec-ch-device-memory` client hint.
BASE_FEATURE(kClientHintsDeviceMemory,
"ClientHintsDeviceMemory",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
// Enable `sec-ch-dpr` client hint.
BASE_FEATURE(kClientHintsDPR,
--
2.25.1
@@ -763,7 +763,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
@@ -43,6 +43,7 @@ import org.chromium.content_public.browser.ContentFeatureList;
@@ -42,6 +42,7 @@ import org.chromium.content_public.browser.ContentFeatureList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
@@ -771,7 +771,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
/**
* Shows the permissions and other settings for a particular website.
@@ -172,7 +173,7 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
@@ -171,7 +172,7 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
case ContentSettingsType.CLIPBOARD_READ_WRITE:
return "clipboard_permission_list";
default:
@@ -780,7 +780,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
}
@@ -505,7 +506,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
@@ -504,7 +505,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
private void setupContentSettingsPreferences() {
mMaxPermissionOrder = findPreference(PREF_PERMISSIONS_HEADER).getOrder();
@@ -818,7 +818,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
switchPreference.setOnPreferenceChangeListener(this);
@ContentSettingsType
int contentType = getContentSettingsTypeFromPreferenceKey(preference.getKey());
@@ -1216,7 +1224,7 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
@@ -1206,7 +1214,7 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
}
mSite.setContentSetting(browserContextHandle, type, permission);
@@ -929,7 +929,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
@@ -282,6 +282,10 @@ public final class Website implements WebsiteEntry {
@@ -277,6 +277,10 @@ public final class Website implements WebsiteEntry {
/*isEmbargoed=*/false);
setContentSettingException(type, exception);
}
@@ -955,7 +955,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
@@ -248,7 +248,7 @@ public class WebsitePreferenceBridge {
@@ -246,7 +246,7 @@ public class WebsitePreferenceBridge {
case ContentSettingsType.TIMEZONE_OVERRIDE:
return true;
default:
@@ -1120,7 +1120,7 @@ diff --git a/components/content_settings/core/browser/website_settings_registry.
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java
--- a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java
@@ -109,6 +109,7 @@ public class PermissionParamsListBuilder {
@@ -104,6 +104,7 @@ public class PermissionParamsListBuilder {
permissionParams.allowed = true;
break;
case ContentSettingValues.BLOCK:
@@ -1153,8 +1153,8 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
+
std::map<ContentSettingsType, ContentSetting>
user_specified_settings_to_display;
std::map<ContentSettingsType, bool>
@@ -242,6 +251,15 @@ absl::optional<ContentSetting> PageInfoControllerAndroid::GetSettingToDisplay(
@@ -236,6 +245,15 @@ absl::optional<ContentSetting> PageInfoControllerAndroid::GetSettingToDisplay(
// The images content setting should show up if it is blocked globally
// to give users an easy way to create exceptions.
return permission.default_setting;
@@ -1173,14 +1173,14 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc
--- a/components/page_info/page_info.cc
+++ b/components/page_info/page_info.cc
@@ -25,6 +25,7 @@
@@ -24,6 +24,7 @@
#include "components/browser_ui/util/android/url_constants.h"
#include "components/browsing_data/content/local_storage_helper.h"
#include "components/content_settings/browser/page_specific_content_settings.h"
#include "components/content_settings/browser/ui/cookie_controls_controller.h"
+#include "components/content_settings/core/browser/website_settings_registry.h"
#include "components/content_settings/browser/ui/cookie_controls_controller.h"
#include "components/content_settings/core/browser/content_settings_registry.h"
#include "components/content_settings/core/browser/content_settings_utils.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
@@ -167,6 +168,15 @@ bool ShouldShowPermission(const PageInfo::PermissionInfo& info,
return true;
}
+11 -9
View File
@@ -13,16 +13,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../init/ProcessInitializationHandler.java | 8 ------
.../browser/ntp/search/SearchBoxMediator.java | 1 -
.../chrome/browser/share/LensUtils.java | 12 +--------
.../flags/android/chrome_feature_list.cc | 2 +-
.../flags/android/chrome_feature_list.cc | 4 +--
.../browser/flags/CachedFeatureFlags.java | 2 +-
chrome/browser/ui/android/omnibox/BUILD.gn | 2 --
.../browser/omnibox/LocationBarMediator.java | 1 -
13 files changed, 3 insertions(+), 77 deletions(-)
13 files changed, 4 insertions(+), 78 deletions(-)
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -409,7 +409,6 @@ if (current_toolchain == default_toolchain) {
@@ -408,7 +408,6 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/first_run/android:java",
"//chrome/browser/flags:java",
"//chrome/browser/fullscreen/android:java",
@@ -30,7 +30,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//chrome/browser/history_clusters:java",
"//chrome/browser/history_clusters:java_resources",
"//chrome/browser/image_descriptions:java",
@@ -1004,7 +1003,6 @@ if (current_toolchain == default_toolchain) {
@@ -1002,7 +1001,6 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/flags:flags_junit_tests",
"//chrome/browser/flags:java",
"//chrome/browser/fullscreen/android:java",
@@ -38,7 +38,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//chrome/browser/history_clusters:java",
"//chrome/browser/image_descriptions:java",
"//chrome/browser/image_editor/public:java",
@@ -1522,7 +1520,6 @@ if (current_toolchain == default_toolchain) {
@@ -1517,7 +1515,6 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/first_run/android:java",
"//chrome/browser/flags:java",
"//chrome/browser/fullscreen/android:java",
@@ -196,7 +196,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/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
@@ -358,14 +358,6 @@ public class ProcessInitializationHandler {
@@ -360,14 +360,6 @@ public class ProcessInitializationHandler {
}
});
@@ -262,12 +262,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils
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
@@ -785,7 +785,7 @@ BASE_FEATURE(kDuetTabStripIntegrationAndroid,
@@ -750,8 +750,8 @@ BASE_FEATURE(kDuetTabStripIntegrationAndroid,
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kExperimentsForAgsa,
"ExperimentsForAgsa",
- "ExperimentsForAgsa",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ "ExperimentsForAgsa", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
BASE_FEATURE(kExploreSites, "ExploreSites", base::FEATURE_DISABLED_BY_DEFAULT);
@@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -1503,6 +1503,12 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1500,6 +1500,12 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_SAFETY_CHECK_BUTTON" desc="Text for the button to start Safety check.">
Check now
</message>
@@ -23,8 +23,8 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
-#else
- base::FEATURE_DISABLED_BY_DEFAULT
-#endif
+ "AsyncDns", // Bromite guard for this feature to be always disabled
+ base::FEATURE_DISABLED_BY_DEFAULT // ^
+ "AsyncDns", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT // in Bromite
);
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
@@ -4,18 +4,20 @@ Subject: Disable DRM media origin IDs preprovisioning
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
media/base/media_switches.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
media/base/media_switches.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
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
@@ -844,7 +844,7 @@ BASE_FEATURE(kMediaDrmPersistentLicense,
@@ -843,8 +843,8 @@ BASE_FEATURE(kMediaDrmPersistentLicense,
// MediaDrmBridge. If disabled, MediaDrmBridge will get unprovisioned origin IDs
// which will trigger provisioning process after MediaDrmBridge is created.
BASE_FEATURE(kMediaDrmPreprovisioning,
"MediaDrmPreprovisioning",
- "MediaDrmPreprovisioning",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ "MediaDrmPreprovisioning", // must be disabled
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
// Determines if MediaDrmOriginIdManager should attempt to pre-provision origin
// IDs at startup (whenever a profile is loaded). Also used by tests that
@@ -11,13 +11,13 @@ Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../java/res/xml/privacy_preferences.xml | 4 ---
.../privacy/settings/PrivacySettings.java | 22 ------------
.../privacy/settings/PrivacySettings.java | 23 ------------
.../browser/chrome_content_browser_client.cc | 3 ++
.../history/core/browser/history_backend.cc | 13 +------
.../privacy_sandbox/privacy_sandbox_prefs.cc | 2 +-
.../privacy_sandbox_settings.cc | 35 +++++++++++--------
.../privacy_sandbox_settings.h | 1 -
7 files changed, 25 insertions(+), 55 deletions(-)
7 files changed, 25 insertions(+), 56 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
@@ -36,15 +36,16 @@ 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
@@ -58,7 +58,6 @@ public class PrivacySettings
@@ -58,8 +58,6 @@ 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";
private static final String PREF_PROXY_OPTIONS = "proxy";
- private static final String PREF_PROXY_OPTIONS = "proxy";
private static final String PREF_PRIVACY_GUIDE = "privacy_guide";
private static final String PREF_INCOGNITO_LOCK = "incognito_lock";
@@ -86,21 +85,6 @@ public class PrivacySettings
@@ -86,21 +84,6 @@ public class PrivacySettings
SettingsUtils.addPreferencesFromResource(this, R.xml.privacy_preferences);
getActivity().setTitle(R.string.prefs_privacy_security);
@@ -66,7 +67,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
Preference privacyGuidePreference = findPreference(PREF_PRIVACY_GUIDE);
if (!ChromeFeatureList.isEnabled(ChromeFeatureList.PRIVACY_GUIDE)) {
getPreferenceScreen().removePreference(privacyGuidePreference);
@@ -220,12 +204,6 @@ public class PrivacySettings
@@ -220,12 +203,6 @@ public class PrivacySettings
secureDnsPref.setSummary(SecureDnsSettings.getSummary(getContext()));
}
@@ -5,8 +5,8 @@ Subject: Disable NTP remote suggestions by default
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
components/feed/core/shared_prefs/pref_names.cc | 4 ++--
components/ntp_snippets/features.cc | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
components/ntp_snippets/features.cc | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
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
@@ -25,21 +25,25 @@ diff --git a/components/feed/core/shared_prefs/pref_names.cc b/components/feed/c
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
@@ -40,7 +40,7 @@ const base::Feature* const kAllFeatures[] = {
@@ -39,8 +39,8 @@ const base::Feature* const kAllFeatures[] = {
&kOptionalImagesEnabledFeature};
BASE_FEATURE(kArticleSuggestionsFeature,
"NTPArticleSuggestions",
- "NTPArticleSuggestions",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ "NTPArticleSuggestions", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
BASE_FEATURE(kRemoteSuggestionsEmulateM58FetchingSchedule,
"RemoteSuggestionsEmulateM58FetchingSchedule",
@@ -72,7 +72,7 @@ const char kNotificationsIgnoredLimitParam[] = "ignored_limit";
@@ -71,8 +71,8 @@ const char kNotificationsDailyLimit[] = "daily_limit";
const char kNotificationsIgnoredLimitParam[] = "ignored_limit";
BASE_FEATURE(kKeepPrefetchedContentSuggestions,
"KeepPrefetchedContentSuggestions",
- "KeepPrefetchedContentSuggestions",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ "KeepPrefetchedContentSuggestions", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
BASE_FEATURE(kOptionalImagesEnabledFeature,
"NTPRemoteSuggestionsOptionalImages",
@@ -0,0 +1,27 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Wed, 16 Nov 2022 11:18:07 +0100
Subject: Disable StartSurface feature
This feature would normally show a search box but leads to crashes.
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/browser/flags/android/chrome_feature_list.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
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
@@ -1081,8 +1081,8 @@ BASE_FEATURE(kShowExtendedPreloadingSetting,
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kStartSurfaceAndroid,
- "StartSurfaceAndroid",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ "StartSurfaceAndroid", // must be disabled
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
BASE_FEATURE(kFeedPositionAndroid,
"FeedPositionAndroid",
--
2.25.1
+7 -7
View File
@@ -39,7 +39,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -5021,6 +5021,12 @@ const FeatureEntry kFeatureEntries[] = {
@@ -5016,6 +5016,12 @@ const FeatureEntry kFeatureEntries[] = {
{"enable-tls13-early-data", flag_descriptions::kEnableTLS13EarlyDataName,
flag_descriptions::kEnableTLS13EarlyDataDescription, kOsAll,
FEATURE_VALUE_TYPE(net::features::kEnableTLS13EarlyData)},
@@ -73,7 +73,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
@@ -592,6 +592,12 @@ extern const char kEnablePreinstalledWebAppDuplicationFixerDescription[];
@@ -595,6 +595,12 @@ extern const char kEnablePreinstalledWebAppDuplicationFixerDescription[];
extern const char kEnableTLS13EarlyDataName[];
extern const char kEnableTLS13EarlyDataDescription[];
@@ -89,9 +89,9 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
diff --git a/net/base/features.cc b/net/base/features.cc
--- a/net/base/features.cc
+++ b/net/base/features.cc
@@ -69,6 +69,14 @@ BASE_FEATURE(kEnableTLS13EarlyData,
"EnableTLS13EarlyData",
base::FEATURE_DISABLED_BY_DEFAULT);
@@ -61,6 +61,14 @@ const base::FeatureParam<base::TimeDelta> kUseDnsHttpsSvcbSecureExtraTimeMin{
&kUseDnsHttpsSvcb, "UseDnsHttpsSvcbSecureExtraTimeMin",
base::Milliseconds(5)};
+BASE_FEATURE(kDisableTLSResumption,
+ "DisableTLSResumption",
@@ -101,8 +101,8 @@ diff --git a/net/base/features.cc b/net/base/features.cc
+ "LogTLSResumption",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
BASE_FEATURE(kEncryptedClientHello,
"EncryptedClientHello",
BASE_FEATURE(kUseDnsHttpsSvcbAlpn,
"UseDnsHttpsSvcbAlpn",
base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/net/base/features.h b/net/base/features.h
--- a/net/base/features.h
@@ -1,5 +1,5 @@
From: Your Name <you@example.com>
Date: Sat, 22 Oct 2022 07:47:07 +0000
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Wed, 28 Sep 2022 00:54:10 +0200
Subject: Disable add to home screen prompt
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
+63 -59
View File
@@ -7,17 +7,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../chrome_hints_manager.cc | 1 +
.../optimization_guide_keyed_service.cc | 1 -
chrome/common/chrome_features.cc | 6 ++---
chrome/common/chrome_features.cc | 8 ++--
.../optimization_guide/core/hints_fetcher.cc | 1 +
.../optimization_guide/core/hints_manager.cc | 5 ++++
.../core/optimization_guide_features.cc | 24 +++++++++----------
.../core/prediction_model_download_manager.cc | 6 +++--
.../optimization_guide/core/hints_manager.cc | 5 +++
.../core/optimization_guide_features.cc | 38 +++++++++----------
.../core/prediction_model_download_manager.cc | 6 ++-
.../core/prediction_model_fetcher_impl.cc | 1 +
components/optimization_guide/features.gni | 4 +---
components/permissions/features.cc | 8 +++----
.../segmentation_platform/public/features.cc | 2 +-
third_party/blink/common/features.cc | 2 +-
12 files changed, 34 insertions(+), 27 deletions(-)
components/optimization_guide/features.gni | 4 +-
components/permissions/features.cc | 8 ++--
third_party/blink/common/features.cc | 8 +---
11 files changed, 40 insertions(+), 41 deletions(-)
diff --git a/chrome/browser/optimization_guide/chrome_hints_manager.cc b/chrome/browser/optimization_guide/chrome_hints_manager.cc
--- a/chrome/browser/optimization_guide/chrome_hints_manager.cc
@@ -33,7 +32,7 @@ diff --git a/chrome/browser/optimization_guide/chrome_hints_manager.cc b/chrome/
diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
--- a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
+++ b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
@@ -324,7 +324,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel(
@@ -320,7 +320,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel(
void OptimizationGuideKeyedService::RegisterOptimizationTypes(
const std::vector<optimization_guide::proto::OptimizationType>&
optimization_types) {
@@ -50,17 +49,19 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
BASE_FEATURE(kPermissionPredictions,
- "PermissionPredictions",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ "PermissionPredictions", // always disabled
+ "PermissionPredictions", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
// The holdback chance is 30% but it can also be configured/updated
// through finch if needed.
@@ -896,7 +896,7 @@ const base::FeatureParam<double> kPermissionPredictionsHoldbackChance(
@@ -895,8 +895,8 @@ const base::FeatureParam<double> kPermissionPredictionsHoldbackChance(
// Enables using the prediction service for geolocation permission prompts.
BASE_FEATURE(kPermissionGeolocationPredictions,
"PermissionGeolocationPredictions",
- "PermissionGeolocationPredictions",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT); // always disabled in Bromite
+ "PermissionGeolocationPredictions", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
const base::FeatureParam<double>
kPermissionGeolocationPredictionsHoldbackChance(
@@ -118,64 +119,73 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b
// Enables fetching from a remote Optimization Guide Service.
BASE_FEATURE(kRemoteOptimizationGuideFetching,
"OptimizationHintsFetching",
- "OptimizationHintsFetching",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT); // disabled by default in Bromite
+ "OptimizationHintsFetching", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
BASE_FEATURE(kRemoteOptimizationGuideFetchingAnonymousDataConsent,
- "OptimizationHintsFetchingAnonymousDataConsent",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ "OptimizationHintsFetchingAnonymousDataConsent", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
+ "OptimizationHintsFetchingAnonymousDataConsent", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
// Enables performance info in the context menu and fetching from a remote
// Optimization Guide Service.
@@ -99,15 +99,15 @@ BASE_FEATURE(kContextMenuPerformanceInfoAndRemoteHintFetching,
@@ -98,17 +98,13 @@ BASE_FEATURE(kContextMenuPerformanceInfoAndRemoteHintFetching,
// Enables the prediction of optimization targets.
BASE_FEATURE(kOptimizationTargetPrediction,
"OptimizationTargetPrediction",
- "OptimizationTargetPrediction",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT); // disabled by default in Bromite
+ "OptimizationTargetPrediction", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
// Enables the downloading of models.
BASE_FEATURE(kOptimizationGuideModelDownloading,
"OptimizationGuideModelDownloading",
#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
- "OptimizationGuideModelDownloading",
-#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
- base::FEATURE_ENABLED_BY_DEFAULT
-#else // BUILD_WITH_TFLITE_LIB
base::FEATURE_DISABLED_BY_DEFAULT
+#else // BUILD_WITH_TFLITE_LIB
+ base::FEATURE_DISABLED_BY_DEFAULT // guard this
#endif // !BUILD_WITH_TFLITE_LIB
- base::FEATURE_DISABLED_BY_DEFAULT
-#endif // !BUILD_WITH_TFLITE_LIB
+ "OptimizationGuideModelDownloading", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT // in Bromite
);
@@ -144,7 +144,7 @@ BASE_FEATURE(kPageEntitiesModelResetOnShutdown,
// Enables page content to be annotated.
@@ -143,8 +139,8 @@ BASE_FEATURE(kPageEntitiesModelResetOnShutdown,
// Enables push notification of hints.
BASE_FEATURE(kPushNotifications,
"OptimizationGuidePushNotifications",
- "OptimizationGuidePushNotifications",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT); // guard this
+ "OptimizationGuidePushNotifications", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
// This feature flag does not turn off any behavior, it is only used for
// experiment parameters.
@@ -159,14 +159,14 @@ BASE_FEATURE(kOptimizationGuideMetadataValidation,
@@ -158,15 +154,15 @@ BASE_FEATURE(kOptimizationGuideMetadataValidation,
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kPageTopicsBatchAnnotations,
"PageTopicsBatchAnnotations",
- "PageTopicsBatchAnnotations",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ "PageTopicsBatchAnnotations", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
BASE_FEATURE(kPageVisibilityBatchAnnotations,
"PageVisibilityBatchAnnotations",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kUseLocalPageEntitiesMetadataProvider,
"UseLocalPageEntitiesMetadataProvider",
- "UseLocalPageEntitiesMetadataProvider",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT); // guard this
+ "UseLocalPageEntitiesMetadataProvider", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
BASE_FEATURE(kPageContentAnnotationsValidation,
"PageContentAnnotationsValidation",
@@ -408,7 +408,7 @@ size_t MaxURLKeyedHintCacheSize() {
@@ -408,7 +404,7 @@ size_t MaxURLKeyedHintCacheSize() {
bool ShouldPersistHintsToDisk() {
return GetFieldTrialParamByFeatureAsBool(kOptimizationHints,
@@ -255,40 +265,34 @@ diff --git a/components/permissions/features.cc b/components/permissions/feature
BASE_FEATURE(kPermissionPredictionServiceUseUrlOverride,
- "kPermissionPredictionServiceUseUrlOverride",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ "kPermissionPredictionServiceUseUrlOverride", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
+ "kPermissionPredictionServiceUseUrlOverride", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
BASE_FEATURE(kPermissionOnDeviceNotificationPredictions,
- "PermissionOnDeviceNotificationPredictions",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ "PermissionOnDeviceNotificationPredictions", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
+ "PermissionOnDeviceNotificationPredictions", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
BASE_FEATURE(kPermissionOnDeviceGeolocationPredictions,
"PermissionOnDeviceGeolocationPredictions",
diff --git a/components/segmentation_platform/public/features.cc b/components/segmentation_platform/public/features.cc
--- a/components/segmentation_platform/public/features.cc
+++ b/components/segmentation_platform/public/features.cc
@@ -35,7 +35,7 @@ BASE_FEATURE(kSegmentationPlatformSearchUser,
BASE_FEATURE(kSegmentationPlatformFeedSegmentFeature,
"SegmentationPlatformFeedSegmentFeature",
#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
#else
base::FEATURE_DISABLED_BY_DEFAULT);
#endif
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -216,7 +216,7 @@ BASE_FEATURE(kMixedContentAutoupgrade,
@@ -214,12 +214,8 @@ BASE_FEATURE(kMixedContentAutoupgrade,
// predictor may preconnect/prefetch to resources/origins to make the
// future navigations faster.
BASE_FEATURE(kNavigationPredictor,
"NavigationPredictor",
#if BUILDFLAG(IS_ANDROID)
- "NavigationPredictor",
-#if BUILDFLAG(IS_ANDROID)
- base::FEATURE_ENABLED_BY_DEFAULT
+ base::FEATURE_DISABLED_BY_DEFAULT
#else
base::FEATURE_DISABLED_BY_DEFAULT
#endif
-#else
- base::FEATURE_DISABLED_BY_DEFAULT
-#endif
+ "NavigationPredictor", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT // in Bromite
);
// Anchor Element Interaction
--
2.25.1
@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -876,7 +876,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@@ -851,7 +851,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
* displayed.
*/
private boolean triggerPromo(boolean intentWithEffect) {
@@ -19,7 +19,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;
}
@@ -911,8 +911,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@@ -886,8 +886,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
preferenceManager.writeBoolean(
ChromePreferenceKeys.PROMOS_SKIPPED_ON_FIRST_START, true);
}
@@ -29,6 +29,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
+ return false;
}
private boolean maybeShowPromo() {
@VisibleForTesting
--
2.25.1
@@ -11,40 +11,50 @@ being sent and being saved to disk, although it is currently in uncalled code.
Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../browser/flags/android/chrome_feature_list.cc | 2 +-
.../embedder_support/origin_trials/features.cc | 2 +-
.../browser/flags/android/chrome_feature_list.cc | 4 ++--
.../embedder_support/origin_trials/features.cc | 8 ++++----
.../render_view_context_menu_base.cc | 3 ---
.../aggregatable_report_sender.cc | 15 +++++++--------
.../attribution_reporting/attribution_host.cc | 1 +
.../attribution_report_network_sender.cc | 15 ++++++++-------
.../attribution_storage_sql.cc | 4 +++-
.../attribution_storage_sql.cc | 8 +++++---
content/browser/storage_partition_impl.cc | 7 +------
content/public/browser/navigation_controller.cc | 1 -
third_party/blink/common/features.cc | 2 +-
third_party/blink/common/features.cc | 4 ++--
.../platform/runtime_enabled_features.json5 | 7 +++++++
11 files changed, 30 insertions(+), 29 deletions(-)
11 files changed, 37 insertions(+), 36 deletions(-)
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
@@ -530,7 +530,7 @@ BASE_FEATURE(kAppMenuMobileSiteOption,
@@ -521,8 +521,8 @@ BASE_FEATURE(kAppMenuMobileSiteOption,
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kAppToWebAttribution,
"AppToWebAttribution",
- "AppToWebAttribution",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT); // guard this
+ "AppToWebAttribution", // must be disabled
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
BASE_FEATURE(kBackgroundThreadPool,
"BackgroundThreadPool",
diff --git a/components/embedder_support/origin_trials/features.cc b/components/embedder_support/origin_trials/features.cc
--- a/components/embedder_support/origin_trials/features.cc
+++ b/components/embedder_support/origin_trials/features.cc
@@ -19,6 +19,6 @@ BASE_FEATURE(kOriginTrialsSampleAPIThirdPartyAlternativeUsage,
@@ -14,11 +14,11 @@ namespace embedder_support {
// Users from control group will have the feature disabled, excluding them
// from the origin trial.
BASE_FEATURE(kOriginTrialsSampleAPIThirdPartyAlternativeUsage,
- "OriginTrialsSampleAPIThirdPartyAlternativeUsage",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ "OriginTrialsSampleAPIThirdPartyAlternativeUsage", // must be disabled
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
BASE_FEATURE(kConversionMeasurementAPIAlternativeUsage,
"ConversionMeasurementAPIAlternativeUsage",
- "ConversionMeasurementAPIAlternativeUsage",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ "ConversionMeasurementAPIAlternativeUsage", // must be disabled
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
} // namespace embedder_support
diff --git a/components/renderer_context_menu/render_view_context_menu_base.cc b/components/renderer_context_menu/render_view_context_menu_base.cc
@@ -145,15 +155,19 @@ diff --git a/content/browser/attribution_reporting/attribution_storage_sql.cc b/
} // namespace
// static
@@ -433,7 +435,7 @@ bool AttributionStorageSql::DeleteStorageForTesting(
@@ -433,9 +435,9 @@ bool AttributionStorageSql::DeleteStorageForTesting(
AttributionStorageSql::AttributionStorageSql(
const base::FilePath& user_data_directory,
std::unique_ptr<AttributionStorageDelegate> delegate)
- : path_to_database_(user_data_directory.empty()
- ? base::FilePath()
- : DatabasePath(user_data_directory)),
+ : path_to_database_(user_data_directory.empty() || g_run_in_memory
? base::FilePath()
: DatabasePath(user_data_directory)),
+ ? base::FilePath()
+ : DatabasePath(user_data_directory)),
delegate_(std::move(delegate)),
rate_limit_table_(delegate_.get()) {
DCHECK(delegate_);
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
--- a/content/browser/storage_partition_impl.cc
+++ b/content/browser/storage_partition_impl.cc
@@ -185,12 +199,14 @@ diff --git a/content/public/browser/navigation_controller.cc b/content/public/br
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
@@ -106,7 +106,7 @@ BASE_FEATURE(kBlockingDownloadsInAdFrameWithoutUserActivation,
@@ -105,8 +105,8 @@ BASE_FEATURE(kBlockingDownloadsInAdFrameWithoutUserActivation,
// Controls whether the Conversion Measurement API infrastructure is enabled.
BASE_FEATURE(kConversionMeasurement,
"ConversionMeasurement",
- "ConversionMeasurement",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ "ConversionMeasurement", // must be disabled
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
// Controls whether LCP calculations should exclude low-entropy images. If
// enabled, then the associated parameter sets the cutoff, expressed as the
+3 -3
View File
@@ -10,14 +10,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -241,8 +241,8 @@ BASE_FEATURE(kCooperativeScheduling,
@@ -242,8 +242,8 @@ BASE_FEATURE(kCooperativeScheduling,
// Enables crash reporting via Reporting API.
// https://www.w3.org/TR/reporting/#crash-report
BASE_FEATURE(kCrashReporting,
- "CrashReporting",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ "CrashReporting", // disabled by default on Bromite
+ base::FEATURE_DISABLED_BY_DEFAULT); // ^
+ "CrashReporting", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
// Enables support for the `Critical-CH` response header.
// https://github.com/WICG/client-hints-infrastructure/blob/master/reliability.md#critical-ch
@@ -6,8 +6,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../org/chromium/chrome/browser/feed/FeedFeatures.java | 8 +-------
.../chromium/chrome/browser/flags/CachedFeatureFlags.java | 2 +-
components/feed/feed_feature_list.cc | 4 ++--
3 files changed, 4 insertions(+), 10 deletions(-)
components/feed/feed_feature_list.cc | 8 ++++----
3 files changed, 6 insertions(+), 12 deletions(-)
diff --git a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedFeatures.java b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedFeatures.java
--- a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedFeatures.java
@@ -42,19 +42,22 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
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
@@ -18,13 +18,13 @@ namespace feed {
@@ -17,14 +17,14 @@
namespace feed {
BASE_FEATURE(kInterestFeedContentSuggestions,
"InterestFeedContentSuggestions",
- "InterestFeedContentSuggestions",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ "InterestFeedContentSuggestions", // must be disabled
+ base::FEATURE_DISABLED_BY_DEFAULT); // by default in Bromite
// 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.
BASE_FEATURE(kInterestFeedV2,
"InterestFeedV2",
- "InterestFeedV2",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ "InterestFeedV2", // must be disabled
+ base::FEATURE_DISABLED_BY_DEFAULT); // by default in Bromite
BASE_FEATURE(kInterestFeedV2Autoplay,
"InterestFeedV2Autoplay",
@@ -2,7 +2,8 @@ From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sun, 8 Jul 2018 18:16:34 +0200
Subject: Disable fetching of all field trials
Disable seed-based field trials
Disable seed-based field trials.
Disable reporting of Omnibox suggestions header.
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
@@ -12,12 +13,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
components/ukm/ukm_recorder_impl.cc | 3 +++
.../firstrun/VariationsSeedBridge.java | 2 +-
.../firstrun/VariationsSeedFetcher.java | 26 ++++---------------
.../variations/net/omnibox_http_headers.cc | 2 +-
.../variations/net/omnibox_http_headers.cc | 4 +--
.../variations/net/variations_http_headers.cc | 3 +++
.../service/variations_field_trial_creator.cc | 3 ++-
.../variations/service/variations_service.cc | 15 +++--------
.../renderer/core/loader/document_loader.cc | 7 -----
11 files changed, 22 insertions(+), 47 deletions(-)
11 files changed, 23 insertions(+), 48 deletions(-)
diff --git a/android_webview/nonembedded/BUILD.gn b/android_webview/nonembedded/BUILD.gn
--- a/android_webview/nonembedded/BUILD.gn
@@ -145,12 +146,14 @@ diff --git a/components/variations/android/java/src/org/chromium/components/vari
diff --git a/components/variations/net/omnibox_http_headers.cc b/components/variations/net/omnibox_http_headers.cc
--- a/components/variations/net/omnibox_http_headers.cc
+++ b/components/variations/net/omnibox_http_headers.cc
@@ -22,7 +22,7 @@ const char kOmniboxOnDeviceSuggestionsHeader[] =
@@ -21,8 +21,8 @@ const char kOmniboxOnDeviceSuggestionsHeader[] =
// Whether to enable reporting the header. Included as a quick escape hatch in
// case of crashes.
BASE_FEATURE(kReportOmniboxOnDeviceSuggestionsHeader,
"ReportOmniboxOnDeviceSuggestionsHeader",
- "ReportOmniboxOnDeviceSuggestionsHeader",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ "ReportOmniboxOnDeviceSuggestionsHeader", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
std::string GetHeaderValue() {
const std::string group =
+1 -1
View File
@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -479,7 +479,7 @@ BASE_FEATURE(kGreaseUACH, "GreaseUACH", base::FEATURE_ENABLED_BY_DEFAULT);
@@ -480,7 +480,7 @@ BASE_FEATURE(kGreaseUACH, "GreaseUACH", base::FEATURE_ENABLED_BY_DEFAULT);
// This is intended as a kill switch for the Idle Detection feature. To enable
// this feature, the experimental web platform features flag should be set,
// or the site should obtain an Origin Trial token.
@@ -4,18 +4,20 @@ Subject: Disable lock icon in address bar by default
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
components/omnibox/common/omnibox_features.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
components/omnibox/common/omnibox_features.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/common/omnibox_features.cc
--- a/components/omnibox/common/omnibox_features.cc
+++ b/components/omnibox/common/omnibox_features.cc
@@ -434,7 +434,7 @@ BASE_FEATURE(kSiteSearchStarterPack,
@@ -433,8 +433,8 @@ BASE_FEATURE(kSiteSearchStarterPack,
// Experiment to introduce new security indicators for HTTPS.
BASE_FEATURE(kUpdatedConnectionSecurityIndicators,
"OmniboxUpdatedConnectionSecurityIndicators",
- "OmniboxUpdatedConnectionSecurityIndicators",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ base::FEATURE_ENABLED_BY_DEFAULT);
+ "OmniboxUpdatedConnectionSecurityIndicators", // enabled by default
+ base::FEATURE_ENABLED_BY_DEFAULT); // in Bromite
// Feature used to default typed navigations to use HTTPS instead of HTTP.
// This only applies to navigations that don't have a scheme such as
@@ -4,18 +4,20 @@ Subject: Disable offline pages in CCT
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
components/offline_pages/core/offline_page_feature.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
components/offline_pages/core/offline_page_feature.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
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 @@ BASE_FEATURE(kOfflinePagesDescriptivePendingStatusFeature,
@@ -41,8 +41,8 @@ BASE_FEATURE(kOfflinePagesDescriptivePendingStatusFeature,
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kOfflinePagesInDownloadHomeOpenInCctFeature,
"OfflinePagesInDownloadHomeOpenInCct",
- "OfflinePagesInDownloadHomeOpenInCct",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ "OfflinePagesInDownloadHomeOpenInCct", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
BASE_FEATURE(kOfflineIndicatorFeature,
"OfflineIndicator",
+116 -149
View File
@@ -11,8 +11,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../res/xml/google_services_preferences.xml | 5 --
.../android/java/res/xml/main_preferences.xml | 5 --
.../java/res/xml/privacy_preferences.xml | 9 ---
.../privacy/settings/PrivacySettings.java | 40 ----------
.../java/res/xml/privacy_preferences.xml | 9 --
.../privacy/settings/PrivacySettings.java | 40 ---------
.../SafeBrowsingSettingsLauncher.java | 8 --
.../usage_stats/UsageStatsConsentDialog.java | 5 --
.../android/chrome_main_delegate_android.cc | 1 +
@@ -22,47 +22,47 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/browser_process_impl.cc | 29 -------
chrome/browser/browser_process_impl.h | 4 -
.../chrome_browsing_data_remover_delegate.cc | 2 +
.../browser/chrome_content_browser_client.cc | 32 ++++----
.../browser/chrome_content_browser_client.cc | 32 +++----
.../browser/chrome_content_browser_client.h | 2 +
...ontent_browser_client_receiver_bindings.cc | 2 +
.../file_type_policies_component_installer.cc | 16 +---
.../browser/component_updater/registration.cc | 7 --
.../chrome_download_manager_delegate.cc | 46 +++++------
.../chrome_download_manager_delegate.cc | 46 +++++-----
.../chrome_download_manager_delegate.h | 8 +-
.../browser/download/download_item_model.cc | 15 +++-
chrome/browser/download/download_item_model.h | 4 +
chrome/browser/download/download_prefs.cc | 17 ++--
chrome/browser/download/download_stats.cc | 6 ++
.../download/download_target_determiner.cc | 66 +++++-----------
.../download/download_target_determiner.cc | 66 +++++----------
.../download/download_target_determiner.h | 6 ++
.../browser/download/download_target_info.cc | 4 +
.../browser/download/download_target_info.h | 4 +
chrome/browser/download/download_ui_model.cc | 4 +
chrome/browser/download/download_ui_model.h | 4 +
.../extensions/api/downloads/downloads_api.cc | 41 +---------
.../extensions/api/downloads/downloads_api.cc | 41 +--------
.../extensions/api/downloads/downloads_api.h | 12 ---
.../webstore_private/webstore_private_api.cc | 18 +----
...e_file_system_access_permission_context.cc | 12 +++
.../webstore_private/webstore_private_api.cc | 18 +---
...e_file_system_access_permission_context.cc | 12 ++-
...me_file_system_access_permission_context.h | 5 +-
.../lookalike_url_controller_client.cc | 4 -
.../metrics/chrome_metrics_service_client.cc | 3 -
...ial_comparison_cert_verifier_controller.cc | 3 -
.../chrome_password_manager_client.cc | 25 +-----
.../chrome_password_manager_client.cc | 28 +------
.../permissions/chrome_permissions_client.cc | 14 ----
.../permissions/chrome_permissions_client.h | 3 -
.../permission_revocation_request.cc | 6 ++
...quiet_notification_permission_ui_config.cc | 4 +-
chrome/browser/prefs/browser_prefs.cc | 3 +
chrome/browser/privacy_guide/android/BUILD.gn | 1 -
chrome/browser/privacy_guide/android/BUILD.gn | 2 -
.../privacy_guide/PrivacyGuideFragment.java | 3 -
.../PrivacyGuidePagerAdapter.java | 8 +-
.../PrivacyGuidePagerAdapter.java | 2 -
.../privacy_guide/StepDisplayHandlerImpl.java | 2 +-
...hrome_browser_main_extra_parts_profiles.cc | 4 +-
chrome/browser/profiles/profile_impl.cc | 4 +-
chrome/browser/safe_browsing/BUILD.gn | 4 +-
chrome/browser/safe_browsing/android/BUILD.gn | 4 -
.../safe_browsing/SafeBrowsingBridge.java | 79 -------------------
.../android/safe_browsing_bridge.cc | 59 --------------
.../safe_browsing/SafeBrowsingBridge.java | 83 -------------------
.../android/safe_browsing_bridge.cc | 59 -------------
.../download_protection_service.cc | 2 +
.../download_protection_service.h | 3 +-
.../url_lookup_service_factory.cc | 4 +
@@ -70,7 +70,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/ssl/security_state_tab_helper.cc | 10 +--
...urce_filter_web_contents_helper_factory.cc | 4 +
chrome/browser/ui/BUILD.gn | 2 -
.../strings/android_chrome_strings.grd | 21 -----
.../strings/android_chrome_strings.grd | 9 --
chrome/browser/ui/tab_helpers.cc | 8 ++
.../ui/webui/interstitials/interstitial_ui.cc | 12 +--
chrome/common/safe_browsing/BUILD.gn | 7 --
@@ -84,18 +84,18 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../permissions/permission_request_manager.cc | 5 +-
.../safe_browsing/content/browser/BUILD.gn | 1 -
.../content/common/file_type_policies.cc | 3 +-
.../safe_browsing/core/common/features.cc | 2 +-
.../content/captive_portal_blocking_page.cc | 9 ++-
.../content/cert_report_helper.cc | 2 -
.../safe_browsing/core/common/features.cc | 4 +-
.../content/captive_portal_blocking_page.cc | 9 +-
.../content/cert_report_helper.cc | 5 +-
.../unified_consent_service.cc | 2 +-
.../file_system_access_file_writer_impl.cc | 3 +-
.../file_system_access_file_writer_impl.h | 5 --
.../file_system_access_safe_move_helper.cc | 48 +----------
.../file_system_access_safe_move_helper.cc | 14 +---
.../file_system_access_safe_move_helper.h | 8 +-
.../file_system_access_permission_context.h | 6 --
weblayer/BUILD.gn | 4 -
weblayer/test/BUILD.gn | 1 -
86 files changed, 212 insertions(+), 720 deletions(-)
86 files changed, 215 insertions(+), 678 deletions(-)
diff --git a/chrome/android/java/res/xml/google_services_preferences.xml b/chrome/android/java/res/xml/google_services_preferences.xml
--- a/chrome/android/java/res/xml/google_services_preferences.xml
@@ -313,7 +313,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"permissions/crowd_deny_preload_data.cc",
"permissions/crowd_deny_preload_data.h",
"permissions/crowd_deny_safe_browsing_request.cc",
@@ -1515,15 +1509,6 @@ static_library("browser") {
@@ -1517,15 +1511,6 @@ static_library("browser") {
"renderer_host/chrome_navigation_ui_data.h",
"renderer_preferences_util.cc",
"renderer_preferences_util.h",
@@ -329,7 +329,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"resource_coordinator/resource_coordinator_parts.cc",
"resource_coordinator/resource_coordinator_parts.h",
"resource_coordinator/session_restore_policy.cc",
@@ -2260,11 +2245,8 @@ static_library("browser") {
@@ -2262,11 +2247,8 @@ static_library("browser") {
"//components/reporting/util:status_macros",
"//components/reporting/util:status_proto",
"//components/reporting/util:task_runner_context",
@@ -341,7 +341,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"//components/safe_browsing/content/browser:safe_browsing_service",
"//components/safe_browsing/content/browser/password_protection",
"//components/safe_browsing/content/browser/web_ui",
@@ -3243,12 +3225,6 @@ static_library("browser") {
@@ -3245,12 +3227,6 @@ static_library("browser") {
"profiles/profile_manager_android.cc",
"profiles/profile_manager_android.h",
"query_tiles/android/tile_provider_factory.cc",
@@ -354,7 +354,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"safe_browsing/android/password_reuse_controller_android.cc",
"safe_browsing/android/password_reuse_controller_android.h",
"safe_browsing/android/safe_browsing_referring_app_bridge_android.cc",
@@ -3731,8 +3707,6 @@ static_library("browser") {
@@ -3733,8 +3709,6 @@ static_library("browser") {
"download/download_commands.h",
"download/download_crx_util.cc",
"download/download_crx_util.h",
@@ -363,7 +363,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"download/download_dir_policy_handler.cc",
"download/download_dir_policy_handler.h",
"download/download_dir_util.cc",
@@ -8257,8 +8231,6 @@ static_library("test_support") {
@@ -8259,8 +8233,6 @@ static_library("test_support") {
"//components/reporting/util:status_macros",
"//components/reporting/util:status_proto",
"//components/reporting/util:task_runner_context",
@@ -1043,18 +1043,17 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow
#include "chrome/browser/safe_browsing/download_protection/download_protection_util.h"
#include "chrome/browser/safe_browsing/safe_browsing_service.h"
#include "chrome/browser/signin/identity_manager_factory.h"
@@ -46,9 +48,11 @@
@@ -46,8 +48,10 @@
#include "components/download/public/common/download_item.h"
#include "components/safe_browsing/buildflags.h"
#include "components/safe_browsing/content/browser/web_ui/safe_browsing_ui.h"
+#if BUILDFLAG(FULL_SAFE_BROWSING)
#include "components/safe_browsing/content/common/file_type_policies.h"
#include "components/safe_browsing/content/common/proto/download_file_types.pb.h"
#include "components/safe_browsing/core/common/features.h"
+#endif
#include "components/safe_browsing/core/common/features.h"
#include "components/signin/public/base/consent_level.h"
#include "components/signin/public/identity_manager/account_info.h"
#include "components/signin/public/identity_manager/identity_manager.h"
@@ -67,7 +71,9 @@
using download::DownloadItem;
@@ -1212,14 +1211,14 @@ diff --git a/chrome/browser/download/download_stats.cc b/chrome/browser/download
}
void RecordOpenedDangerousConfirmDialog(
@@ -42,6 +46,7 @@ void RecordOpenedDangerousConfirmDialog(
void RecordDownloadOpen(ChromeDownloadOpenMethod open_method,
const std::string& mime_type_string) {
+#if defined(FULL_SAFE_BROWSING)
@@ -45,6 +49,7 @@ void RecordDownloadOpen(ChromeDownloadOpenMethod open_method,
base::RecordAction(base::UserMetricsAction("Download.Open"));
base::UmaHistogramEnumeration("Download.OpenMethod", open_method,
DOWNLOAD_OPEN_METHOD_LAST_ENTRY);
+#if defined(FULL_SAFE_BROWSING)
download::DownloadContent download_content =
download::DownloadContentFromMimeType(
mime_type_string, /*record_content_subcategory=*/false);
@@ -61,6 +66,7 @@ void RecordDownloadOpen(ChromeDownloadOpenMethod open_method,
}
base::UmaHistogramEnumeration("Download.Open.ContentType", download_content,
@@ -1690,28 +1689,27 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
--- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
+++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
@@ -37,8 +37,10 @@
@@ -37,8 +37,11 @@
#include "chrome/browser/file_system_access/file_system_access_permission_request_manager.h"
#include "chrome/browser/installable/installable_utils.h"
#include "chrome/browser/profiles/profile.h"
+#if defined(FULL_SAFE_BROWSING)
#include "chrome/browser/safe_browsing/download_protection/download_protection_service.h"
#include "chrome/browser/safe_browsing/safe_browsing_service.h"
+#include "components/safe_browsing/content/common/file_type_policies.h"
+#endif
#include "chrome/browser/ui/file_system_access_dialogs.h"
#include "chrome/common/chrome_paths.h"
#include "chrome/common/pdf_util.h"
@@ -48,7 +50,9 @@
@@ -48,7 +51,6 @@
#include "components/content_settings/core/common/content_settings_utils.h"
#include "components/permissions/permission_util.h"
#include "components/safe_browsing/buildflags.h"
+#if defined(FULL_SAFE_BROWSING)
#include "components/safe_browsing/content/common/file_type_policies.h"
+#endif
-#include "components/safe_browsing/content/common/file_type_policies.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/disallow_activation_reason.h"
@@ -146,6 +150,7 @@ void ShowFileSystemAccessRestrictedDirectoryDialogOnUIThread(
@@ -146,6 +148,7 @@ void ShowFileSystemAccessRestrictedDirectoryDialogOnUIThread(
origin, path, handle_type, std::move(callback), web_contents);
}
@@ -1719,7 +1717,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss
void ShowFileSystemAccessDangerousFileDialogOnUIThread(
content::GlobalRenderFrameHostId frame_id,
const url::Origin& origin,
@@ -174,6 +179,7 @@ void ShowFileSystemAccessDangerousFileDialogOnUIThread(
@@ -174,6 +177,7 @@ void ShowFileSystemAccessDangerousFileDialogOnUIThread(
ShowFileSystemAccessDangerousFileDialog(origin, path, std::move(callback),
web_contents);
}
@@ -1727,7 +1725,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss
// Sentinel used to indicate that no PathService key is specified for a path in
// the struct below.
@@ -344,6 +350,7 @@ BindResultCallbackToCurrentSequence(
@@ -344,6 +348,7 @@ BindResultCallbackToCurrentSequence(
base::SequencedTaskRunnerHandle::Get(), std::move(callback));
}
@@ -1735,7 +1733,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss
void DoSafeBrowsingCheckOnUIThread(
content::GlobalRenderFrameHostId frame_id,
std::unique_ptr<content::FileSystemAccessWriteItem> item,
@@ -422,6 +429,7 @@ InterpretSafeBrowsingResult(safe_browsing::DownloadCheckResult result) {
@@ -422,6 +427,7 @@ InterpretSafeBrowsingResult(safe_browsing::DownloadCheckResult result) {
NOTREACHED();
return ChromeFileSystemAccessPermissionContext::AfterWriteCheckResult::kBlock;
}
@@ -1743,7 +1741,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss
std::string GenerateLastPickedDirectoryKey(const std::string& id) {
return id.empty() ? kDefaultLastPickedDirectoryKey
@@ -1204,6 +1212,7 @@ void ChromeFileSystemAccessPermissionContext::ConfirmSensitiveEntryAccess(
@@ -1204,6 +1210,7 @@ void ChromeFileSystemAccessPermissionContext::ConfirmSensitiveEntryAccess(
frame_id, std::move(callback)));
}
@@ -1751,7 +1749,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss
void ChromeFileSystemAccessPermissionContext::PerformAfterWriteChecks(
std::unique_ptr<content::FileSystemAccessWriteItem> item,
content::GlobalRenderFrameHostId frame_id,
@@ -1225,6 +1234,7 @@ void ChromeFileSystemAccessPermissionContext::PerformAfterWriteChecks(
@@ -1225,6 +1232,7 @@ void ChromeFileSystemAccessPermissionContext::PerformAfterWriteChecks(
},
base::SequencedTaskRunnerHandle::Get(), std::move(callback))));
}
@@ -1759,22 +1757,22 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss
void ChromeFileSystemAccessPermissionContext::
DidConfirmSensitiveDirectoryAccess(
@@ -1239,6 +1249,7 @@ void ChromeFileSystemAccessPermissionContext::
@@ -1236,6 +1244,7 @@ void ChromeFileSystemAccessPermissionContext::
base::OnceCallback<void(SensitiveEntryResult)> callback,
bool should_block) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+#if defined(FULL_SAFE_BROWSING)
if (!should_block) {
// If attempting to save a file with a dangerous extension, prompt the user
// to make them confirm they actually want to save the file.
+#if defined(FULL_SAFE_BROWSING)
if (user_action == UserAction::kSave) {
safe_browsing::DownloadFileType::DangerLevel danger_level =
safe_browsing::FileTypePolicies::GetInstance()->GetFileDangerLevel(
@@ -1258,6 +1269,7 @@ void ChromeFileSystemAccessPermissionContext::
return;
}
}
+#endif
@@ -1261,6 +1270,7 @@ void ChromeFileSystemAccessPermissionContext::
std::move(callback).Run(SensitiveEntryResult::kAllowed);
return;
}
+#endif
auto result_callback =
BindResultCallbackToCurrentSequence(std::move(callback));
diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h
--- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h
+++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h
@@ -1846,6 +1844,18 @@ diff --git a/chrome/browser/net/trial_comparison_cert_verifier_controller.cc b/c
diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc
--- a/chrome/browser/password_manager/chrome_password_manager_client.cc
+++ b/chrome/browser/password_manager/chrome_password_manager_client.cc
@@ -127,10 +127,10 @@
#include "ui/base/data_transfer_policy/data_transfer_endpoint.h"
#include "url/url_constants.h"
+#include "third_party/blink/public/mojom/clipboard/clipboard.mojom.h"
#if BUILDFLAG(SAFE_BROWSING_AVAILABLE)
#include "chrome/browser/safe_browsing/advanced_protection_status_manager.h"
#include "chrome/browser/safe_browsing/advanced_protection_status_manager_factory.h"
-#include "third_party/blink/public/mojom/clipboard/clipboard.mojom.h"
#endif
#if BUILDFLAG(IS_ANDROID)
@@ -963,21 +963,13 @@ autofill::LanguageCode ChromePasswordManagerClient::GetPageLanguage() const {
safe_browsing::PasswordProtectionService*
@@ -1869,7 +1879,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b
}
#endif // defined(ON_FOCUS_PING_ENABLED)
@@ -989,14 +981,6 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry(
@@ -989,15 +981,6 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry(
bool password_field_exists,
uint64_t reused_password_hash,
const std::string& domain) {
@@ -1881,10 +1891,11 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b
- pps->MaybeStartProtectedPasswordEntryRequest(
- web_contents(), web_contents()->GetLastCommittedURL(), username,
- password_type, matching_reused_credentials, password_field_exists);
-
#if !BUILDFLAG(IS_ANDROID)
// If the webpage is not an extension page, do nothing.
@@ -1036,11 +1020,6 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry(
if (!GURL(domain).SchemeIs(kExtensionScheme)) {
@@ -1036,11 +1019,6 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry(
}
void ChromePasswordManagerClient::LogPasswordReuseDetectedEvent() {
@@ -1896,7 +1907,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b
}
#if !BUILDFLAG(IS_ANDROID)
@@ -1671,6 +1650,7 @@ bool ChromePasswordManagerClient::IsPasswordManagementEnabledForCurrentPage(
@@ -1671,6 +1649,7 @@ bool ChromePasswordManagerClient::IsPasswordManagementEnabledForCurrentPage(
is_enabled = false;
}
@@ -1904,7 +1915,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b
// SafeBrowsing Delayed Warnings experiment can delay some SafeBrowsing
// warnings until user interaction. If the current page has a delayed warning,
// it'll have a user interaction observer attached. Disable password
@@ -1681,6 +1661,7 @@ bool ChromePasswordManagerClient::IsPasswordManagementEnabledForCurrentPage(
@@ -1681,6 +1660,7 @@ bool ChromePasswordManagerClient::IsPasswordManagementEnabledForCurrentPage(
observer->OnPasswordSaveOrAutofillDenied();
is_enabled = false;
}
@@ -2036,6 +2047,14 @@ diff --git a/chrome/browser/privacy_guide/android/BUILD.gn b/chrome/browser/priv
"java/src/org/chromium/chrome/browser/privacy_guide/StepDisplayHandler.java",
"java/src/org/chromium/chrome/browser/privacy_guide/StepDisplayHandlerImpl.java",
"java/src/org/chromium/chrome/browser/privacy_guide/SyncFragment.java",
@@ -44,7 +43,6 @@ robolectric_library("junit") {
"junit/src/org/chromium/chrome/browser/privacy_guide/CookiesFragmentTest.java",
"junit/src/org/chromium/chrome/browser/privacy_guide/MSBBFragmentTest.java",
"junit/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuidePagerAdapterTest.java",
- "junit/src/org/chromium/chrome/browser/privacy_guide/SafeBrowsingFragmentTest.java",
"junit/src/org/chromium/chrome/browser/privacy_guide/StepDisplayHandlerImplTest.java",
]
deps = [
diff --git a/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideFragment.java b/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideFragment.java
--- a/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideFragment.java
+++ b/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideFragment.java
@@ -2052,31 +2071,7 @@ diff --git a/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/b
diff --git a/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuidePagerAdapter.java b/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuidePagerAdapter.java
--- a/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuidePagerAdapter.java
+++ b/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuidePagerAdapter.java
@@ -21,12 +21,11 @@ public class PrivacyGuidePagerAdapter extends FragmentStateAdapter {
* The types of fragments supported. Each fragment corresponds to a step in the privacy guide.
*/
@Retention(RetentionPolicy.SOURCE)
- @IntDef({FragmentType.COOKIES, FragmentType.MSBB, FragmentType.SAFE_BROWSING,
+ @IntDef({FragmentType.COOKIES, FragmentType.MSBB,
FragmentType.SYNC})
private @interface FragmentType {
int MSBB = 0;
int SYNC = 1;
- int SAFE_BROWSING = 2;
int COOKIES = 3;
}
@@ -39,9 +38,6 @@ public class PrivacyGuidePagerAdapter extends FragmentStateAdapter {
if (displayHandler.shouldDisplaySync()) {
mFragmentTypeList.add(FragmentType.SYNC);
}
- if (displayHandler.shouldDisplaySafeBrowsing()) {
- mFragmentTypeList.add(FragmentType.SAFE_BROWSING);
- }
if (displayHandler.shouldDisplayCookies()) {
mFragmentTypeList.add(FragmentType.COOKIES);
}
@@ -56,8 +52,6 @@ public class PrivacyGuidePagerAdapter extends FragmentStateAdapter {
@@ -56,8 +56,6 @@ public class PrivacyGuidePagerAdapter extends FragmentStateAdapter {
return new MSBBFragment();
case FragmentType.SYNC:
return new SyncFragment();
@@ -2208,7 +2203,7 @@ diff --git a/chrome/browser/safe_browsing/android/BUILD.gn b/chrome/browser/safe
diff --git a/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingBridge.java b/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingBridge.java
--- a/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingBridge.java
+++ b/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingBridge.java
@@ -14,87 +14,8 @@ import org.chromium.base.annotations.NativeMethods;
@@ -14,87 +14,4 @@ import org.chromium.base.annotations.NativeMethods;
*/
@JNINamespace("safe_browsing")
public final class SafeBrowsingBridge {
@@ -2281,9 +2276,9 @@ diff --git a/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/b
- return SafeBrowsingBridgeJni.get().isLeakDetectionUnauthenticatedEnabled();
- }
-
@NativeMethods
@VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
public interface Natives {
- @NativeMethods
- @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
- public interface Natives {
- int umaValueForFile(String path);
- boolean getSafeBrowsingExtendedReportingEnabled();
- void setSafeBrowsingExtendedReportingEnabled(boolean enabled);
@@ -2294,7 +2289,7 @@ diff --git a/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/b
- boolean isSafeBrowsingManaged();
- boolean hasAccountForLeakCheckRequest();
- boolean isLeakDetectionUnauthenticatedEnabled();
}
- }
}
diff --git a/chrome/browser/safe_browsing/android/safe_browsing_bridge.cc b/chrome/browser/safe_browsing/android/safe_browsing_bridge.cc
--- a/chrome/browser/safe_browsing/android/safe_browsing_bridge.cc
@@ -2536,22 +2531,10 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
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
@@ -399,24 +399,6 @@ CHAR_LIMIT guidelines:
<message name="IDS_URL_KEYED_ANONYMIZED_DATA_TITLE" desc="Title for a checkbox in Settings that controls non-personalized URL collection and informs the user about the data shared by this feature.">
Make searches and browsing better
@@ -411,12 +411,6 @@ CHAR_LIMIT guidelines:
<message name="IDS_PRIVACY_SYNC_AND_SERVICES_LINK_SYNC_OFF" desc="The text for Privacy preferences that is shown after all preference rows. This version of the text is shown if Sync hasn't been turned on.">
For more settings that relate to privacy, security, and data collection, see <ph name="BEGIN_LINK">&lt;link&gt;</ph>Google services<ph name="END_LINK">&lt;/link&gt;</ph>
</message>
- <message name="IDS_URL_KEYED_ANONYMIZED_DATA_SUMMARY" desc="Summary for a checkbox in Settings that controls non-personalized URL collection and informs the user about the data shared by this feature.">
- Sends URLs of pages you visit to Google
- </message>
- <message name="IDS_PRIVACY_SYNC_AND_SERVICES_LINK_LEGACY" desc="The text for Privacy preferences that is shown after all preference rows.">
- For more settings that relate to privacy, security, and data collection, see <ph name="BEGIN_LINK">&lt;link&gt;</ph>Sync and Google services<ph name="END_LINK">&lt;/link&gt;</ph>
- </message>
- <message name="IDS_PRIVACY_SYNC_AND_SERVICES_LINK_SYNC_ON" desc="The text for Privacy preferences that is shown after all preference rows. This version of the text is shown if Sync has been turned on.">
- For more settings that relate to privacy, security, and data collection, see <ph name="BEGIN_LINK1">&lt;link1&gt;</ph>Sync<ph name="END_LINK1">&lt;/link1&gt;</ph> and <ph name="BEGIN_LINK2">&lt;link2&gt;</ph>Google services<ph name="END_LINK2">&lt;/link2&gt;</ph>
- </message>
- <message name="IDS_PRIVACY_SYNC_AND_SERVICES_LINK_SYNC_OFF" desc="The text for Privacy preferences that is shown after all preference rows. This version of the text is shown if Sync hasn't been turned on.">
- For more settings that relate to privacy, security, and data collection, see <ph name="BEGIN_LINK">&lt;link&gt;</ph>Google services<ph name="END_LINK">&lt;/link&gt;</ph>
- </message>
- <message name="IDS_USAGE_AND_CRASH_REPORTS_TITLE" desc="Title for a preference that enables sending usage statistics and crash reports.">
- Help improve Chrome\u2019s features and performance
- </message>
@@ -2561,7 +2544,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
<!-- Metrics settings -->
<message name="IDS_PREFS_METRICS_SETTINGS" desc="Title for the page that allows the user to control how much usage data Chrome uploads. [CHAR_LIMIT=32]">
@@ -4834,9 +4816,6 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -4837,9 +4831,6 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
To use this setting <ph name="BEGIN_LINK">&lt;link&gt;</ph>Make searches and browsing better<ph name="END_LINK">&lt;/link&gt;</ph> must be turned on
</message>
<!-- Usage Stats strings -->
@@ -2891,12 +2874,14 @@ diff --git a/components/safe_browsing/content/common/file_type_policies.cc b/com
diff --git a/components/safe_browsing/core/common/features.cc b/components/safe_browsing/core/common/features.cc
--- a/components/safe_browsing/core/common/features.cc
+++ b/components/safe_browsing/core/common/features.cc
@@ -201,7 +201,7 @@ BASE_FEATURE(kSevenZipEvaluationEnabled,
@@ -200,8 +200,8 @@ BASE_FEATURE(kSevenZipEvaluationEnabled,
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kSuspiciousSiteTriggerQuotaFeature,
"SafeBrowsingSuspiciousSiteTriggerQuota",
- "SafeBrowsingSuspiciousSiteTriggerQuota",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ "SafeBrowsingSuspiciousSiteTriggerQuota", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
BASE_FEATURE(kThreatDomDetailsTagAndAttributeFeature,
"ThreatDomDetailsTagAttributes",
@@ -2943,7 +2928,17 @@ diff --git a/components/security_interstitials/content/captive_portal_blocking_p
diff --git a/components/security_interstitials/content/cert_report_helper.cc b/components/security_interstitials/content/cert_report_helper.cc
--- a/components/security_interstitials/content/cert_report_helper.cc
+++ b/components/security_interstitials/content/cert_report_helper.cc
@@ -176,8 +176,6 @@ void CertReportHelper::FinishCertCollection() {
@@ -62,8 +62,7 @@ CertReportHelper::CertReportHelper(
interstitial_reason_(interstitial_reason),
overridable_(overridable),
interstitial_time_(interstitial_time),
- can_show_enhanced_protection_message_(
- can_show_enhanced_protection_message),
+ can_show_enhanced_protection_message_(false), // always disabled in Bromite
metrics_helper_(metrics_helper) {}
CertReportHelper::~CertReportHelper() = default;
@@ -176,8 +175,6 @@ void CertReportHelper::FinishCertCollection() {
LOG(ERROR) << "Failed to serialize certificate report.";
return;
}
@@ -3012,14 +3007,14 @@ diff --git a/content/browser/file_system_access/file_system_access_safe_move_hel
FileSystemAccessSafeMoveHelper::~FileSystemAccessSafeMoveHelper() = default;
@@ -166,15 +165,9 @@ void FileSystemAccessSafeMoveHelper::Start(
@@ -166,15 +165,8 @@ void FileSystemAccessSafeMoveHelper::Start(
return;
}
- if (!RequireSecurityChecks() || !manager_->permission_context()) {
DidAfterWriteCheck(
FileSystemAccessPermissionContext::AfterWriteCheckResult::kAllow);
return;
- return;
- }
-
- ComputeHashForSourceFile(
@@ -3028,52 +3023,24 @@ diff --git a/content/browser/file_system_access/file_system_access_safe_move_hel
}
void FileSystemAccessSafeMoveHelper::ComputeHashForSourceFile(
@@ -195,45 +188,6 @@ void FileSystemAccessSafeMoveHelper::ComputeHashForSourceFile(
@@ -195,7 +187,7 @@ void FileSystemAccessSafeMoveHelper::ComputeHashForSourceFile(
std::move(wrapped_callback), source_url()));
}
-void FileSystemAccessSafeMoveHelper::DoAfterWriteCheck(
- base::File::Error hash_result,
- const std::string& hash,
- int64_t size) {
- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-
- if (hash_result != base::File::FILE_OK) {
- // Calculating the hash failed.
- std::move(callback_).Run(file_system_access_error::FromStatus(
- blink::mojom::FileSystemAccessStatus::kOperationAborted,
- "Failed to perform Safe Browsing check."));
- return;
- }
-
- if (!manager_) {
- std::move(callback_).Run(file_system_access_error::FromStatus(
- blink::mojom::FileSystemAccessStatus::kOperationAborted));
- return;
- }
-
- content::GlobalRenderFrameHostId outermost_main_frame_id;
- auto* rfh = content::RenderFrameHost::FromID(context_.frame_id);
- if (rfh)
- outermost_main_frame_id = rfh->GetOutermostMainFrame()->GetGlobalId();
-
- auto item = std::make_unique<FileSystemAccessWriteItem>();
- item->target_file_path = dest_url().path();
- item->full_path = source_url().path();
- item->sha256_hash = hash;
- item->size = size;
- item->frame_url = context_.url;
- item->outermost_main_frame_id = outermost_main_frame_id;
- item->has_user_gesture = has_transient_user_activation_;
- manager_->permission_context()->PerformAfterWriteChecks(
- std::move(item), context_.frame_id,
- base::BindOnce(&FileSystemAccessSafeMoveHelper::DidAfterWriteCheck,
- weak_factory_.GetWeakPtr()));
+/*void FileSystemAccessSafeMoveHelper::DoAfterWriteCheck(
base::File::Error hash_result,
const std::string& hash,
int64_t size) {
@@ -232,7 +224,7 @@ void FileSystemAccessSafeMoveHelper::DoAfterWriteCheck(
std::move(item), context_.frame_id,
base::BindOnce(&FileSystemAccessSafeMoveHelper::DidAfterWriteCheck,
weak_factory_.GetWeakPtr()));
-}
-
+}*/
void FileSystemAccessSafeMoveHelper::DidAfterWriteCheck(
FileSystemAccessPermissionContext::AfterWriteCheckResult result) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
diff --git a/content/browser/file_system_access/file_system_access_safe_move_helper.h b/content/browser/file_system_access/file_system_access_safe_move_helper.h
--- a/content/browser/file_system_access/file_system_access_safe_move_helper.h
+++ b/content/browser/file_system_access/file_system_access_safe_move_helper.h
+5 -5
View File
@@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -443,7 +443,6 @@ if (current_toolchain == default_toolchain) {
@@ -442,7 +442,6 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/privacy_sandbox/android:java",
"//chrome/browser/profiles/android:java",
"//chrome/browser/safe_browsing/android:java",
@@ -21,7 +21,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//chrome/browser/search_engines/android:java",
"//chrome/browser/search_resumption:java",
"//chrome/browser/segmentation_platform:factory_java",
@@ -1034,8 +1033,6 @@ if (current_toolchain == default_toolchain) {
@@ -1032,8 +1031,6 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/privacy_guide/android:java",
"//chrome/browser/privacy_guide/android:junit",
"//chrome/browser/profiles/android:java",
@@ -30,7 +30,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//chrome/browser/search_engines/android:java",
"//chrome/browser/search_resumption:junit",
"//chrome/browser/segmentation_platform:factory_java",
@@ -1561,8 +1558,6 @@ if (current_toolchain == default_toolchain) {
@@ -1556,8 +1553,6 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/profiles/android:java",
"//chrome/browser/safe_browsing/android:java",
"//chrome/browser/safe_browsing/android:javatests",
@@ -42,7 +42,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -947,7 +947,6 @@ chrome_java_sources = [
@@ -946,7 +946,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingPasswordReuseDialogBridge.java",
"java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingReferringAppBridge.java",
"java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingSettingsLauncher.java",
@@ -85,7 +85,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/omnibox/Omn
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -3348,7 +3348,6 @@ static_library("browser") {
@@ -3346,7 +3346,6 @@ static_library("browser") {
"//chrome/browser/privacy_sandbox/android:jni_headers",
"//chrome/browser/reading_list/android",
"//chrome/browser/safe_browsing/android:safe_browsing_enums",
@@ -42,7 +42,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearc
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -189,6 +189,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -188,6 +188,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kCCTBrandTransparency,
&kCCTClientDataHeader,
&kCCTIncognito,
@@ -50,28 +50,28 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
&kCCTIncognitoAvailableToThirdParty,
&kCCTNewDownloadTab,
&kCCTPackageNameRecording,
@@ -670,6 +671,10 @@ BASE_FEATURE(kChromeSurveyNextAndroid,
"ChromeSurveyNextAndroid",
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -996,6 +997,10 @@ BASE_FEATURE(kDiscoverFeedMultiColumn,
"DiscoverFeedMultiColumn",
base::FEATURE_DISABLED_BY_DEFAULT);
+BASE_FEATURE(kChromeSmartSelection,
+ "ChromeSmartSelection",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
BASE_FEATURE(kCommandLineOnNonRooted,
"CommandLineOnNonRooted",
BASE_FEATURE(kTabStripRedesign,
"TabStripRedesign",
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
@@ -63,6 +63,7 @@ BASE_DECLARE_FEATURE(kCacheDeprecatedSystemLocationSetting);
@@ -62,6 +62,7 @@ BASE_DECLARE_FEATURE(kDontAutoHideBrowserControls);
BASE_DECLARE_FEATURE(kCacheDeprecatedSystemLocationSetting);
BASE_DECLARE_FEATURE(kChromeNewDownloadTab);
BASE_DECLARE_FEATURE(kChromeShareLongScreenshot);
BASE_DECLARE_FEATURE(kChromeShareScreenshot);
+BASE_DECLARE_FEATURE(kChromeSmartSelection);
BASE_DECLARE_FEATURE(kChromeShareScreenshot);
BASE_DECLARE_FEATURE(kChromeSharingHub);
BASE_DECLARE_FEATURE(kChromeSharingHubLaunchAdjacent);
BASE_DECLARE_FEATURE(kChromeSurveyNextAndroid);
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
@@ -98,7 +98,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
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
@@ -2702,6 +2702,21 @@
@@ -3045,6 +3045,21 @@
]
}
],
@@ -117,7 +117,7 @@ diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variati
+ ]
+ }
+ ],
"ChromeTipsInMainMenu": [
"CommerceHintAndroid": [
{
"platforms": [
--
@@ -4,25 +4,28 @@ Subject: Disable some signed exchange features
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
content/public/common/content_features.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
content/public/common/content_features.cc | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
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
@@ -1000,13 +1000,13 @@ BASE_FEATURE(kSharedArrayBufferOnDesktop,
@@ -999,14 +999,14 @@ BASE_FEATURE(kSharedArrayBufferOnDesktop,
// Signed Exchange Reporting for distributors
// https://www.chromestatus.com/feature/5687904902840320
BASE_FEATURE(kSignedExchangeReportingForDistributors,
"SignedExchangeReportingForDistributors",
- "SignedExchangeReportingForDistributors",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ "SignedExchangeReportingForDistributors", // must be disabled
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
// Origin-Signed HTTP Exchanges (for WebPackage Loading)
// https://www.chromestatus.com/feature/5745285984681984
BASE_FEATURE(kSignedHTTPExchange,
"SignedHTTPExchange",
- "SignedHTTPExchange",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ "SignedHTTPExchange", // must be disabled
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
// Delays RenderProcessHost shutdown by a few seconds to allow the subframe's
// process to be potentially reused. This aims to reduce process churn in
@@ -22,7 +22,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -6276,6 +6276,11 @@ const FeatureEntry kFeatureEntries[] = {
@@ -6275,6 +6275,11 @@ const FeatureEntry kFeatureEntries[] = {
"")},
#endif
@@ -37,9 +37,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -2801,6 +2801,11 @@
"owners": [ "alionadangla", "bwwilliams", "bling-flags@google.com"],
"expiry_milestone": 110
@@ -2706,6 +2706,11 @@
"owners": [ "robsc", "napper", "alanlxl" ],
"expiry_milestone": 130
},
+ {
+ "name": "enable-text-fragment-anchor",
@@ -47,35 +47,35 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
+ "expiry_milestone": -1
+ },
{
"name": "enable-pci-guard-ui",
"owners": [ "jimmyxgong", "cros-peripherals@google.com" ],
"name": "enable-neural-stylus-palm-rejection",
"owners": [ "robsc", "napper", "adlr" ],
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
@@ -1418,6 +1418,10 @@ const char kEnableRestrictedWebApisDescription[] =
"Enable the restricted web APIs for dev trial. This will be replaced with "
"permission policies to control the capabilities afterwards.";
@@ -1387,6 +1387,10 @@ extern const char kDropInputEventsBeforeFirstPaintDescription[] =
"intentionally interact with elements on that page. By dropping the events "
"we prevent accidental interaction with a page the user has not seen yet.";
+const char kEnableTextFragmentAnchorName[] = "Enable Text Fragment Anchor.";
+const char kEnableTextFragmentAnchorDescription[] =
+ "Enables scrolling to text specified in URL's fragment.";
+
const char kEnableWebAuthenticationChromeOSAuthenticatorName[] =
"ChromeOS platform Web Authentication support";
const char kEnableWebAuthenticationChromeOSAuthenticatorDescription[] =
const char kEnableCssSelectorFragmentAnchorName[] =
"Enables CSS selector fragment anchors";
const char kEnableCssSelectorFragmentAnchorDescription[] =
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
@@ -785,6 +785,9 @@ extern const char
extern const char kEnableRestrictedWebApisName[];
extern const char kEnableRestrictedWebApisDescription[];
@@ -767,6 +767,9 @@ extern const char kReduceHorizontalFlingVelocityDescription[];
extern const char kRetailCouponsName[];
extern const char kRetailCouponsDescription[];
+extern const char kEnableTextFragmentAnchorName[];
+extern const char kEnableTextFragmentAnchorDescription[];
+
extern const char kEnableWebAuthenticationChromeOSAuthenticatorName[];
extern const char kEnableWebAuthenticationChromeOSAuthenticatorDescription[];
extern const char kDropInputEventsBeforeFirstPaintName[];
extern const char kDropInputEventsBeforeFirstPaintDescription[];
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
@@ -91,14 +91,14 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
--- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc
@@ -269,6 +269,7 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
{wf::EnableSharedArrayBufferOnDesktop,
@@ -270,6 +270,7 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
features::kSharedArrayBufferOnDesktop},
{wf::EnableSharedAutofill, autofill::features::kAutofillSharedAutofill},
+ {wf::EnableTextFragmentIdentifiers, blink::features::kTextFragmentAnchor},
{wf::EnableTouchDragAndContextMenu, features::kTouchDragAndContextMenu},
+ {wf::EnableTextFragmentIdentifiers, blink::features::kTextFragmentAnchor},
{wf::EnableUserActivationSameOriginVisibility,
features::kUserActivationSameOriginVisibility},
{wf::EnableVideoPlaybackQuality, features::kVideoPlaybackQuality},
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
@@ -117,14 +117,14 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h
--- a/third_party/blink/public/common/features.h
+++ b/third_party/blink/public/common/features.h
@@ -216,6 +216,7 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kResourceLoadViaDataPipe);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kServiceWorkerUpdateDelay);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kStopInBackground);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kDropInputEventsBeforeFirstPaint);
@@ -224,6 +224,7 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kDecodeJpeg420ImagesToYUV);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kDecodeLossyWebPImagesToYUV);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kWebFontsCacheAwareTimeoutAdaption);
+BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kTextFragmentAnchor);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kFileHandlingIcons);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kAllowSyncXHRInPageDismissal);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kPrefetchPrivacyChanges);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kAudioWorkletThreadRealtimePriority);
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
+1 -1
View File
@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/components/component_updater/android/java/src/org/chromium/components/component_updater/UpdateScheduler.java b/components/component_updater/android/java/src/org/chromium/components/component_updater/UpdateScheduler.java
--- a/components/component_updater/android/java/src/org/chromium/components/component_updater/UpdateScheduler.java
+++ b/components/component_updater/android/java/src/org/chromium/components/component_updater/UpdateScheduler.java
@@ -34,9 +34,7 @@ public class UpdateScheduler {
@@ -33,9 +33,7 @@ public class UpdateScheduler {
@CalledByNative
/* package */ static boolean isAvailable() {
+12 -8
View File
@@ -13,11 +13,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../android/ntp/most_visited_sites_bridge.cc | 17 -----------------
chrome/browser/browser_process_impl.cc | 2 +-
chrome/browser/chrome_content_browser_client.cc | 15 ---------------
.../chrome_metrics_services_manager_client.cc | 4 ++--
.../chrome_metrics_services_manager_client.cc | 8 ++++----
components/ntp_tiles/BUILD.gn | 3 ---
components/ntp_tiles/most_visited_sites.cc | 2 --
services/metrics/public/cpp/ukm_recorder.cc | 2 +-
8 files changed, 5 insertions(+), 42 deletions(-)
8 files changed, 7 insertions(+), 44 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
@@ -140,21 +140,25 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
diff --git a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc
--- a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc
+++ b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc
@@ -74,7 +74,7 @@ namespace internal {
@@ -73,8 +73,8 @@ namespace internal {
// recording and reporting are enabled. If the feature is enabled, but no
// consent is given, then there will be no recording or reporting.
BASE_FEATURE(kMetricsReportingFeature,
"MetricsReporting",
- "MetricsReporting",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ "MetricsReporting", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
#if BUILDFLAG(IS_ANDROID)
// Same as |kMetricsReportingFeature|, but this feature is associated with a
@@ -84,7 +84,7 @@ BASE_FEATURE(kMetricsReportingFeature,
@@ -83,8 +83,8 @@ BASE_FEATURE(kMetricsReportingFeature,
// the fix to not affect the overall sampling rate, this new feature was
// created. See crbug/1306481.
BASE_FEATURE(kPostFREFixMetricsReportingFeature,
"PostFREFixMetricsReporting",
- "PostFREFixMetricsReporting",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ "PostFREFixMetricsReporting", // disabled by deault
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
#endif // BUILDFLAG(IS_ANDROID)
// Name of the variations param that defines the sampling rate.
@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -1307,8 +1307,6 @@ static_library("ui") {
@@ -1304,8 +1304,6 @@ static_library("ui") {
"singleton_tabs.h",
"startup/automation_infobar_delegate.cc",
"startup/automation_infobar_delegate.h",
@@ -22,7 +22,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
import org.chromium.chrome.browser.share.scroll_capture.ScrollCaptureManager;
import org.chromium.chrome.browser.tab.AccessibilityVisibilityHandler;
import org.chromium.chrome.browser.tab.AutofillSessionLifetimeController;
@@ -499,10 +498,6 @@ public class RootUiCoordinator
@@ -498,10 +497,6 @@ public class RootUiCoordinator
}
public void onAttachFragment(Fragment fragment) {
@@ -3,26 +3,28 @@ Date: Fri, 10 Jun 2022 14:20:02 +0200
Subject: Enable Certificate Transparency
Reporting/auditing functionalities are disabled; a flag is exposed.
Add guard to make sure that certificate transparency stays enabled
by default.
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/browser/about_flags.cc | 5 +++++
chrome/browser/browser_features.cc | 2 +-
chrome/browser/browser_features.cc | 4 ++--
chrome/browser/flag_descriptions.cc | 4 ++++
chrome/browser/flag_descriptions.h | 3 +++
chrome/browser/net/system_network_context_manager.cc | 4 ----
chrome/browser/ssl/sct_reporting_service.cc | 5 +++++
chrome/common/chrome_features.cc | 2 +-
net/http/transport_security_state.cc | 5 +++--
chrome/common/chrome_features.cc | 6 +-----
net/http/transport_security_state.cc | 9 +++++----
net/url_request/report_sender.cc | 3 ++-
services/network/network_context.cc | 2 +-
services/network/sct_auditing/sct_auditing_handler.cc | 2 ++
11 files changed, 27 insertions(+), 10 deletions(-)
11 files changed, 30 insertions(+), 17 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
@@ -9061,6 +9061,11 @@ const FeatureEntry kFeatureEntries[] = {
@@ -9060,6 +9060,11 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kWebMidiDescription, kOsAll,
FEATURE_VALUE_TYPE(features::kWebMidi)},
#if BUILDFLAG(IS_ANDROID)
@@ -37,19 +39,21 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_features.cc
--- a/chrome/browser/browser_features.cc
+++ b/chrome/browser/browser_features.cc
@@ -156,7 +156,7 @@ BASE_FEATURE(kWebUsbDeviceDetection,
@@ -155,8 +155,8 @@ BASE_FEATURE(kWebUsbDeviceDetection,
#if BUILDFLAG(IS_ANDROID)
// Enables Certificate Transparency on Android.
BASE_FEATURE(kCertificateTransparencyAndroid,
"CertificateTransparencyAndroid",
- "CertificateTransparencyAndroid",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_ENABLED_BY_DEFAULT); // enabled by default in Bromite
+ "CertificateTransparencyAndroid", // must be enabled
+ base::FEATURE_ENABLED_BY_DEFAULT); // in Bromite
#endif
BASE_FEATURE(kLargeFaviconFromGoogle,
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
@@ -6869,6 +6869,10 @@ const char kAutofillCreditCardUploadDescription[] =
@@ -6874,6 +6874,10 @@ const char kAutofillCreditCardUploadDescription[] =
#endif // defined(TOOLKIT_VIEWS) || BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID)
@@ -63,7 +67,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
@@ -3966,6 +3966,9 @@ extern const char kAutofillCreditCardUploadDescription[];
@@ -3969,6 +3969,9 @@ extern const char kAutofillCreditCardUploadDescription[];
#endif // defined(TOOLKIT_VIEWS) || BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID)
@@ -112,15 +116,19 @@ diff --git a/chrome/browser/ssl/sct_reporting_service.cc b/chrome/browser/ssl/sc
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
@@ -996,7 +996,7 @@ BASE_FEATURE(kSchedulerConfiguration,
@@ -995,11 +995,7 @@ BASE_FEATURE(kSchedulerConfiguration,
// Controls whether SCT audit reports are queued and the rate at which they
// should be sampled. Default sampling rate is 1/10,000 certificates.
#if BUILDFLAG(IS_ANDROID)
-#if BUILDFLAG(IS_ANDROID)
-BASE_FEATURE(kSCTAuditing, "SCTAuditing", base::FEATURE_DISABLED_BY_DEFAULT);
+BASE_FEATURE(kSCTAuditing, "SCTAuditing", base::FEATURE_DISABLED_BY_DEFAULT); // SCT auditing must be always disabled in Bromite
#else
BASE_FEATURE(kSCTAuditing, "SCTAuditing", base::FEATURE_ENABLED_BY_DEFAULT);
#endif
-#else
-BASE_FEATURE(kSCTAuditing, "SCTAuditing", base::FEATURE_ENABLED_BY_DEFAULT);
-#endif
+BASE_FEATURE(kSCTAuditing, "SCTAuditing", base::FEATURE_DISABLED_BY_DEFAULT); // disabled in Bromite
constexpr base::FeatureParam<double> kSCTAuditingSamplingRate{
&kSCTAuditing, "sampling_rate", 0.0001};
diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_state.cc
--- a/net/http/transport_security_state.cc
+++ b/net/http/transport_security_state.cc
@@ -132,18 +140,21 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
if (g_hsts_source == nullptr)
return false;
#endif
@@ -383,12 +384,12 @@ bool DecodeHSTSPreload(const std::string& search_hostname, PreloadResult* out) {
@@ -382,13 +383,13 @@ bool DecodeHSTSPreload(const std::string& search_hostname, PreloadResult* out) {
// static
BASE_FEATURE(kDynamicExpectCTFeature,
"DynamicExpectCT",
- "DynamicExpectCT",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT); // disabled in Bromite
+ "DynamicExpectCT", // disabled by default
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
// static
BASE_FEATURE(kCertificateTransparencyEnforcement,
"CertificateTransparencyEnforcement",
- "CertificateTransparencyEnforcement",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_ENABLED_BY_DEFAULT); // always enabled in Bromite
+ "CertificateTransparencyEnforcement", // must be enabled
+ base::FEATURE_ENABLED_BY_DEFAULT); // in Bromite
void SetTransportSecurityStateSourceForTesting(
const TransportSecurityStateSource* source) {
+25
View File
@@ -0,0 +1,25 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sun, 30 Oct 2022 18:11:19 +0100
Subject: Enable ECH by default
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
net/base/features.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/base/features.cc b/net/base/features.cc
--- a/net/base/features.cc
+++ b/net/base/features.cc
@@ -78,8 +78,8 @@ BASE_FEATURE(kEnableTLS13EarlyData,
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kEncryptedClientHello,
- "EncryptedClientHello",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ "EncryptedClientHello", // enabled
+ base::FEATURE_ENABLED_BY_DEFAULT); // in Bromite
BASE_FEATURE(kNetworkQualityEstimator,
"NetworkQualityEstimator",
--
2.25.1
@@ -0,0 +1,27 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Tue, 27 Sep 2022 23:39:54 +0200
Subject: Enable HEVC by default
Add a guard to avoid setting to be disabled upstream.
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
media/base/media_switches.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
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
@@ -289,8 +289,8 @@ BASE_FEATURE(kPictureInPicture,
#if BUILDFLAG(ENABLE_PLATFORM_HEVC)
// Enables HEVC hardware accelerated decoding.
BASE_FEATURE(kPlatformHEVCDecoderSupport,
- "PlatformHEVCDecoderSupport",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ "PlatformHEVCDecoderSupport", // must be enabled
+ base::FEATURE_ENABLED_BY_DEFAULT); // in Bromite
#endif // BUILDFLAG(ENABLE_PLATFORM_HEVC)
// Only decode preload=metadata elements upon visibility.
--
2.25.1

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