Compare commits

...
Author SHA1 Message Date
uazo 1825714676 Merge pull request #1017 from TheKyber/patch-2
remove sleeping
2024-04-18 10:18:26 +00:00
uazo 69cabbf480 Change title and commit message 2024-04-18 07:16:10 +00:00
uazo 90025e0a1a Change commit message and title 2024-04-18 07:14:05 +00:00
uazo efececa905 [DOC] Generate patches doc for master branch #1018
Generate patches doc for master branch
2024-04-18 07:11:26 +00:00
uazo 631f59bc30 AUTOMATED - update patch docs 2024-04-18 07:06:25 +00:00
Carmelo Messina 7ed682ea15 Never treat Proguard warnings as errors 2024-04-18 09:04:42 +02:00
TheKyber 026add53bd remove sleeping
I believe the issue has been solved.

https://github.com/cli/cli/issues/6599#issuecomment-1357765073
2024-04-18 06:14:39 +01:00
uazo 8ea3639339 Merge pull request #1015 from uazo/create-pull-request/patch-8ae8389
Git apply result for master branch
2024-04-18 02:13:58 +07:00
uazo f45d4ed1da AUTOMATED - git apply results 2024-04-17 19:11:11 +00:00
uazo de2242899c Merge pull request #1014 from uazo/create-pull-request/patch-8ae8389
Generate patches doc for  branch
2024-04-18 02:07:35 +07:00
uazo d41d7567dc AUTOMATED - update patch docs 2024-04-17 19:06:56 +00:00
Carmelo Messina 8ae8389f9e Bump to 124.0.6367.60 2024-04-17 21:05:13 +02:00
Carmelo Messina e5783531ea update patches list 2024-04-17 21:04:47 +02:00
Carmelo Messina 0b7516b02c Do not use Windows ClearType Text Tuner setting 2024-04-17 21:04:24 +02:00
Carmelo Messina d0ad345508 #344 Add UI for INSECURE_PRIVATE_NETWORK site setting 2024-04-17 21:04:02 +02:00
Carmelo Messina 7a9442aa6a Fix author 2024-04-17 21:01:32 +02:00
Carmelo Messina 41fb59faf0 #811 fix blank space in site settings 2024-04-17 21:00:44 +02:00
uazo fe3189a12c Merge pull request #1006 from uazo/create-pull-request/patch-132e13d
New files under control 124.0.6367.60
2024-04-18 01:54:51 +07:00
uazo e370fa1ded Merge pull request #1013 from uazo/create-pull-request/patch-4581484
Generate patches doc for  branch
2024-04-18 01:54:34 +07:00
uazo 13fd9e2406 AUTOMATED - update patch docs 2024-04-17 18:53:28 +00:00
uazo 4581484d28 Merge pull request #1000 from uazo/next-124
patches for v124
2024-04-18 01:53:09 +07:00
uazo 9c313eaf77 Merge branch 'master' into next-124 2024-04-18 01:52:58 +07:00
uazo 80203b0109 AUTOMATED - new files under control 124.0.6367.60 2024-04-16 02:35:31 +00:00
uazo 7b50a52695 Merge pull request #1004 from uazo/create-pull-request/patch-dcfc983
Git apply result for next-124 branch
2024-04-15 10:25:51 -07:00
uazo 70f578a033 AUTOMATED - git apply results 2024-04-15 17:23:53 +00:00
Carmelo Messina dcfc983cde patches for v124 2024-04-15 19:19:49 +02:00
Carmelo Messina 39b833a5c1 patches for v124 2024-04-14 14:13:16 +02:00
uazo 132e13d6e1 [DOC] Add wip linux auto-update issue reference 2024-04-13 01:43:11 -05:00
uazo f176811628 Merge pull request #993 from uazo/create-pull-request/patch-373f055
Git apply result for master branch
2024-04-12 13:06:07 +06:00
uazo e49db238d6 AUTOMATED - git apply results 2024-04-12 07:04:44 +00:00
uazo 67049079c7 Merge pull request #992 from uazo/create-pull-request/patch-373f055
Generate patches doc for  branch
2024-04-12 12:59:19 +06:00
uazo 526cde30ba AUTOMATED - update patch docs 2024-04-12 06:58:07 +00:00
Carmelo Messina 373f0559b0 Bump to 123.0.6312.122 2024-04-12 08:56:30 +02:00
Carmelo Messina 81d20d042c #987 Fetch Keepalive should not report an exception when blocked 2024-04-12 08:55:49 +02:00
uazo 82f065c29c Run "Update patches doc" only on master 2024-04-11 17:46:13 +10:00
uazo 6ffc35a77f Merge pull request #983 from uazo/create-pull-request/patch-3f638c5
New files under control 123.0.6312.122
2024-04-11 17:42:57 +10:00
uazo b6ac711304 AUTOMATED - new files under control 123.0.6312.122 2024-04-11 02:50:06 +00:00
uazo 3f638c5416 Merge pull request #961 from uazo/create-pull-request/patch-0068783
New files under control 123.0.6312.106
2024-04-08 11:40:32 +03:00
Carmelo Messina 5880bd7ca8 Bump to 123.0.6312.106 2024-04-08 10:38:28 +02:00
Carmelo Messina 1495021a80 #966 drop Emoji-Fonts-fingerprinting-mitigation patch 2024-04-08 10:29:59 +02:00
uazo 5e5fcbc665 AUTOMATED - new files under control 123.0.6312.106 2024-04-05 02:33:30 +00:00
457 changed files with 7124 additions and 205080 deletions
+2 -2
View File
@@ -147,8 +147,8 @@ jobs:
#push-to-fork: uazo/cromite
add-paths: |
build/patches/*.patch
commit-message: 'AUTOMATED - git apply results'
title: Git apply result for ${{ env.BRANCH }} branch
commit-message: '[AUTO] Patches auto-rebase'
title: '[AUTO] Patches auto-rebase for ${{ env.BRANCH }} branch'
body: ${{ env.MESSAGE }}
delete-branch: true
branch-suffix: short-commit-hash
-3
View File
@@ -193,9 +193,6 @@ jobs:
$GH release upload $VERSION-$CROMITE_SHA arm64_symbols.zip
echo "::endgroup::"
# workaround for https://github.com/cli/cli/issues/6599
sleep 30s
TIMESTAMP=$(date +%s -r chrome-win.zip)
echo >updateurl.txt "browser=chromium;os=windows;architecture=64-bit;timestamp=$TIMESTAMP;editor=uazo;channel=stable;repository=https://github.com/uazo/cromite/releases;download=https://github.com/uazo/cromite/releases/latest/download/chrome-win.zip;version=$(cat $OUTPUTFILE_WIN/RELEASE);revision=1;commit=$CROMITE_SHA"
$GH release upload $VERSION-$CROMITE_SHA updateurl.txt
+4 -4
View File
@@ -13,8 +13,8 @@ permissions:
on:
push:
branches-ignore:
- 'ci'
branches:
- 'master'
paths:
- 'build/**'
@@ -75,8 +75,8 @@ jobs:
base: ${{ env.BRANCH }}
add-paths: |
build/patches/*.patch
commit-message: 'AUTOMATED - update patch docs'
title: Generate patches doc for ${{ env.BRANCH }} branch
commit-message: '[AUTO][DOC] Generate patches doc for master branch'
title: '[AUTO][DOC] Generate patches doc for master branch'
body: ${{ env.MESSAGE }}
delete-branch: true
branch-suffix: short-commit-hash
+3
View File
@@ -91,6 +91,9 @@ you can activate the 'RendererAppContainer' flag from the command line with
--enable-features=RendererAppContainer
```
### Auto-update setup for linux
working in progress in https://github.com/uazo/cromite/issues/771
# Contributing
Please submit issues following the issue template; beware that GitHub does not display the templates from mobile.
+1 -1
View File
@@ -1 +1 @@
123.0.6312.105
124.0.6367.60
+6 -3
View File
@@ -236,6 +236,9 @@ Add-webGL-site-setting.patch
Add-webRTC-site-settings.patch
Show-site-settings-for-cookies-javascript-and-ads.patch
Viewport-Protection-flag.patch
Revert-remove-allowscript-content-setting-secondary-url.patch
Revert-remove-allowimage-content-setting-secondary-url.patch
Temp-Alert-for-CC-revert.patch
Timezone-customization.patch
Change-popup-site-setting.patch
Disable-speechSynthesis-getVoices-API.patch
@@ -243,7 +246,6 @@ Remove-support-for-device-memory-and-cpu-recovery.patch
Log-dangling-attributes-in-some-html-elements.patch
Keep-Side-Panel-Companion-disabled.patch
Lock-Profile-Cookie-Database.patch
Show-warnings-on-downloads-over-HTTP.patch
Compress-libchrome-to-free-up-some-space.patch
Cromite-Branding.patch
Disable-Feeback-Collector.patch
@@ -284,13 +286,14 @@ Enable-percent-based-scrolling-on-Windows.patch
Show-NTP-at-startup.patch
Enable-platform-aac-audio-and-h264-video.patch
Disable-Paint-Preview-by-default.patch
Emoji-Fonts-fingerprinting-mitigation-02-02.patch
Emoji-Fonts-fingerprinting-mitigation-01-02.patch
Do-not-use-Windows-ClearType-Text-Tuner-setting.patch
Private-network-access-content-settings.patch
Temp-PerformanceNavigationTiming-privacy-fix.patch
Temp-disable-predictive-back-gesture.patch
TEMP-Add-a-log-to-track-strange-behavior.patch
Temp-guard-FileSystemAccessPersistentPermissions.patch
Never-treat-Proguard-warnings-as-errors.patch
Fix-chromium-build-bugs.patch
eyeo-beta-118.0.5993.48-base.patch
@@ -90,7 +90,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
@@ -3046,9 +3046,9 @@
@@ -3101,9 +3101,9 @@
"expiry_milestone": 125
},
{
@@ -173,7 +173,7 @@ diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h
diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
--- a/gpu/config/gpu_util.cc
+++ b/gpu/config/gpu_util.cc
@@ -122,6 +122,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus(
@@ -124,6 +124,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus(
#if !BUILDFLAG(IS_ANDROID)
return kGpuFeatureStatusDisabled;
#else
@@ -183,7 +183,7 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
if (!gpu_preferences.enable_android_surface_control)
return kGpuFeatureStatusDisabled;
@@ -368,6 +371,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) {
@@ -390,6 +393,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) {
gpu_feature_info->status_values[GPU_FEATURE_TYPE_CANVAS_OOP_RASTERIZATION] =
kGpuFeatureStatusBlocklisted;
}
@@ -209,7 +209,7 @@ diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list
diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
--- a/gpu/ipc/service/gpu_init.cc
+++ b/gpu/ipc/service/gpu_init.cc
@@ -65,6 +65,7 @@
@@ -69,6 +69,7 @@
#if BUILDFLAG(IS_ANDROID)
#include "ui/gfx/android/android_surface_control_compat.h"
@@ -217,7 +217,7 @@ diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
#endif
#if BUILDFLAG(ENABLE_VULKAN)
@@ -662,6 +663,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
@@ -708,6 +709,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
}
#endif // BUILDFLAG(IS_WIN)
@@ -20,7 +20,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/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
@@ -230,6 +230,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider;
@@ -232,6 +232,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider;
import org.chromium.content_public.browser.SelectionPopupController;
import org.chromium.content_public.browser.WebContents;
import org.chromium.content_public.common.ContentSwitches;
@@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.printing.PrintManagerDelegateImpl;
import org.chromium.printing.PrintingController;
import org.chromium.printing.PrintingControllerImpl;
@@ -1064,6 +1065,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -1058,6 +1059,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
super.onStartWithNative();
ChromeActivitySessionTracker.getInstance().onStartWithNative();
ChromeCachedFlags.getInstance().cacheNativeFlags();
@@ -40,7 +40,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
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
@@ -136,6 +136,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -132,6 +132,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&feed::kFeedShowSignInCommand,
&feed::kFeedSignedOutViewDemotion,
&feed::kFeedUserInteractionReliabilityReport,
@@ -59,16 +59,16 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_TRANSLATE =
"AdaptiveButtonInTopToolbarTranslate";
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_ADD_TO_BOOKMARKS =
@@ -533,6 +534,8 @@ public abstract class ChromeFeatureList {
public static final CachedFlag sAndroidHub = newCachedFlag(ANDROID_HUB, false);
@@ -529,6 +530,8 @@ public abstract class ChromeFeatureList {
public static final CachedFlag sAndroidTabGroupStableIds =
newCachedFlag(ANDROID_TAB_GROUP_STABLE_IDS, false);
public static final CachedFlag sAppSpecificHistory = newCachedFlag(APP_SPECIFIC_HISTORY, false);
+ public static final CachedFlag sAllowUserCertificates =
+ newCachedFlag(ALLOW_USER_CERTIFICATES, false);
public static final CachedFlag sArchiveTabService = newCachedFlag(ARCHIVE_TAB_SERVICE, false);
public static final CachedFlag sBackGestureActivityTabProvider =
newCachedFlag(BACK_GESTURE_ACTIVITY_TAB_PROVIDER, false);
@@ -679,6 +682,7 @@ public abstract class ChromeFeatureList {
public static final CachedFlag sAsyncNotificationManager =
newCachedFlag(ASYNC_NOTIFICATION_MANAGER, false);
@@ -680,6 +683,7 @@ public abstract class ChromeFeatureList {
public static final List<CachedFlag> sFlagsCachedFullBrowser =
List.of(
@@ -14,7 +14,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
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
@@ -7195,9 +7195,9 @@
@@ -7251,9 +7251,9 @@
"expiry_milestone": 125
},
{
@@ -77,7 +77,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
@@ -76,6 +76,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@@ -78,6 +78,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
private static final String PREF_SAFE_BROWSING = "safe_browsing";
private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link";
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
@@ -88,7 +88,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
@@ -308,6 +308,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
@@ -303,6 +303,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
builtins_to_provide.push_back(
base::ASCIIToUTF16(chrome::kChromeUISettingsURL));
#endif
@@ -198,15 +198,15 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -191,6 +191,8 @@
#include "printing/buildflags/buildflags.h"
#include "rlz/buildflags/buildflags.h"
#include "services/screen_ai/buildflags/buildflags.h"
+#include "chrome/browser/net/proxy_service_factory.h"
+
#if BUILDFLAG(ENABLE_BACKGROUND_MODE)
#include "chrome/browser/background/background_mode_manager.h"
#endif
@@ -1447,6 +1449,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
@@ -1476,6 +1478,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
component_updater::RegisterPrefs(registry);
domain_reliability::RegisterPrefs(registry);
embedder_support::OriginTrialPrefs::RegisterPrefs(registry);
@@ -661,7 +661,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
@@ -301,6 +301,8 @@ static_library("ui") {
@@ -306,6 +306,8 @@ static_library("ui") {
"webui/metrics_internals/metrics_internals_ui.h",
"webui/net_export_ui.cc",
"webui/net_export_ui.h",
@@ -673,7 +673,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
@@ -52,6 +52,7 @@
@@ -53,6 +53,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"
@@ -681,7 +681,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/privacy_sandbox/privacy_sandbox_internals_ui.h"
#include "chrome/browser/ui/webui/segmentation_internals/segmentation_internals_ui.h"
@@ -469,6 +470,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
@@ -470,6 +471,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
return &NewWebUI<MetricsInternalsUI>;
if (url.host_piece() == chrome::kChromeUINetExportHost)
return &NewWebUI<NetExportUI>;
@@ -1136,7 +1136,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
const char kChromeUIChromeURLsHost[] = "chrome-urls";
const char kChromeUIChromeURLsURL[] = "chrome://chrome-urls/";
const char kChromeUIComponentsHost[] = "components";
@@ -460,6 +462,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
@@ -466,6 +468,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
kChromeUILockScreenNetworkHost,
kChromeUILockScreenStartReauthHost,
kChromeUIMobileSetupHost,
@@ -1144,7 +1144,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
kChromeUIMultiDeviceSetupHost,
kChromeUINetworkHost,
kChromeUINotificationTesterHost,
@@ -760,6 +763,7 @@ const char* const kChromeHostURLs[] = {
@@ -764,6 +767,7 @@ const char* const kChromeHostURLs[] = {
#if !BUILDFLAG(IS_ANDROID)
#if !BUILDFLAG(IS_CHROMEOS)
kChromeUIAppLauncherPageHost,
@@ -1155,7 +1155,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h
--- a/chrome/common/webui_url_constants.h
+++ b/chrome/common/webui_url_constants.h
@@ -134,6 +134,8 @@ extern const char kChromeUINTPTilesInternalsHost[];
@@ -135,6 +135,8 @@ extern const char kChromeUINTPTilesInternalsHost[];
extern const char kChromeUINaClHost[];
extern const char kChromeUINetExportHost[];
extern const char kChromeUINetExportURL[];
+132 -152
View File
@@ -23,23 +23,23 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/android/chrome_java_sources.gni | 2 +
.../java/res/xml/incognito_preferences.xml | 37 ++++
.../java/res/xml/privacy_preferences.xml | 5 +
.../AlwaysIncognitoLinkInterceptor.java | 53 ++++++
.../chrome/browser/ChromeTabbedActivity.java | 20 ++-
.../AlwaysIncognitoLinkInterceptor.java | 54 ++++++
.../chrome/browser/ChromeTabbedActivity.java | 22 ++-
.../chrome/browser/app/ChromeActivity.java | 4 +
.../AppMenuPropertiesDelegateImpl.java | 27 ++-
.../AppMenuPropertiesDelegateImpl.java | 28 ++-
.../ChromeContextMenuPopulator.java | 7 +-
.../CustomTabActivityLifecycleUmaTracker.java | 31 ----
.../CustomTabAppMenuPropertiesDelegate.java | 4 +
.../CustomTabIntentDataProvider.java | 5 +-
.../browser/download/DownloadUtils.java | 16 +-
.../history/HistoryContentManager.java | 7 +-
.../browser/history/HistoryManager.java | 26 ++-
.../chrome/browser/history/HistoryPage.java | 15 ++
.../browser/history/HistoryManager.java | 27 ++-
.../chrome/browser/history/HistoryPage.java | 16 ++
.../native_page/NativePageFactory.java | 4 +-
.../chrome/browser/ntp/RecentTabsManager.java | 28 ++-
.../privacy/settings/IncognitoSettings.java | 160 ++++++++++++++++++
.../privacy/settings/IncognitoSettings.java | 161 ++++++++++++++++++
.../browser/settings/SettingsActivity.java | 4 +
.../HistoricalTabModelObserver.java | 6 +-
.../HistoricalTabModelObserver.java | 5 +-
.../tab/tab_restore/HistoricalTabSaver.java | 2 +-
.../tab_restore/HistoricalTabSaverImpl.java | 17 +-
.../tabbed_mode/TabbedRootUiCoordinator.java | 4 +-
@@ -66,7 +66,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/profiles/profile_selections.cc | 10 ++
chrome/browser/profiles/profile_selections.h | 7 +-
.../browser/ui/android/native_page/BUILD.gn | 2 +
.../browser/ui/native_page/NativePage.java | 16 +-
.../browser/ui/native_page/NativePage.java | 14 +-
.../strings/android_chrome_strings.grd | 31 ++++
.../browser/toolbar/LocationBarModel.java | 5 +-
chrome/browser/ui/messages/android/BUILD.gn | 1 +
@@ -85,7 +85,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../add-an-always-incognito-mode.inc | 3 +
.../add-an-always-incognito-mode.inc | 1 +
net/base/file_stream_context.cc | 2 +-
66 files changed, 770 insertions(+), 102 deletions(-)
66 files changed, 775 insertions(+), 101 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
@@ -98,9 +98,9 @@ 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
@@ -644,6 +644,7 @@ chrome_java_resources = [
"java/res/xml/main_preferences.xml",
@@ -646,6 +646,7 @@ chrome_java_resources = [
"java/res/xml/manage_sync_preferences.xml",
"java/res/xml/personalize_google_services_preferences.xml",
"java/res/xml/phone_as_a_security_key_accessory_filter.xml",
+ "java/res/xml/incognito_preferences.xml",
"java/res/xml/privacy_preferences.xml",
@@ -117,8 +117,8 @@ 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",
@@ -979,6 +980,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java",
@@ -981,6 +982,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeIpProtectionDelegate.java",
"java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegate.java",
"java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionNoticeController.java",
+ "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java",
@@ -170,7 +170,7 @@ new file mode 100644
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
@@ -66,6 +66,11 @@ found in the LICENSE file.
@@ -77,6 +77,11 @@ found in the LICENSE file.
android:key="secure_dns"
android:title="@string/settings_secure_dns_title"
android:fragment="org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings" />
@@ -186,7 +186,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognito
new file mode 100644
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
@@ -0,0 +1,53 @@
@@ -0,0 +1,54 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
@@ -199,6 +199,7 @@ new file mode 100644
+import org.chromium.components.user_prefs.UserPrefs;
+import org.chromium.components.prefs.PrefService;
+import org.chromium.chrome.browser.profiles.Profile;
+import org.chromium.chrome.browser.profiles.ProfileManager;
+import org.chromium.chrome.browser.preferences.Pref;
+import org.chromium.base.Log;
+
@@ -222,7 +223,7 @@ new file mode 100644
+ }
+
+ public static void setAlwaysIncognito(boolean enabled) {
+ UserPrefs.get(Profile.getLastUsedRegularProfile())
+ UserPrefs.get(ProfileManager.getLastUsedRegularProfile())
+ .setBoolean(Pref.ALWAYS_INCOGNITO_ENABLED, enabled);
+
+ SharedPreferences.Editor sharedPreferenceEditor = ContextUtils.getAppSharedPreferences().edit();
@@ -232,7 +233,7 @@ new file mode 100644
+
+ public static void migrateSettingToNative() {
+ if (isAlwaysIncognito()) {
+ PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
+ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile());
+ if (!prefService.getBoolean(Pref.ALWAYS_INCOGNITO_ENABLED)) {
+ Log.i(TAG, "Pref migration from java to native");
+ prefService.setBoolean(Pref.ALWAYS_INCOGNITO_ENABLED, true);
@@ -243,7 +244,7 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -66,6 +66,10 @@ import org.chromium.base.task.TaskTraits;
@@ -68,6 +68,10 @@ import org.chromium.base.task.TaskTraits;
import org.chromium.build.annotations.UsedByReflection;
import org.chromium.cc.input.BrowserControlsState;
import org.chromium.chrome.R;
@@ -254,25 +255,27 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.chrome.browser.IntentHandler.TabOpenType;
import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.app.metrics.LaunchCauseMetrics;
@@ -676,9 +680,14 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
mTabModelOrchestrator.onNativeLibraryReady(getTabContentManager());
@@ -686,10 +690,15 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
});
// For saving non-incognito tab closures for Recent Tabs.
- mHistoricalTabModelObserver =
- new HistoricalTabModelObserver(mTabModelSelector.getModel(false));
- new HistoricalTabModelObserver(
- mTabModelSelector.getTabModelFilterProvider().getTabModelFilter(false));
-
+ boolean alwaysIncognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito();
+ PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
+ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile());
+ boolean historyEnabledInIncognito =
+ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED);
+ if ((alwaysIncognito && historyEnabledInIncognito) || !alwaysIncognito) {
+ mHistoricalTabModelObserver =
+ new HistoricalTabModelObserver(mTabModelSelector.getModel(alwaysIncognito));
+ new HistoricalTabModelObserver(
+ mTabModelSelector.getTabModelFilterProvider().getTabModelFilter(alwaysIncognito));
+ }
// Defer initialization of this helper so it triggers after TabModelFilter
// observers.
UndoRefocusHelper.initialize(
@@ -2405,8 +2414,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2445,8 +2454,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
// We determine the model as soon as possible so every systems get initialized coherently.
boolean startIncognito =
@@ -287,7 +290,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
@@ -95,6 +95,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchFieldTrial;
@@ -96,6 +96,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchFieldTrial;
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager;
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager.ContextualSearchTabPromotionDelegate;
import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsModule;
@@ -295,7 +298,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.chrome.browser.dependency_injection.ChromeActivityComponent;
import org.chromium.chrome.browser.dependency_injection.ModuleFactoryOverrides;
import org.chromium.chrome.browser.device.DeviceClassManager;
@@ -1996,6 +1997,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -1998,6 +1999,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
throw new IllegalStateException(
"Attempting to access TabCreator before initialization");
}
@@ -308,16 +311,17 @@ 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
@@ -37,6 +37,7 @@ import org.chromium.base.supplier.OneshotSupplier;
@@ -37,6 +37,8 @@ import org.chromium.base.supplier.OneshotSupplier;
import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.bookmarks.BookmarkFeatures;
+import org.chromium.chrome.browser.profiles.ProfileManager;
import org.chromium.chrome.browser.bookmarks.BookmarkModel;
import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils;
@@ -103,6 +104,10 @@ import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import org.chromium.chrome.browser.commerce.ShoppingFeatures;
@@ -99,6 +101,10 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import org.chromium.components.prefs.PrefService;
@@ -327,7 +331,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.
@@ -604,6 +609,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -593,6 +599,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
}
private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) {
@@ -341,14 +345,14 @@ 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;
@@ -667,7 +679,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -656,7 +669,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
}
if (item.getItemId() == R.id.recent_tabs_menu_id) {
- item.setVisible(!isIncognito);
+ if (always_incognito) {
+ PrefService prefService =
+ UserPrefs.get(Profile.getLastUsedRegularProfile());
+ UserPrefs.get(ProfileManager.getLastUsedRegularProfile());
+ boolean historyEnabledInIncognito =
+ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED);
+ item.setVisible(historyEnabledInIncognito);
@@ -358,7 +362,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
}
if (item.getItemId() == R.id.menu_select_tabs) {
item.setVisible(isMenuSelectTabsVisible);
@@ -876,8 +896,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -865,8 +886,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
&& !isChromeScheme
&& !isFileScheme
&& !isContentScheme
@@ -460,7 +464,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
import org.chromium.chrome.browser.DefaultBrowserInfo;
import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl;
import org.chromium.chrome.browser.app.appmenu.DividerLineMenuItemViewBinder;
@@ -218,6 +219,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
@@ -216,6 +217,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
openInChromeItemVisible = false;
tryAddingReadAloud = false;
}
@@ -483,7 +487,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
@@ -1291,7 +1294,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
@@ -1296,7 +1299,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
@Override
public boolean isIncognito() {
@@ -503,7 +507,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo
import org.chromium.chrome.browser.ChromeTabbedActivity;
import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.app.download.home.DownloadActivityLauncher;
@@ -74,6 +75,10 @@ import org.chromium.url.GURL;
@@ -76,6 +77,10 @@ import org.chromium.url.GURL;
import java.io.File;
@@ -514,14 +518,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo
/** A class containing some utility static methods. */
public class DownloadUtils {
private static final String TAG = "download";
@@ -286,7 +291,16 @@ public class DownloadUtils {
@@ -288,7 +293,16 @@ public class DownloadUtils {
// Offline pages isn't supported in Incognito. This should be checked before calling
// OfflinePageBridge.getForProfile because OfflinePageBridge instance will not be found
// for incognito profile.
- if (tab.isIncognito()) return false;
+ boolean always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito();
+ if (always_incognito) {
+ PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
+ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile());
+ boolean historyEnabledInIncognito =
+ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED);
+ if (historyEnabledInIncognito == false)
@@ -535,7 +539,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java
@@ -239,7 +239,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
@@ -246,7 +246,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
mHistoryAdapter.generateFooterItems();
// Listen to changes in sign in state.
@@ -546,7 +550,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
// Create PrefChangeRegistrar to receive notifications on preference changes.
mPrefChangeRegistrar = new PrefChangeRegistrar();
@@ -275,7 +277,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
@@ -282,7 +284,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
mHistoryAdapter.onDestroyed();
mLargeIconBridge.destroy();
mLargeIconBridge = null;
@@ -559,19 +563,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
@@ -23,6 +23,7 @@ import com.google.android.material.tabs.TabLayout;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.supplier.ObservableSupplier;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.base.supplier.ObservableSupplierImpl;
import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.R;
@@ -49,6 +50,12 @@ import org.chromium.ui.base.Clipboard;
@@ -50,6 +50,14 @@ import org.chromium.ui.base.Clipboard;
import java.util.List;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
+import org.chromium.chrome.browser.profiles.Profile;
+import org.chromium.chrome.browser.profiles.ProfileManager;
+import org.chromium.base.ContextUtils;
+import org.chromium.components.prefs.PrefService;
+import org.chromium.components.user_prefs.UserPrefs;
@@ -580,16 +578,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
/** Combines and manages the different UI components of browsing history. */
public class HistoryManager
implements OnMenuItemClickListener,
@@ -133,7 +140,7 @@ public class HistoryManager
@@ -140,7 +148,7 @@ public class HistoryManager
recordUserAction("Show");
mUmaRecorder.recordOpenHistory();
// If incognito placeholder is shown, we don't need to create History UI elements.
- if (mIsIncognito) {
+ if (shouldShowIncognitoPlaceholder()) {
mSelectableListLayout = null;
mRootView = getIncognitoHistoryPlaceholderView();
return;
@@ -339,9 +346,22 @@ public class HistoryManager
@@ -349,9 +357,22 @@ public class HistoryManager
onBackPressStateChanged();
}
@@ -598,7 +596,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
+ public boolean shouldShowIncognitoPlaceholder() {
+ if (mIsIncognito &&
+ AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()) {
+ PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
+ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile());
+ boolean historyEnabledInIncognito =
+ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED);
+ if (historyEnabledInIncognito) return false;
@@ -613,7 +611,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
// If Incognito placeholder is shown no need to call any destroy method.
return;
}
@@ -397,7 +417,7 @@ public class HistoryManager
@@ -407,7 +428,7 @@ public class HistoryManager
* @return True if manager handles this event, false if it decides to ignore.
*/
private boolean onBackPressed() {
@@ -625,19 +623,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java
@@ -9,6 +9,7 @@ import android.net.Uri;
import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.R;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
@@ -16,6 +17,12 @@ import org.chromium.chrome.browser.ui.native_page.BasicNativePage;
@@ -16,6 +16,14 @@ import org.chromium.chrome.browser.ui.native_page.BasicNativePage;
import org.chromium.chrome.browser.ui.native_page.NativePageHost;
import org.chromium.components.embedder_support.util.UrlConstants;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
+import org.chromium.chrome.browser.profiles.Profile;
+import org.chromium.chrome.browser.profiles.ProfileManager;
+import org.chromium.base.ContextUtils;
+import org.chromium.components.prefs.PrefService;
+import org.chromium.components.user_prefs.UserPrefs;
@@ -646,13 +638,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
/** Native page for managing browsing history. */
public class HistoryPage extends BasicNativePage {
private HistoryManager mHistoryManager;
@@ -41,6 +48,14 @@ public class HistoryPage extends BasicNativePage {
@@ -41,6 +49,14 @@ public class HistoryPage extends BasicNativePage {
String url) {
super(host);
+ if (profile.isOffTheRecord() &&
+ AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()) {
+ PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
+ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile());
+ boolean historyEnabledInIncognito =
+ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED);
+ if (historyEnabledInIncognito == true) profile = profile.getOriginalProfile();
@@ -672,20 +664,20 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.app.download.home.DownloadPage;
import org.chromium.chrome.browser.bookmarks.BookmarkPage;
@@ -297,7 +298,8 @@ public class NativePageFactory {
String url, NativePage candidatePage, Tab tab, boolean isIncognito) {
@@ -308,7 +309,8 @@ public class NativePageFactory {
String url, NativePage candidatePage, Tab tab, boolean isIncognito, boolean isPdf) {
NativePage page;
- switch (NativePage.nativePageType(url, candidatePage, isIncognito)) {
- switch (NativePage.nativePageType(url, candidatePage, isIncognito, isPdf)) {
+ boolean isAlwaysIncognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito();
+ switch (NativePage.nativePageType(url, candidatePage, isIncognito, isAlwaysIncognito)) {
+ switch (NativePage.nativePageType(url, candidatePage, isIncognito, isPdf, isAlwaysIncognito)) {
case NativePageType.NONE:
return null;
case NativePageType.CANDIDATE:
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
@@ -35,6 +35,15 @@ import org.chromium.components.signin.metrics.SigninAccessPoint;
@@ -36,6 +36,15 @@ import org.chromium.components.signin.metrics.SigninAccessPoint;
import org.chromium.components.sync.SyncService;
import org.chromium.url.GURL;
@@ -701,7 +693,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;
@@ -101,7 +110,8 @@ public class RecentTabsManager
@@ -102,7 +111,8 @@ public class RecentTabsManager
Profile profile,
Context context,
Runnable showHistoryManager) {
@@ -711,7 +703,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM
mActiveTab = tab;
mTabModelSelector = tabModelSelector;
mShowHistoryManager = showHistoryManager;
@@ -263,6 +273,22 @@ public class RecentTabsManager
@@ -265,6 +275,22 @@ public class RecentTabsManager
*/
public void openRecentlyClosedTab(RecentlyClosedTab tab, int windowDisposition) {
if (mIsDestroyed) return;
@@ -738,7 +730,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
new file mode 100644
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java
@@ -0,0 +1,160 @@
@@ -0,0 +1,161 @@
+/*
+ This file is part of Bromite.
+
@@ -774,6 +766,7 @@ new file mode 100644
+import org.chromium.chrome.R;
+import org.chromium.chrome.browser.preferences.Pref;
+import org.chromium.chrome.browser.profiles.Profile;
+import org.chromium.chrome.browser.profiles.ProfileManager;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
+import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager;
@@ -797,7 +790,7 @@ new file mode 100644
+ private static final String PREF_INCOGNITO_TAB_HISTORY = "incognito_history";
+ private static final String PREF_INCOGNITO_SAVE_SITE_SETTING = "incognito_save_site_setting";
+
+ private final PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
+ private final PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile());
+
+ @Override
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
@@ -902,15 +895,15 @@ new file mode 100644
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
@@ -75,6 +75,7 @@ import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl;
@@ -78,6 +78,7 @@ import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl;
import org.chromium.chrome.browser.site_settings.ChromeSiteSettingsDelegate;
import org.chromium.chrome.browser.sync.SyncServiceFactory;
import org.chromium.chrome.browser.ui.device_lock.MissingDeviceLockLauncher;
+import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager;
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;
@@ -362,6 +363,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
@@ -365,6 +366,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
((PrivacySandboxSettingsBaseFragment) fragment)
.setSnackbarManager(getSnackbarManager());
}
@@ -923,7 +916,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java
@@ -13,6 +13,8 @@ import java.util.ArrayList;
@@ -21,6 +21,8 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -931,25 +924,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
+
/** A tab model observer for managing bulk closures. */
public class HistoricalTabModelObserver implements TabModelObserver {
private final TabModel mTabModel;
@@ -38,7 +40,8 @@ public class HistoricalTabModelObserver implements TabModelObserver {
private final TabGroupModelFilter mTabGroupModelFilter;
@@ -52,9 +54,10 @@ public class HistoricalTabModelObserver implements TabModelObserver {
if (tabs.isEmpty()) return;
if (tabs.size() == 1) {
- mHistoricalTabSaver.createHistoricalTab(tabs.get(0));
+ boolean is_always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito();
+ mHistoricalTabSaver.createHistoricalTab(tabs.get(0), is_always_incognito);
return;
Tab tab = tabs.get(0);
if (!isTabGroupWithOneTab(tab)) {
- mHistoricalTabSaver.createHistoricalTab(tab);
+ mHistoricalTabSaver.createHistoricalTab(tab, is_always_incognito);
return;
}
}
@@ -69,7 +72,6 @@ public class HistoricalTabModelObserver implements TabModelObserver {
entries.add(historicalGroup);
idToGroup.put(groupId, historicalGroup);
}
-
mHistoricalTabSaver.createHistoricalBulkClosure(entries);
}
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java
@@ -965,7 +952,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/tab/tab_restore/HistoricalTabSaverImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java
@@ -26,6 +26,8 @@ import java.util.Arrays;
@@ -28,6 +28,8 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -974,7 +961,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
/** Creates historical entries in TabRestoreService. */
@JNINamespace("historical_tab_saver")
public class HistoricalTabSaverImpl implements HistoricalTabSaver {
@@ -64,10 +66,10 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
@@ -66,10 +68,10 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
// HistoricalTabSaver implementation.
@Override
@@ -987,7 +974,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
}
@Override
@@ -119,7 +121,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
@@ -126,7 +128,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
// If there is only a single valid tab remaining save it individually.
if (validEntries.size() == 1 && validEntries.get(0).isSingleTab()) {
@@ -996,7 +983,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
return;
}
@@ -155,14 +157,15 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
@@ -165,14 +167,15 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
CollectionUtil.integerCollectionToIntArray(savedStateVersions));
}
@@ -1014,7 +1001,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
}
/**
@@ -170,7 +173,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
@@ -180,7 +183,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
* internal Chrome scheme, about:blank, or a native page and it cannot be incognito.
*/
private boolean shouldSave(Tab tab) {
@@ -1023,7 +1010,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
// {@link GURL#getScheme()} is not available in unit tests.
if (mIgnoreUrlSchemesForTesting) return true;
@@ -243,7 +246,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
@@ -261,7 +264,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
@NativeMethods
interface Natives {
@@ -1035,7 +1022,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
@@ -139,6 +139,8 @@ import org.chromium.components.webapps.bottomsheet.PwaBottomSheetController;
@@ -137,6 +137,8 @@ import org.chromium.components.webapps.bottomsheet.PwaBottomSheetController;
import org.chromium.components.webapps.bottomsheet.PwaBottomSheetControllerFactory;
import org.chromium.ui.base.ActivityWindowAndroid;
import org.chromium.ui.base.DeviceFormFactor;
@@ -1044,7 +1031,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.dragdrop.DragDropGlobalState;
import org.chromium.ui.modaldialog.ModalDialogManager;
@@ -1011,7 +1013,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@@ -1006,7 +1008,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
() -> {
mTabCreatorManagerSupplier
.get()
@@ -1107,7 +1094,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -670,6 +672,13 @@ public class TabPersistentStore {
@@ -671,6 +673,13 @@ public class TabPersistentStore {
}
}
}
@@ -1132,7 +1119,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;
@@ -615,7 +616,7 @@ public class ToolbarManager
@@ -626,7 +627,7 @@ public class ToolbarManager
TraceEvent.end("isOfflinePage");
return ret;
}
@@ -1189,7 +1176,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI
diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/android/historical_tab_saver.cc
--- a/chrome/browser/android/historical_tab_saver.cc
+++ b/chrome/browser/android/historical_tab_saver.cc
@@ -27,6 +27,11 @@
@@ -29,6 +29,11 @@
#include "components/sessions/core/tab_restore_service.h"
#include "content/public/browser/web_contents.h"
@@ -1199,9 +1186,9 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
+#include "historical_tab_saver.h"
+
using base::android::JavaParamRef;
using base::android::JavaRef;
using base::android::ScopedJavaLocalRef;
@@ -39,7 +44,8 @@ constexpr int kInvalidGroupId = -1;
@@ -87,7 +92,8 @@ std::vector<std::optional<tab_groups::TabGroupId>> JavaTokensToTabGroupIds(
void CreateHistoricalTab(
TabAndroid* tab_android,
@@ -1211,7 +1198,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
if (!tab_android) {
return;
}
@@ -50,9 +56,14 @@ void CreateHistoricalTab(
@@ -98,9 +104,14 @@ void CreateHistoricalTab(
return;
}
@@ -1228,16 +1215,16 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
if (!service) {
return;
}
@@ -100,7 +111,7 @@ void CreateHistoricalBulkClosure(
std::vector<int> per_tab_android_group_id,
@@ -162,7 +173,7 @@ void CreateHistoricalBulkClosure(
std::vector<int> per_tab_root_id,
std::vector<raw_ptr<TabAndroid, VectorExperimental>> tabs,
std::vector<WebContentsStateByteBuffer> web_contents_state) {
- DCHECK(model);
+ if (!model) return;
DCHECK_EQ(android_group_ids.size(), group_titles.size());
DCHECK_EQ(per_tab_android_group_id.size(), tabs.size());
@@ -235,11 +246,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab(
DCHECK_EQ(root_ids.size(), group_titles.size());
DCHECK_EQ(root_ids.size(), group_colors.size());
DCHECK_EQ(root_ids.size(), optional_tab_group_ids.size());
@@ -286,11 +297,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab(
JNIEnv* env,
const JavaParamRef<jobject>& jtab_android,
const JavaParamRef<jobject>& state,
@@ -1251,11 +1238,11 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
+ std::move(web_contents_state), is_always_incognito);
}
// static
static void JNI_HistoricalTabSaverImpl_CreateHistoricalGroup(
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
@@ -357,6 +357,15 @@ ChromeAutocompleteProviderClient::GetProviderStateService() const {
@@ -352,6 +352,15 @@ ChromeAutocompleteProviderClient::GetProviderStateService() const {
return ProviderStateServiceFactory::GetForProfile(profile_);
}
@@ -1274,7 +1261,7 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h
@@ -85,6 +85,7 @@ class ChromeAutocompleteProviderClient : public AutocompleteProviderClient {
@@ -84,6 +84,7 @@ class ChromeAutocompleteProviderClient : public AutocompleteProviderClient {
OnDeviceTailModelService* GetOnDeviceTailModelService() const override;
ProviderStateService* GetProviderStateService() const override;
bool IsOffTheRecord() const override;
@@ -1737,7 +1724,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
#include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h"
#include "chrome/browser/android/ntp/recent_tabs_page_prefs.h"
#include "chrome/browser/android/oom_intervention/oom_intervention_decider.h"
@@ -1856,6 +1857,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
@@ -1885,6 +1886,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry);
variations::VariationsService::RegisterProfilePrefs(registry);
webapps::InstallPromptPrefs::RegisterProfilePrefs(registry);
@@ -1761,7 +1748,7 @@ diff --git a/chrome/browser/profiles/profile_selections.cc b/chrome/browser/prof
#include "chrome/browser/profiles/profile.h"
#include "components/profile_metrics/browser_profile_type.h"
@@ -110,6 +113,13 @@ Profile* ProfileSelections::ApplyProfileSelection(Profile* profile) const {
@@ -109,6 +112,13 @@ Profile* ProfileSelections::ApplyProfileSelection(Profile* profile) const {
return nullptr;
case ProfileSelection::kOriginalOnly:
return profile->IsOffTheRecord() ? nullptr : profile;
@@ -1802,20 +1789,19 @@ diff --git a/chrome/browser/profiles/profile_selections.h b/chrome/browser/profi
diff --git a/chrome/browser/ui/android/native_page/BUILD.gn b/chrome/browser/ui/android/native_page/BUILD.gn
--- a/chrome/browser/ui/android/native_page/BUILD.gn
+++ b/chrome/browser/ui/android/native_page/BUILD.gn
@@ -28,7 +28,9 @@ robolectric_library("junit") {
@@ -28,6 +28,8 @@ robolectric_library("junit") {
deps = [
":java",
+ "//base:base_java",
+ "//components/embedder_support/android:util_java",
"//base:base_junit_test_support",
"//third_party/junit",
+ "//components/embedder_support/android:util_java",
]
}
"//url:url_java",
diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/browser/ui/native_page/NativePage.java b/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/browser/ui/native_page/NativePage.java
--- a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/browser/ui/native_page/NativePage.java
+++ b/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/browser/ui/native_page/NativePage.java
@@ -16,6 +16,8 @@ import org.chromium.url.GURL;
@@ -15,6 +15,8 @@ import org.chromium.url.GURL;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -1824,46 +1810,40 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
/** An interface for pages that will be using Android views instead of html/rendered Web content. */
public interface NativePage {
/**
@@ -118,12 +120,12 @@ public interface NativePage {
*/
@Deprecated // Use GURL-variant instead.
static boolean isNativePageUrl(String url, boolean isIncognito) {
- return nativePageType(url, null, isIncognito) != NativePageType.NONE;
+ return nativePageType(url, null, isIncognito, false) != NativePageType.NONE;
}
@@ -127,7 +129,7 @@ public interface NativePage {
static boolean isNativePageUrl(GURL url, boolean isIncognito) {
// TODO(shuyng): Propagate the real isPdf param.
return url != null
- && nativePageType(url.getHost(), url.getScheme(), null, isIncognito)
+ && nativePageType(url.getHost(), url.getScheme(), null, isIncognito, false)
- && nativePageType(url, null, isIncognito, /* isPdf= */ false)
+ && nativePageType(url, null, isIncognito, /* isPdf= */ false, /*isAlwaysIncognito*/ false)
!= NativePageType.NONE;
}
@@ -135,11 +137,12 @@ public interface NativePage {
@@ -140,11 +142,12 @@ public interface NativePage {
*/
// TODO(crbug/783819) - Convert to using GURL.
static @NativePageType int nativePageType(
- String url, NativePage candidatePage, boolean isIncognito) {
+ String url, NativePage candidatePage, boolean isIncognito,
- String url, NativePage candidatePage, boolean isIncognito, boolean isPdf) {
+ String url, NativePage candidatePage, boolean isIncognito, boolean isPdf,
+ boolean isAlwaysIncognito) {
if (url == null) return NativePageType.NONE;
Uri uri = Uri.parse(url);
- return nativePageType(uri.getHost(), uri.getScheme(), candidatePage, isIncognito);
+ return nativePageType(uri.getHost(), uri.getScheme(), candidatePage, isIncognito, isAlwaysIncognito);
GURL gurl = new GURL(url);
- return nativePageType(gurl, candidatePage, isIncognito, isPdf);
+ return nativePageType(gurl, candidatePage, isIncognito, isPdf, isAlwaysIncognito);
}
/**
@@ -148,7 +151,7 @@ public interface NativePage {
@@ -155,7 +158,7 @@ public interface NativePage {
* @return Type of the native page defined in {@link NativePageType}.
*/
private static @NativePageType int nativePageType(
- String host, String scheme, NativePage candidatePage, boolean isIncognito) {
+ String host, String scheme, NativePage candidatePage, boolean isIncognito, boolean isAlwaysIncognito) {
if (!UrlConstants.CHROME_NATIVE_SCHEME.equals(scheme)
&& !UrlConstants.CHROME_SCHEME.equals(scheme)) {
return NativePageType.NONE;
@@ -166,7 +169,8 @@ public interface NativePage {
- GURL url, NativePage candidatePage, boolean isIncognito, boolean isPdf) {
+ GURL url, NativePage candidatePage, boolean isIncognito, boolean isPdf, boolean isAlwaysIncognito) {
String host = url.getHost();
String scheme = url.getScheme();
if (!isPdf
@@ -180,7 +183,8 @@ public interface NativePage {
return NativePageType.DOWNLOADS;
} else if (UrlConstants.HISTORY_HOST.equals(host)) {
return NativePageType.HISTORY;
@@ -1876,7 +1856,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
@@ -1228,6 +1228,37 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1257,6 +1257,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>
@@ -1917,7 +1897,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
@@ -165,6 +165,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
@@ -162,6 +162,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
protected String mFormattedFullUrl;
protected String mUrlForDisplay;
private boolean mOmniboxUpdatedConnectionSecurityIndicatorsEnabled;
@@ -1925,7 +1905,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
// notifyUrlChanged and notifySecurityStateChanged are usually called 3 times across a same
// document navigation. The first call is usually necessary, which updates the UrlBar to reflect
@@ -188,7 +189,9 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
@@ -185,7 +186,9 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
Context context,
NewTabPageDelegate newTabPageDelegate,
@NonNull UrlFormatter urlFormatter,
@@ -1982,7 +1962,7 @@ new file mode 100644
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
@@ -3957,6 +3957,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] =
@@ -3955,6 +3955,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] =
"net.out_of_process_system_dns_resolution_enabled";
#endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
@@ -2107,7 +2087,7 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.cc b/compon
diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/components/omnibox/browser/autocomplete_provider_client.h
--- a/components/omnibox/browser/autocomplete_provider_client.h
+++ b/components/omnibox/browser/autocomplete_provider_client.h
@@ -137,6 +137,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client {
@@ -136,6 +136,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client {
virtual bool IsOffTheRecord() const = 0;
virtual bool IsIncognitoProfile() const = 0;
virtual bool IsGuestSession() const = 0;
@@ -2118,7 +2098,7 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/compone
diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omnibox/browser/base_search_provider.cc
--- a/components/omnibox/browser/base_search_provider.cc
+++ b/components/omnibox/browser/base_search_provider.cc
@@ -350,7 +350,7 @@ bool BaseSearchProvider::CanSendSuggestRequestWithoutPageURL(
@@ -332,7 +332,7 @@ bool BaseSearchProvider::CanSendSuggestRequestWithoutPageURL(
}
// Don't make a suggest request if in incognito mode.
@@ -279,7 +279,7 @@ new file mode 100644
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
@@ -255,7 +255,7 @@ void ContentSettingsRegistry::Init() {
@@ -245,7 +245,7 @@ void ContentSettingsRegistry::Init() {
ContentSettingsInfo::INHERIT_IN_INCOGNITO,
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
@@ -329,7 +329,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi
diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.h b/third_party/blink/renderer/core/html/media/autoplay_policy.h
--- a/third_party/blink/renderer/core/html/media/autoplay_policy.h
+++ b/third_party/blink/renderer/core/html/media/autoplay_policy.h
@@ -138,6 +138,10 @@ class CORE_EXPORT AutoplayPolicy final
@@ -142,6 +142,10 @@ class CORE_EXPORT AutoplayPolicy final
// should use, if checking to see if an action is allowed.
bool IsLockedPendingUserGesture() const;
@@ -270,7 +270,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.
@@ -483,6 +525,212 @@ class BookmarkBridge {
@@ -504,6 +546,212 @@ class BookmarkBridge {
.getTotalBookmarkCount(mNativeBookmarkBridge, id.getId(), id.getType());
}
@@ -483,8 +483,8 @@ 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.
*
@@ -1036,6 +1284,39 @@ class BookmarkBridge {
depthList.add(depth);
@@ -1062,6 +1310,39 @@ class BookmarkBridge {
BookmarkUtils.clearLastUsedPrefs();
}
+ @CalledByNative
@@ -523,7 +523,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<>();
for (int i = 0; i < left.length; i++) {
@@ -1094,6 +1375,10 @@ class BookmarkBridge {
@@ -1128,6 +1409,10 @@ class BookmarkBridge {
void getChildIds(
long nativeBookmarkBridge, long id, int type, List<BookmarkId> bookmarksList);
@@ -583,16 +583,16 @@ 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/BookmarkManagerMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java
@@ -53,6 +53,8 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelega
import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate.SelectionObserver;
@@ -54,6 +54,8 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelega
import org.chromium.components.commerce.core.CommerceSubscription;
import org.chromium.components.commerce.core.ShoppingService;
import org.chromium.components.commerce.core.SubscriptionsObserver;
+import org.chromium.ui.base.ActivityWindowAndroid;
+import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.components.favicon.LargeIconBridge;
import org.chromium.components.feature_engagement.EventConstants;
import org.chromium.components.power_bookmarks.PowerBookmarkMeta;
@@ -82,6 +84,9 @@ class BookmarkManagerMediator
@@ -83,6 +85,9 @@ class BookmarkManagerMediator
private static boolean sPreventLoadingForTesting;
@@ -602,7 +602,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/** Keeps track of whether drag is enabled / active for bookmark lists. */
private class BookmarkDragStateDelegate implements DragStateDelegate {
private BookmarkDelegate mBookmarkDelegate;
@@ -554,6 +559,14 @@ class BookmarkManagerMediator
@@ -606,6 +611,14 @@ class BookmarkManagerMediator
mNativePage = nativePage;
}
@@ -617,7 +617,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/** See BookmarkManager(Coordinator)#updateForUrl */
void updateForUrl(String url) {
// Bookmark model is null if the manager has been destroyed.
@@ -734,6 +747,16 @@ class BookmarkManagerMediator
@@ -786,6 +799,16 @@ class BookmarkManagerMediator
}
}
@@ -723,7 +723,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/BookmarkToolbarMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java
@@ -132,6 +132,10 @@ class BookmarkToolbarMediator
@@ -131,6 +131,10 @@ class BookmarkToolbarMediator
mBookmarkDelegate = bookmarkDelegate;
mModel.set(
BookmarkToolbarProperties.NAVIGATE_BACK_RUNNABLE, this::onNavigateBack);
@@ -785,7 +785,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
import org.chromium.chrome.browser.app.download.home.DownloadPage;
import org.chromium.chrome.browser.bookmarks.BookmarkPage;
import org.chromium.chrome.browser.browser_controls.BrowserControlsMarginSupplier;
@@ -54,7 +55,7 @@ import org.chromium.ui.util.ColorUtils;
@@ -55,7 +56,7 @@ import org.chromium.ui.util.ColorUtils;
* Creates NativePage objects to show chrome-native:// URLs using the native Android view system.
*/
public class NativePageFactory {
@@ -794,7 +794,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
private final BottomSheetController mBottomSheetController;
private final BrowserControlsManager mBrowserControlsManager;
private final Supplier<Tab> mCurrentTabSupplier;
@@ -74,7 +75,7 @@ public class NativePageFactory {
@@ -75,7 +76,7 @@ public class NativePageFactory {
private NativePageBuilder mNativePageBuilder;
public NativePageFactory(
@@ -803,7 +803,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
@NonNull BottomSheetController sheetController,
@NonNull BrowserControlsManager browserControlsManager,
@NonNull Supplier<Tab> currentTabSupplier,
@@ -140,7 +141,7 @@ public class NativePageFactory {
@@ -141,7 +142,7 @@ public class NativePageFactory {
@VisibleForTesting
static class NativePageBuilder {
@@ -812,7 +812,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
private final BottomSheetController mBottomSheetController;
private final Supplier<NewTabPageUma> mUma;
private final BrowserControlsManager mBrowserControlsManager;
@@ -158,7 +159,7 @@ public class NativePageFactory {
@@ -159,7 +160,7 @@ public class NativePageFactory {
private final OneshotSupplier<ModuleRegistry> mModuleRegistrySupplier;
public NativePageBuilder(
@@ -821,7 +821,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
Supplier<NewTabPageUma> uma,
BottomSheetController sheetController,
BrowserControlsManager browserControlsManager,
@@ -228,7 +229,7 @@ public class NativePageFactory {
@@ -229,7 +230,7 @@ public class NativePageFactory {
mActivity.getComponentName(),
mSnackbarManagerSupplier.get(),
tab.getProfile(),
@@ -842,7 +842,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"bookmarks/chrome_bookmark_client.cc",
"bookmarks/chrome_bookmark_client.h",
"bookmarks/managed_bookmark_service_factory.cc",
@@ -1935,6 +1937,13 @@ static_library("browser") {
@@ -1942,6 +1944,13 @@ static_library("browser") {
]
}
@@ -856,7 +856,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
configs += [
"//build/config/compiler:wexit_time_destructors",
"//build/config:precompiled_headers",
@@ -3649,8 +3658,6 @@ static_library("browser") {
@@ -3655,8 +3664,6 @@ static_library("browser") {
"badging/badge_manager_factory.h",
"banners/app_banner_manager_desktop.cc",
"banners/app_banner_manager_desktop.h",
@@ -868,9 +868,9 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc
--- a/chrome/browser/bookmarks/android/bookmark_bridge.cc
+++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc
@@ -59,6 +59,28 @@
#include "content/public/browser/browser_thread.h"
@@ -63,6 +63,28 @@
#include "content/public/browser/web_contents.h"
#include "url/gurl.h"
+#include "base/android/content_uri_utils.h"
+#include "base/android/path_utils.h"
@@ -897,7 +897,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
using base::android::AttachCurrentThread;
using base::android::ConvertUTF16ToJavaString;
using base::android::ConvertUTF8ToJavaString;
@@ -76,12 +98,96 @@ using bookmarks::android::JavaBookmarkIdGetType;
@@ -80,12 +102,96 @@ using bookmarks::android::JavaBookmarkIdGetType;
using content::BrowserThread;
using power_bookmarks::PowerBookmarkMeta;
@@ -994,7 +994,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
class BookmarkTitleComparer {
public:
explicit BookmarkTitleComparer(BookmarkBridge* bookmark_bridge,
@@ -232,6 +338,10 @@ BookmarkBridge::~BookmarkBridge() {
@@ -242,6 +348,10 @@ BookmarkBridge::~BookmarkBridge() {
partner_bookmarks_shim_observation_.Reset();
bookmark_model_observation_.Reset();
profile_observation_.Reset();
@@ -1004,8 +1004,8 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
+ select_file_dialog_->ListenerDestroyed();
}
void BookmarkBridge::Destroy(JNIEnv*) {
@@ -668,6 +778,183 @@ jint BookmarkBridge::GetTotalBookmarkCount(
void BookmarkBridge::Destroy(JNIEnv* env) {
@@ -818,6 +928,183 @@ jint BookmarkBridge::GetTotalBookmarkCount(
return count;
}
@@ -1200,8 +1200,8 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_observer.h"
#include "chrome/browser/reading_list/android/reading_list_manager.h"
@@ -33,6 +34,9 @@
#include "components/prefs/pref_change_registrar.h"
@@ -39,6 +40,9 @@
#include "components/signin/public/identity_manager/identity_manager.h"
#include "url/android/gurl_android.h"
+#include "components/search_engines/template_url.h"
@@ -1210,17 +1210,17 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
class BookmarkBridgeTest;
// The delegate to fetch bookmarks information for the Android native
@@ -44,7 +48,8 @@ class BookmarkBridge : public ProfileObserver,
public bookmarks::BaseBookmarkModelObserver,
public PartnerBookmarksShim::Observer,
@@ -52,7 +56,8 @@ class BookmarkBridge : public ProfileObserver,
public ReadingListManager::Observer,
public ReadingListModelObserver,
public signin::IdentityManager::Observer,
- public base::SupportsUserData::Data {
+ public base::SupportsUserData::Data,
+ public ui::SelectFileDialog::Listener {
public:
BookmarkBridge(
Profile* profile,
@@ -81,6 +86,12 @@ class BookmarkBridge : public ProfileObserver,
// All of the injected pointers must be non-null and must outlive `this`.
BookmarkBridge(Profile* profile,
@@ -97,6 +102,12 @@ class BookmarkBridge : public ProfileObserver,
bool IsDoingExtensiveChanges(JNIEnv* env);
@@ -1233,7 +1233,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
jboolean IsEditBookmarksEnabled(JNIEnv* env);
void LoadEmptyPartnerBookmarkShimForTesting(JNIEnv* env);
@@ -93,6 +104,15 @@ class BookmarkBridge : public ProfileObserver,
@@ -109,6 +120,15 @@ class BookmarkBridge : public ProfileObserver,
jlong id,
jint type);
@@ -1249,16 +1249,17 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
void GetAllFoldersWithDepths(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& j_folders_obj,
@@ -356,12 +376,16 @@ class BookmarkBridge : public ProfileObserver,
void DestroyJavaObject();
@@ -384,6 +404,9 @@ class BookmarkBridge : public ProfileObserver,
void CreateOrDestroyAccountReadingListManagerIfNeeded();
raw_ptr<Profile> profile_; // weak
const raw_ptr<Profile> profile_; // weak
+ base::FilePath export_path_;
+ raw_ptr<BookmarksExportObserver> observer_; // weak
+
base::android::ScopedJavaGlobalRef<jobject> java_bookmark_model_;
raw_ptr<bookmarks::BookmarkModel> bookmark_model_; // weak
raw_ptr<bookmarks::ManagedBookmarkService> managed_bookmark_service_; // weak
const raw_ptr<bookmarks::BookmarkModel> bookmark_model_; // weak
const raw_ptr<bookmarks::ManagedBookmarkService>
@@ -400,6 +423,7 @@ class BookmarkBridge : public ProfileObserver,
std::unique_ptr<bookmarks::ScopedGroupBookmarkActions>
grouped_bookmark_actions_;
PrefChangeRegistrar pref_change_registrar_;
@@ -1266,7 +1267,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
// Information about the Partner bookmarks (must check for IsLoaded()).
// This is owned by profile.
@@ -389,6 +413,10 @@ class BookmarkBridge : public ProfileObserver,
@@ -431,6 +455,10 @@ class BookmarkBridge : public ProfileObserver,
bool suppress_observer_notifications_ = false;
@@ -1383,19 +1384,19 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
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
@@ -176,6 +176,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -173,6 +173,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kCacheActivityTaskID,
&kCastDeviceFilter,
&kClearOmniboxFocusAfterNavigation,
+ &kBookmarksExportUseSaf,
&kCreateNewTabInitializeRenderer,
&kCCTBrandTransparencyMemoryImprovement,
&kCCTClientDataHeader,
&kCCTEmbedderSpecialBehaviorTrigger,
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
@@ -502,6 +502,7 @@ public abstract class ChromeFeatureList {
public static final String USER_BYPASS_UI = "UserBypassUI";
@@ -497,6 +497,7 @@ public abstract class ChromeFeatureList {
"UseLibunwindstackNativeUnwinderAndroid";
public static final String VERTICAL_AUTOMOTIVE_BACK_BUTTON_TOOLBAR =
"VerticalAutomotiveBackButtonToolbar";
+ public static final String BOOKMARKS_EXPORT_USESAF = "BookmarksExportUseSaf";
@@ -1457,7 +1458,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
/**
* Whether Chrome is set as the default browser.
@@ -894,6 +896,7 @@ public final class ChromePreferenceKeys {
@@ -899,6 +901,7 @@ public final class ChromePreferenceKeys {
AUTOFILL_ASSISTANT_PROACTIVE_HELP_ENABLED,
APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE,
APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO,
@@ -1496,7 +1497,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
--- a/chrome/common/BUILD.gn
+++ b/chrome/common/BUILD.gn
@@ -404,6 +404,9 @@ static_library("common_lib") {
@@ -401,6 +401,9 @@ static_library("common_lib") {
sources += [
"media/chrome_media_drm_bridge_client.cc",
"media/chrome_media_drm_bridge_client.h",
+46 -46
View File
@@ -120,7 +120,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/base/BUILD.gn b/base/BUILD.gn
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -212,6 +212,8 @@ buildflag_header("message_pump_buildflags") {
@@ -220,6 +220,8 @@ buildflag_header("message_pump_buildflags") {
# This does not include test code (test support and anything in the test
# directory) which should use source_set as is recommended for GN targets).
component("base") {
@@ -129,7 +129,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn
sources = [
"allocator/allocator_check.cc",
"allocator/allocator_check.h",
@@ -1055,7 +1057,7 @@ component("base") {
@@ -1060,7 +1062,7 @@ component("base") {
"//build/config/compiler:wglobal_constructors",
]
@@ -141,7 +141,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn
diff --git a/base/android/feature_map.cc b/base/android/feature_map.cc
--- a/base/android/feature_map.cc
+++ b/base/android/feature_map.cc
@@ -45,9 +45,15 @@ static jboolean JNI_FeatureMap_IsEnabled(
@@ -46,9 +46,15 @@ static jboolean JNI_FeatureMap_IsEnabled(
JNIEnv* env,
jlong jfeature_map,
const android::JavaParamRef<jstring>& jfeature_name) {
@@ -153,8 +153,8 @@ diff --git a/base/android/feature_map.cc b/base/android/feature_map.cc
+ }
FeatureMap* feature_map = reinterpret_cast<FeatureMap*>(jfeature_map);
const base::Feature* feature = feature_map->FindFeatureExposedToJava(
- StringPiece(ConvertJavaStringToUTF8(env, jfeature_name)));
+ StringPiece(feature_name));
- std::string_view(ConvertJavaStringToUTF8(env, jfeature_name)));
+ std::string_view(feature_name));
return base::FeatureList::IsEnabled(*feature);
}
@@ -433,7 +433,7 @@ diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
@@ -59,6 +59,10 @@ found in the LICENSE file.
@@ -70,6 +70,10 @@ found in the LICENSE file.
android:title="@string/tabgrid_use_icons_title"
android:summary="@string/tabgrid_use_icons_summary"
android:defaultValue="false" />
@@ -459,7 +459,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin
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
@@ -121,7 +121,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@@ -128,7 +128,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
private static final String PREF_HISTORY_EXPIRE_DAYS_THRESHOLD = "history_expire_days_threshold";
@Override
@@ -479,15 +479,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
@@ -74,6 +75,7 @@ import org.chromium.chrome.browser.ui.device_lock.MissingDeviceLockLauncher;
@@ -77,6 +78,7 @@ import org.chromium.chrome.browser.ui.device_lock.MissingDeviceLockLauncher;
import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable;
+import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
import org.chromium.components.browser_ui.accessibility.AccessibilitySettings;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory;
@@ -114,6 +116,36 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
import org.chromium.components.browser_ui.bottomsheet.ManagedBottomSheetController;
@@ -117,6 +119,36 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback,
SnackbarManageable,
DisplayStyleObserver {
@@ -524,7 +524,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
@VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
public static final String EXTRA_SHOW_FRAGMENT = "show_fragment";
@@ -367,6 +399,10 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -370,6 +402,10 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
((AccessibilitySettings) fragment)
.getDelegate()).setSnackbarManager(mSnackbarManager);
}
@@ -538,7 +538,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
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
@@ -371,6 +371,10 @@ using flags_ui::kOsLinux;
@@ -368,6 +368,10 @@ using flags_ui::kOsLinux;
using flags_ui::kOsMac;
using flags_ui::kOsWin;
@@ -549,9 +549,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
namespace about_flags {
namespace {
@@ -3710,6 +3714,10 @@ const FeatureEntry::Choice kAccountBookmarksAndReadingListBehindOptInChoices[] =
};
#endif // BUILDFLAG(IS_ANDROID)
@@ -3789,6 +3793,10 @@ const FeatureEntry::FeatureVariation kDefaultBrowserPromptRefreshVariations[] =
kDefaultBrowserPromptRefreshTesting,
std::size(kDefaultBrowserPromptRefreshTesting), nullptr}};
+#define FEATURE_PARAM_SECTION
+#include "cromite_flags/chrome_browser_about_flags_cc.inc"
@@ -560,7 +560,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
// RECORDING USER METRICS FOR FLAGS:
// -----------------------------------------------------------------------------
// The first line of the entry is the internal name.
@@ -3736,6 +3744,9 @@ const FeatureEntry::Choice kAccountBookmarksAndReadingListBehindOptInChoices[] =
@@ -3815,6 +3823,9 @@ const FeatureEntry::FeatureVariation kDefaultBrowserPromptRefreshVariations[] =
const FeatureEntry kFeatureEntries[] = {
// Include generated flags for flag unexpiry; see //docs/flag_expiry.md and
// //tools/flags/generate_unexpire_flags.py.
@@ -573,9 +573,9 @@ 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
@@ -368,4 +368,5 @@ BASE_FEATURE(kNetworkAnnotationMonitoring,
"NetworkAnnotationMonitoring",
base::FEATURE_DISABLED_BY_DEFAULT);
@@ -400,4 +400,5 @@ BASE_FEATURE(kWebUsbDeviceDetection,
"WebUsbDeviceDetection",
base::FEATURE_ENABLED_BY_DEFAULT);
+#include "cromite_flags/chrome_browser_browser_features_cc.inc"
} // namespace features
@@ -621,9 +621,9 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
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
@@ -978,5 +978,6 @@ BASE_FEATURE(kWebApkIconUpdateThreshold,
@@ -1008,5 +1008,6 @@ BASE_FEATURE(kWebApkIconUpdateThreshold,
"WebApkIconUpdateThreshold",
base::FEATURE_DISABLED_BY_DEFAULT);
base::FEATURE_ENABLED_BY_DEFAULT);
+#include "cromite_flags/chrome_browser_flags_android_chrome_feature_list_cc.inc"
} // namespace android
@@ -631,7 +631,7 @@ 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
@@ -188,6 +188,7 @@ constexpr base::FeatureParam<int> kAuxiliarySearchMaxTabsCountParam(
@@ -195,6 +195,7 @@ constexpr base::FeatureParam<int> kAuxiliarySearchMaxTabsCountParam(
"auxiliary_search_max_donation_tab",
100);
@@ -653,7 +653,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
import java.util.List;
import java.util.Map;
@@ -691,7 +695,7 @@ public abstract class ChromeFeatureList {
@@ -692,7 +696,7 @@ public abstract class ChromeFeatureList {
public static final CachedFlag sVerticalAutomotiveBackButtonToolbar =
newCachedFlag(VERTICAL_AUTOMOTIVE_BACK_BUTTON_TOOLBAR, true);
@@ -662,7 +662,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
List.of(
sAllowUserCertificates,
sAndroidAppIntegration,
@@ -779,6 +783,13 @@ public abstract class ChromeFeatureList {
@@ -784,6 +788,13 @@ public abstract class ChromeFeatureList {
sUseLibunwindstackNativeUnwinderAndroid,
sVerticalAutomotiveBackButtonToolbar);
@@ -829,7 +829,7 @@ new file mode 100644
diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc
--- a/chrome/browser/ui/ui_features.cc
+++ b/chrome/browser/ui/ui_features.cc
@@ -450,4 +450,5 @@ BASE_FEATURE(kStopLoadingAnimationForHiddenWindow,
@@ -503,4 +503,5 @@ BASE_FEATURE(kStopLoadingAnimationForHiddenWindow,
"StopLoadingAnimationForHiddenWindow",
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -838,7 +838,7 @@ diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc
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
@@ -1735,4 +1735,5 @@ BASE_FEATURE(kSupportsRtcWakeOver24Hours,
@@ -1660,4 +1660,5 @@ BASE_FEATURE(kSupportsRtcWakeOver24Hours,
base::FEATURE_ENABLED_BY_DEFAULT);
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
@@ -1303,7 +1303,7 @@ diff --git a/components/flags_ui/resources/flags_browser_proxy.ts b/components/f
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
@@ -55,4 +55,5 @@ bool IsOfflinePagesNetworkStateLikelyUnknown() {
@@ -48,4 +48,5 @@ bool IsOfflinePagesNetworkStateLikelyUnknown() {
return base::FeatureList::IsEnabled(kOfflinePagesNetworkStateLikelyUnknown);
}
@@ -1312,7 +1312,7 @@ diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/
diff --git a/components/offline_pages/core/offline_page_feature.h b/components/offline_pages/core/offline_page_feature.h
--- a/components/offline_pages/core/offline_page_feature.h
+++ b/components/offline_pages/core/offline_page_feature.h
@@ -50,6 +50,7 @@ bool IsOnTheFlyMhtmlHashComputationEnabled();
@@ -42,6 +42,7 @@ bool IsOnTheFlyMhtmlHashComputationEnabled();
// offline pages to avoid showing them even when the device is online.
bool IsOfflinePagesNetworkStateLikelyUnknown();
@@ -1323,7 +1323,7 @@ diff --git a/components/offline_pages/core/offline_page_feature.h b/components/o
diff --git a/components/permissions/features.cc b/components/permissions/features.cc
--- a/components/permissions/features.cc
+++ b/components/permissions/features.cc
@@ -139,6 +139,7 @@ BASE_FEATURE(kCpssQuietChipTextUpdate,
@@ -132,6 +132,7 @@ BASE_FEATURE(kCpssQuietChipTextUpdate,
"CpssQuietChipTextUpdate",
base::FEATURE_DISABLED_BY_DEFAULT);
@@ -1346,7 +1346,7 @@ diff --git a/components/version_ui/version_handler_helper.cc b/components/versio
diff --git a/content/common/features.cc b/content/common/features.cc
--- a/content/common/features.cc
+++ b/content/common/features.cc
@@ -596,4 +596,5 @@ BASE_FEATURE(kWindowOpenFileSelectFix,
@@ -595,4 +595,5 @@ BASE_FEATURE(kWindowOpenFileSelectFix,
// Please keep features in alphabetical order.
@@ -1355,7 +1355,7 @@ diff --git a/content/common/features.cc b/content/common/features.cc
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
@@ -1389,4 +1389,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() {
@@ -1402,4 +1402,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() {
VideoCaptureServiceConfiguration::kEnabledForBrowserProcess;
}
@@ -1364,7 +1364,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c
diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h
--- a/content/public/common/content_features.h
+++ b/content/public/common/content_features.h
@@ -332,6 +332,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kWebRtcPipeWireCapturer);
@@ -336,6 +336,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kWebRtcPipeWireCapturer);
CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess();
CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess();
@@ -1662,7 +1662,7 @@ new file mode 100755
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
@@ -1866,5 +1866,5 @@ uint32_t GetPassthroughAudioFormats() {
@@ -1913,5 +1913,5 @@ uint32_t GetPassthroughAudioFormats() {
return 0;
#endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS)
}
@@ -1672,7 +1672,7 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
diff --git a/media/base/media_switches.h b/media/base/media_switches.h
--- a/media/base/media_switches.h
+++ b/media/base/media_switches.h
@@ -547,5 +547,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled();
@@ -557,5 +557,5 @@ MEDIA_EXPORT OOPVDMode GetOutOfProcessVideoDecodingMode();
MEDIA_EXPORT uint32_t GetPassthroughAudioFormats();
} // namespace media
@@ -1682,18 +1682,18 @@ diff --git a/media/base/media_switches.h b/media/base/media_switches.h
diff --git a/net/base/features.cc b/net/base/features.cc
--- a/net/base/features.cc
+++ b/net/base/features.cc
@@ -535,4 +535,5 @@ BASE_FEATURE(kTruncateBodyToContentLength,
"TruncateBodyToContentLength",
@@ -535,4 +535,5 @@ BASE_FEATURE(kReduceIPAddressChangeNotification,
base::FEATURE_ENABLED_BY_DEFAULT);
#endif // BUILDFLAG(IS_MAC)
+#include "cromite_flags/net_base_features_cc.inc"
} // namespace net::features
diff --git a/net/base/features.h b/net/base/features.h
--- a/net/base/features.h
+++ b/net/base/features.h
@@ -523,6 +523,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kTreatHTTPExpiresHeaderValueZeroAsExpired);
// Enables truncating the response body to the content length.
NET_EXPORT BASE_DECLARE_FEATURE(kTruncateBodyToContentLength);
@@ -521,6 +521,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kTruncateBodyToContentLength);
NET_EXPORT BASE_DECLARE_FEATURE(kReduceIPAddressChangeNotification);
#endif // BUILDFLAG(IS_MAC)
+#include "cromite_flags/net_base_features_h.inc"
} // namespace net::features
@@ -1702,7 +1702,7 @@ diff --git a/net/base/features.h b/net/base/features.h
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
@@ -467,4 +467,5 @@ const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsTopLevelTrial{
@@ -475,4 +475,5 @@ const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsTopLevelTrial{
/*name=*/"SkipTpcdMitigationsForAdsTopLevelTrial",
/*default_value=*/false};
@@ -1711,7 +1711,7 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c
diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h
--- a/services/network/public/cpp/features.h
+++ b/services/network/public/cpp/features.h
@@ -187,6 +187,7 @@ extern const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsTrial;
@@ -193,6 +193,7 @@ extern const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsTrial;
COMPONENT_EXPORT(NETWORK_CPP)
extern const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsTopLevelTrial;
@@ -1722,8 +1722,8 @@ diff --git a/services/network/public/cpp/features.h b/services/network/public/cp
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
@@ -2546,5 +2546,6 @@ BASE_FEATURE(kSimplifyLoadingTransparentPlaceholderImage,
"SimplifyLoadingTransparentPlaceholderImage",
@@ -2601,5 +2601,6 @@ BASE_FEATURE(kNoThrottlingVisibleAgent,
"NoThrottlingVisibleAgent",
base::FEATURE_DISABLED_BY_DEFAULT);
+#include "cromite_flags/third_party_blink_common_features_cc.inc"
@@ -1732,9 +1732,9 @@ 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
@@ -1638,6 +1638,7 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kInteractiveDetectorIgnoreFcp);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(
kSimplifyLoadingTransparentPlaceholderImage);
@@ -1682,6 +1682,7 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(
// Don't throttle frames that are same-agent with with a visible frame.
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kNoThrottlingVisibleAgent);
+#include "cromite_flags/third_party_blink_common_features_h.inc"
} // namespace features
@@ -26,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -43,6 +43,16 @@ found in the LICENSE file.
@@ -54,6 +54,16 @@ found in the LICENSE file.
android:key="do_not_track"
android:title="@string/do_not_track_title"
android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings" />
@@ -46,7 +46,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
@@ -55,6 +55,9 @@ import java.lang.annotation.Retention;
@@ -53,6 +53,9 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Set;
@@ -56,7 +56,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
/**
* Dispatches incoming intents to the appropriate activity based on the current configuration and
* Intent fired.
@@ -244,6 +247,9 @@ public class LaunchIntentDispatcher {
@@ -242,6 +245,9 @@ public class LaunchIntentDispatcher {
*/
public static boolean isCustomTabIntent(Intent intent) {
if (intent == null) return false;
@@ -66,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
Log.w(
TAG,
"CustomTabsIntent#shouldAlwaysUseBrowserUI() = "
@@ -265,6 +271,10 @@ public class LaunchIntentDispatcher {
@@ -263,6 +269,10 @@ public class LaunchIntentDispatcher {
newIntent.setData(uri);
newIntent.setClassName(context, CustomTabActivity.class.getName());
@@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
// Since configureIntentForResizableCustomTab() might change the componenet/class
// associated with the passed intent, it needs to be called after #setClassName(context,
// CustomTabActivity.class.getName());
@@ -410,6 +420,17 @@ public class LaunchIntentDispatcher {
@@ -411,6 +421,17 @@ public class LaunchIntentDispatcher {
if (Intent.ACTION_VIEW.equals(newIntent.getAction())
&& !IntentHandler.wasIntentSenderChrome(newIntent)) {
@@ -98,7 +98,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
@@ -850,6 +850,7 @@ public class CustomTabsConnection {
@@ -853,6 +853,7 @@ public class CustomTabsConnection {
PostTask.postTask(
TaskTraits.UI_DEFAULT,
() -> {
@@ -132,8 +132,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco
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
@@ -96,6 +96,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
@@ -103,6 +103,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
private IncognitoLockSettings mIncognitoLockSettings;
+ private ChromeSwitchPreference allowCustomTabIntentsPref;
@@ -142,7 +142,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
getActivity().setTitle(R.string.prefs_privacy_security);
@@ -274,6 +277,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@@ -297,6 +300,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
new SpanApplier.SpanInfo("<link2>", "</link2>", servicesLink));
}
@@ -152,7 +152,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String key = preference.getKey();
@@ -290,6 +296,14 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@@ -313,6 +319,14 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
} else if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
UserPrefs.get(getProfile())
.setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue);
@@ -167,7 +167,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
}
return true;
}
@@ -312,6 +326,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@@ -335,6 +349,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
}
@@ -203,7 +203,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
@@ -5152,6 +5152,20 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
@@ -5204,6 +5204,20 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
<message name="IDS_NEAR_OOM_INTERVENTION_DECLINE" desc="The text of the button letting the user decline the browser's intervention, so that the page can resume what it was doing.">
Resume
</message>
+9 -26
View File
@@ -10,14 +10,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../org/chromium/chrome/browser/ApplicationLifetime.java | 2 ++
.../org/chromium/chrome/browser/ChromeTabbedActivity.java | 4 ++++
.../src/org/chromium/chrome/browser/app/ChromeActivity.java | 6 ++++++
.../chrome/browser/init/ChromeLifetimeController.java | 6 +++++-
.../browser/ui/android/strings/android_chrome_strings.grd | 3 +++
6 files changed, 26 insertions(+), 1 deletion(-)
5 files changed, 21 insertions(+)
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
--- a/chrome/android/java/res/menu/main_menu.xml
+++ b/chrome/android/java/res/menu/main_menu.xml
@@ -166,6 +166,9 @@ found in the LICENSE file.
@@ -160,6 +160,9 @@ found in the LICENSE file.
<item android:id="@+id/managed_by_menu_id"
android:title="@string/managed_browser"
android:icon="@drawable/ic_business" />
@@ -27,7 +26,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
</group>
<!-- Items shown only in the tab switcher -->
@@ -192,6 +195,9 @@ found in the LICENSE file.
@@ -186,6 +189,9 @@ found in the LICENSE file.
<item android:id="@id/preferences_id"
android:title="@string/menu_settings"
android:icon="@drawable/settings_cog" />
@@ -59,8 +58,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ApplicationLife
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
@@ -267,6 +267,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.BooleanSupplier;
@@ -267,6 +267,8 @@ import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.DoubleConsumer;
+import org.chromium.chrome.browser.ApplicationLifetime;
@@ -68,7 +67,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
/**
* This is the main activity for ChromeMobile when not running in document mode. All the tabs are
* accessible via a chrome specific tab switching UI.
@@ -2925,6 +2927,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2958,6 +2960,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
} else if (id == R.id.close_tab) {
getCurrentTabModel().closeTab(currentTab, true, false, true);
RecordUserAction.record("MobileTabClosed");
@@ -80,7 +79,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
@@ -62,6 +62,7 @@ import org.chromium.chrome.R;
@@ -63,6 +63,7 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.ActivityUtils;
import org.chromium.chrome.browser.AppHooks;
@@ -88,7 +87,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;
@@ -2576,6 +2577,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -2578,6 +2579,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
return true;
}
@@ -100,26 +99,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
if (id == R.id.update_menu_id) {
UpdateMenuItemHelper.getInstance(
getProfileProviderSupplier().get().getOriginalProfile())
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
@@ -81,7 +81,11 @@ class ChromeLifetimeController
// Kick off a timer to kill the process after a delay, which fires only if the Activities
// take too long to be finished.
- mHandler.postDelayed(mRestartRunnable, WATCHDOG_DELAY_MS);
+ if (restart) {
+ mHandler.postDelayed(mRestartRunnable, WATCHDOG_DELAY_MS);
+ } else {
+ fireBrowserRestartActivityIntent();
+ }
}
@Override
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
@@ -3745,6 +3745,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
@@ -3797,6 +3797,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
<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>
@@ -26,7 +26,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/
#include "base/feature_list.h"
#include "base/format_macros.h"
#include "base/functional/bind.h"
@@ -392,6 +393,15 @@ AutocompleteController::AutocompleteController(
@@ -398,6 +399,15 @@ AutocompleteController::AutocompleteController(
provider_client_->GetOmniboxTriggeredFeatureService()),
steady_state_omnibox_position_(
metrics::OmniboxEventProto::UNKNOWN_POSITION) {
@@ -45,7 +45,7 @@ new file mode 100644
diff --git a/net/BUILD.gn b/net/BUILD.gn
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -1030,6 +1030,7 @@ component("net") {
@@ -1037,6 +1037,7 @@ component("net") {
"//build:chromeos_buildflags",
"//components/miracle_parameter/common",
"//net/http:transport_security_state_generated_files",
@@ -56,7 +56,7 @@ diff --git a/net/BUILD.gn b/net/BUILD.gn
diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
--- a/net/dns/host_resolver_manager.cc
+++ b/net/dns/host_resolver_manager.cc
@@ -113,6 +113,7 @@
@@ -112,6 +112,7 @@
#include "net/log/net_log_event_type.h"
#include "net/log/net_log_source.h"
#include "net/log/net_log_source_type.h"
@@ -64,7 +64,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
#include "net/log/net_log_with_source.h"
#include "net/socket/client_socket_factory.h"
#include "net/url_request/url_request_context.h"
@@ -1373,6 +1374,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck(
@@ -1351,6 +1352,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck(
return OK;
}
@@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -103,6 +103,7 @@ void SetRuntimeFeatureDefaultsForPlatform(
@@ -102,6 +102,7 @@ void SetRuntimeFeatureDefaultsForPlatform(
if (command_line.HasSwitch(switches::kDisableMediaSessionAPI)) {
WebRuntimeFeatures::EnableMediaSession(false);
}
@@ -104,7 +104,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -635,6 +635,10 @@
@@ -656,6 +656,10 @@
status: {"Android": "stable"},
base_feature: "none",
},
@@ -14,14 +14,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -1889,13 +1889,21 @@ config("default_warnings") {
@@ -1902,7 +1902,6 @@ config("default_warnings") {
# TODO(https://crbug.com/1490607): Fix and re-enable.
"-Wno-thread-safety-reference-return",
]
-
if (!is_nacl) {
cflags_cc += [
# TODO(https://crbug.com/1513724): Fix and re-enable.
cflags_cc += [
# TODO(crbug.com/328490295): Fix and re-enable for C flags.
"-Wenum-compare-conditional",
@@ -1914,6 +1913,15 @@ config("default_warnings") {
"-Wno-c++11-narrowing-const-reference",
]
}
@@ -40,7 +41,7 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
diff --git a/build_overrides/build.gni b/build_overrides/build.gni
--- a/build_overrides/build.gni
+++ b/build_overrides/build.gni
@@ -62,6 +62,9 @@ declare_args() {
@@ -64,6 +64,9 @@ declare_args() {
# to lack of toolchain support.
gtest_enable_absl_printers = !is_nacl
@@ -64,7 +64,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../strings/android/browser_ui_strings.grd | 5 ++
.../core/browser/content_settings_utils.cc | 36 ++++++++
.../core/browser/content_settings_utils.h | 6 ++
.../common/content_settings_constraints.h | 9 ++
.../core/common/content_settings_enums.mojom | 9 ++
.../page_info/PageInfoController.java | 4 +-
.../PermissionParamsListBuilder.java | 13 ++-
.../android/page_info_controller_android.cc | 10 ++-
@@ -106,12 +106,12 @@ diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/br
+ ContentSettingsType type) {
+ ContentSettingsForOneType session_settings =
+ content_settings->GetSettingsForOneType(
+ type, content_settings::SessionModel::UserSession);
+ type, content_settings::mojom::SessionModel::USER_SESSION);
+
+ GURL url = origin.GetURL();
+ for (ContentSettingPatternSource& entry : session_settings) {
+ if (content_settings::IsConstraintSessionExpiration(entry,
+ content_settings::LifetimeMode::UntilOriginClosed) &&
+ content_settings::mojom::LifetimeMode::UNTIL_ORIGIN_CLOSED) &&
+ entry.primary_pattern.Matches(url)) {
+ content_settings->SetWebsiteSettingCustomScope(
+ entry.primary_pattern, entry.secondary_pattern,
@@ -153,12 +153,12 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker.cc b/chrome
+ ContentSettingsType type) {
+ ContentSettingsForOneType session_settings =
+ content_settings->GetSettingsForOneType(
+ type, content_settings::SessionModel::UserSession);
+ type, content_settings::mojom::SessionModel::USER_SESSION);
+
+ GURL url = origin.GetURL();
+ for (ContentSettingPatternSource& entry : session_settings) {
+ if (content_settings::IsConstraintSessionExpiration(entry,
+ content_settings::LifetimeMode::UntilOriginClosed) &&
+ content_settings::mojom::LifetimeMode::UNTIL_ORIGIN_CLOSED) &&
+ entry.primary_pattern.Matches(url)) {
+ content_settings->SetWebsiteSettingCustomScope(
+ entry.primary_pattern, entry.secondary_pattern,
@@ -228,24 +228,24 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker_factory.cc
diff --git a/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc b/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc
--- a/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc
+++ b/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc
@@ -237,7 +237,7 @@ void EmbeddedPermissionPrompt::Allow() {
@@ -238,7 +238,7 @@ void EmbeddedPermissionPrompt::Allow() {
}
void EmbeddedPermissionPrompt::AllowThisTime() {
- delegate_->AcceptThisTime();
+ delegate_->AcceptThisTime(content_settings::LifetimeMode::OnlyThisTime);
+ delegate_->AcceptThisTime(content_settings::mojom::LifetimeMode::ONLY_THIS_TIME);
CloseCurrentViewAndMaybeShowNext(/*first_prompt=*/false);
}
diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc
--- a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc
+++ b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc
@@ -267,7 +267,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) {
@@ -264,7 +264,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) {
delegate_->Accept();
return;
case PermissionDialogButton::kAcceptOnce:
- delegate_->AcceptThisTime();
+ delegate_->AcceptThisTime(content_settings::LifetimeMode::OnlyThisTime);
+ delegate_->AcceptThisTime(content_settings::mojom::LifetimeMode::ONLY_THIS_TIME);
return;
case PermissionDialogButton::kDeny:
delegate_->Deny();
@@ -317,40 +317,40 @@ diff --git a/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
@@ -174,6 +174,42 @@ bool IsConstraintPersistent(const ContentSettingConstraints& constraints) {
return constraints.session_model() == SessionModel::Durable;
return constraints.session_model() == mojom::SessionModel::DURABLE;
}
+ContentSettingConstraints GetConstraintSessionExpiration(LifetimeMode lifetime_mode) {
+ContentSettingConstraints GetConstraintSessionExpiration(content_settings::mojom::LifetimeMode lifetime_mode) {
+ int lifetime;
+ base::Time now;
+ if (lifetime_mode == LifetimeMode::OnlyThisTime) {
+ if (lifetime_mode == content_settings::mojom::LifetimeMode::ONLY_THIS_TIME) {
+ // note: this content settings will be discarded immediately
+ // 1h is used as a magic constant to identify the one-time lifetime mode
+ lifetime = 1;
+ } else if (lifetime_mode == LifetimeMode::UntilOriginClosed) {
+ } else if (lifetime_mode == content_settings::mojom::LifetimeMode::UNTIL_ORIGIN_CLOSED) {
+ now = base::Time::Now();
+ lifetime = 24;
+ } else {
+ lifetime = 0;
+ }
+ content_settings::ContentSettingConstraints c(now);
+ ContentSettingConstraints c(now);
+ c.set_lifetime(base::Hours(lifetime));
+ c.set_session_model(content_settings::SessionModel::UserSession);
+ c.set_session_model(mojom::SessionModel::USER_SESSION);
+ return c;
+}
+
+bool IsConstraintSessionExpiration(const ContentSettingPatternSource& source,
+ LifetimeMode lifetime_mode) {
+ if (source.metadata.session_model() != content_settings::SessionModel::UserSession)
+ content_settings::mojom::LifetimeMode lifetime_mode) {
+ if (source.metadata.session_model() != content_settings::mojom::SessionModel::USER_SESSION)
+ return false;
+
+ LifetimeMode type;
+ mojom::LifetimeMode type;
+ if (source.metadata.lifetime() == base::Hours(24)) {
+ type = LifetimeMode::UntilOriginClosed;
+ type = content_settings::mojom::LifetimeMode::UNTIL_ORIGIN_CLOSED;
+ } else if (source.metadata.expiration() == (base::Time() + base::Hours(1))) {
+ type = LifetimeMode::OnlyThisTime;
+ type = content_settings::mojom::LifetimeMode::ONLY_THIS_TIME;
+ } else {
+ type = LifetimeMode::UntilBrowserClosed;
+ type = content_settings::mojom::LifetimeMode::UNTIL_BROWSER_CLOSED;
+ }
+
+ return lifetime_mode == type;
@@ -366,34 +366,31 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.h b
// Returns whether the given type supports tracking last_visit timestamps.
bool CanTrackLastVisit(ContentSettingsType type);
+ContentSettingConstraints GetConstraintSessionExpiration(LifetimeMode lifetime_mode);
+ContentSettingConstraints GetConstraintSessionExpiration(mojom::LifetimeMode lifetime_mode);
+
+bool IsConstraintSessionExpiration(
+ const ContentSettingPatternSource& source,
+ LifetimeMode lifetime_mode);
+ mojom::LifetimeMode lifetime_mode);
+
// Get a timestamp with week-precision.
base::Time GetCoarseVisitedTime(base::Time time);
diff --git a/components/content_settings/core/common/content_settings_constraints.h b/components/content_settings/core/common/content_settings_constraints.h
--- a/components/content_settings/core/common/content_settings_constraints.h
+++ b/components/content_settings/core/common/content_settings_constraints.h
@@ -33,6 +33,15 @@ enum class SessionModel : int32_t {
kMaxValue = OneTime,
diff --git a/components/content_settings/core/common/content_settings_enums.mojom b/components/content_settings/core/common/content_settings_enums.mojom
--- a/components/content_settings/core/common/content_settings_enums.mojom
+++ b/components/content_settings/core/common/content_settings_enums.mojom
@@ -39,3 +39,12 @@ enum SessionModel {
// tab from the origin is closed.
ONE_TIME,
};
+
+// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.content_settings
+// GENERATED_JAVA_CLASS_NAME_OVERRIDE: LifetimeMode
+enum class LifetimeMode {
+ Always = 99,
+ OnlyThisTime = 1,
+ UntilOriginClosed = 2,
+ UntilBrowserClosed = 0,
+enum LifetimeMode {
+ ALWAYS = 99,
+ ONLY_THIS_TIME = 1,
+ UNTIL_ORIGIN_CLOSED = 2,
+ UNTIL_BROWSER_CLOSED = 0,
+};
+
// Constraints to be applied when setting a content setting.
class ContentSettingConstraints {
public:
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java
--- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java
@@ -455,7 +452,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
@@ -154,6 +154,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
@@ -151,6 +151,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
std::map<ContentSettingsType, ContentSetting>
user_specified_settings_to_display;
@@ -464,7 +461,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)) {
@@ -162,6 +164,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
@@ -159,6 +161,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
if (setting_to_display) {
user_specified_settings_to_display[permission.type] =
*setting_to_display;
@@ -473,7 +470,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
}
}
}
@@ -178,7 +182,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
@@ -175,7 +179,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
ConvertUTF16ToJavaString(env, setting_title),
ConvertUTF16ToJavaString(env, setting_title_mid_sentence),
static_cast<jint>(permission),
@@ -483,7 +480,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
}
}
@@ -191,7 +196,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
@@ -188,7 +193,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),
@@ -496,19 +493,19 @@ 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
@@ -1163,6 +1163,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
permission_info.source = info.source;
permission_info.is_one_time = (info.metadata.session_model() ==
content_settings::SessionModel::OneTime);
@@ -1157,6 +1157,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
permission_info.is_one_time =
(info.metadata.session_model() ==
content_settings::mojom::SessionModel::ONE_TIME);
+ permission_info.is_user_session =
+ (info.metadata.session_model() == content_settings::SessionModel::UserSession);
+ (info.metadata.session_model() == content_settings::mojom::SessionModel::USER_SESSION);
auto* page_specific_content_settings = GetPageSpecificContentSettings();
if (page_specific_content_settings && setting == CONTENT_SETTING_ALLOW) {
diff --git a/components/page_info/page_info.h b/components/page_info/page_info.h
--- a/components/page_info/page_info.h
+++ b/components/page_info/page_info.h
@@ -199,6 +199,7 @@ class PageInfo : private content_settings::CookieControlsObserver {
@@ -151,6 +151,7 @@ class PageInfo : private content_settings::CookieControlsObserver {
content_settings::SETTING_SOURCE_NONE;
// Whether the permission is a one-time grant.
bool is_one_time = false;
@@ -575,7 +572,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per
/** This class creates the model for the permission dialog. */
class PermissionDialogModelFactory {
public static PropertyModel getModel(
@@ -60,6 +72,74 @@ class PermissionDialogModelFactory {
@@ -64,6 +76,74 @@ class PermissionDialogModelFactory {
ModalDialogProperties.NEGATIVE_BUTTON_TEXT,
delegate.getNegativeButtonText());
}
@@ -670,10 +667,10 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_
void PermissionDialogDelegate::Accept(JNIEnv* env,
const JavaParamRef<jobject>& obj) {
CHECK(permission_prompt_);
+ content_settings::LifetimeMode lifetimeOption =
+ static_cast<content_settings::LifetimeMode>(
+ content_settings::mojom::LifetimeMode lifetimeOption =
+ static_cast<content_settings::mojom::LifetimeMode>(
+ java_delegate_->GetSelectedLifetimeOption());
+ if (lifetimeOption != content_settings::LifetimeMode::Always) {
+ if (lifetimeOption != content_settings::mojom::LifetimeMode::ALWAYS) {
+ permission_prompt_->AcceptThisTime(lifetimeOption);
+ return;
+ }
@@ -685,8 +682,8 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_
const JavaParamRef<jobject>& obj) {
CHECK(permission_prompt_);
- permission_prompt_->AcceptThisTime();
+ content_settings::LifetimeMode lifetimeOption =
+ static_cast<content_settings::LifetimeMode>(
+ content_settings::mojom::LifetimeMode lifetimeOption =
+ static_cast<content_settings::mojom::LifetimeMode>(
+ java_delegate_->GetSelectedLifetimeOption());
+ permission_prompt_->AcceptThisTime(lifetimeOption);
}
@@ -694,10 +691,10 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_
void PermissionDialogDelegate::Cancel(JNIEnv* env,
const JavaParamRef<jobject>& obj) {
CHECK(permission_prompt_);
+ content_settings::LifetimeMode lifetimeOption =
+ static_cast<content_settings::LifetimeMode>(
+ content_settings::mojom::LifetimeMode lifetimeOption =
+ static_cast<content_settings::mojom::LifetimeMode>(
+ java_delegate_->GetSelectedLifetimeOption());
+ if (lifetimeOption != content_settings::LifetimeMode::Always) {
+ if (lifetimeOption != content_settings::mojom::LifetimeMode::ALWAYS) {
+ permission_prompt_->DenyThisTime(lifetimeOption);
+ return;
+ }
@@ -724,11 +721,11 @@ diff --git a/components/permissions/android/permission_prompt/permission_prompt_
-void PermissionPromptAndroid::AcceptThisTime() {
- delegate_->AcceptThisTime();
+void PermissionPromptAndroid::AcceptThisTime(content_settings::LifetimeMode lifetimeOption) {
+void PermissionPromptAndroid::AcceptThisTime(content_settings::mojom::LifetimeMode lifetimeOption) {
+ delegate_->AcceptThisTime(lifetimeOption);
+}
+
+void PermissionPromptAndroid::DenyThisTime(content_settings::LifetimeMode lifetimeOption) {
+void PermissionPromptAndroid::DenyThisTime(content_settings::mojom::LifetimeMode lifetimeOption) {
+ delegate_->DenyThisTime(lifetimeOption);
}
@@ -741,9 +738,9 @@ diff --git a/components/permissions/android/permission_prompt/permission_prompt_
void Closing();
void Accept();
- void AcceptThisTime();
+ void AcceptThisTime(content_settings::LifetimeMode lifetimeOption);
+ void AcceptThisTime(content_settings::mojom::LifetimeMode lifetimeOption);
void Deny();
+ void DenyThisTime(content_settings::LifetimeMode lifetimeOption);
+ void DenyThisTime(content_settings::mojom::LifetimeMode lifetimeOption);
void SetManageClicked();
void SetLearnMoreClicked();
bool ShouldCurrentRequestUseQuietUI();
@@ -783,7 +780,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
DCHECK(is_final_decision);
+ NotifyPermissionSetWithLifetime(id, requesting_origin, embedding_origin,
+ std::move(callback), persist, content_setting, is_one_time, is_final_decision,
+ content_settings::LifetimeMode::Always);
+ content_settings::mojom::LifetimeMode::ALWAYS);
+}
+void GeolocationPermissionContextAndroid::NotifyPermissionSetWithLifetime(
@@ -794,7 +791,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
+ bool persist,
+ ContentSetting content_setting,
+ bool is_one_time, bool is_final_decision,
+ content_settings::LifetimeMode lifetime_option) {
+ content_settings::mojom::LifetimeMode lifetime_option) {
bool is_default_search = IsRequestingOriginDSE(requesting_origin);
if (content_setting == CONTENT_SETTING_ALLOW &&
!location_settings_->IsSystemLocationSettingEnabled()) {
@@ -839,7 +836,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
bool persist,
ContentSetting content_setting,
- bool is_one_time,
+ bool is_one_time, content_settings::LifetimeMode lifetime_option,
+ bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option,
LocationSettingsDialogOutcome prompt_outcome) {
bool is_default_search = IsRequestingOriginDSE(requesting_origin);
if (prompt_outcome == GRANTED) {
@@ -859,7 +856,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
ContentSetting content_setting,
- bool is_one_time) {
- GeolocationPermissionContext::NotifyPermissionSet(
+ bool is_one_time, content_settings::LifetimeMode lifetime_option) {
+ bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option) {
+ GeolocationPermissionContext::NotifyPermissionSetWithLifetime(
id, requesting_origin, embedding_origin, std::move(callback), persist,
- content_setting, is_one_time, /*is_final_decision=*/true);
@@ -882,7 +879,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
+ ContentSetting content_setting,
+ bool is_one_time,
+ bool is_final_decision,
+ content_settings::LifetimeMode lifetime_option) override;
+ content_settings::mojom::LifetimeMode lifetime_option) override;
content::PermissionResult UpdatePermissionStatusWithDeviceStatus(
content::PermissionResult result,
const GURL& requesting_origin,
@@ -890,7 +887,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
bool persist,
ContentSetting content_setting,
bool is_one_time,
+ content_settings::LifetimeMode lifetime_option,
+ content_settings::mojom::LifetimeMode lifetime_option,
LocationSettingsDialogOutcome prompt_outcome);
void FinishNotifyPermissionSet(const PermissionRequestID& id,
@@ -900,7 +897,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
ContentSetting content_setting,
- bool is_one_time);
+ bool is_one_time,
+ content_settings::LifetimeMode lifetime_option);
+ content_settings::mojom::LifetimeMode lifetime_option);
std::unique_ptr<LocationSettings> location_settings_;
@@ -931,7 +928,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
bool is_one_time,
- bool is_final_decision) {
+ bool is_final_decision,
+ content_settings::LifetimeMode lifetime_option) {
+ content_settings::mojom::LifetimeMode lifetime_option) {
DCHECK(content_setting == CONTENT_SETTING_ALLOW ||
content_setting == CONTENT_SETTING_BLOCK ||
content_setting == CONTENT_SETTING_DEFAULT);
@@ -961,7 +958,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
+ DCHECK(is_one_time == false);
+ NotifyPermissionSetWithLifetime(id, requesting_origin, embedding_origin, std::move(callback),
+ persist, content_setting, is_one_time, is_final_decision,
+ content_settings::LifetimeMode::Always);
+ content_settings::mojom::LifetimeMode::ALWAYS);
+}
+
+void PermissionContextBase::NotifyPermissionSetWithLifetime(
@@ -973,7 +970,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
+ ContentSetting content_setting,
+ bool is_one_time,
+ bool is_final_decision,
+ content_settings::LifetimeMode lifetime_option) {
+ content_settings::mojom::LifetimeMode lifetime_option) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
if (persist) {
@@ -988,21 +985,21 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
ContentSetting content_setting,
bool is_one_time) {
+ UpdateContentSetting(requesting_origin, embedding_origin, content_setting,
+ is_one_time, content_settings::LifetimeMode::Always);
+ is_one_time, content_settings::mojom::LifetimeMode::ALWAYS);
+}
+
+void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
+ const GURL& embedding_origin,
+ ContentSetting content_setting,
+ bool is_one_time,
+ content_settings::LifetimeMode lifetime_option) {
+ content_settings::mojom::LifetimeMode lifetime_option) {
DCHECK_EQ(requesting_origin, requesting_origin.DeprecatedGetOriginAsURL());
DCHECK_EQ(embedding_origin, embedding_origin.DeprecatedGetOriginAsURL());
DCHECK(content_setting == CONTENT_SETTING_ALLOW ||
@@ -621,6 +659,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
constraints.set_session_model(is_one_time
? content_settings::SessionModel::OneTime
: content_settings::SessionModel::Durable);
constraints.set_session_model(
is_one_time ? content_settings::mojom::SessionModel::ONE_TIME
: content_settings::mojom::SessionModel::DURABLE);
+ if (is_one_time)
+ constraints = content_settings::GetConstraintSessionExpiration(lifetime_option);
@@ -1023,7 +1020,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi
+ ContentSetting content_setting,
+ bool is_one_time,
+ bool is_final_decision,
+ content_settings::LifetimeMode lifetime_option);
+ content_settings::mojom::LifetimeMode lifetime_option);
virtual void NotifyPermissionSet(const PermissionRequestID& id,
const GURL& requesting_origin,
const GURL& embedding_origin,
@@ -1035,7 +1032,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi
+ const GURL& embedding_origin,
+ ContentSetting content_setting,
+ bool is_one_time,
+ content_settings::LifetimeMode lifetime_option);
+ content_settings::mojom::LifetimeMode lifetime_option);
virtual void UpdateContentSetting(const GURL& requesting_origin,
const GURL& embedding_origin,
ContentSetting content_setting,
@@ -1058,7 +1055,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi
bool is_one_time,
- bool is_final_decision);
+ bool is_final_decision,
+ content_settings::LifetimeMode lifetime_option);
+ content_settings::mojom::LifetimeMode lifetime_option);
void NotifyObservers(const ContentSettingsPattern& primary_pattern,
const ContentSettingsPattern& secondary_pattern,
@@ -1070,9 +1067,9 @@ diff --git a/components/permissions/permission_prompt.h b/components/permissions
virtual void Accept() = 0;
- virtual void AcceptThisTime() = 0;
+ virtual void AcceptThisTime(content_settings::LifetimeMode lifetime_option) = 0;
+ virtual void AcceptThisTime(content_settings::mojom::LifetimeMode lifetime_option) = 0;
virtual void Deny() = 0;
+ virtual void DenyThisTime(content_settings::LifetimeMode lifetime_option) = 0;
+ virtual void DenyThisTime(content_settings::mojom::LifetimeMode lifetime_option) = 0;
virtual void Dismiss() = 0;
virtual void Ignore() = 0;
@@ -1094,13 +1091,13 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio
PermissionRequest::~PermissionRequest() {
DCHECK(delete_callback_.is_null());
}
@@ -357,19 +365,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const {
permissions::features::kPermissionStorageAccessAPI);
@@ -355,19 +363,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const {
return request_type() == RequestType::kStorageAccess;
}
-void PermissionRequest::PermissionGranted(bool is_one_time) {
+void PermissionRequest::PermissionGranted(bool is_one_time,
+ content_settings::LifetimeMode lifetime_option) {
+ content_settings::mojom::LifetimeMode lifetime_option) {
+ if (permission_decided_callback_withlifetime_) {
+ std::move(permission_decided_callback_withlifetime_)
+ .Run(CONTENT_SETTING_ALLOW, is_one_time, /*is_final_decision=*/true, lifetime_option);
@@ -1113,7 +1110,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio
-void PermissionRequest::PermissionDenied() {
+void PermissionRequest::PermissionDenied(bool is_one_time,
+ content_settings::LifetimeMode lifetime_option) {
+ content_settings::mojom::LifetimeMode lifetime_option) {
+ if (permission_decided_callback_withlifetime_) {
+ std::move(permission_decided_callback_withlifetime_)
+ .Run(CONTENT_SETTING_BLOCK, is_one_time, /*is_final_decision=*/true, lifetime_option);
@@ -1128,7 +1125,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio
+ if (permission_decided_callback_withlifetime_) {
+ std::move(permission_decided_callback_withlifetime_)
+ .Run(CONTENT_SETTING_DEFAULT, false, is_final_decision,
+ content_settings::LifetimeMode::Always);
+ content_settings::mojom::LifetimeMode::ALWAYS);
+ return;
+ }
if (permission_decided_callback_) {
@@ -1144,7 +1141,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission
+ using PermissionDecidedCallbackWithLifetime =
+ base::OnceCallback<void(ContentSetting /*result*/, bool /*is_one_time*/,
+ bool /*is_final_decision*/,
+ content_settings::LifetimeMode /*lifetime_option*/)>;
+ content_settings::mojom::LifetimeMode /*lifetime_option*/)>;
+
// `permission_decided_callback` is called when the permission request is
// resolved by the user (see comment on PermissionDecidedCallback above).
@@ -1160,20 +1157,20 @@ diff --git a/components/permissions/permission_request.h b/components/permission
PermissionRequest(const PermissionRequest&) = delete;
PermissionRequest& operator=(const PermissionRequest&) = delete;
@@ -159,10 +168,10 @@ class PermissionRequest {
@@ -162,10 +171,10 @@ class PermissionRequest {
// If |is_one_time| is true the permission will last until all tabs of
// |origin| are closed or navigated away from, and then the permission will
// automatically expire after 1 day.
- void PermissionGranted(bool is_one_time);
+ void PermissionGranted(bool is_one_time, content_settings::LifetimeMode lifetime_option);
+ void PermissionGranted(bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option);
// Called when the user has denied the requested permission.
- void PermissionDenied();
+ void PermissionDenied(bool is_one_time, content_settings::LifetimeMode lifetime_option);
+ void PermissionDenied(bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option);
// Called when the user has cancelled the permission request. This
// corresponds to a denial, but is segregated in case the context needs to
@@ -216,6 +225,9 @@ class PermissionRequest {
@@ -219,6 +228,9 @@ class PermissionRequest {
// Called once a decision is made about the permission.
PermissionDecidedCallback permission_decided_callback_;
@@ -1191,7 +1188,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
if (base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kDenyPermissionPrompts)) {
- request->PermissionDenied();
+ request->PermissionDenied(/*is_one_time*/false, content_settings::LifetimeMode::Always);
+ request->PermissionDenied(/*is_one_time*/false, content_settings::mojom::LifetimeMode::ALWAYS);
request->RequestFinished();
return;
}
@@ -1200,7 +1197,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
if (url::Origin::Create(request->requesting_origin()) ==
auto_approval_origin.value()) {
- request->PermissionGranted(/*is_one_time=*/false);
+ request->PermissionGranted(/*is_one_time=*/false, content_settings::LifetimeMode::Always);
+ request->PermissionGranted(/*is_one_time=*/false, content_settings::mojom::LifetimeMode::ALWAYS);
}
request->RequestFinished();
return;
@@ -1210,7 +1207,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
PermissionGrantedIncludingDuplicates(*requests_iter,
- /*is_one_time=*/false);
+ /*is_one_time=*/false,
+ content_settings::LifetimeMode::Always);
+ content_settings::mojom::LifetimeMode::ALWAYS);
#if !BUILDFLAG(IS_ANDROID)
std::optional<ContentSettingsType> content_settings_type =
@@ -1219,7 +1216,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
}
-void PermissionRequestManager::AcceptThisTime() {
+void PermissionRequestManager::AcceptThisTime(content_settings::LifetimeMode mode) {
+void PermissionRequestManager::AcceptThisTime(content_settings::mojom::LifetimeMode mode) {
if (ignore_callbacks_from_prompt_)
return;
DCHECK(view_);
@@ -1237,15 +1234,15 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
}
void PermissionRequestManager::Deny() {
+ Deny_(/*is_one_time*/ false, content_settings::LifetimeMode::Always);
+ Deny_(/*is_one_time*/ false, content_settings::mojom::LifetimeMode::ALWAYS);
+}
+
+void PermissionRequestManager::DenyThisTime(content_settings::LifetimeMode mode) {
+void PermissionRequestManager::DenyThisTime(content_settings::mojom::LifetimeMode mode) {
+ Deny_(/*is_one_time*/ true, mode);
+}
+
+void PermissionRequestManager::Deny_(bool is_one_time,
+ content_settings::LifetimeMode lifetime_option) {
+ content_settings::mojom::LifetimeMode lifetime_option) {
if (ignore_callbacks_from_prompt_)
return;
DCHECK(view_);
@@ -1263,7 +1260,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
void PermissionRequestManager::PermissionGrantedIncludingDuplicates(
PermissionRequest* request,
- bool is_one_time) {
+ bool is_one_time, content_settings::LifetimeMode lifetime_option) {
+ bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option) {
DCHECK_EQ(1ul, base::ranges::count(requests_, request) +
pending_permission_requests_.Count(request))
<< "Only requests in [pending_permission_]requests_ can have duplicates";
@@ -1272,7 +1269,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
VisitDuplicateRequests(
base::BindRepeating(
- [](bool is_one_time,
+ [](bool is_one_time, content_settings::LifetimeMode lifetime_option,
+ [](bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option,
const base::WeakPtr<PermissionRequest>& weak_request) {
- weak_request->PermissionGranted(is_one_time);
+ weak_request->PermissionGranted(is_one_time, lifetime_option);
@@ -1284,7 +1281,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
void PermissionRequestManager::PermissionDeniedIncludingDuplicates(
- PermissionRequest* request) {
+ PermissionRequest* request, bool is_one_time, content_settings::LifetimeMode lifetime_option) {
+ PermissionRequest* request, bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option) {
DCHECK_EQ(1ul, base::ranges::count(requests_, request) +
pending_permission_requests_.Count(request))
<< "Only requests in [pending_permission_]requests_ can have duplicates";
@@ -1295,7 +1292,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
- [](const base::WeakPtr<PermissionRequest>& weak_request) {
- weak_request->PermissionDenied();
- }),
+ [](bool is_one_time, content_settings::LifetimeMode lifetime_option, const base::WeakPtr<PermissionRequest>& weak_request) {
+ [](bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option, const base::WeakPtr<PermissionRequest>& weak_request) {
+ weak_request->PermissionDenied(is_one_time, lifetime_option);
+ }, is_one_time, lifetime_option),
request);
@@ -1306,7 +1303,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
switch (auto_response_for_test_) {
case ACCEPT_ONCE:
- AcceptThisTime();
+ AcceptThisTime(content_settings::LifetimeMode::OnlyThisTime);
+ AcceptThisTime(content_settings::mojom::LifetimeMode::ONLY_THIS_TIME);
break;
case ACCEPT_ALL:
Accept();
@@ -1318,10 +1315,10 @@ diff --git a/components/permissions/permission_request_manager.h b/components/pe
GURL GetEmbeddingOrigin() const override;
void Accept() override;
- void AcceptThisTime() override;
+ void AcceptThisTime(content_settings::LifetimeMode lifetime_option) override;
+ void AcceptThisTime(content_settings::mojom::LifetimeMode lifetime_option) override;
void Deny() override;
+ void Deny_(bool is_one_time, content_settings::LifetimeMode lifetime_option);
+ void DenyThisTime(content_settings::LifetimeMode lifetime_option) override;
+ void Deny_(bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option);
+ void DenyThisTime(content_settings::mojom::LifetimeMode lifetime_option) override;
void Dismiss() override;
void Ignore() override;
void FinalizeCurrentRequests() override;
@@ -1331,12 +1328,12 @@ diff --git a/components/permissions/permission_request_manager.h b/components/pe
void PermissionGrantedIncludingDuplicates(PermissionRequest* request,
- bool is_one_time);
+ bool is_one_time,
+ content_settings::LifetimeMode lifetime_option);
+ content_settings::mojom::LifetimeMode lifetime_option);
// Calls PermissionDenied on a request and all its duplicates.
- void PermissionDeniedIncludingDuplicates(PermissionRequest* request);
+ void PermissionDeniedIncludingDuplicates(PermissionRequest* request,
+ bool is_one_time,
+ content_settings::LifetimeMode lifetime_option);
+ content_settings::mojom::LifetimeMode lifetime_option);
// Calls Cancelled on a request and all its duplicates.
void CancelledIncludingDuplicates(PermissionRequest* request,
bool is_final_decision = true);
@@ -7,7 +7,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 | 67 +++++++++++++++++++
.../bookmarks/android/bookmark_bridge.cc | 44 ++++++++++++
.../bookmarks/android/bookmark_bridge.cc | 42 ++++++++++++
.../bookmarks/android/bookmark_bridge.h | 8 +++
.../browser/bookmarks/bookmark_html_writer.cc | 11 ++-
.../dialogs/DownloadLocationCustomView.java | 4 +-
@@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
components/bookmark_bar_strings.grdp | 6 ++
.../bookmarks/browser/bookmark_codec.cc | 20 +++++-
components/bookmarks/browser/bookmark_codec.h | 7 +-
.../browser/bookmark_load_details.cc | 8 ++-
.../browser/bookmark_load_details.cc | 14 +++-
.../bookmarks/browser/bookmark_load_details.h | 2 +
.../bookmarks/browser/bookmark_model.cc | 3 +-
components/bookmarks/browser/bookmark_model.h | 7 ++
@@ -26,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
components/bookmarks/browser/bookmark_uuids.h | 1 +
components/bookmarks/browser/model_loader.cc | 8 ++-
.../bookmark_specifics_conversions.cc | 1 +
22 files changed, 236 insertions(+), 14 deletions(-)
22 files changed, 240 insertions(+), 14 deletions(-)
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
--- a/chrome/android/java/res/menu/main_menu.xml
@@ -42,7 +42,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
<item android:id="@+id/recent_tabs_menu_id"
android:title="@string/menu_recent_tabs"
android:icon="@drawable/devices_black_24dp" />
@@ -186,6 +190,9 @@ found in the LICENSE file.
@@ -180,6 +184,9 @@ found in the LICENSE file.
<item android:id="@+id/close_all_incognito_tabs_menu_id"
android:title="@string/menu_close_all_incognito_tabs"
android:icon="@drawable/btn_close_white" />
@@ -55,7 +55,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
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
@@ -89,6 +89,7 @@ import org.chromium.chrome.browser.base.ColdStartTracker;
@@ -91,6 +91,7 @@ import org.chromium.chrome.browser.base.ColdStartTracker;
import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
import org.chromium.chrome.browser.browserservices.intents.WebappConstants;
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
@@ -63,7 +63,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.chrome.browser.compositor.layouts.Layout;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone;
@@ -2950,6 +2951,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2983,6 +2984,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
getTabModelSelectorSupplier().get(),
() -> getTabModelSelector().closeAllTabs());
RecordUserAction.record("MobileMenuCloseAllTabs");
@@ -72,7 +72,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
} else if (id == R.id.close_all_incognito_tabs_menu_id) {
// Close only incognito tabs
CloseAllTabsDialog.show(
@@ -3021,6 +3024,27 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -3054,6 +3057,27 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
getTabModalLifetimeHandler().onOmniboxFocusChanged(hasFocus);
}
@@ -130,7 +130,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
private long mNativeBookmarkBridge;
private boolean mIsDestroyed;
private boolean mIsDoingExtensiveChanges;
@@ -402,6 +410,16 @@ class BookmarkBridge {
@@ -423,6 +431,16 @@ class BookmarkBridge {
return mMobileFolderId;
}
@@ -147,7 +147,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/** Returns Id representing the special "other" folder from bookmark model. */
public BookmarkId getOtherFolderId() {
ThreadUtils.assertOnUiThread();
@@ -1092,6 +1110,50 @@ class BookmarkBridge {
@@ -1113,6 +1131,50 @@ class BookmarkBridge {
.addToReadingList(mNativeBookmarkBridge, parentId, title, url);
}
@@ -198,7 +198,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/**
* Helper method to mark an item as read.
*
@@ -1334,6 +1396,9 @@ class BookmarkBridge {
@@ -1366,6 +1428,9 @@ class BookmarkBridge {
BookmarkId getMostRecentlyAddedUserBookmarkIdForUrl(long nativeBookmarkBridge, GURL url);
@@ -208,7 +208,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
BookmarkItem getBookmarkById(long nativeBookmarkBridge, long id, int type);
void getTopLevelFolderIds(
@@ -1353,6 +1418,8 @@ class BookmarkBridge {
@@ -1387,6 +1452,8 @@ class BookmarkBridge {
BookmarkId getRootFolderId(long nativeBookmarkBridge);
@@ -220,8 +220,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc
--- a/chrome/browser/bookmarks/android/bookmark_bridge.cc
+++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc
@@ -367,6 +367,33 @@ void BookmarkBridge::GetImageUrlForBookmark(
base::BindOnce(&HandleImageUrlResponse, callback));
@@ -399,6 +399,33 @@ void BookmarkBridge::GetImageUrlForBookmarkImpl(
std::move(callback).Run(GURL());
}
+base::android::ScopedJavaLocalRef<jobject>
@@ -254,7 +254,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
base::android::ScopedJavaLocalRef<jobject>
BookmarkBridge::GetMostRecentlyAddedUserBookmarkIdForUrl(
JNIEnv* env,
@@ -482,6 +509,7 @@ void BookmarkBridge::GetAllFoldersWithDepths(
@@ -514,6 +541,7 @@ void BookmarkBridge::GetAllFoldersWithDepths(
// Vector to temporarily contain all child bookmarks at same level for sorting
std::vector<const BookmarkNode*> bookmarks = {
bookmark_model_->mobile_node(),
@@ -262,19 +262,17 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
bookmark_model_->bookmark_bar_node(),
bookmark_model_->other_node(),
};
@@ -539,6 +567,11 @@ std::vector<const BookmarkNode*> BookmarkBridge::GetTopLevelFolderIdsImpl(
top_level_folders.push_back(root_child.get());
@@ -607,6 +635,9 @@ std::vector<const BookmarkNode*> BookmarkBridge::GetTopLevelFolderIdsImpl(
top_level_folders.push_back(other_node);
}
+ for (const auto& node : bookmark_model_->tabs_collection_node()->children()) {
+ if (node->is_folder())
+ top_level_folders.push_back(node.get());
+ }
+ const BookmarkNode* tabs_collection_node = bookmark_model_->tabs_collection_node();
+ top_level_folders.push_back(tabs_collection_node);
+
if (account_reading_list_manager_ &&
account_reading_list_manager_->GetRoot()) {
top_level_folders.push_back(account_reading_list_manager_->GetRoot());
@@ -1176,6 +1209,17 @@ void BookmarkBridge::GetBookmarksOfType(
const BookmarkNode* reading_list_node =
local_or_syncable_reading_list_manager_->GetRoot();
if (IsPermanentFolderVisible(ignore_visibility, reading_list_node)) {
@@ -1326,6 +1357,17 @@ void BookmarkBridge::GetBookmarksOfType(
AddBookmarkNodesToBookmarkIdList(env, j_list, results);
}
@@ -295,9 +293,9 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser/bookmarks/android/bookmark_bridge.h
--- a/chrome/browser/bookmarks/android/bookmark_bridge.h
+++ b/chrome/browser/bookmarks/android/bookmark_bridge.h
@@ -77,6 +77,10 @@ class BookmarkBridge : public ProfileObserver,
const base::android::JavaParamRef<jobject>& j_url,
const base::android::JavaParamRef<jobject>& j_callback);
@@ -93,6 +93,10 @@ class BookmarkBridge : public ProfileObserver,
bool is_account_bookmark,
page_image_service::ImageService::ResultCallback callback);
+ base::android::ScopedJavaLocalRef<jobject> GetBookmarkIdForTabsCollection(
+ JNIEnv* env,
@@ -306,7 +304,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
base::android::ScopedJavaLocalRef<jobject>
GetMostRecentlyAddedUserBookmarkIdForUrl(
JNIEnv* env,
@@ -227,6 +231,10 @@ class BookmarkBridge : public ProfileObserver,
@@ -245,6 +249,10 @@ class BookmarkBridge : public ProfileObserver,
const base::android::JavaParamRef<jobject>& j_list,
jint type);
@@ -384,7 +382,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
@@ -3875,6 +3875,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
@@ -3930,6 +3930,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
<message name="IDS_MENU_SELECT_TABS" desc="Menu item for bulk editing tabs. [CHAR_LIMIT=27]">
Select tabs
</message>
@@ -505,7 +503,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
if (sync_metadata_str) {
const std::string* sync_metadata_str_base64 =
@@ -459,11 +471,13 @@ void BookmarkCodec::DecodeMetaInfoHelper(
@@ -460,12 +472,14 @@ void BookmarkCodec::DecodeMetaInfoHelper(
void BookmarkCodec::ReassignIDs(BookmarkNode* bb_node,
BookmarkNode* other_node,
@@ -513,6 +511,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
+ BookmarkNode* mobile_node,
+ BookmarkNode* tabs_folder_node) {
ids_.clear();
reassigned_ids_per_old_id_.clear();
ReassignIDsHelper(bb_node);
ReassignIDsHelper(other_node);
ReassignIDsHelper(mobile_node);
@@ -523,7 +522,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmarks/browser/bookmark_codec.h
--- a/components/bookmarks/browser/bookmark_codec.h
+++ b/components/bookmarks/browser/bookmark_codec.h
@@ -39,6 +39,7 @@ class BookmarkCodec {
@@ -40,6 +40,7 @@ class BookmarkCodec {
const BookmarkNode* bookmark_bar_node,
const BookmarkNode* other_folder_node,
const BookmarkNode* mobile_folder_node,
@@ -531,7 +530,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark
std::string sync_metadata_str);
// Decodes the previously encoded value to the specified nodes as well as
@@ -57,6 +58,7 @@ class BookmarkCodec {
@@ -58,6 +59,7 @@ class BookmarkCodec {
BookmarkNode* bb_node,
BookmarkNode* other_folder_node,
BookmarkNode* mobile_folder_node,
@@ -539,7 +538,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark
int64_t* max_node_id,
std::string* sync_metadata_str);
@@ -82,6 +84,7 @@ class BookmarkCodec {
@@ -89,6 +91,7 @@ class BookmarkCodec {
static const char kBookmarkBarFolderNameKey[];
static const char kOtherBookmarkFolderNameKey[];
static const char kMobileBookmarkFolderNameKey[];
@@ -547,7 +546,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark
static const char kVersionKey[];
static const char kChecksumKey[];
static const char kIdKey[];
@@ -114,6 +117,7 @@ class BookmarkCodec {
@@ -121,6 +124,7 @@ class BookmarkCodec {
bool DecodeHelper(BookmarkNode* bb_node,
BookmarkNode* other_folder_node,
BookmarkNode* mobile_folder_node,
@@ -555,7 +554,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark
const base::Value::Dict& value,
std::string* sync_metadata_str);
@@ -124,7 +128,8 @@ class BookmarkCodec {
@@ -131,7 +135,8 @@ class BookmarkCodec {
// Reassigns bookmark IDs for all nodes.
void ReassignIDs(BookmarkNode* bb_node,
BookmarkNode* other_node,
@@ -586,7 +585,26 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/
CHECK_EQ(kNumDefaultTopLevelPermanentFolders, root_node_->children().size());
}
@@ -105,8 +107,8 @@ void BookmarkLoadDetails::AddManagedNode(
@@ -86,6 +88,10 @@ void BookmarkLoadDetails::PopulateNodeIdsForLocalOrSyncablePermanentNodes() {
if (mobile_folder_node_->id() == 0) {
mobile_folder_node_->set_id(max_id_++);
}
+
+ if (tabs_collection_folder_node_->id() == 0) {
+ tabs_collection_folder_node_->set_id(max_id_++);
+ }
}
void BookmarkLoadDetails::AddManagedNode(
@@ -98,6 +104,7 @@ void BookmarkLoadDetails::AddManagedNode(
CHECK_NE(bb_node_->id(), 0);
CHECK_NE(other_folder_node_->id(), 0);
CHECK_NE(mobile_folder_node_->id(), 0);
+ CHECK_NE(tabs_collection_folder_node_->id(), 0);
has_managed_node_ = true;
root_node_->Add(std::move(managed_node));
@@ -105,8 +112,8 @@ void BookmarkLoadDetails::AddManagedNode(
void BookmarkLoadDetails::CreateIndices() {
local_or_syncable_uuid_index_.insert(root_node_.get());
@@ -597,10 +615,18 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/
for (const auto& child : root_node_->children()) {
if (child.get() == account_bb_node_ ||
child.get() == account_other_folder_node_ ||
@@ -125,6 +132,7 @@ void BookmarkLoadDetails::ResetPermanentNodePointers() {
bb_node_ = nullptr;
other_folder_node_ = nullptr;
mobile_folder_node_ = nullptr;
+ tabs_collection_folder_node_ = nullptr;
account_bb_node_ = nullptr;
account_other_folder_node_ = nullptr;
account_mobile_folder_node_ = nullptr;
diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/bookmarks/browser/bookmark_load_details.h
--- a/components/bookmarks/browser/bookmark_load_details.h
+++ b/components/bookmarks/browser/bookmark_load_details.h
@@ -39,6 +39,7 @@ class BookmarkLoadDetails {
@@ -40,6 +40,7 @@ class BookmarkLoadDetails {
BookmarkPermanentNode* bb_node() { return bb_node_; }
BookmarkPermanentNode* mobile_folder_node() { return mobile_folder_node_; }
BookmarkPermanentNode* other_folder_node() { return other_folder_node_; }
@@ -608,7 +634,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/b
// Account permanent nodes (null unless `AddAccountPermanentNodes()` is
// called).
@@ -138,6 +139,7 @@ class BookmarkLoadDetails {
@@ -151,6 +152,7 @@ class BookmarkLoadDetails {
raw_ptr<BookmarkPermanentNode> bb_node_;
raw_ptr<BookmarkPermanentNode> other_folder_node_;
raw_ptr<BookmarkPermanentNode> mobile_folder_node_;
@@ -619,7 +645,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/b
diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc
--- a/components/bookmarks/browser/bookmark_model.cc
+++ b/components/bookmarks/browser/bookmark_model.cc
@@ -846,7 +846,7 @@ bool BookmarkModel::HasBookmarks() const {
@@ -912,7 +912,7 @@ bool BookmarkModel::HasBookmarks() const {
bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() const {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
return bookmark_bar_node_->children().empty() &&
@@ -628,7 +654,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar
}
bool BookmarkModel::IsBookmarked(const GURL& url) const {
@@ -1191,6 +1191,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
@@ -1244,6 +1244,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
bookmark_bar_node_ = details->bb_node();
other_node_ = details->other_folder_node();
mobile_node_ = details->mobile_folder_node();
@@ -639,7 +665,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar
diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmarks/browser/bookmark_model.h
--- a/components/bookmarks/browser/bookmark_model.h
+++ b/components/bookmarks/browser/bookmark_model.h
@@ -159,6 +159,12 @@ class BookmarkModel final : public BookmarkUndoProvider,
@@ -157,6 +157,12 @@ class BookmarkModel : public CoreBookmarkModel,
// bookmarks in the account storage).
const BookmarkNode* account_mobile_node() const;
@@ -652,7 +678,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark
bool is_root_node(const BookmarkNode* node) const {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
return node == root_;
@@ -619,6 +625,7 @@ class BookmarkModel final : public BookmarkUndoProvider,
@@ -635,6 +641,7 @@ class BookmarkModel : public CoreBookmarkModel,
raw_ptr<BookmarkPermanentNode> account_bookmark_bar_node_ = nullptr;
raw_ptr<BookmarkPermanentNode> account_other_node_ = nullptr;
raw_ptr<BookmarkPermanentNode> account_mobile_node_ = nullptr;
@@ -699,7 +725,7 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks
MOBILE
};
@@ -231,6 +232,8 @@ class BookmarkPermanentNode : public BookmarkNode {
@@ -236,6 +237,8 @@ class BookmarkPermanentNode : public BookmarkNode {
int64_t id);
static std::unique_ptr<BookmarkPermanentNode> CreateMobileBookmarks(
int64_t id);
@@ -773,7 +799,7 @@ diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks
&sync_metadata_str)) {
ids_assigned_to_account_nodes = codec.release_assigned_ids();
@@ -110,7 +113,8 @@ std::unique_ptr<BookmarkLoadDetails> LoadBookmarks(
@@ -122,7 +125,8 @@ std::unique_ptr<BookmarkLoadDetails> LoadBookmarks(
if (root_dict.has_value() &&
codec.Decode(*root_dict, std::move(ids_assigned_to_account_nodes),
details->bb_node(), details->other_folder_node(),
@@ -29,7 +29,7 @@ diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
--- a/chrome/android/java/res/menu/main_menu.xml
+++ b/chrome/android/java/res/menu/main_menu.xml
@@ -113,6 +113,9 @@ found in the LICENSE file.
@@ -107,6 +107,9 @@ found in the LICENSE file.
<item android:id="@+id/add_to_homescreen_id"
android:title="@string/menu_add_to_homescreen"
android:icon="@drawable/ic_add_to_home_screen" />
@@ -42,7 +42,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
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
@@ -2976,6 +2976,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -3009,6 +3009,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
}
RecordUserAction.record("MobileMenuDownloadManager");
@@ -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
@@ -585,6 +585,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -575,6 +575,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
isChromeScheme, isFileScheme, isContentScheme, isIncognito, url));
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isChromeScheme);
@@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
updateAutoDarkMenuItem(menu, currentTab, isChromeScheme);
@@ -1236,6 +1237,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -1285,6 +1286,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
}
}
@@ -104,7 +104,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
@@ -295,6 +295,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
@@ -293,6 +293,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
updateRequestDesktopSiteMenuItem(
menu, currentTab, requestDesktopSiteVisible, isChromeScheme);
@@ -115,7 +115,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -317,6 +317,10 @@ CHAR_LIMIT guidelines:
@@ -314,6 +314,10 @@ CHAR_LIMIT guidelines:
USB
</message>
@@ -53,15 +53,15 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
/** Property for lazily fetching favicons when required by an item in a UI. */
public static final WritableObjectPropertyKey<TabListFaviconProvider.TabFaviconFetcher>
FAVICON_FETCHER = new WritableObjectPropertyKey<>();
@@ -160,6 +163,7 @@ public class TabProperties {
@@ -164,6 +167,7 @@ public class TabProperties {
CARD_TYPE,
CONTENT_DESCRIPTION_STRING,
CLOSE_BUTTON_DESCRIPTION_STRING,
+ FAVICON,
SHOPPING_PERSISTED_TAB_DATA_FETCHER,
SHOULD_SHOW_PRICE_DROP_TOOLTIP,
QUICK_DELETE_ANIMATION_STATUS
@@ -172,6 +176,7 @@ public class TabProperties {
QUICK_DELETE_ANIMATION_STATUS,
@@ -177,6 +181,7 @@ public class TabProperties {
TAB_CLOSED_LISTENER,
FAVICON_FETCHED,
FAVICON_FETCHER,
@@ -72,7 +72,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
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
@@ -54,6 +54,11 @@ found in the LICENSE file.
@@ -65,6 +65,11 @@ found in the LICENSE file.
android:title="@string/open_external_links_incognito_title"
android:summary="@string/open_external_links_incognito_summary"
android:defaultValue="false" />
@@ -87,7 +87,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/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
@@ -145,6 +145,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
@@ -146,6 +146,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
import org.chromium.chrome.browser.preferences.Pref;
import org.chromium.chrome.browser.printing.TabPrinter;
@@ -95,7 +95,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.readaloud.ReadAloudController;
import org.chromium.chrome.browser.selection.SelectionPopupBackPressHandler;
@@ -704,7 +705,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -702,7 +703,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
new TabContentManager(
this,
mBrowserControlsManagerSupplier.get(),
@@ -107,7 +107,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/compositor/layouts/content/TabContentManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java
@@ -326,11 +326,14 @@ public class TabContentManager {
@@ -325,11 +325,14 @@ public class TabContentManager {
*/
public void getTabThumbnailWithCallback(
@NonNull int tabId,
@@ -127,7 +127,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo
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
@@ -66,12 +66,25 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
@@ -68,12 +68,25 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate;
@@ -154,7 +154,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
private static final String PREF_PRELOAD_PAGES = "preload_pages";
private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode";
@@ -140,6 +153,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@@ -155,6 +168,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
}
}
@@ -176,7 +176,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
Preference privacyGuidePreference = findPreference(PREF_PRIVACY_GUIDE);
// Record the launch of PG from the S&P link-row entry point
privacyGuidePreference.setOnPreferenceClickListener(
@@ -321,6 +349,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@@ -344,6 +372,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
public static final String PREF_OPEN_EXTERNAL_LINKS_INCOGNITO = "open_external_links_incognito";
@@ -184,7 +184,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
@@ -346,6 +375,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@@ -369,6 +398,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue);
sharedPreferencesEditor.apply();
@@ -198,7 +198,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
}
return true;
}
@@ -386,6 +422,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@@ -417,6 +453,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
: R.string.text_off);
}
@@ -212,7 +212,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
@@ -5371,6 +5371,14 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
@@ -5423,6 +5423,14 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
Your <ph name="FQDN">%1$s<ex>www.amazon.com</ex></ph> timer ran out. It'll start again tomorrow.
</message>
@@ -4,6 +4,7 @@ Subject: Add option to force tablet UI
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../settings/AccessibilitySettings.java | 12 ++++++++++++
.../ChromeAccessibilitySettingsDelegate.java | 19 +++++++++++++++++++
.../browser/tasks/ReturnToChromeUtil.java | 4 +++-
.../chrome/browser/ui/RootUiCoordinator.java | 5 ++++-
@@ -15,16 +16,58 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../strings/android_chrome_strings.grd | 7 +++++++
components/BUILD.gn | 6 +++---
.../res/xml/accessibility_preferences.xml | 5 +++++
.../accessibility/AccessibilitySettings.java | 10 ++++++++++
.../AccessibilitySettingsDelegate.java | 2 ++
.../AccessibilitySettingsDelegate.java | 11 +++++++++++
.../chromium/ui/base/DeviceFormFactor.java | 6 ++++++
14 files changed, 71 insertions(+), 6 deletions(-)
14 files changed, 82 insertions(+), 6 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
@@ -17,6 +17,7 @@ import org.chromium.chrome.browser.image_descriptions.ImageDescriptionsControlle
import org.chromium.chrome.browser.preferences.Pref;
import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
import org.chromium.components.browser_ui.accessibility.AccessibilitySettingsDelegate;
+import org.chromium.components.browser_ui.accessibility.AccessibilitySettingsDelegate.BooleanPreferenceDelegate;
import org.chromium.components.browser_ui.accessibility.FontSizePrefs;
import org.chromium.components.browser_ui.accessibility.FontSizePrefs.FontSizePrefsObserver;
import org.chromium.components.browser_ui.accessibility.PageZoomPreference;
@@ -46,6 +47,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
public static final String PREF_ZOOM_INFO = "zoom_info";
public static final String PREF_IMAGE_DESCRIPTIONS = "image_descriptions";
+ private BooleanPreferenceDelegate mForceTabletUIDelegate;
+ static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
+
private TextScalePreference mTextScalePref;
private PageZoomPreference mPageZoomDefaultZoomPref;
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
@@ -143,6 +147,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
mPrefService.getBoolean(Pref.READER_FOR_ACCESSIBILITY));
readerForAccessibilityPref.setOnPreferenceChangeListener(this);
+ ChromeSwitchPreference forceTabletUiPref =
+ (ChromeSwitchPreference) findPreference(PREF_FORCE_TABLET_UI);
+ mForceTabletUIDelegate = mDelegate.getForceTabletUIDelegate();
+ forceTabletUiPref.setChecked(mForceTabletUIDelegate.isEnabled());
+ forceTabletUiPref.setOnPreferenceChangeListener(this);
+
Preference captions = findPreference(PREF_CAPTIONS);
captions.setOnPreferenceClickListener(
preference -> {
@@ -214,6 +224,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
mFontSizePrefs.setUserFontScaleFactor((Float) newValue);
} else if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) {
mFontSizePrefs.setForceEnableZoomFromUser((Boolean) newValue);
+ } else if (PREF_FORCE_TABLET_UI.equals(preference.getKey())) {
+ mForceTabletUIDelegate.setEnabled((Boolean) newValue);
} else if (PREF_READER_FOR_ACCESSIBILITY.equals(preference.getKey())) {
mPrefService.setBoolean(Pref.READER_FOR_ACCESSIBILITY, (Boolean) newValue);
} else if (PREF_PAGE_ZOOM_DEFAULT_ZOOM.equals(preference.getKey())) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
@@ -94,6 +94,25 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
return new TextSizeContrastAccessibilityDelegate(getBrowserContextHandle());
@@ -38,6 +38,25 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
}
}
+ private static class ForceTabletUIDelegate implements BooleanPreferenceDelegate {
@@ -46,13 +89,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
+ return new ForceTabletUIDelegate();
+ }
+
@Override
public void addExtraPreferences(PreferenceFragmentCompat fragment) {
if (ImageDescriptionsController.getInstance().shouldShowImageDescriptionsMenuItem()) {
private final Profile mProfile;
/**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java
@@ -979,7 +979,9 @@ public final class ReturnToChromeUtil {
@@ -974,7 +974,9 @@ public final class ReturnToChromeUtil {
public static boolean isScrollableMvtEnabled(Context context) {
boolean isSurfacePolishEnabled = ChromeFeatureList.sSurfacePolish.isEnabled();
@@ -66,7 +109,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToC
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
@@ -98,6 +98,7 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview;
@@ -97,6 +97,7 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview;
import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer;
import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher;
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
@@ -74,7 +117,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
import org.chromium.chrome.browser.price_tracking.PriceTrackingButtonController;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.profiles.ProfileManager;
@@ -1595,7 +1596,9 @@ public class RootUiCoordinator
@@ -1593,7 +1594,9 @@ public class RootUiCoordinator
if (!mSupportsFindInPageSupplier.getAsBoolean()) return;
int stubId = R.id.find_toolbar_stub;
@@ -146,7 +189,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
@@ -771,7 +771,7 @@ public class LocationBarCoordinator
@@ -768,7 +768,7 @@ public class LocationBarCoordinator
}
private boolean isTabletWindow() {
@@ -158,8 +201,8 @@ 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
@@ -1564,6 +1564,13 @@ Your Google account may have other forms of browsing history like searches and a
Manage third-party cookies and tracking protections
@@ -1604,6 +1604,13 @@ Your Google account may have other forms of browsing history like searches and a
Hide your IP address
</message>
+ <message name="IDS_FORCE_TABLET_UI_SUMMARY" desc="Summary of the preference that allows the user to force chromium to use tablet UI.">
@@ -184,7 +227,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
disallowed_extension_deps_ = [
# Components should largely not depend on //extensions. Since // extensions
# is not a component target and is linked with //chrome, depending on most
@@ -831,7 +831,7 @@ test("components_unittests") {
@@ -832,7 +832,7 @@ test("components_unittests") {
# On other platforms, no components should depend on Chrome.
# Since //chrome depends on //extensions, we also only assert_no_deps on
# extensions targets for non-lacros builds.
@@ -217,52 +260,34 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
<Preference
android:key="captions"
android:title="@string/accessibility_captions_title"/>
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
@@ -32,6 +32,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
public static final String PREF_CAPTIONS = "captions";
public static final String PREF_ZOOM_INFO = "zoom_info";
+ private BooleanPreferenceDelegate mForceTabletUIDelegate;
+ static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
private TextScalePreference mTextScalePref;
private PageZoomPreference mPageZoomDefaultZoomPref;
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
@@ -129,6 +131,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
getPreferenceScreen().removePreference(readerForAccessibilityPref);
}
+ ChromeSwitchPreference forceTabletUiPref =
+ (ChromeSwitchPreference) findPreference(PREF_FORCE_TABLET_UI);
+ mForceTabletUIDelegate = mDelegate.getForceTabletUIDelegate();
+ forceTabletUiPref.setChecked(mForceTabletUIDelegate.isEnabled());
+ forceTabletUiPref.setOnPreferenceChangeListener(this);
+
Preference captions = findPreference(PREF_CAPTIONS);
captions.setOnPreferenceClickListener(
preference -> {
@@ -190,6 +198,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
mFontSizePrefs.setUserFontScaleFactor((Float) newValue);
} else if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) {
mFontSizePrefs.setForceEnableZoomFromUser((Boolean) newValue);
+ } else if (PREF_FORCE_TABLET_UI.equals(preference.getKey())) {
+ mForceTabletUIDelegate.setEnabled((Boolean) newValue);
} else if (PREF_READER_FOR_ACCESSIBILITY.equals(preference.getKey())) {
if (mReaderForAccessibilityDelegate != null) {
mReaderForAccessibilityDelegate.setEnabled((Boolean) newValue);
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
@@ -52,6 +52,8 @@ public interface AccessibilitySettingsDelegate {
*/
IntegerPreferenceDelegate getTextSizeContrastAccessibilityDelegate();
@@ -11,6 +11,15 @@ import org.chromium.content_public.browser.BrowserContextHandle;
* embedder-specific logic.
*/
public interface AccessibilitySettingsDelegate {
+ /** An interface to control a single boolean preference. */
+ interface BooleanPreferenceDelegate {
+ /** @return whether the preference is enabled. */
+ boolean isEnabled();
+
+ /** Called when the preference value is changed. */
+ void setEnabled(boolean value);
+ }
+
/** An interface to control a single integer preference. */
interface IntegerPreferenceDelegate {
/** @return int - Current value of the preference of this instance. */
@@ -26,6 +35,8 @@ public interface AccessibilitySettingsDelegate {
/** @return The BrowserContextHandle that should be used to read and update settings. */
BrowserContextHandle getBrowserContextHandle();
+ BooleanPreferenceDelegate getForceTabletUIDelegate();
+
/**
* Allows the embedder to add more preferences to the preference screen.
*
* @return the InterPreferenceDelegate instance that should be used for reading and setting the
* text size contrast value for accessibility settings. Return null to omit the preference.
diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
--- a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
+++ b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
@@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -71,6 +71,11 @@ found in the LICENSE file.
@@ -82,6 +82,11 @@ found in the LICENSE file.
android:title="@string/incognito_settings_title"
android:summary="@string/incognito_settings_summary"
android:fragment="org.chromium.chrome.browser.privacy.settings.IncognitoSettings"/>
@@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.base.IntentUtils;
import org.chromium.base.Log;
import org.chromium.base.MemoryPressureListener;
@@ -1614,8 +1615,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -1630,8 +1631,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
boolean hadCipherData =
CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
@@ -59,7 +59,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
import android.os.Bundle;
import android.text.SpannableString;
import android.text.style.ForegroundColorSpan;
@@ -20,6 +21,8 @@ import androidx.preference.Preference;
@@ -21,6 +22,8 @@ import androidx.preference.Preference;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.RecordUserAction;
@@ -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.enterprise.util.ManagedBrowserUtils;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
@@ -87,6 +90,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@@ -88,6 +91,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
private final SharedPreferencesManager mSharedPreferencesManager =
ChromeSharedPreferences.getInstance();
+ private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
+
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
private IncognitoLockSettings mIncognitoLockSettings;
@@ -271,7 +276,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
private static final String PREF_IP_PROTECTION = "ip_protection";
@VisibleForTesting static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
@@ -294,7 +299,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@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(getProfile())
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
} else if (PREF_HTTPS_FIRST_MODE.equals(key)) {
@@ -316,6 +325,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@@ -347,6 +356,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
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
@@ -4805,6 +4805,12 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
@@ -4860,6 +4860,12 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
<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>
@@ -23,15 +23,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java
@@ -22,6 +22,7 @@ import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.Supplier;
import org.chromium.base.task.PostTask;
@@ -25,6 +25,7 @@ import org.chromium.base.task.PostTask;
import org.chromium.base.task.TaskTraits;
import org.chromium.chrome.browser.data_sharing.SharedImageTilesCoordinator;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
+import org.chromium.chrome.browser.homepage.HomepageManager;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabCreationState;
import org.chromium.chrome.browser.tab.TabLaunchType;
@@ -47,6 +48,7 @@ import org.chromium.ui.KeyboardVisibilityDelegate;
@@ -55,6 +56,7 @@ import org.chromium.ui.KeyboardVisibilityDelegate;
import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.modelutil.PropertyModel;
import org.chromium.ui.text.EmptyTextWatcher;
@@ -39,7 +39,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
import java.util.ArrayList;
import java.util.List;
@@ -636,11 +638,16 @@ public class TabGridDialogMediator
@@ -688,11 +690,16 @@ public class TabGridDialogMediator
assert relatedTabs.size() > 0;
@@ -223,7 +223,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
@@ -1337,6 +1337,9 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1369,6 +1369,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>
@@ -236,7 +236,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
--- a/chrome/browser/ui/browser_ui_prefs.cc
+++ b/chrome/browser/ui/browser_ui_prefs.cc
@@ -73,6 +73,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
@@ -78,6 +78,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
GetHomeButtonAndHomePageIsNewTabPageFlags());
registry->RegisterBooleanPref(prefs::kShowHomeButton, false,
GetHomeButtonAndHomePageIsNewTabPageFlags());
@@ -244,11 +244,11 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u
+ PrefRegistry::NO_REGISTRATION_FLAGS);
registry->RegisterInt64Pref(prefs::kDefaultBrowserLastDeclined, 0);
bool reset_check_default = false;
registry->RegisterBooleanPref(prefs::kWebAppCreateOnDesktop, true);
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
@@ -1285,6 +1285,10 @@ inline constexpr char kUsedPolicyCertificates[] =
@@ -1269,6 +1269,10 @@ inline constexpr char kUsedPolicyCertificates[] =
// visible on the toolbar.
inline constexpr char kShowHomeButton[] = "browser.show_home_button";
+25 -26
View File
@@ -9,8 +9,8 @@ Add DuckDuckGo Lite
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
.../search_engines/prepopulated_engines.json | 31 +++++++++++++++++++
.../search_engine_countries-inc.cc | 3 ++
.../search_engines/search_engine_type.h | 5 +++
.../template_url_prepopulate_data.cc | 3 ++
3 files changed, 39 insertions(+)
diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json
@@ -33,7 +33,7 @@ diff --git a/components/search_engines/prepopulated_engines.json b/components/se
"ecosia": {
"name": "Ecosia",
"keyword": "ecosia.org",
@@ -171,6 +181,27 @@
@@ -172,6 +182,27 @@
"id": 111
},
@@ -61,15 +61,34 @@ diff --git a/components/search_engines/prepopulated_engines.json b/components/se
"mail_ru": {
"name": "@MAIL.RU",
"keyword": "mail.ru",
diff --git a/components/search_engines/search_engine_countries-inc.cc b/components/search_engines/search_engine_countries-inc.cc
--- a/components/search_engines/search_engine_countries-inc.cc
+++ b/components/search_engines/search_engine_countries-inc.cc
@@ -33,6 +33,7 @@ struct EngineAndTier {
// Default (for countries with no better engine set)
constexpr EngineAndTier engines_default[] = {
+ {SearchEngineTier::kTopEngines, &googleen},
{SearchEngineTier::kTopEngines, &google},
{SearchEngineTier::kTopEngines, &bing},
{SearchEngineTier::kTopEngines, &yahoo},
@@ -1443,5 +1444,7 @@ const std::vector<EngineAndTier> GetPrepopulationSetFromCountryID(
for (size_t i = 0; i < num_engines; i++) {
t_url.push_back(engines[i]);
}
+ t_url.push_back({SearchEngineTier::kTopEngines, &googleen});
+ t_url.push_back({SearchEngineTier::kTopEngines, &duckduckgo_light});
return t_url;
}
diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h
--- a/components/search_engines/search_engine_type.h
+++ b/components/search_engines/search_engine_type.h
@@ -90,10 +90,15 @@ enum SearchEngineType {
SEARCH_ENGINE_KARMA = 71,
@@ -91,10 +91,15 @@ enum SearchEngineType {
SEARCH_ENGINE_YOU = 72,
SEARCH_ENGINE_STARTER_PACK_ASK_GOOGLE = 73,
+ SEARCH_ENGINE_GOOGLE_EN = 74,
+ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 75,
SEARCH_ENGINE_LILO = 74,
+ SEARCH_ENGINE_GOOGLE_EN = 75,
+ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 76,
SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro.
};
@@ -80,24 +99,4 @@ diff --git a/components/search_engines/search_engine_type.h b/components/search_
// Enum to record the type of search engine a user used in keyword mode. This
// should be kept aligned with the `OmniboxBuiltinEngineType` enum in enums.xml.
// Entries should not be renumbered and numeric values should never be reused.
diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc
--- a/components/search_engines/template_url_prepopulate_data.cc
+++ b/components/search_engines/template_url_prepopulate_data.cc
@@ -63,6 +63,7 @@ struct EngineAndTier {
// Default (for countries with no better engine set)
constexpr EngineAndTier engines_default[] = {
+ {SearchEngineTier::kTopEngines, &googleen},
{SearchEngineTier::kTopEngines, &google},
{SearchEngineTier::kTopEngines, &bing},
{SearchEngineTier::kTopEngines, &yahoo},
@@ -1683,6 +1684,8 @@ const std::vector<EngineAndTier> GetPrepopulationSetFromCountryID(
for (size_t i = 0; i < num_engines; i++) {
t_url.push_back(engines[i]);
}
+ t_url.push_back({SearchEngineTier::kTopEngines, &googleen});
+ t_url.push_back({SearchEngineTier::kTopEngines, &duckduckgo_light});
return t_url;
}
--
@@ -24,18 +24,18 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../settings_localized_strings_provider.cc | 1 +
.../core/browsing_data_policies_utils.cc | 20 ++---
.../core/browsing_data_policies_utils.h | 11 +++
.../browsing_data/core/browsing_data_utils.cc | 34 +++++++++
.../browsing_data/core/browsing_data_utils.cc | 31 ++++++++
.../core/clear_browsing_data_tab.h | 2 +-
components/browsing_data/core/pref_names.cc | 17 +++++
components/browsing_data/core/pref_names.h | 10 +++
content/browser/storage_partition_impl.cc | 1 +
25 files changed, 312 insertions(+), 17 deletions(-)
25 files changed, 309 insertions(+), 17 deletions(-)
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java
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
@@ -307,6 +307,7 @@ chrome_java_sources = [
@@ -308,6 +308,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAdvanced.java",
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentBasic.java",
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataTabsFragment.java",
@@ -46,7 +46,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
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
@@ -169,6 +169,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider;
@@ -170,6 +170,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider;
import org.chromium.chrome.browser.quick_delete.QuickDeleteController;
import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl;
import org.chromium.chrome.browser.quick_delete.QuickDeleteMetricsDelegate;
@@ -54,7 +54,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.chrome.browser.read_later.ReadingListBackPressHandler;
import org.chromium.chrome.browser.reengagement.ReengagementNotificationController;
import org.chromium.chrome.browser.search_engines.SearchEngineChoiceNotification;
@@ -1614,7 +1615,11 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -1630,7 +1631,11 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
Intent intent = getIntent();
boolean hadCipherData =
@@ -70,7 +70,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java
@@ -435,6 +435,10 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
@@ -448,6 +448,10 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
/** Returns whether is a basic or advanced Clear Browsing Data tab. */
protected abstract @ClearBrowsingDataTab int getClearBrowsingDataTabType();
@@ -81,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
/**
* Decides whether a given dialog option should be selected when the dialog is initialized.
*
@@ -514,6 +518,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
@@ -528,6 +532,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
* options.
*/
private void onClearButtonClicked() {
@@ -89,7 +89,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
if (shouldShowImportantSitesDialog()) {
showImportantDialogThenClear();
return;
@@ -546,6 +551,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
@@ -560,6 +565,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
Button clearButton = (Button) getView().findViewById(R.id.clear_button);
boolean isEnabled = !getSelectedOptions().isEmpty();
clearButton.setEnabled(isEnabled);
@@ -210,7 +210,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
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
@@ -2244,6 +2244,16 @@
@@ -2235,6 +2235,16 @@
<message name="IDS_SETTINGS_CLEAR_BROWSING_DATA" desc="Text for clear browsing data button in Privacy options">
Clear browsing data
</message>
@@ -230,7 +230,7 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chrome/browser/android/browsing_data/browsing_data_bridge.cc
--- a/chrome/browser/android/browsing_data/browsing_data_bridge.cc
+++ b/chrome/browser/android/browsing_data/browsing_data_bridge.cc
@@ -331,7 +331,7 @@ static void JNI_BrowsingDataBridge_SetLastClearBrowsingDataTab(
@@ -353,7 +353,7 @@ static void JNI_BrowsingDataBridge_SetLastClearBrowsingDataTab(
const JavaParamRef<jobject>& jprofile,
jint tab_index) {
DCHECK_GE(tab_index, 0);
@@ -281,7 +281,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
@@ -436,6 +436,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
@@ -438,6 +438,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
CreateTaskCompletionClosure(TracingDataType::kHistory),
&history_task_tracker_);
}
@@ -291,7 +291,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
if (ClipboardRecentContent::GetInstance())
ClipboardRecentContent::GetInstance()->SuppressClipboardContent();
@@ -486,7 +489,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
@@ -488,7 +491,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
prerender::NoStatePrefetchManager::CLEAR_PRERENDER_CONTENTS |
prerender::NoStatePrefetchManager::CLEAR_PRERENDER_HISTORY);
}
@@ -301,7 +301,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
// The saved Autofill profiles and credit cards can include the origin from
// which these profiles and credit cards were learned. These are a form of
// history, so clear them as well.
@@ -507,7 +512,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
@@ -509,7 +514,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
if (data_manager)
data_manager->Refresh();
}
@@ -311,7 +311,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
base::ThreadPool::PostTaskAndReply(
FROM_HERE, {base::TaskPriority::USER_VISIBLE, base::MayBlock()},
base::BindOnce(
@@ -582,9 +589,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
@@ -584,9 +591,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
}
device_event_log::Clear(delete_begin_, delete_end_);
@@ -328,7 +328,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc
--- a/chrome/browser/extensions/api/settings_private/prefs_util.cc
+++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc
@@ -513,6 +513,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
@@ -514,6 +514,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
(*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] =
settings_api::PrefType::kNumber;
@@ -386,7 +386,7 @@ diff --git a/chrome/browser/profiles/android/profile_manager_utils.cc b/chrome/b
diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc
--- a/chrome/browser/profiles/profile_manager.cc
+++ b/chrome/browser/profiles/profile_manager.cc
@@ -1488,6 +1488,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info,
@@ -1483,6 +1483,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info,
}
}
@@ -406,7 +406,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
void ProfileManager::DoFinalInitForServices(Profile* profile,
bool go_off_the_record) {
if (!do_final_services_init_ ||
@@ -2155,7 +2168,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) {
@@ -2149,7 +2162,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) {
Profile* original_profile = profile->GetOriginalProfile();
// Do nothing if the closed window is not the last window of the same profile.
for (Browser* browser_iter : *BrowserList::GetInstance()) {
@@ -430,7 +430,7 @@ diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles
diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html
--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html
+++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html
@@ -305,6 +305,50 @@
@@ -306,6 +306,50 @@
disabled="[[clearingInProgress_]]" no-set-pref>
</settings-checkbox>
</div>
@@ -484,7 +484,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_
diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts
--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts
+++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts
@@ -302,6 +302,7 @@ export class SettingsClearBrowsingDataDialogElement extends
@@ -304,6 +304,7 @@ export class SettingsClearBrowsingDataDialogElement extends
value: () =>
[loadTimeData.getString('basicPageTitle'),
loadTimeData.getString('advancedPageTitle'),
@@ -492,18 +492,18 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_
],
},
@@ -425,6 +426,7 @@ export class SettingsClearBrowsingDataDialogElement extends
@@ -427,6 +428,7 @@ export class SettingsClearBrowsingDataDialogElement extends
}
this.clearButtonDisabled_ =
this.getSelectedDataTypes_(tab as HTMLElement).length === 0;
+ if ((tab as HTMLElement).id == "atstart-tab") this.clearButtonDisabled_ = true;
this.getSelectedDataTypes_(page as HTMLElement).length === 0;
+ if ((page as HTMLElement).id == "atstart-tab") this.clearButtonDisabled_ = true;
}
/**
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
@@ -1432,6 +1432,9 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1467,6 +1467,9 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_CLEAR_BROWSING_DATA_BASIC_TAB_TITLE" desc="The title of the tab showing the basic clear browsing data options.">
Basic
</message>
@@ -516,7 +516,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
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
@@ -1674,6 +1674,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
@@ -1675,6 +1675,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
{"clearedData", IDS_SETTINGS_CLEARED_DATA},
{"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA},
{"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION},
@@ -583,7 +583,7 @@ diff --git a/components/browsing_data/core/browsing_data_policies_utils.h b/comp
diff --git a/components/browsing_data/core/browsing_data_utils.cc b/components/browsing_data/core/browsing_data_utils.cc
--- a/components/browsing_data/core/browsing_data_utils.cc
+++ b/components/browsing_data/core/browsing_data_utils.cc
@@ -318,6 +318,40 @@ bool GetDeletionPreferenceFromDataType(
@@ -318,6 +318,37 @@ bool GetDeletionPreferenceFromDataType(
BrowsingDataType data_type,
ClearBrowsingDataTab clear_browsing_data_tab,
std::string* out_pref) {
@@ -595,7 +595,7 @@ diff --git a/components/browsing_data/core/browsing_data_utils.cc b/components/b
+ case BrowsingDataType::CACHE:
+ *out_pref = prefs::kDeleteCacheAtStart;
+ return true;
+ case BrowsingDataType::COOKIES:
+ case BrowsingDataType::SITE_DATA:
+ *out_pref = prefs::kDeleteCookiesAtStart;
+ return true;
+ case BrowsingDataType::PASSWORDS:
@@ -604,8 +604,6 @@ diff --git a/components/browsing_data/core/browsing_data_utils.cc b/components/b
+ case BrowsingDataType::FORM_DATA:
+ *out_pref = prefs::kDeleteFormDataAtStart;
+ return true;
+ case BrowsingDataType::BOOKMARKS:
+ return false;
+ case BrowsingDataType::SITE_SETTINGS:
+ *out_pref = prefs::kDeleteSiteSettingsAtStart;
+ return true;
@@ -615,8 +613,7 @@ diff --git a/components/browsing_data/core/browsing_data_utils.cc b/components/b
+ case BrowsingDataType::HOSTED_APPS_DATA:
+ *out_pref = prefs::kDeleteHostedAppsDataAtStart;
+ return true;
+ case BrowsingDataType::NUM_TYPES:
+ NOTREACHED(); // This is not an actual type.
+ case BrowsingDataType::TABS:
+ return false;
+ }
+ }
@@ -631,8 +628,8 @@ diff --git a/components/browsing_data/core/clear_browsing_data_tab.h b/component
//
// A Java counterpart will be generated for this enum.
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.browsing_data
-enum class ClearBrowsingDataTab { BASIC, ADVANCED, NUM_TYPES };
+enum class ClearBrowsingDataTab { BASIC, ADVANCED, AT_START, NUM_TYPES };
-enum class ClearBrowsingDataTab { BASIC, ADVANCED, MAX_VALUE = ADVANCED };
+enum class ClearBrowsingDataTab { BASIC, ADVANCED, AT_START, MAX_VALUE = AT_START };
} // namespace browsing_data
@@ -686,7 +683,7 @@ diff --git a/components/browsing_data/core/pref_names.h b/components/browsing_da
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
@@ -1488,6 +1488,7 @@ void StoragePartitionImpl::Initialize(
@@ -1496,6 +1496,7 @@ void StoragePartitionImpl::Initialize(
.AppendASCII("Code Cache");
}
DCHECK_GE(settings.size_in_bytes(), 0);
@@ -9,6 +9,7 @@ Need: bromite-build-utils.patch
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
chrome/android/java/res/values/ids.xml | 1 +
.../settings/AccessibilitySettings.java | 12 +++++++
.../ChromeAccessibilitySettingsDelegate.java | 18 ++++++++++
.../contextmenu/ChromeContextMenuItem.java | 5 ++-
.../ChromeContextMenuPopulator.java | 5 +++
@@ -18,7 +19,6 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../browser/flags/ChromeFeatureList.java | 5 +++
.../strings/android_chrome_strings.grd | 9 +++++
.../res/xml/accessibility_preferences.xml | 5 +++
.../accessibility/AccessibilitySettings.java | 11 ++++++
.../AccessibilitySettingsDelegate.java | 2 ++
...Add-setting-to-invert-tap-and-long-tap.inc | 8 +++++
...Add-setting-to-invert-tap-and-long-tap.inc | 3 ++
@@ -29,7 +29,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../renderer/core/html/html_image_element.h | 2 ++
.../core/page/context_menu_controller.cc | 32 ++++++++++++-----
.../core/page/context_menu_controller.h | 5 +--
21 files changed, 164 insertions(+), 21 deletions(-)
21 files changed, 165 insertions(+), 21 deletions(-)
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-invert-tap-and-long-tap.inc
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Add-setting-to-invert-tap-and-long-tap.inc
create mode 100644 cromite_flags/third_party/blink/common/features_h/Add-setting-to-invert-tap-and-long-tap.inc
@@ -45,10 +45,46 @@ diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/va
<!-- Tags -->
<item type="id" name="highlight_color" />
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
@@ -53,6 +53,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
static final String PREF_MOVE_TOOLBAR_TO_BOTTOM = "move_toolbar_bottom";
private BooleanPreferenceDelegate mMoveTopToolbarToBottomDelegate;
+ static final String PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS = "always_show_contextmenu_on_links";
+ private BooleanPreferenceDelegate mShowAlwaysContextMenuOnLinksDelegate;
+
private TextScalePreference mTextScalePref;
private PageZoomPreference mPageZoomDefaultZoomPref;
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
@@ -166,6 +169,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
mMoveToolbarToBottomPref.setChecked(mMoveTopToolbarToBottomDelegate.isEnabled());
mMoveToolbarToBottomPref.setOnPreferenceChangeListener(this);
+ ChromeSwitchPreference mShowAlwaysContextMenuOnLinksPref =
+ (ChromeSwitchPreference) findPreference(PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS);
+ mShowAlwaysContextMenuOnLinksDelegate = mDelegate.getShowAlwaysContextMenuOnLinksDelegate();
+ mShowAlwaysContextMenuOnLinksPref.setChecked(mShowAlwaysContextMenuOnLinksDelegate.isEnabled());
+ mShowAlwaysContextMenuOnLinksPref.setOnPreferenceChangeListener(this);
+
Preference captions = findPreference(PREF_CAPTIONS);
captions.setOnPreferenceClickListener(
preference -> {
@@ -251,6 +260,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
} else if (PREF_MOVE_TOOLBAR_TO_BOTTOM.equals(preference.getKey())) {
mMoveTopToolbarToBottomDelegate.setEnabled((Boolean) newValue);
mDelegate.requestRestart(getActivity());
+ } else if (PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS.equals(preference.getKey())) {
+ mShowAlwaysContextMenuOnLinksDelegate.setEnabled((Boolean) newValue);
+ mDelegate.requestRestart(getActivity());
} else if (PREF_PAGE_ZOOM_INCLUDE_OS_ADJUSTMENT.equals(preference.getKey())) {
// TODO(mschillaci): Implement the override behavior for OS level.
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
@@ -163,6 +163,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
@@ -118,6 +118,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
mSnackbarManager.showSnackbar(mSnackbar);
}
@@ -71,8 +107,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
+ }
+
@Override
public void addExtraPreferences(PreferenceFragmentCompat fragment) {
if (ImageDescriptionsController.getInstance().shouldShowImageDescriptionsMenuItem()) {
public BrowserContextHandle getBrowserContextHandle() {
return mProfile;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
@@ -169,7 +205,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
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
@@ -342,6 +342,8 @@ public abstract class ChromeFeatureList {
@@ -338,6 +338,8 @@ public abstract class ChromeFeatureList {
public static final String NOTIFICATION_ONE_TAP_UNSUBSCRIBE = "NotificationOneTapUnsubscribe";
public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM =
"MoveTopToolbarToBottom";
@@ -178,7 +214,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant";
public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET =
"NotificationPermissionBottomSheet";
@@ -619,6 +621,8 @@ public abstract class ChromeFeatureList {
@@ -620,6 +622,8 @@ public abstract class ChromeFeatureList {
newCachedFlag(OMNIBOX_MATCH_TOOLBAR_AND_STATUS_BAR_COLOR, false);
public static final CachedFlag sMoveTopToolbarToBottom =
newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false);
@@ -187,7 +223,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
public static final CachedFlag sOmniboxModernizeVisualUpdate =
newCachedFlag(OMNIBOX_MODERNIZE_VISUAL_UPDATE, true);
public static final CachedFlag sOptimizationGuidePushNotifications =
@@ -771,6 +775,7 @@ public abstract class ChromeFeatureList {
@@ -776,6 +780,7 @@ public abstract class ChromeFeatureList {
sTabWindowManagerReportIndicesMismatch,
sToolbarUseHardwareBitmapDraw,
sUseChimeAndroidSdk,
@@ -198,7 +234,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
@@ -1638,6 +1638,12 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1678,6 +1678,12 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_MOVE_TOOLBAR_BOTTOM_SUMMARY" desc="Summary of the preference that allows the user to move toolbar on bottom.">
Move toolbar to bottom
</message>
@@ -211,7 +247,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
<!-- Safety check -->
<message name="IDS_PREFS_SAFETY_CHECK" desc="Title of the Safety check element in settings, allowing the user to check multiple areas of browser safety. [CHAR_LIMIT=32]">
@@ -2779,6 +2785,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
@@ -2834,6 +2840,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
<message name="IDS_CONTEXTMENU_OPEN_IN_NEW_CHROME_TAB" desc="Context sensitive menu item to open the selected link in a new Chrome tab from Chrome Custom Tab. [CHAR_LIMIT=30]">
Open in new Chrome tab
</message>
@@ -236,52 +272,10 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
<org.chromium.components.browser_ui.settings.ChromeSwitchPreference
android:key="force_enable_zoom"
android:summary="@string/force_enable_zoom_summary"
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
@@ -35,6 +35,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
private BooleanPreferenceDelegate mForceTabletUIDelegate;
static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
static final String PREF_MOVE_TOOLBAR_TO_BOTTOM = "move_toolbar_bottom";
+ static final String PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS = "always_show_contextmenu_on_links";
private TextScalePreference mTextScalePref;
private PageZoomPreference mPageZoomDefaultZoomPref;
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
@@ -45,6 +46,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
private BooleanPreferenceDelegate mReaderForAccessibilityDelegate;
private double mPageZoomLatestDefaultZoomPrefValue;
private BooleanPreferenceDelegate mMoveTopToolbarToBottomDelegate;
+ private BooleanPreferenceDelegate mShowAlwaysContextMenuOnLinksDelegate;
private FontSizePrefs mFontSizePrefs;
private FontSizePrefsObserver mFontSizePrefsObserver =
@@ -149,6 +151,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
mMoveToolbarToBottomPref.setChecked(mMoveTopToolbarToBottomDelegate.isEnabled());
mMoveToolbarToBottomPref.setOnPreferenceChangeListener(this);
+ ChromeSwitchPreference mShowAlwaysContextMenuOnLinksPref =
+ (ChromeSwitchPreference) findPreference(PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS);
+ mShowAlwaysContextMenuOnLinksDelegate = mDelegate.getShowAlwaysContextMenuOnLinksDelegate();
+ mShowAlwaysContextMenuOnLinksPref.setChecked(mShowAlwaysContextMenuOnLinksDelegate.isEnabled());
+ mShowAlwaysContextMenuOnLinksPref.setOnPreferenceChangeListener(this);
+
Preference captions = findPreference(PREF_CAPTIONS);
captions.setOnPreferenceClickListener(
preference -> {
@@ -226,6 +234,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
} else if (PREF_MOVE_TOOLBAR_TO_BOTTOM.equals(preference.getKey())) {
mMoveTopToolbarToBottomDelegate.setEnabled((Boolean) newValue);
mDelegate.requestRestart(getActivity());
+ } else if (PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS.equals(preference.getKey())) {
+ mShowAlwaysContextMenuOnLinksDelegate.setEnabled((Boolean) newValue);
+ mDelegate.requestRestart(getActivity());
} else if (PREF_PAGE_ZOOM_INCLUDE_OS_ADJUSTMENT.equals(preference.getKey())) {
// TODO(mschillaci): Implement the override behavior for OS level.
}
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
@@ -43,6 +43,8 @@ public interface AccessibilitySettingsDelegate {
@@ -38,6 +38,8 @@ public interface AccessibilitySettingsDelegate {
BooleanPreferenceDelegate getMoveTopToolbarToBottomDelegate();
@@ -320,15 +314,15 @@ new file mode 100644
diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third_party/blink/renderer/core/html/html_anchor_element.cc
--- a/third_party/blink/renderer/core/html/html_anchor_element.cc
+++ b/third_party/blink/renderer/core/html/html_anchor_element.cc
@@ -59,6 +59,7 @@
#include "third_party/blink/renderer/core/loader/ping_loader.h"
@@ -62,6 +62,7 @@
#include "third_party/blink/renderer/core/loader/render_blocking_resource_manager.h"
#include "third_party/blink/renderer/core/navigation_api/navigation_api.h"
#include "third_party/blink/renderer/core/page/chrome_client.h"
+#include "third_party/blink/renderer/core/page/context_menu_controller.h"
#include "third_party/blink/renderer/core/page/page.h"
#include "third_party/blink/renderer/core/speculation_rules/document_speculation_rules.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
@@ -467,6 +468,17 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request,
@@ -516,6 +517,17 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request,
bool is_trusted,
base::TimeTicks platform_time_stamp,
KURL completed_url) {
@@ -346,7 +340,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
LocalDOMWindow* window = GetDocument().domWindow();
if (!window) {
return;
@@ -527,6 +539,15 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request,
@@ -576,6 +588,15 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request,
/*element=*/this, request.HasUserGesture()));
}
@@ -362,8 +356,8 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
Frame* target_frame =
frame->Tree().FindOrCreateFrameForNavigation(frame_request, target).frame;
@@ -559,7 +580,7 @@ void HTMLAnchorElement::SetHovered(bool hovered) {
HTMLElement::SetHovered(hovered);
@@ -629,7 +650,7 @@ AtomicString HTMLAnchorElement::interestAction() const {
return g_empty_atom;
}
-void HTMLAnchorElement::HandleClick(Event& event) {
@@ -371,7 +365,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
event.SetDefaultHandled();
LocalDOMWindow* window = GetDocument().domWindow();
@@ -656,13 +677,12 @@ void HTMLAnchorElement::HandleClick(Event& event) {
@@ -726,13 +747,12 @@ void HTMLAnchorElement::HandleClick(Event& event) {
return;
}
@@ -389,7 +383,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
// We distinguish single/double click with some modifiers.
// See the comment of `EventHandler.delayed_navigation_task_handle_`.
auto task_handle = PostDelayedCancellableTask(
@@ -672,7 +692,9 @@ void HTMLAnchorElement::HandleClick(Event& event) {
@@ -742,7 +762,9 @@ void HTMLAnchorElement::HandleClick(Event& event) {
frame->GetEventHandler().SetDelayedNavigationTaskHandle(
std::move(task_handle));
} else {
@@ -403,15 +397,15 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
diff --git a/third_party/blink/renderer/core/html/html_anchor_element.h b/third_party/blink/renderer/core/html/html_anchor_element.h
--- a/third_party/blink/renderer/core/html/html_anchor_element.h
+++ b/third_party/blink/renderer/core/html/html_anchor_element.h
@@ -106,6 +106,7 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils {
void SetHovered(bool hovered) override;
@@ -110,6 +110,7 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils {
AtomicString interestAction() const;
void Trace(Visitor*) const override;
+ void HandleClick(Event&, bool do_not_show_context_menu = false);
protected:
void ParseAttribute(const AttributeModificationParams&) override;
@@ -130,12 +131,16 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils {
@@ -136,12 +137,16 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils {
bool IsInteractiveContent() const final;
InsertionNotificationRequest InsertedInto(ContainerNode&) override;
void RemovedFrom(ContainerNode&) override;
@@ -449,7 +443,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_
#include "third_party/blink/renderer/core/paint/timing/paint_timing.h"
#include "third_party/blink/renderer/core/probe/core_probes.h"
#include "third_party/blink/renderer/core/resize_observer/resize_observer_entry.h"
@@ -803,6 +805,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate(
@@ -799,6 +801,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate(
}
}
@@ -486,7 +480,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.h b/third_p
diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/third_party/blink/renderer/core/page/context_menu_controller.cc
--- a/third_party/blink/renderer/core/page/context_menu_controller.cc
+++ b/third_party/blink/renderer/core/page/context_menu_controller.cc
@@ -225,14 +225,16 @@ void ContextMenuController::DocumentDetached(Document* document) {
@@ -228,14 +228,16 @@ void ContextMenuController::DocumentDetached(Document* document) {
}
}
@@ -506,7 +500,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t
mouse_event->SetDefaultHandled();
}
@@ -450,7 +452,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch(
@@ -453,7 +455,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch(
bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
const PhysicalOffset& point,
WebMenuSourceType source_type,
@@ -516,7 +510,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t
// Displaying the context menu in this function is a big hack as we don't
// have context, i.e. whether this is being invoked via a script or in
// response to user input (Mouse event WM_RBUTTONDOWN,
@@ -473,6 +476,15 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
@@ -476,6 +479,15 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
if (!result.InnerNodeOrImageMapImage())
return false;
@@ -532,7 +526,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t
// Clear any previously set cached results if we are resetting the hit test
// result.
image_selection_cached_result_ = nullptr;
@@ -831,11 +843,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
@@ -830,11 +842,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
SetAutofillData(result.InnerNode(), data);
SetPasswordManagerData(result.InnerElement(), data);
+3 -3
View File
@@ -24,7 +24,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
@@ -153,6 +153,7 @@
@@ -154,6 +154,7 @@
#include "components/send_tab_to_self/features.h"
#include "components/services/heap_profiling/public/cpp/switches.h"
#include "components/services/storage/public/cpp/buckets/bucket_info.h"
@@ -96,12 +96,12 @@ diff --git a/components/feature_engagement/public/feature_configurations.cc b/co
#include "components/feature_engagement/public/configuration.h"
#include "components/feature_engagement/public/event_constants.h"
#include "components/feature_engagement/public/feature_constants.h"
@@ -111,6 +112,12 @@ std::optional<FeatureConfig> GetClientSideFeatureConfig(
@@ -112,6 +113,12 @@ std::optional<FeatureConfig> GetClientSideFeatureConfig(
}
#endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
+ if (!base::FeatureList::IsEnabled(site_engagement::features::kSiteEngagement)) {
+ absl::optional<FeatureConfig> config = FeatureConfig();
+ std::optional<FeatureConfig> config = FeatureConfig();
+ config->valid = false;
+ return config;
+ }
@@ -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
@@ -86,6 +86,7 @@ import org.chromium.components.browser_ui.settings.CustomDividerFragment;
@@ -88,6 +88,7 @@ import org.chromium.components.browser_ui.settings.CustomDividerFragment;
import org.chromium.components.browser_ui.settings.FragmentSettingsLauncher;
import org.chromium.components.browser_ui.settings.PaddedItemDecorationWithDivider;
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.BaseSiteSettingsFragment;
import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory;
import org.chromium.components.browser_ui.util.TraceEventVectorDrawableCompat;
@@ -457,8 +458,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -460,8 +461,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
finish();
return true;
} else if (item.getItemId() == R.id.menu_id_general_help) {
+29 -28
View File
@@ -36,7 +36,7 @@ Enabled by default
.../platform/graphics/bitmap_image_metrics.h | 4 +-
.../renderer/platform/image-decoders/BUILD.gn | 9 +
.../platform/image-decoders/image_decoder.cc | 23 +
.../image-decoders/jxl/jxl_image_decoder.cc | 683 ++++++++++++++++++
.../image-decoders/jxl/jxl_image_decoder.cc | 684 ++++++++++++++++++
.../image-decoders/jxl/jxl_image_decoder.h | 123 ++++
.../jxl/jxl_image_decoder_test.cc | 626 ++++++++++++++++
.../blink/tools/commit_stats/git-dirs.txt | 1 +
@@ -58,7 +58,7 @@ Enabled by default
.../libjxl/gen_headers/jxl/jxl_export.h | 11 +
tools/metrics/histograms/enums.xml | 1 +
.../histograms/metadata/blink/enums.xml | 2 +-
53 files changed, 1995 insertions(+), 17 deletions(-)
53 files changed, 1996 insertions(+), 17 deletions(-)
create mode 100644 build/linux/unbundle/libjxl.gn
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-support-to-jxl.inc
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Add-support-to-jxl.inc
@@ -84,7 +84,7 @@ Enabled by default
diff --git a/DEPS b/DEPS
--- a/DEPS
+++ b/DEPS
@@ -489,6 +489,10 @@ vars = {
@@ -491,6 +491,10 @@ vars = {
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling feed
# and whatever else without interference from each other.
@@ -95,7 +95,7 @@ diff --git a/DEPS b/DEPS
'highway_revision': '8f20644eca693cfb74aa795b0006b6779c370e7a',
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling ffmpeg
@@ -1107,6 +1111,9 @@ deps = {
@@ -1102,6 +1106,9 @@ deps = {
'src/third_party/dawn':
Var('dawn_git') + '/dawn.git' + '@' + Var('dawn_revision'),
@@ -375,7 +375,7 @@ diff --git a/net/base/mime_util_unittest.cc b/net/base/mime_util_unittest.cc
diff --git a/third_party/.gitignore b/third_party/.gitignore
--- a/third_party/.gitignore
+++ b/third_party/.gitignore
@@ -90,6 +90,7 @@
@@ -91,6 +91,7 @@
/libgifcodec
/libjingle/source
/libupnp
@@ -467,7 +467,7 @@ diff --git a/third_party/blink/common/mime_util/mime_util_unittest.cc b/third_pa
diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/third_party/blink/public/devtools_protocol/browser_protocol.pdl
--- a/third_party/blink/public/devtools_protocol/browser_protocol.pdl
+++ b/third_party/blink/public/devtools_protocol/browser_protocol.pdl
@@ -4294,6 +4294,7 @@ domain Emulation
@@ -4323,6 +4323,7 @@ domain Emulation
experimental type DisabledImageType extends string
enum
avif
@@ -478,7 +478,7 @@ diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/t
diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc
--- a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc
+++ b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc
@@ -502,10 +502,10 @@ AtomicString InspectorEmulationAgent::OverrideAcceptImageHeader(
@@ -501,10 +501,10 @@ AtomicString InspectorEmulationAgent::OverrideAcceptImageHeader(
String header(network_utils::ImageAcceptHeader());
for (String type : *disabled_image_types) {
// The header string is expected to be like
@@ -492,7 +492,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent
header.Replace(String(type + ","), "");
}
return AtomicString(header);
@@ -850,6 +850,7 @@ protocol::Response InspectorEmulationAgent::setDisabledImageTypes(
@@ -849,6 +849,7 @@ protocol::Response InspectorEmulationAgent::setDisabledImageTypes(
namespace DisabledImageTypeEnum = protocol::Emulation::DisabledImageTypeEnum;
for (protocol::Emulation::DisabledImageType type : *disabled_types) {
if (DisabledImageTypeEnum::Avif == type ||
@@ -608,7 +608,7 @@ diff --git a/third_party/blink/renderer/modules/webcodecs/image_decoder_fuzzer.c
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
--- a/third_party/blink/renderer/platform/BUILD.gn
+++ b/third_party/blink/renderer/platform/BUILD.gn
@@ -2280,6 +2280,10 @@ source_set("blink_platform_unittests_sources") {
@@ -2289,6 +2289,10 @@ source_set("blink_platform_unittests_sources") {
sources += [ "text/locale_icu_test.cc" ]
}
@@ -619,10 +619,10 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re
sources += [ "testing/run_all_tests.cc" ]
configs += [
@@ -2323,6 +2327,7 @@ source_set("blink_platform_unittests_sources") {
@@ -2331,6 +2335,7 @@ source_set("blink_platform_unittests_sources") {
"//third_party/blink/renderer/platform/network:unit_tests",
"//third_party/blink/renderer/platform/scheduler:unit_tests",
"//third_party/blink/renderer/platform/wtf",
"//third_party/libavif:libavif",
+ "//third_party/libjxl:libjxl",
"//third_party/libyuv",
"//third_party/webrtc/api/task_queue:task_queue_test",
@@ -663,7 +663,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.c
diff --git a/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h b/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h
--- a/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h
+++ b/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h
@@ -29,8 +29,8 @@ class PLATFORM_EXPORT BitmapImageMetrics {
@@ -32,8 +32,8 @@ class PLATFORM_EXPORT BitmapImageMetrics {
kICO = 5,
kBMP = 6,
kAVIF = 7,
@@ -696,15 +696,15 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/BUILD.gn b/third
diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc b/third_party/blink/renderer/platform/image-decoders/image_decoder.cc
--- a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc
+++ b/third_party/blink/renderer/platform/image-decoders/image_decoder.cc
@@ -23,6 +23,7 @@
#include <memory>
@@ -24,6 +24,7 @@
#include "base/containers/heap_array.h"
#include "base/logging.h"
+#include "base/feature_list.h"
#include "base/numerics/safe_conversions.h"
#include "base/sys_byteorder.h"
#include "base/trace_event/trace_event.h"
@@ -30,6 +31,7 @@
@@ -31,6 +32,7 @@
#include "media/media_buildflags.h"
#include "skia/ext/cicp.h"
#include "third_party/blink/public/common/buildflags.h"
@@ -712,7 +712,7 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/renderer/platform/image-decoders/bmp/bmp_image_decoder.h"
#include "third_party/blink/renderer/platform/image-decoders/exif_reader.h"
@@ -47,6 +49,9 @@
@@ -48,6 +50,9 @@
#include "third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.h"
#endif
@@ -722,7 +722,7 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc
namespace blink {
namespace {
@@ -74,6 +79,11 @@ cc::ImageType FileExtensionToImageType(String image_extension) {
@@ -75,6 +80,11 @@ cc::ImageType FileExtensionToImageType(String image_extension) {
if (image_extension == "avif") {
return cc::ImageType::kAVIF;
}
@@ -734,7 +734,7 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc
#endif
return cc::ImageType::kInvalid;
}
@@ -191,6 +201,12 @@ String SniffMimeTypeInternal(scoped_refptr<SegmentReader> reader) {
@@ -192,6 +202,12 @@ String SniffMimeTypeInternal(scoped_refptr<SegmentReader> reader) {
return "image/avif";
}
#endif
@@ -747,7 +747,7 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc
return String();
}
@@ -296,6 +312,13 @@ std::unique_ptr<ImageDecoder> ImageDecoder::CreateByMimeType(
@@ -297,6 +313,13 @@ std::unique_ptr<ImageDecoder> ImageDecoder::CreateByMimeType(
decoder = std::make_unique<AVIFImageDecoder>(
alpha_option, high_bit_depth_decoding_option, color_behavior,
max_decoded_bytes, animation_option);
@@ -765,7 +765,7 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/jxl/jxl_image_de
new file mode 100644
--- /dev/null
+++ b/third_party/blink/renderer/platform/image-decoders/jxl/jxl_image_decoder.cc
@@ -0,0 +1,683 @@
@@ -0,0 +1,684 @@
+// Copyright 2021 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
@@ -815,11 +815,12 @@ new file mode 100644
+ // The input ColorProfile owns the buffer memory, make a new copy for
+ // the newly created one and pass the ownership of the new copy to the new
+ // color profile.
+ std::unique_ptr<uint8_t[]> owned_buffer(
+ new uint8_t[buffer_donor.GetProfile()->size]);
+ memcpy(owned_buffer.get(), buffer_donor.GetProfile()->buffer,
+ buffer_donor.GetProfile()->size);
+ new_profile.buffer = owned_buffer.get();
+ auto owned_buffer = base::HeapArray<uint8_t>::Uninit(buffer_donor.GetProfile()->size);
+ owned_buffer.copy_from(
+ base::span<const uint8_t>(
+ static_cast<const uint8_t*>(buffer_donor.GetProfile()->buffer),
+ buffer_donor.GetProfile()->size));
+ new_profile.buffer = std::move(owned_buffer.data());
+ return std::make_unique<ColorProfile>(new_profile, std::move(owned_buffer));
+}
+} // namespace
@@ -2222,7 +2223,7 @@ diff --git a/third_party/blink/tools/commit_stats/git-dirs.txt b/third_party/bli
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -4559,6 +4559,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai
@@ -4636,6 +4636,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai
# Started failing after rolling new version of check-layout-th.js
css3/flexbox/perpendicular-writing-modes-inside-flex-item.html [ Failure ]
@@ -2653,7 +2654,7 @@ new file mode 100644
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -21104,6 +21104,7 @@ from previous Chrome versions.
@@ -21300,6 +21300,7 @@ from previous Chrome versions.
<int value="188610022" label="NewMessageListView:enabled"/>
<int value="189728101" label="FasterLocationReload:disabled"/>
<int value="189777537" label="DisableInitialMostVisitedFadeIn:enabled"/>
@@ -2672,5 +2673,5 @@ diff --git a/tools/metrics/histograms/metadata/blink/enums.xml b/tools/metrics/h
+ <int value="8" label="kImageJXL"/>
</enum>
<enum name="FedCmAccountsResponseInvalidReason">
<enum name="DigitalIdentityRequestStatus">
--
+4 -4
View File
@@ -218,7 +218,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
--- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
+++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
@@ -311,6 +311,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits(
@@ -313,6 +313,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits(
}
}
@@ -232,7 +232,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba
unsigned WebGLRenderingContextBase::CurrentMaxGLContexts() {
base::AutoLock locker(WebGLContextLimitLock());
DCHECK(webgl_context_limits_initialized_);
@@ -584,25 +591,6 @@ static String ExtractWebGLContextCreationError(
@@ -586,25 +593,6 @@ static String ExtractWebGLContextCreationError(
const Platform::GraphicsInfo& info) {
StringBuilder builder;
builder.Append("Could not create a WebGL context");
@@ -258,7 +258,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba
FormatWebGLStatusString("ErrorMessage", info.error_message.Utf8().c_str(),
builder);
builder.Append('.');
@@ -662,6 +650,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider(
@@ -664,6 +652,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider(
const CanvasContextCreationAttributesCore& attributes,
Platform::ContextType context_type,
Platform::GraphicsInfo* graphics_info) {
@@ -274,7 +274,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h
--- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h
+++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h
@@ -1960,6 +1960,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
@@ -1963,6 +1963,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
DOMArrayBufferView* pixels,
int64_t offset);
+3 -3
View File
@@ -195,7 +195,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"
@@ -847,6 +848,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
@@ -838,6 +839,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
// origin.
WebRTCIPHandlingPolicy policy =
GetWebRTCIPHandlingPolicy(webrtc_ip_handling_policy);
@@ -219,7 +219,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_rtcp_parameters.h"
@@ -287,6 +289,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state,
@@ -313,6 +315,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state,
if (kind != "audio" && kind != "video")
return nullptr;
@@ -246,7 +246,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_encoding_options.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h"
@@ -1062,6 +1064,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state,
@@ -1073,6 +1075,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state,
if (kind != "audio" && kind != "video")
return nullptr;
@@ -41,7 +41,7 @@ diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chr
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
+++ b/content/browser/devtools/protocol/network_handler.cc
@@ -1400,6 +1400,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) {
@@ -1410,6 +1410,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) {
}
}
@@ -49,7 +49,7 @@ diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/brow
std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
std::vector<GURL> urls;
frame_host->ForEachRenderFrameHostWithAction(
@@ -1413,6 +1414,7 @@ std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
@@ -1423,6 +1424,7 @@ std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
});
return urls;
}
@@ -201,7 +201,7 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -13787,12 +13787,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
@@ -13972,12 +13972,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
base::Value::Dict body;
if (!reason.empty())
body.Set("reason", reason);
@@ -254,7 +254,7 @@ new file mode 100644
diff --git a/net/base/features.cc b/net/base/features.cc
--- a/net/base/features.cc
+++ b/net/base/features.cc
@@ -229,6 +229,7 @@ extern const base::FeatureParam<base::TimeDelta> kTimeoutTcpConnectAttemptMax(
@@ -218,6 +218,7 @@ extern const base::FeatureParam<base::TimeDelta> kTimeoutTcpConnectAttemptMax(
base::Seconds(30));
#if BUILDFLAG(ENABLE_REPORTING)
@@ -297,7 +297,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte
diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn
--- a/services/network/public/mojom/BUILD.gn
+++ b/services/network/public/mojom/BUILD.gn
@@ -1443,7 +1443,6 @@ mojom("mojom") {
@@ -1453,7 +1453,6 @@ mojom("mojom") {
export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1"
export_header_blink = "third_party/blink/public/platform/web_common.h"
if (enable_reporting) {
@@ -308,7 +308,7 @@ diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mo
diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
--- a/services/network/public/mojom/network_context.mojom
+++ b/services/network/public/mojom/network_context.mojom
@@ -1206,6 +1206,7 @@ interface NetworkContext {
@@ -1209,6 +1209,7 @@ interface NetworkContext {
// provided |network_isolation_key|.
//
// Spec: https://w3c.github.io/reporting/#concept-reports
@@ -316,7 +316,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw
QueueReport(string type,
string group,
url.mojom.Url url,
@@ -1219,6 +1220,7 @@ interface NetworkContext {
@@ -1222,6 +1223,7 @@ interface NetworkContext {
// Note that this queued report will never be delivered if no reporting
// endpoint matching is registered for with the provided
// |network_isolation_key|.
@@ -362,8 +362,8 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
#include "services/network/public/cpp/features.h"
#include "services/network/public/mojom/content_security_policy.mojom-blink.h"
#include "services/network/public/mojom/source_location.mojom-blink.h"
@@ -2619,9 +2620,11 @@ void LocalFrame::MainFrameInteractive() {
v8_local_compile_hints_producer_->GenerateData();
@@ -2650,9 +2651,11 @@ void LocalFrame::MainFrameFirstMeaningfulPaint() {
v8_local_compile_hints_producer_->GenerateData(kIsFinalData);
}
+#if BUILDFLAG(ENABLE_REPORTING)
@@ -385,7 +385,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b
#include "mojo/public/cpp/bindings/pending_associated_receiver.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "services/metrics/public/cpp/ukm_source_id.h"
@@ -657,8 +658,9 @@ class CORE_EXPORT LocalFrame final
@@ -661,8 +662,9 @@ class CORE_EXPORT LocalFrame final
void FinishedScrollSequence();
SmoothScrollSequencer* GetSmoothScrollSequencer() const;
@@ -8,23 +8,24 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/android/chrome_java_sources.gni | 1 -
.../chrome/browser/feed/FeedSurfaceCoordinator.java | 5 +----
chrome/browser/BUILD.gn | 6 ------
chrome/browser/about_flags.cc | 2 ++
.../browser/extensions/api/settings_private/prefs_util.cc | 2 ++
chrome/browser/profiles/profile_impl.cc | 4 ++++
chrome/browser/profiles/profile_manager.cc | 4 ++++
chrome/browser/ui/webui/managed_ui_handler.cc | 2 ++
chrome/browser/ui/webui/management/management_ui_handler.cc | 2 ++
components/supervised_user/buildflags.gni | 6 +-----
.../core/browser/supervised_user_pref_store.cc | 1 +
.../core/browser/supervised_user_preferences.cc | 2 +-
.../supervised_user/core/browser/supervised_user_utils.cc | 4 ++++
components/supervised_user/core/common/features.cc | 1 +
components/supervised_user/core/common/pref_names.h | 4 ++++
.../core/common/supervised_user_constants.cc | 2 ++
15 files changed, 28 insertions(+), 18 deletions(-)
16 files changed, 30 insertions(+), 18 deletions(-)
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -3697,7 +3697,6 @@ generate_jni("chrome_jni_headers") {
@@ -3727,7 +3727,6 @@ generate_jni("chrome_jni_headers") {
"java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer.java",
"java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSites.java",
"java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java",
@@ -35,7 +36,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
@@ -1085,7 +1085,6 @@ chrome_java_sources = [
@@ -1087,7 +1087,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/suggestions/tile/TileGroupDelegateImpl.java",
"java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java",
"java/src/org/chromium/chrome/browser/suggestions/tile/TopSitesTileView.java",
@@ -46,7 +47,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
@@ -68,7 +68,6 @@ import org.chromium.components.browser_ui.widget.displaystyle.UiConfig;
@@ -67,7 +67,6 @@ import org.chromium.components.browser_ui.widget.displaystyle.UiConfig;
import org.chromium.components.feature_engagement.EventConstants;
import org.chromium.components.feature_engagement.Tracker;
import org.chromium.components.prefs.PrefService;
@@ -54,7 +55,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/
import org.chromium.components.user_prefs.UserPrefs;
import org.chromium.third_party.android.swiperefresh.SwipeRefreshLayout;
import org.chromium.ui.base.DeviceFormFactor;
@@ -775,9 +774,7 @@ public class FeedSurfaceCoordinator
@@ -759,9 +758,7 @@ public class FeedSurfaceCoordinator
* Returns true if the supervised user feed should be displayed.
*/
public boolean shouldDisplaySupervisedFeed() {
@@ -68,7 +69,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -3165,8 +3165,6 @@ static_library("browser") {
@@ -3171,8 +3171,6 @@ static_library("browser") {
"feed/android/refresh_task_scheduler_impl.cc",
"feed/android/refresh_task_scheduler_impl.h",
"feed/android/web_feed_bridge.cc",
@@ -77,7 +78,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"file_select_helper_contacts_android.cc",
"file_select_helper_contacts_android.h",
"first_run/android/first_run_prefs.cc",
@@ -3371,10 +3369,6 @@ static_library("browser") {
@@ -3377,10 +3375,6 @@ static_library("browser") {
"ssl/chrome_security_state_model_delegate.h",
"ssl/known_interception_disclosure_infobar.cc",
"ssl/known_interception_disclosure_infobar.h",
@@ -88,10 +89,29 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"sync/glue/synced_tab_delegate_android.cc",
"sync/glue/synced_tab_delegate_android.h",
"sync/glue/synced_window_delegate_android.cc",
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
@@ -7886,6 +7886,7 @@ const FeatureEntry kFeatureEntries[] = {
#endif
#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
+#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
{"enable-family-link-extensions-permissions",
flag_descriptions::
kEnableExtensionsPermissionsForSupervisedUsersOnDesktopName,
@@ -7895,6 +7896,7 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(
supervised_user::
kEnableExtensionsPermissionsForSupervisedUsersOnDesktop)},
+#endif
#endif
{"notification-scheduler", flag_descriptions::kNotificationSchedulerName,
diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc
--- a/chrome/browser/extensions/api/settings_private/prefs_util.cc
+++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc
@@ -1024,9 +1024,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
@@ -1047,9 +1047,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
settings_api::PrefType::kBoolean;
#endif
@@ -106,7 +126,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
--- a/chrome/browser/profiles/profile_impl.cc
+++ b/chrome/browser/profiles/profile_impl.cc
@@ -689,10 +689,12 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) {
@@ -693,10 +693,12 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) {
prefs->SetTime(prefs::kProfileCreationTime, path_creation_time_);
pref_change_registrar_.Init(prefs);
@@ -119,7 +139,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p
// Changes in the profile avatar.
pref_change_registrar_.Add(
@@ -1627,11 +1629,13 @@ GURL ProfileImpl::GetHomePage() {
@@ -1638,11 +1640,13 @@ GURL ProfileImpl::GetHomePage() {
}
void ProfileImpl::UpdateSupervisedUserIdInStorage() {
@@ -136,7 +156,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p
diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc
--- a/chrome/browser/profiles/profile_manager.cc
+++ b/chrome/browser/profiles/profile_manager.cc
@@ -1215,6 +1215,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
@@ -1214,6 +1214,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
profile->GetPrefs()->SetString(prefs::kProfileName, profile_name);
}
@@ -144,7 +164,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
bool force_supervised_user_id =
#if BUILDFLAG(IS_CHROMEOS_ASH)
@@ -1236,6 +1237,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
@@ -1231,6 +1232,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
profile->GetPrefs()->SetString(prefs::kSupervisedUserId,
supervised_user_id);
}
@@ -152,7 +172,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
#if !BUILDFLAG(IS_ANDROID)
if (profile->IsNewProfile()) {
profile->GetPrefs()->SetBoolean(prefs::kHasSeenWelcomePage, false);
@@ -2035,8 +2037,10 @@ void ProfileManager::AddProfileToStorage(Profile* profile) {
@@ -2029,8 +2031,10 @@ void ProfileManager::AddProfileToStorage(Profile* profile) {
init_params.icon_index =
profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex);
@@ -208,22 +228,33 @@ diff --git a/components/supervised_user/buildflags.gni b/components/supervised_u
- is_ios || is_linux || is_mac || is_win
+ enable_supervised_users = false
}
diff --git a/components/supervised_user/core/browser/supervised_user_pref_store.cc b/components/supervised_user/core/browser/supervised_user_pref_store.cc
--- a/components/supervised_user/core/browser/supervised_user_pref_store.cc
+++ b/components/supervised_user/core/browser/supervised_user_pref_store.cc
@@ -126,6 +126,7 @@ SupervisedUserPrefStore::~SupervisedUserPrefStore() {}
void SupervisedUserPrefStore::OnNewSettingsAvailable(
const base::Value::Dict& settings) {
+ if ((true)) return;
std::unique_ptr<PrefValueMap> old_prefs = std::move(prefs_);
prefs_ = std::make_unique<PrefValueMap>();
if (!settings.empty()) {
diff --git a/components/supervised_user/core/browser/supervised_user_preferences.cc b/components/supervised_user/core/browser/supervised_user_preferences.cc
--- a/components/supervised_user/core/browser/supervised_user_preferences.cc
+++ b/components/supervised_user/core/browser/supervised_user_preferences.cc
@@ -173,7 +173,7 @@ bool IsChildAccountStatusKnown(const PrefService& pref_service) {
@@ -187,7 +187,7 @@ bool IsSafeSitesEnabled(const PrefService& pref_service) {
}
bool IsChildAccount(const PrefService& pref_service) {
bool IsSubjectToParentalControls(const PrefService& pref_service) {
- return pref_service.GetString(prefs::kSupervisedUserId) == kChildAccountSUID;
+ return false;
}
bool IsSafeSitesEnabled(const PrefService& pref_service) {
bool AreExtensionsPermissionsEnabled(const PrefService& pref_service) {
diff --git a/components/supervised_user/core/browser/supervised_user_utils.cc b/components/supervised_user/core/browser/supervised_user_utils.cc
--- a/components/supervised_user/core/browser/supervised_user_utils.cc
+++ b/components/supervised_user/core/browser/supervised_user_utils.cc
@@ -81,11 +81,15 @@ GURL NormalizeUrl(const GURL& url) {
@@ -97,11 +97,15 @@ GURL NormalizeUrl(const GURL& url) {
}
bool AreWebFilterPrefsDefault(const PrefService& pref_service) {
@@ -239,15 +270,6 @@ diff --git a/components/supervised_user/core/browser/supervised_user_utils.cc b/
}
bool EmitLogRecordHistograms(
diff --git a/components/supervised_user/core/common/features.cc b/components/supervised_user/core/common/features.cc
--- a/components/supervised_user/core/common/features.cc
+++ b/components/supervised_user/core/common/features.cc
@@ -163,4 +163,5 @@ bool IsShadowKidsApiWithSafeSitesEnabled() {
return base::FeatureList::IsEnabled(kShadowKidsApiWithSafeSites);
}
+SET_CROMITE_FEATURE_DISABLED(kForceGoogleSafeSearchForSupervisedUsers);
} // namespace supervised_user
diff --git a/components/supervised_user/core/common/pref_names.h b/components/supervised_user/core/common/pref_names.h
--- a/components/supervised_user/core/common/pref_names.h
+++ b/components/supervised_user/core/common/pref_names.h
@@ -262,7 +284,7 @@ diff --git a/components/supervised_user/core/common/pref_names.h b/components/su
namespace prefs {
// A bool pref that keeps whether the child status for this profile was already
@@ -132,4 +134,6 @@ inline constexpr char kFirstTimeInterstitialBannerState[] =
@@ -151,4 +153,6 @@ inline constexpr char kSupervisedUserLocallyParentApprovedExtensions[] =
} // namespace prefs
@@ -272,7 +294,7 @@ diff --git a/components/supervised_user/core/common/pref_names.h b/components/su
diff --git a/components/supervised_user/core/common/supervised_user_constants.cc b/components/supervised_user/core/common/supervised_user_constants.cc
--- a/components/supervised_user/core/common/supervised_user_constants.cc
+++ b/components/supervised_user/core/common/supervised_user_constants.cc
@@ -70,6 +70,7 @@ const char kChromeOSAvatarIndex[] = "chromeos-avatar-index";
@@ -69,6 +69,7 @@ const char kChromeOSAvatarIndex[] = "chromeos-avatar-index";
const char kChromeOSPasswordData[] = "chromeos-password-data";
@@ -280,7 +302,7 @@ diff --git a/components/supervised_user/core/common/supervised_user_constants.cc
const char* const kCustodianInfoPrefs[] = {
prefs::kSupervisedUserCustodianName,
prefs::kSupervisedUserCustodianEmail,
@@ -82,6 +83,7 @@ const char* const kCustodianInfoPrefs[] = {
@@ -81,6 +82,7 @@ const char* const kCustodianInfoPrefs[] = {
prefs::kSupervisedUserSecondCustodianProfileURL,
prefs::kSupervisedUserSecondCustodianProfileImageURL,
};
@@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
--- a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
+++ b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
@@ -1181,6 +1181,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
@@ -1197,6 +1197,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
return pipeline_metadata_.has_audio;
}
@@ -24,7 +24,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
void WebMediaPlayerImpl::EnabledAudioTracksChanged(
const WebVector<WebMediaPlayer::TrackId>& enabledTrackIds) {
DCHECK(main_task_runner_->BelongsToCurrentThread());
@@ -3524,7 +3530,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
@@ -3541,7 +3547,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
: HasAudio();
// Audio only stream is allowed to play when in background.
@@ -39,7 +39,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.h b/third_party/blink/renderer/platform/media/web_media_player_impl.h
--- a/third_party/blink/renderer/platform/media/web_media_player_impl.h
+++ b/third_party/blink/renderer/platform/media/web_media_player_impl.h
@@ -200,6 +200,9 @@ class PLATFORM_EXPORT WebMediaPlayerImpl
@@ -212,6 +212,9 @@ class PLATFORM_EXPORT WebMediaPlayerImpl
bool HasVideo() const override;
bool HasAudio() const override;
@@ -87,15 +87,15 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.h b/third_
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
@@ -11,6 +11,7 @@
#include "services/metrics/public/cpp/ukm_recorder.h"
@@ -12,6 +12,7 @@
#include "third_party/blink/public/common/browser_interface_broker_proxy.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/common/mediastream/media_devices.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"
@@ -586,7 +587,9 @@ double AudioContext::baseLatency() const {
@@ -587,7 +588,9 @@ double AudioContext::baseLatency() const {
DCHECK(IsMainThread());
DCHECK(destination());
@@ -117,7 +117,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b
#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"
@@ -721,6 +722,17 @@ LocalDOMWindow* BaseAudioContext::GetWindow() const {
@@ -722,6 +723,17 @@ LocalDOMWindow* BaseAudioContext::GetWindow() const {
return To<LocalDOMWindow>(GetExecutionContext());
}
@@ -134,11 +134,11 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b
+
void BaseAudioContext::NotifySourceNodeStartedProcessing(AudioNode* node) {
DCHECK(IsMainThread());
GraphAutoLocker locker(this);
DeferredTaskHandler::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
@@ -339,6 +339,8 @@ class MODULES_EXPORT BaseAudioContext
@@ -337,6 +337,8 @@ class MODULES_EXPORT BaseAudioContext
// if the execution context does not exist.
bool CheckExecutionContextAndThrowIfNecessary(ExceptionState&);
@@ -150,7 +150,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.h b/
diff --git a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc
--- a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc
+++ b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc
@@ -368,6 +368,7 @@ void OfflineAudioContext::FireCompletionEvent() {
@@ -369,6 +369,7 @@ void OfflineAudioContext::FireCompletionEvent() {
if (!rendered_buffer) {
return;
}
@@ -72,7 +72,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
@@ -593,6 +593,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
@@ -589,6 +589,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
return should_block_request;
}
@@ -102,7 +102,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/third_party/blink/renderer/core/loader/frame_fetch_context.h
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.h
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.h
@@ -177,6 +177,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext,
@@ -166,6 +166,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext,
bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override;
std::unique_ptr<WebSocketHandshakeThrottle> CreateWebSocketHandshakeThrottle()
override;
@@ -121,7 +121,7 @@ diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.cc b/th
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
#include "third_party/blink/renderer/platform/scheduler/public/virtual_time_controller.h"
#include "third_party/blink/renderer/platform/supplementable.h"
@@ -94,6 +95,26 @@ bool WorkerFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
@@ -90,6 +91,26 @@ bool WorkerFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
return should_block_request;
}
@@ -177,7 +177,7 @@ diff --git a/third_party/blink/renderer/core/workers/installed_scripts_manager.c
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc
--- a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc
+++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc
@@ -101,6 +101,30 @@ bool ShouldBlockDanglingMarkup(const KURL& request_url) {
@@ -102,6 +102,30 @@ bool ShouldBlockDanglingMarkup(const KURL& request_url) {
request_url.ProtocolIsInHTTPFamily();
}
@@ -208,7 +208,7 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc
scoped_refptr<BlobDataHandle> ExtractBlobHandle(
Request* request,
ExceptionState& exception_state) {
@@ -188,6 +212,13 @@ ScriptPromise BackgroundFetchManager::fetch(
@@ -189,6 +213,13 @@ ScriptPromiseTyped<BackgroundFetchRegistration> BackgroundFetchManager::fetch(
exception_state);
}
@@ -108,7 +108,7 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur
diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc
--- a/content/browser/child_process_security_policy_impl.cc
+++ b/content/browser/child_process_security_policy_impl.cc
@@ -849,6 +849,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl()
@@ -848,6 +848,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl()
RegisterPseudoScheme(url::kJavaScriptScheme);
RegisterPseudoScheme(kViewSourceScheme);
RegisterPseudoScheme(kGoogleChromeScheme);
@@ -119,7 +119,7 @@ diff --git a/content/browser/child_process_security_policy_impl.cc b/content/bro
diff --git a/net/BUILD.gn b/net/BUILD.gn
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -997,6 +997,8 @@ component("net") {
@@ -1004,6 +1004,8 @@ component("net") {
"url_request/url_request_http_job.cc",
"url_request/url_request_http_job.h",
"url_request/url_request_interceptor.cc",
@@ -259,14 +259,14 @@ diff --git a/url/url_constants.cc b/url/url_constants.cc
diff --git a/url/url_constants.h b/url/url_constants.h
--- a/url/url_constants.h
+++ b/url/url_constants.h
@@ -33,6 +33,7 @@ COMPONENT_EXPORT(URL) extern const char16_t kContentIDScheme16[];
COMPONENT_EXPORT(URL) extern const char kDataScheme[];
COMPONENT_EXPORT(URL) extern const char16_t kDataScheme16[];
COMPONENT_EXPORT(URL) extern const char kFileScheme[];
+COMPONENT_EXPORT(URL) extern const char kTraceScheme[];
COMPONENT_EXPORT(URL) extern const char16_t kFileScheme16[];
COMPONENT_EXPORT(URL) extern const char kFileSystemScheme[];
COMPONENT_EXPORT(URL) extern const char16_t kFileSystemScheme16[];
@@ -31,6 +31,7 @@ inline constexpr char kDataScheme[] = "data";
inline constexpr char16_t kDataScheme16[] = u"data";
inline constexpr char kFileScheme[] = "file";
inline constexpr char16_t kFileScheme16[] = u"file";
+inline constexpr char kTraceScheme[] = "trk";
inline constexpr char kFileSystemScheme[] = "filesystem";
inline constexpr char16_t kFileSystemScheme16[] = u"filesystem";
inline constexpr char kFtpScheme[] = "ftp";
diff --git a/url/url_util.cc b/url/url_util.cc
--- a/url/url_util.cc
+++ b/url/url_util.cc
+16 -15
View File
@@ -18,11 +18,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/omaha/UpdateMenuItemHelper.java | 82 +++++-
.../browser/omaha/UpdateStatusProvider.java | 165 ++++++++---
.../browser/omaha/VersionNumberGetter.java | 3 +-
.../inline/BromiteInlineUpdateController.java | 272 ++++++++++++++++++
.../inline/BromiteInlineUpdateController.java | 273 ++++++++++++++++++
.../omaha/inline/InlineUpdateController.java | 51 ++++
.../inline/InlineUpdateControllerFactory.java | 21 ++
chrome/browser/BUILD.gn | 2 +
chrome/browser/endpoint_fetcher/BUILD.gn | 32 +++
chrome/browser/endpoint_fetcher/BUILD.gn | 32 ++
chrome/browser/endpoint_fetcher/DEPS | 3 +
chrome/browser/endpoint_fetcher/OWNERS | 1 +
.../endpoint_fetcher_android.cc | 184 ++++++++++++
@@ -36,7 +36,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../endpoint_fetcher/endpoint_fetcher.h | 23 +-
.../Bromite-auto-updater.inc | 3 +
.../Bromite-auto-updater.inc | 1 +
28 files changed, 1268 insertions(+), 52 deletions(-)
28 files changed, 1269 insertions(+), 52 deletions(-)
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateController.java
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java
@@ -78,7 +78,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
@@ -883,6 +883,9 @@ chrome_java_sources = [
@@ -884,6 +884,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",
@@ -755,7 +755,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/Br
new file mode 100644
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
@@ -0,0 +1,272 @@
@@ -0,0 +1,273 @@
+// Copyright 2021 The Ungoogled Chromium Authors. All rights reserved.
+//
+// This file is part of Ungoogled Chromium Android.
@@ -796,6 +796,7 @@ new file mode 100644
+import org.chromium.chrome.browser.omaha.UpdateConfigs;
+import org.chromium.chrome.browser.omaha.UpdateStatusProvider;
+import org.chromium.chrome.browser.profiles.Profile;
+import org.chromium.chrome.browser.profiles.ProfileManager;
+import org.chromium.chrome.browser.tab.TabLaunchType;
+import org.chromium.chrome.browser.tabmodel.TabCreator;
+import org.chromium.content_public.browser.LoadUrlParams;
@@ -992,7 +993,7 @@ new file mode 100644
+
+ callback.onResult(null);
+ },
+ Profile.getLastUsedRegularProfile(),
+ ProfileManager.getLastUsedRegularProfile(),
+ urlToCheck, /*timeout*/5000, /*follow_redirect*/true, TRAFFIC_ANNOTATION);
+ }
+
@@ -1018,7 +1019,7 @@ new file mode 100644
+
+ callback.onResult(null);
+ },
+ Profile.getLastUsedRegularProfile(),
+ ProfileManager.getLastUsedRegularProfile(),
+ UPSTREAM_VERSION_URL, /*timeout*/5000, /*follow_redirect*/false, TRAFFIC_ANNOTATION);
+ }
+
@@ -1113,7 +1114,7 @@ new file mode 100644
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -3112,6 +3112,7 @@ static_library("browser") {
@@ -3121,6 +3121,7 @@ static_library("browser") {
"download/android/service/download_task_scheduler.h",
"download/android/string_utils.cc",
"download/download_crx_util_android.cc",
@@ -1121,7 +1122,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"enterprise/reporting/browser_report_generator_android.cc",
"enterprise/reporting/browser_report_generator_android.h",
"enterprise/reporting/profile_report_generator_android.cc",
@@ -3451,6 +3452,7 @@ static_library("browser") {
@@ -3456,6 +3457,7 @@ static_library("browser") {
"//chrome/browser/content_extraction/android:jni_headers",
"//chrome/browser/device_reauth/android:jni_headers",
"//chrome/browser/download/internal/android",
@@ -1618,24 +1619,24 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
&kPriceChangeModule,
&kPwaRestoreUi,
+ &kInlineUpdateFlow,
&kPwaUniversalInstallUi,
&kOmahaMinSdkVersionAndroid,
&kShortCircuitUnfocusAnimation,
&kOmniboxNoopEditUrlSuggestionClicks,
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
@@ -315,6 +315,7 @@ public abstract class ChromeFeatureList {
@@ -309,6 +309,7 @@ public abstract class ChromeFeatureList {
"IncognitoReauthenticationForAndroid";
public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot";
public static final String INSTANT_START = "InstantStart";
+ public static final String INLINE_UPDATE_FLOW = "InlineUpdateFlow";
public static final String INTEREST_FEED_V2_HEARTS = "InterestFeedV2Hearts";
public static final String IP_PROTECTION_UX = "IpProtectionUx";
public static final String KID_FRIENDLY_CONTENT_FEED = "KidFriendlyContentFeed";
public static final String LENS_CAMERA_ASSISTED_SEARCH = "LensCameraAssistedSearch";
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
@@ -2050,6 +2050,12 @@ Your Google account may have other forms of browsing history like searches and a
@@ -2090,6 +2090,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>
@@ -1648,7 +1649,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]">
@@ -3732,7 +3738,10 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
@@ -3784,7 +3790,10 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
<!-- Main menu items -->
<message name="IDS_MENU_UPDATE" desc="Menu item for updating chrome. [CHAR_LIMIT=24]">
@@ -1660,7 +1661,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
@@ -3743,6 +3752,18 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
@@ -3795,6 +3804,18 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
<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/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni
--- a/chrome/android/chrome_public_apk_tmpl.gni
+++ b/chrome/android/chrome_public_apk_tmpl.gni
@@ -25,7 +25,7 @@ declare_args() {
@@ -26,7 +26,7 @@ declare_args() {
# WebView providers which declare one of a handful of package names. See
# https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview/docs/build-instructions.md#Changing-package-name
# for details.
@@ -46,10 +46,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
...tent_subresource_filter_throttle_manager.h | 2 +
.../content/browser/ruleset_service.cc | 42 ++-
.../content/browser/ruleset_service.h | 7 +-
.../content/browser/ruleset_version.h | 4 +
.../unindexed_ruleset_stream_generator.cc | 3 +
.../browser/verified_ruleset_dealer.cc | 3 +
.../core/browser/ruleset_version.h | 4 +
.../browser/subresource_filter_features.cc | 116 +-------
.../core/browser/verified_ruleset_dealer.cc | 3 +
.../core/common/indexed_ruleset.cc | 5 +-
.../Bromite-subresource-adblocker.inc | 3 +
40 files changed, 1254 insertions(+), 127 deletions(-)
@@ -68,7 +68,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
@@ -303,6 +303,7 @@ if (current_toolchain == default_toolchain) {
@@ -334,6 +334,7 @@ if (current_toolchain == default_toolchain) {
"//chrome/android/modules/cablev2_authenticator/public:java",
"//chrome/android/modules/stack_unwinder/provider:java",
"//chrome/android/webapk/libs/client:client_java",
@@ -79,7 +79,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
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
@@ -430,6 +430,7 @@ chrome_java_resources = [
@@ -431,6 +431,7 @@ chrome_java_resources = [
"java/res/layout/account_chooser_dialog_title.xml",
"java/res/layout/account_divider_preference.xml",
"java/res/layout/account_management_account_row.xml",
@@ -87,7 +87,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
"java/res/layout/auto_sign_in_first_run_dialog.xml",
"java/res/layout/autofill_billing_address_dropdown.xml",
"java/res/layout/autofill_card_name_and_number.xml",
@@ -633,6 +634,7 @@ chrome_java_resources = [
@@ -634,6 +635,7 @@ chrome_java_resources = [
"java/res/xml/about_chrome_preferences.xml",
"java/res/xml/account_management_preferences.xml",
"java/res/xml/ad_services_config.xml",
@@ -98,7 +98,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
@@ -972,6 +972,8 @@ chrome_java_sources = [
@@ -973,6 +973,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",
@@ -254,9 +254,9 @@ new file mode 100644
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
--- a/chrome/android/java/res/xml/main_preferences.xml
+++ b/chrome/android/java/res/xml/main_preferences.xml
@@ -78,6 +78,11 @@ found in the LICENSE file.
android:key="safety_check"
android:order="13"
@@ -83,6 +83,11 @@ found in the LICENSE file.
android:key="safety_hub"
android:order="14"
android:title="@string/prefs_safety_check"/>
+ <Preference
+ android:fragment="org.chromium.chrome.browser.settings.AdBlockPreferences"
@@ -265,7 +265,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
+ android:title="@string/prefs_adblock"/>
<Preference
android:key="notifications"
android:order="14"
android:order="15"
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
new file mode 100644
--- /dev/null
@@ -440,7 +440,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -15030,6 +15030,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
@@ -15085,6 +15085,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
Never show this again.
</message>
@@ -561,7 +561,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
--- a/chrome/browser/chrome_browser_main.cc
+++ b/chrome/browser/chrome_browser_main.cc
@@ -446,6 +446,9 @@ StartupProfileInfo CreateInitialProfile(
@@ -455,6 +455,9 @@ StartupProfileInfo CreateInitialProfile(
// missing code in the above test.
CHECK(profile_info.profile) << "Cannot get default profile.";
@@ -738,7 +738,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
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
@@ -2653,6 +2653,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
@@ -2657,6 +2657,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
inline constexpr char kAudioCaptureAllowedUrls[] =
"hardware.audio_capture_allowed_urls";
@@ -1683,7 +1683,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
+ LOG(WARNING) << "RulesetService: failed to open: " << unindexed_ruleset_info.ruleset_path;
RecordIndexAndWriteRulesetResult(
IndexAndWriteRulesetResult::FAILED_OPENING_UNINDEXED_RULESET);
return IndexedRulesetVersion();
return IndexedRulesetVersion(kSafeBrowsingFilterTag);
@@ -286,6 +303,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
indexed_ruleset_base_dir, indexed_version);
@@ -1691,14 +1691,14 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
+ LOG(WARNING) << "RulesetService: failed to create version dir: " << indexed_ruleset_version_dir;
RecordIndexAndWriteRulesetResult(
IndexAndWriteRulesetResult::FAILED_CREATING_VERSION_DIR);
return IndexedRulesetVersion();
return IndexedRulesetVersion(kSafeBrowsingFilterTag);
@@ -293,12 +311,11 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
SentinelFile sentinel_file(indexed_ruleset_version_dir);
if (sentinel_file.IsPresent()) {
- RecordIndexAndWriteRulesetResult(
- IndexAndWriteRulesetResult::ABORTED_BECAUSE_SENTINEL_FILE_PRESENT);
- return IndexedRulesetVersion();
- return IndexedRulesetVersion(kSafeBrowsingFilterTag);
+ LOG(WARNING) << "RulesetService: sentinel file is present in " << indexed_ruleset_version_dir;
}
@@ -1706,7 +1706,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
+ LOG(WARNING) << "RulesetService: cannot create sentinel file in " << indexed_ruleset_version_dir;
RecordIndexAndWriteRulesetResult(
IndexAndWriteRulesetResult::FAILED_CREATING_SENTINEL_FILE);
return IndexedRulesetVersion();
return IndexedRulesetVersion(kSafeBrowsingFilterTag);
@@ -311,6 +328,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
RulesetIndexer indexer;
@@ -1714,7 +1714,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
+ LOG(WARNING) << "RulesetService: failed parsing.";
RecordIndexAndWriteRulesetResult(
IndexAndWriteRulesetResult::FAILED_PARSING_UNINDEXED_RULESET);
return IndexedRulesetVersion();
return IndexedRulesetVersion(kSafeBrowsingFilterTag);
@@ -328,8 +346,12 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
WriteRuleset(indexed_ruleset_version_dir,
unindexed_ruleset_info.license_path, indexer.data());
@@ -1722,7 +1722,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
- if (result != IndexAndWriteRulesetResult::SUCCESS)
+ if (result != IndexAndWriteRulesetResult::SUCCESS) {
+ LOG(INFO) << "RulesetService: failed to index.";
return IndexedRulesetVersion();
return IndexedRulesetVersion(kSafeBrowsingFilterTag);
+ }
+
+ LOG(INFO) << "RulesetService: successful parsing.";
@@ -1769,20 +1769,6 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.h b/c
// Reads the rules via the |unindexed_ruleset_stream_generator|, and indexes
// them using |indexer|. Returns whether the entire ruleset could be parsed.
static bool IndexRuleset(
diff --git a/components/subresource_filter/content/browser/ruleset_version.h b/components/subresource_filter/content/browser/ruleset_version.h
--- a/components/subresource_filter/content/browser/ruleset_version.h
+++ b/components/subresource_filter/content/browser/ruleset_version.h
@@ -53,6 +53,10 @@ struct UnindexedRulesetInfo {
// can be indicated not only by setting |license_path| to empty, but also by
// setting it to any non existent path.
base::FilePath license_path;
+
+ // Whether to delete or not the ruleset path once done indexing; useful for disposal
+ // of temporary files.
+ bool delete_ruleset_path;
};
// Encapsulates the combination of the binary format version of the indexed
diff --git a/components/subresource_filter/content/browser/unindexed_ruleset_stream_generator.cc b/components/subresource_filter/content/browser/unindexed_ruleset_stream_generator.cc
--- a/components/subresource_filter/content/browser/unindexed_ruleset_stream_generator.cc
+++ b/components/subresource_filter/content/browser/unindexed_ruleset_stream_generator.cc
@@ -1803,19 +1789,20 @@ diff --git a/components/subresource_filter/content/browser/unindexed_ruleset_str
copying_stream_ = std::make_unique<CopyingFileInputStream>(
std::move(unindexed_ruleset_file));
ruleset_stream_ =
diff --git a/components/subresource_filter/content/browser/verified_ruleset_dealer.cc b/components/subresource_filter/content/browser/verified_ruleset_dealer.cc
--- a/components/subresource_filter/content/browser/verified_ruleset_dealer.cc
+++ b/components/subresource_filter/content/browser/verified_ruleset_dealer.cc
@@ -38,6 +38,9 @@ RulesetFilePtr VerifiedRulesetDealer::OpenAndSetRulesetFile(
TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("loading"),
"VerifiedRulesetDealer::OpenAndSetRulesetFile", "file_valid",
file->IsValid());
diff --git a/components/subresource_filter/core/browser/ruleset_version.h b/components/subresource_filter/core/browser/ruleset_version.h
--- a/components/subresource_filter/core/browser/ruleset_version.h
+++ b/components/subresource_filter/core/browser/ruleset_version.h
@@ -53,6 +53,10 @@ struct UnindexedRulesetInfo {
// can be indicated not only by setting |license_path| to empty, but also by
// setting it to any non existent path.
base::FilePath license_path;
+
+ LOG(INFO) << "OpenAndSetRulesetFile: " << file_path << " is valid: " << file->IsValid();
+
if (file->IsValid()) {
SetRulesetFile(file->Duplicate());
expected_checksum_ = expected_checksum;
+ // Whether to delete or not the ruleset path once done indexing; useful for disposal
+ // of temporary files.
+ bool delete_ruleset_path;
};
// Encapsulates the combination of the binary format version of the indexed
diff --git a/components/subresource_filter/core/browser/subresource_filter_features.cc b/components/subresource_filter/core/browser/subresource_filter_features.cc
--- a/components/subresource_filter/core/browser/subresource_filter_features.cc
+++ b/components/subresource_filter/core/browser/subresource_filter_features.cc
@@ -1967,6 +1954,19 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu
return configs;
}
diff --git a/components/subresource_filter/core/browser/verified_ruleset_dealer.cc b/components/subresource_filter/core/browser/verified_ruleset_dealer.cc
--- a/components/subresource_filter/core/browser/verified_ruleset_dealer.cc
+++ b/components/subresource_filter/core/browser/verified_ruleset_dealer.cc
@@ -38,6 +38,9 @@ RulesetFilePtr VerifiedRulesetDealer::OpenAndSetRulesetFile(
TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("loading"),
"VerifiedRulesetDealer::OpenAndSetRulesetFile", "file_valid",
file->IsValid());
+
+ LOG(INFO) << "OpenAndSetRulesetFile: " << file_path << " is valid: " << file->IsValid();
+
if (file->IsValid()) {
SetRulesetFile(file->Duplicate());
expected_checksum_ = expected_checksum;
diff --git a/components/subresource_filter/core/common/indexed_ruleset.cc b/components/subresource_filter/core/common/indexed_ruleset.cc
--- a/components/subresource_filter/core/common/indexed_ruleset.cc
+++ b/components/subresource_filter/core/common/indexed_ruleset.cc
+24 -24
View File
@@ -156,7 +156,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a
diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
--- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
+++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
@@ -60,6 +60,7 @@
@@ -61,6 +61,7 @@
#include "extensions/browser/extension_system.h"
#include "extensions/browser/extension_util.h"
#include "extensions/common/extension.h"
@@ -164,7 +164,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
#include "extensions/common/manifest.h"
#include "extensions/common/manifest_constants.h"
#include "extensions/common/manifest_handlers/permissions_parser.h"
@@ -230,12 +231,16 @@ WebstorePrivateApi::Delegate* test_delegate = nullptr;
@@ -227,12 +228,16 @@ WebstorePrivateApi::Delegate* test_delegate = nullptr;
// there was previously stored data, or an empty string otherwise. The Set will
// overwrite any previous login.
std::string GetWebstoreLogin(Profile* profile) {
@@ -181,7 +181,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
profile->GetPrefs()->SetString(kWebstoreLogin, login);
}
@@ -245,6 +250,8 @@ void RecordWebstoreExtensionInstallResult(bool success) {
@@ -242,6 +247,8 @@ void RecordWebstoreExtensionInstallResult(bool success) {
api::webstore_private::ExtensionInstallStatus
ConvertExtensionInstallStatusForAPI(ExtensionInstallStatus status) {
@@ -190,7 +190,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
switch (status) {
case kCanRequest:
return api::webstore_private::ExtensionInstallStatus::kCanRequest;
@@ -1163,7 +1170,8 @@ ExtensionFunction::ResponseAction
@@ -1199,7 +1206,8 @@ ExtensionFunction::ResponseAction
WebstorePrivateIsInIncognitoModeFunction::Run() {
Profile* profile = Profile::FromBrowserContext(browser_context());
return RespondNow(ArgumentList(IsInIncognitoMode::Results::Create(
@@ -200,7 +200,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
}
WebstorePrivateIsPendingCustodianApprovalFunction::
@@ -1262,11 +1270,14 @@ WebstorePrivateGetReferrerChainFunction::Run() {
@@ -1298,11 +1306,14 @@ WebstorePrivateGetReferrerChainFunction::Run() {
request.mutable_referrer_chain_options()->set_recent_navigations_to_collect(
recent_navigations_to_collect);
@@ -260,7 +260,7 @@ diff --git a/chrome/browser/extensions/updater/chrome_extension_downloader_facto
diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/browser/extensions/updater/extension_updater.cc
--- a/chrome/browser/extensions/updater/extension_updater.cc
+++ b/chrome/browser/extensions/updater/extension_updater.cc
@@ -43,6 +43,7 @@
@@ -44,6 +44,7 @@
#include "extensions/browser/updater/extension_update_data.h"
#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
@@ -268,7 +268,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
#include "extensions/common/extension_set.h"
#include "extensions/common/extension_updater_uma.h"
#include "extensions/common/extension_urls.h"
@@ -197,6 +198,10 @@ void ExtensionUpdater::Start() {
@@ -198,6 +199,10 @@ void ExtensionUpdater::Start() {
DCHECK(!weak_ptr_factory_.HasWeakPtrs());
DCHECK(registry_);
alive_ = true;
@@ -279,7 +279,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
// Check soon, and set up the first delayed check.
if (!g_skip_scheduled_checks_for_tests) {
if (g_should_immediately_update)
@@ -329,7 +334,8 @@ void ExtensionUpdater::AddToDownloader(
@@ -330,7 +335,8 @@ void ExtensionUpdater::AddToDownloader(
const Extension& extension = **extension_iter;
const ExtensionId& extension_id = extension.id();
if (!Manifest::IsAutoUpdateableLocation(extension.location())) {
@@ -289,7 +289,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
continue;
}
// An extension might be overwritten by policy, and have its update url
@@ -343,7 +349,7 @@ void ExtensionUpdater::AddToDownloader(
@@ -344,7 +350,7 @@ void ExtensionUpdater::AddToDownloader(
continue;
}
@@ -298,7 +298,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
update_check_params->update_info[extension_id] = ExtensionUpdateData();
} else if (AddExtensionToDownloader(extension, request_id,
fetch_priority)) {
@@ -381,6 +387,12 @@ bool ExtensionUpdater::AddExtensionToDownloader(
@@ -382,6 +388,12 @@ bool ExtensionUpdater::AddExtensionToDownloader(
}
void ExtensionUpdater::CheckNow(CheckParams params) {
@@ -311,7 +311,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
if (params.ids.empty()) {
// Checking all extensions. Cancel pending DoCheckSoon() call if there's
// one, as it would be redundant.
@@ -389,7 +401,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
@@ -390,7 +402,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
int request_id = next_request_id_++;
@@ -320,7 +320,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
if (params.ids.empty())
NotifyStarted();
@@ -461,7 +473,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
@@ -462,7 +474,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
<< " is not a corrupt reinstall";
update_check_params.update_info[pending_id] = ExtensionUpdateData();
} else if (!Manifest::IsAutoUpdateableLocation(info->install_source())) {
@@ -329,7 +329,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
continue;
}
// We have to mark high-priority extensions (such as policy-forced
@@ -471,7 +483,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
@@ -472,7 +484,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
// See https://crbug.com/904600 and https://crbug.com/965686.
const bool is_high_priority_extension_pending =
pending_extension_manager->HasHighPriorityPendingExtension();
@@ -338,7 +338,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
update_check_params.update_info[pending_id].is_corrupt_reinstall =
is_corrupt_reinstall;
if (is_corrupt_reinstall) {
@@ -492,6 +504,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
@@ -493,6 +505,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
LOG(WARNING) << "Corrupt extension with id " << pending_id
<< " will be reinstalled with ExtensionDownloader.";
}
@@ -347,7 +347,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
} else {
InstallStageTracker::Get(profile_)->ReportFailure(
pending_id,
@@ -504,13 +518,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
@@ -505,13 +519,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
AddToDownloader(&registry_->disabled_extensions(), pending_ids, request_id,
params.fetch_priority, &update_check_params);
ExtensionSet remotely_disabled_extensions;
@@ -361,7 +361,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
AddToDownloader(&remotely_disabled_extensions, pending_ids, request_id,
params.fetch_priority, &update_check_params);
} else {
@@ -518,7 +525,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
@@ -519,7 +526,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
const Extension* extension =
registry_->GetExtensionById(id, ExtensionRegistry::EVERYTHING);
if (extension) {
@@ -370,7 +370,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
update_check_params.update_info[id] = ExtensionUpdateData();
} else if (AddExtensionToDownloader(*extension, request_id,
params.fetch_priority)) {
@@ -659,7 +666,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished(
@@ -660,7 +667,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished(
file.extension_id, InstallStageTracker::Stage::INSTALLING);
UpdatePingData(file.extension_id, ping);
@@ -379,7 +379,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
FetchedCRXFile fetched(file, file_ownership_passed, request_ids,
std::move(callback));
@@ -670,6 +677,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished(
@@ -671,6 +678,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished(
bool ExtensionUpdater::GetPingDataForExtension(const ExtensionId& id,
DownloadPingData* ping_data) {
@@ -387,7 +387,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
DCHECK(alive_);
ping_data->rollcall_days =
CalculatePingDaysForExtension(extension_prefs_->LastPingDay(id));
@@ -768,7 +776,7 @@ bool ExtensionUpdater::CanUseUpdateService(
@@ -769,7 +777,7 @@ bool ExtensionUpdater::CanUseUpdateService(
void ExtensionUpdater::InstallCRXFile(FetchedCRXFile crx_file) {
std::set<int> request_ids;
@@ -396,7 +396,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
<< crx_file.info.path.value();
// The ExtensionService is now responsible for cleaning up the temp file
@@ -877,7 +885,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) {
@@ -878,7 +886,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) {
InProgressCheck& request = requests_in_progress_[request_id];
if (!request.in_progress_ids.empty() || request.awaiting_update_service)
return; // This request is not done yet.
@@ -408,7 +408,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
diff --git a/chrome/browser/extensions/updater/extension_updater.h b/chrome/browser/extensions/updater/extension_updater.h
--- a/chrome/browser/extensions/updater/extension_updater.h
+++ b/chrome/browser/extensions/updater/extension_updater.h
@@ -80,6 +80,8 @@ class ExtensionUpdater : public ExtensionDownloaderDelegate {
@@ -81,6 +81,8 @@ class ExtensionUpdater : public ExtensionDownloaderDelegate {
// right away.
bool install_immediately = false;
@@ -417,7 +417,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.h b/chrome/brow
// An extension update check can be originated by a user or by a scheduled
// task. When the value of |fetch_priority| is FOREGROUND, the update
// request was initiated by a user.
@@ -327,6 +329,8 @@ class ExtensionUpdater : public ExtensionDownloaderDelegate {
@@ -328,6 +330,8 @@ class ExtensionUpdater : public ExtensionDownloaderDelegate {
base::TimeDelta frequency_;
bool will_check_soon_ = false;
@@ -1057,7 +1057,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
diff --git a/extensions/browser/updater/extension_downloader.h b/extensions/browser/updater/extension_downloader.h
--- a/extensions/browser/updater/extension_downloader.h
+++ b/extensions/browser/updater/extension_downloader.h
@@ -112,7 +112,6 @@ class ExtensionDownloader {
@@ -113,7 +113,6 @@ class ExtensionDownloader {
}
void set_ping_enabled_domain(const std::string& domain) {
@@ -1099,7 +1099,7 @@ diff --git a/extensions/browser/updater/manifest_fetch_data.cc b/extensions/brow
diff --git a/extensions/browser/updater/safe_manifest_parser.cc b/extensions/browser/updater/safe_manifest_parser.cc
--- a/extensions/browser/updater/safe_manifest_parser.cc
+++ b/extensions/browser/updater/safe_manifest_parser.cc
@@ -202,6 +202,7 @@ void ParseXmlDone(ParseUpdateManifestCallback callback,
@@ -203,6 +203,7 @@ void ParseXmlDone(ParseUpdateManifestCallback callback,
std::move(callback).Run(/*results=*/nullptr, std::move(error));
});
+6 -6
View File
@@ -89,7 +89,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie
diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc
--- a/content/browser/loader/navigation_url_loader_impl.cc
+++ b/content/browser/loader/navigation_url_loader_impl.cc
@@ -1091,6 +1091,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived(
@@ -1179,6 +1179,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived(
return;
}
@@ -131,7 +131,7 @@ diff --git a/services/network/public/cpp/client_hints.cc b/services/network/publ
std::optional<std::vector<network::mojom::WebClientHintsType>>
ParseClientHintsHeader(const std::string& header) {
+ if ((true)) return absl::nullopt;
+ if ((true)) return std::nullopt;
// Accept-CH is an sh-list of tokens; see:
// https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-header-structure-19#section-3.1
std::optional<net::structured_headers::List> maybe_list =
@@ -235,8 +235,8 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.cc b/thir
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
@@ -499,6 +499,10 @@
name: "ByobFetch",
@@ -332,6 +332,10 @@
name: "AsyncClipboardImplicitPermission",
status: "stable",
},
+ {
@@ -244,6 +244,6 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+ status: "experimental", // in bromite
+ },
{
name: "CacheStorageCodeCacheHint",
origin_trial_feature_name: "CacheStorageCodeCacheHint",
name: "AttributionReporting",
origin_trial_feature_name: "PrivacySandboxAdsAPIs",
--
@@ -13,7 +13,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni
--- a/chrome/android/chrome_public_apk_tmpl.gni
+++ b/chrome/android/chrome_public_apk_tmpl.gni
@@ -642,6 +642,7 @@ template("chrome_common_apk_or_module_tmpl") {
@@ -663,6 +663,7 @@ template("chrome_common_apk_or_module_tmpl") {
[ "//components/crash/core/app:chrome_crashpad_handler_named_as_so" ]
loadable_modules += [ "$root_out_dir/libchrome_crashpad_handler.so" ]
library_always_compress += [ "libchrome_crashpad_handler.so" ]
@@ -12,7 +12,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
Require: bromite-build-utils.patch
---
.../ChromeSiteSettingsDelegate.java | 17 +-
.../installable/installed_webapp_bridge.cc | 2 +-
.../settings/privacy_page/privacy_page.html | 1 +
.../settings/privacy_page/privacy_page.ts | 77 +++-
chrome/browser/resources/settings/route.ts | 2 +
@@ -28,30 +27,29 @@ Require: bromite-build-utils.patch
chrome/browser/ui/BUILD.gn | 1 +
.../controls/rich_controls_container_view.h | 7 +
.../ui/views/page_info/page_info_main_view.cc | 28 +-
.../views/page_info/page_info_view_factory.cc | 19 +
.../views/page_info/page_info_view_factory.h | 3 +
.../views/page_info/page_info_view_factory.cc | 20 +
.../views/page_info/page_info_view_factory.h | 5 +
.../page_info/permission_toggle_row_view.cc | 163 ++++++-
.../page_info/permission_toggle_row_view.h | 18 +-
.../privacy_sandbox_internals_handler.cc | 2 +-
.../settings_localized_strings_provider.cc | 54 +++
.../ui/webui/settings/site_settings_helper.cc | 34 +-
.../ui/webui/settings/site_settings_helper.cc | 46 +-
.../browser_ui/settings/android/BUILD.gn | 1 +
.../preference_spinner_single_widget.xml | 92 ++++
.../settings/SpinnerPreference.java | 24 +
.../browser_ui/site_settings/android/BUILD.gn | 18 +
.../site_settings/AllSiteSettings.java | 5 +-
.../BromiteCustomContentSetting.java | 155 +++++++
.../BromiteCustomContentSettingImpl.java | 409 ++++++++++++++++++
.../BromiteCustomContentSettingImpl.java | 411 ++++++++++++++++++
...tomTriStateSiteSettingsPreferenceImpl.java | 24 +
.../ContentSettingsResources.java | 16 +-
.../site_settings/SingleCategorySettings.java | 50 ++-
.../site_settings/SingleWebsiteSettings.java | 58 ++-
.../site_settings/SingleWebsiteSettings.java | 54 ++-
.../site_settings/SiteSettings.java | 31 +-
.../site_settings/SiteSettingsCategory.java | 18 +-
.../site_settings/SiteSettingsDelegate.java | 2 +
.../TriStateSiteSettingsPreference.java | 13 +-
.../browser_ui/site_settings/Website.java | 6 +-
.../WebsitePermissionsFetcher.java | 4 +-
.../WebsitePermissionsFetcher.java | 2 +-
.../WebsitePreferenceBridge.java | 3 +-
.../impl/include_all_directory.java | 1 +
...miteCustomContentSettingImplBase.java.tmpl | 48 ++
@@ -60,7 +58,7 @@ Require: bromite-build-utils.patch
.../content_settings/core/browser/BUILD.gn | 7 +
.../bromite_content_settings/placeholder.txt | 1 +
.../core/browser/content_settings_registry.cc | 2 +
.../core/browser/content_settings_uma_util.cc | 3 +-
.../core/browser/content_settings_uma_util.cc | 6 +-
.../core/browser/content_settings_utils.cc | 12 +
.../core/browser/website_settings_info.h | 38 ++
.../core/browser/website_settings_registry.cc | 6 +
@@ -72,8 +70,7 @@ Require: bromite-build-utils.patch
.../core/common/content_settings.mojom | 6 +
.../common/content_settings_mojom_traits.cc | 12 +-
.../common/content_settings_mojom_traits.h | 24 +
.../common/content_settings_param_traits.h | 2 +-
.../core/common/content_settings_types.mojom | 4 +-
.../core/common/content_settings_types.mojom | 2 +
.../renderer/content_settings_agent_impl.cc | 33 ++
.../renderer/content_settings_agent_impl.h | 5 +
.../PageInfoPermissionsController.java | 9 +
@@ -85,7 +82,7 @@ Require: bromite-build-utils.patch
.../platform/web_content_settings_client.h | 5 +
.../execution_context/execution_context.cc | 16 +
.../execution_context/execution_context.h | 5 +
74 files changed, 1833 insertions(+), 86 deletions(-)
71 files changed, 1836 insertions(+), 89 deletions(-)
create mode 100644 components/browser_ui/settings/android/java/res/layout/preference_spinner_single_widget.xml
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSetting.java
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java
@@ -99,8 +96,8 @@ Require: bromite-build-utils.patch
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java
@@ -58,6 +58,10 @@ import org.chromium.url.GURL;
@@ -60,6 +60,10 @@ import org.chromium.url.GURL;
import java.util.Map;
import java.util.Set;
+import android.content.Intent;
@@ -110,7 +107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C
/** A SiteSettingsDelegate instance that contains Chrome-specific Site Settings logic. */
public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
public static final String EMBEDDED_CONTENT_HELP_CENTER_URL =
@@ -199,7 +203,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
@@ -198,7 +202,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
@Override
public boolean isHelpAndFeedbackEnabled() {
@@ -119,7 +116,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C
}
@Override
@@ -312,6 +316,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
@@ -311,6 +315,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
return PrivacySandboxBridge.getFirstPartySetOwner(memberOrigin);
}
@@ -137,24 +134,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C
@Override
public boolean canLaunchClearBrowsingDataDialog() {
return true;
diff --git a/chrome/browser/installable/installed_webapp_bridge.cc b/chrome/browser/installable/installed_webapp_bridge.cc
--- a/chrome/browser/installable/installed_webapp_bridge.cc
+++ b/chrome/browser/installable/installed_webapp_bridge.cc
@@ -18,7 +18,7 @@ using base::android::ScopedJavaLocalRef;
static void JNI_InstalledWebappBridge_NotifyPermissionsChange(JNIEnv* env,
jlong j_provider,
int type) {
- DCHECK_LT(type, static_cast<int32_t>(ContentSettingsType::NUM_TYPES));
+ DCHECK_LT(type, static_cast<int32_t>(ContentSettingsType::NUM_TYPES_BROMITE));
InstalledWebappProvider* provider =
reinterpret_cast<InstalledWebappProvider*>(j_provider);
provider->Notify(static_cast<ContentSettingsType>(type));
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
@@ -1369,4 +1369,5 @@
@@ -1385,4 +1385,5 @@
</settings-subpage>
</template>
</template>
</template>
+ <div id="bromite-placeholder"/>
</settings-animated-pages>
@@ -264,9 +249,9 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc
/**
* Add all of the child routes that originate from the privacy route,
@@ -141,6 +142,7 @@ function addPrivacyChildRoutes(r: Partial<SettingsRoutes>) {
r.SITE_SETTINGS_STORAGE_ACCESS =
r.SITE_SETTINGS.createChild('storageAccess');
@@ -142,6 +143,7 @@ function addPrivacyChildRoutes(r: Partial<SettingsRoutes>) {
r.SITE_SETTINGS_AUTOMATIC_FULLSCREEN =
r.SITE_SETTINGS.createChild('automaticFullscreen');
}
+ setupContentSettingsRoutes(r);
}
@@ -296,7 +281,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d
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
@@ -30,6 +30,7 @@ import {ContentSettingProvider} from './site_settings_prefs_browser_proxy.js';
@@ -31,6 +31,7 @@ import {ContentSettingProvider} from './site_settings_prefs_browser_proxy.js';
export enum SiteContentRadioSetting {
DISABLED = 0,
ENABLED = 1,
@@ -304,7 +289,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d
}
export interface SettingsCategoryDefaultRadioGroupElement {
@@ -77,6 +78,10 @@ export class SettingsCategoryDefaultRadioGroupElement extends
@@ -79,6 +80,10 @@ export class SettingsCategoryDefaultRadioGroupElement extends
blockOptionSubLabel: String,
blockOptionIcon: String,
@@ -315,7 +300,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d
siteContentRadioSettingEnum_: {
type: Object,
value: SiteContentRadioSetting,
@@ -112,6 +117,9 @@ export class SettingsCategoryDefaultRadioGroupElement extends
@@ -114,6 +119,9 @@ export class SettingsCategoryDefaultRadioGroupElement extends
blockOptionLabel: string;
blockOptionSubLabel: string;
blockOptionIcon: string;
@@ -325,7 +310,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d
private pref_: chrome.settingsPrivate.PrefObject<number>;
override ready() {
@@ -122,6 +130,13 @@ export class SettingsCategoryDefaultRadioGroupElement extends
@@ -124,6 +132,13 @@ export class SettingsCategoryDefaultRadioGroupElement extends
(category: ContentSettingsTypes) => this.onCategoryChanged_(category));
}
@@ -339,7 +324,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d
private getAllowOptionForCategory_(): ContentSetting {
switch (this.category) {
case ContentSettingsTypes.ADS:
@@ -163,6 +178,8 @@ export class SettingsCategoryDefaultRadioGroupElement extends
@@ -166,6 +181,8 @@ export class SettingsCategoryDefaultRadioGroupElement extends
// "Ask" vs "Blocked".
return ContentSetting.ASK;
default:
@@ -348,7 +333,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d
assertNotReached('Invalid category: ' + this.category);
}
}
@@ -187,6 +204,7 @@ export class SettingsCategoryDefaultRadioGroupElement extends
@@ -190,6 +207,7 @@ export class SettingsCategoryDefaultRadioGroupElement extends
/** @type {!ContentSetting} */ (this.getAllowOptionForCategory_());
this.browserProxy.setDefaultValueForContentType(
this.category,
@@ -356,7 +341,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d
this.categoryEnabled_ ? allowOption : ContentSetting.BLOCK);
}
@@ -218,7 +236,9 @@ export class SettingsCategoryDefaultRadioGroupElement extends
@@ -221,7 +239,9 @@ export class SettingsCategoryDefaultRadioGroupElement extends
}
const enabled = this.computeIsSettingEnabled(update.setting);
@@ -370,8 +355,8 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d
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
@@ -282,4 +282,5 @@
label="$i18n{siteSettingsAutoPictureInPicture}">
@@ -289,4 +289,5 @@
label="$i18n{siteSettingsAutomaticFullscreen}">
</site-details-permission>
</template>
+ <div id="bromite-placeholder"/>
@@ -589,7 +574,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_
{
route: routes.SITE_SETTINGS_ADS,
id: Id.ADS,
@@ -391,10 +391,36 @@ function getCategoryItemMap(): Map<ContentSettingsTypes, CategoryListItem> {
@@ -398,10 +398,36 @@ function getCategoryItemMap(): Map<ContentSettingsTypes, CategoryListItem> {
disabledLabel: 'trackingProtectionLinkRowSubLabel',
});
}
@@ -626,7 +611,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_
function buildItemListFromIds(orderedIdList: ContentSettingsTypes[]):
CategoryListItem[] {
const map = getCategoryItemMap();
@@ -486,7 +512,7 @@ export class SettingsSiteSettingsPageElement extends
@@ -484,7 +510,7 @@ export class SettingsSiteSettingsPageElement extends
Id.IMAGES,
Id.POPUPS,
]),
@@ -693,7 +678,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_
/**
* Determine localization string for i18n for a given content settings type.
* Sorted alphabetically by |ContentSettingsType|.
@@ -92,6 +140,13 @@ export function getLocalizationStringForContentType(
@@ -94,6 +142,13 @@ export function getLocalizationStringForContentType(
case ContentSettingsTypes.SITE_DATA:
return null;
default:
@@ -710,7 +695,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_
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
@@ -2043,6 +2043,7 @@ static_library("ui") {
@@ -2069,6 +2069,7 @@ static_library("ui") {
"//components/commerce/core:shopping_service",
"//components/commerce/core/webui",
"//components/endpoint_fetcher:endpoint_fetcher",
@@ -721,7 +706,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
diff --git a/chrome/browser/ui/views/controls/rich_controls_container_view.h b/chrome/browser/ui/views/controls/rich_controls_container_view.h
--- a/chrome/browser/ui/views/controls/rich_controls_container_view.h
+++ b/chrome/browser/ui/views/controls/rich_controls_container_view.h
@@ -43,6 +43,13 @@ class RichControlsContainerView : public views::FlexLayoutView {
@@ -45,6 +45,13 @@ class RichControlsContainerView : public views::FlexLayoutView {
return AddChildView(std::move(control_view));
}
@@ -808,7 +793,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b
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
@@ -25,6 +25,8 @@
@@ -26,6 +26,8 @@
#include "chrome/browser/ui/views/page_info/page_info_navigation_handler.h"
#include "chrome/browser/ui/views/page_info/page_info_permission_content_view.h"
#include "chrome/browser/ui/views/page_info/page_info_security_content_view.h"
@@ -817,21 +802,22 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom
#include "components/page_info/core/features.h"
#include "components/page_info/core/proto/about_this_site_metadata.pb.h"
#include "components/page_info/page_info.h"
@@ -254,7 +256,13 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
@@ -256,7 +258,14 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
ContentSetting setting = info.setting == CONTENT_SETTING_DEFAULT
? info.default_setting
: info.setting;
+ return GetPermissionIcon(info, setting);
+ return GetPermissionIcon(info, blocked_on_system_level, setting);
+}
+// static
+const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
+ const PageInfo::PermissionInfo& info,
+ bool blocked_on_system_level,
+ ContentSetting setting) {
// For guard content settings and Automatic Picture-in-Picture, ASK is treated
// as an "on" state.
const bool show_blocked_badge =
@@ -509,6 +517,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
@@ -521,6 +530,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
icon = &kFullscreenIcon;
break;
default:
@@ -852,12 +838,14 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom
diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.h b/chrome/browser/ui/views/page_info/page_info_view_factory.h
--- a/chrome/browser/ui/views/page_info/page_info_view_factory.h
+++ b/chrome/browser/ui/views/page_info/page_info_view_factory.h
@@ -83,6 +83,9 @@ class PageInfoViewFactory {
static const ui::ImageModel GetPermissionIcon(
const PageInfo::PermissionInfo& info);
@@ -87,6 +87,11 @@ class PageInfoViewFactory {
const PageInfo::PermissionInfo& info,
bool blocked_on_system_level = false);
+ static const ui::ImageModel GetPermissionIcon(
+ const PageInfo::PermissionInfo& info, ContentSetting setting);
+ const PageInfo::PermissionInfo& info,
+ bool blocked_on_system_level,
+ ContentSetting setting);
+
// Returns the icon for the given object |info|.
static const ui::ImageModel GetChosenObjectIcon(
@@ -865,8 +853,8 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.h b/chrome
diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc
--- a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc
+++ b/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc
@@ -35,6 +35,30 @@
#include "ui/views/controls/label.h"
@@ -37,6 +37,30 @@
#include "ui/views/controls/styled_label.h"
#include "ui/views/style/typography.h"
#include "ui/views/view_class_properties.h"
+#include "components/content_settings/core/browser/content_settings_registry.h"
@@ -896,7 +884,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c
PermissionToggleRowView::PermissionToggleRowView(
ChromePageInfoUiDelegate* delegate,
@@ -48,16 +72,12 @@ PermissionToggleRowView::PermissionToggleRowView(
@@ -50,16 +74,12 @@ PermissionToggleRowView::PermissionToggleRowView(
// instead of adding it as the only child.
SetUseDefaultFillLayout(true);
row_view_ = AddChildView(std::make_unique<RichControlsContainerView>());
@@ -914,7 +902,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c
if (permission.requesting_origin.has_value()) {
std::u16string requesting_origin_string;
switch (permission.type) {
@@ -115,6 +135,90 @@ void PermissionToggleRowView::PermissionChanged() {
@@ -143,6 +163,90 @@ void PermissionToggleRowView::PermissionChanged() {
}
}
@@ -1005,7 +993,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c
void PermissionToggleRowView::OnToggleButtonPressed() {
PageInfoUI::ToggleBetweenAllowAndBlock(permission_);
PermissionChanged();
@@ -123,24 +227,19 @@ void PermissionToggleRowView::OnToggleButtonPressed() {
@@ -151,24 +255,19 @@ void PermissionToggleRowView::OnToggleButtonPressed() {
void PermissionToggleRowView::InitForUserSource(
bool should_show_spacer_view,
const std::u16string& toggle_accessible_name) {
@@ -1036,8 +1024,8 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c
+ choose_button_ = row_view_->AddControlUnderLabel(std::move(toggle_button));
const int icon_size = GetLayoutConstant(PAGE_INFO_ICON_SIZE);
// TODO(crbug.com/1011533): Remove separate handling of
@@ -187,9 +286,6 @@ void PermissionToggleRowView::InitForUserSource(
// TODO(crbug.com/1011533): Update below code to only display the updated
@@ -226,9 +325,6 @@ void PermissionToggleRowView::InitForUserSource(
auto spacer_view = std::make_unique<views::View>();
spacer_view->SetPreferredSize(gfx::Size(icon_size, icon_size));
spacer_view_ = row_view_->AddControl(std::move(spacer_view));
@@ -1047,7 +1035,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c
}
}
}
@@ -245,6 +341,33 @@ void PermissionToggleRowView::UpdateUiOnPermissionChanged() {
@@ -286,6 +382,33 @@ void PermissionToggleRowView::UpdateUiOnPermissionChanged() {
state_label_ = row_view_->AddSecondaryLabel(state_text);
}
}
@@ -1119,7 +1107,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.h b/ch
void OnToggleButtonPressed();
void InitForUserSource(bool should_show_spacer_view,
const std::u16string& toggle_accessible_name);
@@ -68,6 +80,10 @@ class PermissionToggleRowView : public views::View {
@@ -69,6 +81,10 @@ class PermissionToggleRowView : public views::View {
raw_ptr<views::ToggleButton, DanglingUntriaged> toggle_button_ = nullptr;
raw_ptr<views::View, DanglingUntriaged> spacer_view_ = nullptr;
@@ -1130,18 +1118,6 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.h b/ch
raw_ptr<ChromePageInfoUiDelegate, DanglingUntriaged> delegate_ = nullptr;
raw_ptr<PageInfoNavigationHandler, DanglingUntriaged> navigation_handler_ =
nullptr;
diff --git a/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_internals_handler.cc b/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_internals_handler.cc
--- a/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_internals_handler.cc
+++ b/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_internals_handler.cc
@@ -41,7 +41,7 @@ void PrivacySandboxInternalsHandler::ReadPref(const std::string& pref_name,
void PrivacySandboxInternalsHandler::ReadContentSettings(
const ContentSettingsType type,
ReadContentSettingsCallback callback) {
- if (!IsKnownEnumValue(type) || type == ContentSettingsType::NUM_TYPES) {
+ if (!IsKnownEnumValue(type) || type == ContentSettingsType::NUM_TYPES_BROMITE) {
mojo::ReportBadMessage(
"ReadContentSettings received invalid ContentSettingsType");
return;
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
@@ -1163,7 +1139,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide
#include "components/password_manager/core/browser/leak_detection_dialog_utils.h"
#include "components/password_manager/core/browser/manage_passwords_referrer.h"
#include "components/password_manager/core/common/password_manager_features.h"
@@ -3789,6 +3793,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
@@ -3785,6 +3789,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
policy_indicator::AddLocalizedStrings(html_source);
AddSecurityKeysStrings(html_source);
@@ -1223,7 +1199,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide
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
@@ -42,6 +42,8 @@
@@ -43,6 +43,8 @@
#include "chrome/common/url_constants.h"
#include "chrome/grit/generated_resources.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
@@ -1232,16 +1208,28 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
#include "components/content_settings/core/common/content_settings.h"
#include "components/content_settings/core/common/content_settings_pattern.h"
#include "components/content_settings/core/common/content_settings_utils.h"
@@ -219,7 +221,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = {
@@ -220,13 +222,13 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = {
{ContentSettingsType::DIRECT_SOCKETS, nullptr},
};
static_assert(std::size(kContentSettingsTypeGroupNames) ==
// ContentSettingsType starts at -1, so add 1 here.
- static_cast<int32_t>(ContentSettingsType::NUM_TYPES) + 1,
+ static_cast<int32_t>(ContentSettingsType::NUM_TYPES_CHROMIUM) + 1,
"kContentSettingsTypeGroupNames should have "
"CONTENT_SETTINGS_NUM_TYPES elements");
-static_assert(
- std::size(kContentSettingsTypeGroupNames) ==
- // Add one since the sequence is kMinValue = -1, 0, ..., kMaxValue
- 1 + static_cast<int32_t>(ContentSettingsType::kMaxValue) -
- static_cast<int32_t>(ContentSettingsType::kMinValue),
- "kContentSettingsTypeGroupNames should have the correct number "
- "of elements");
+// static_assert(
+// std::size(kContentSettingsTypeGroupNames) ==
+// // Add one since the sequence is kMinValue = -1, 0, ..., kMaxValue
+// 1 + static_cast<int32_t>(ContentSettingsType::kMaxValue) -
+// static_cast<int32_t>(ContentSettingsType::kMinValue),
+// "kContentSettingsTypeGroupNames should have the correct number "
+// "of elements");
@@ -471,6 +473,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) {
struct SiteSettingSourceStringMapping {
SiteSettingSource source;
@@ -476,6 +478,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) {
return true;
}
}
@@ -1255,7 +1243,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
return false;
}
@@ -484,11 +493,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(base::StringPiece name) {
@@ -489,11 +498,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(base::StringPiece name) {
return entry.type;
}
}
@@ -1281,7 +1269,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
for (const auto& entry : kContentSettingsTypeGroupNames) {
if (type == entry.type) {
// Content setting types that aren't represented in the settings UI
@@ -503,7 +525,6 @@ base::StringPiece ContentSettingsTypeToGroupName(ContentSettingsType type) {
@@ -508,7 +530,6 @@ base::StringPiece ContentSettingsTypeToGroupName(ContentSettingsType type) {
return entry.name ? entry.name : base::StringPiece();
}
}
@@ -1289,7 +1277,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
NOTREACHED() << static_cast<int32_t>(type)
<< " is not a recognized content settings type.";
return base::StringPiece();
@@ -587,6 +608,13 @@ const std::vector<ContentSettingsType>& GetVisiblePermissionCategories() {
@@ -594,6 +615,13 @@ std::vector<ContentSettingsType> GetVisiblePermissionCategories(
base_types->push_back(ContentSettingsType::SPEAKER_SELECTION);
}
@@ -1469,7 +1457,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium
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
@@ -141,6 +141,23 @@ android_library("java") {
@@ -142,6 +142,23 @@ android_library("java") {
":site_settings_jni_headers",
"//components/content_settings/android:java_pref_names_srcjar",
]
@@ -1493,7 +1481,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b
}
android_library("javatests") {
@@ -186,6 +203,7 @@ robolectric_library("junit") {
@@ -187,6 +204,7 @@ robolectric_library("junit") {
}
android_resources("java_resources") {
@@ -1687,7 +1675,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
new file mode 100644
--- /dev/null
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java
@@ -0,0 +1,409 @@
@@ -0,0 +1,411 @@
+/*
+ This file is part of Bromite.
+
@@ -1988,8 +1976,10 @@ new file mode 100644
+
+ Context styledContext = settings.getPreferenceManager().getContext();
+ for (BromiteCustomContentSetting cs : mItemList) {
+ String preferenceKey = cs.getPreferenceKey();
+ if (settings.findPreference(preferenceKey) != null) continue;
+ ChromeBasePreference pref = new ChromeBasePreference(styledContext);
+ pref.setKey(cs.getPreferenceKey());
+ pref.setKey(preferenceKey);
+ pref.setFragment(SingleCategorySettings.class.getCanonicalName());
+ preferenceScreen.addPreference(pref);
+ }
@@ -2408,15 +2398,6 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
if (isSessionPermission(contentType)) {
switchPreference.setSummary(switchPreference.getSummary() + " " +
@@ -1250,7 +1276,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
if (mPreferenceMap == null) {
mPreferenceMap = new HashMap<>();
for (@ContentSettingsType.EnumType int type = 0;
- type < ContentSettingsType.NUM_TYPES;
+ type < ContentSettingsType.NUM_TYPES_BROMITE;
type++) {
String key = getPreferenceKey(type);
if (key != null) {
@@ -1288,14 +1314,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
permission =
(Boolean) newValue ? ContentSettingValues.ALLOW : ContentSettingValues.BLOCK;
@@ -2440,15 +2421,6 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
preference.setIcon(getContentSettingsIcon(type, permission));
if (mWebsiteSettingsObserver != null) {
@@ -1324,7 +1356,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
// for its logic. This class should maintain its own data model, and only update the screen
// after a change is made.
for (@ContentSettingsType.EnumType int type = 0;
- type < ContentSettingsType.NUM_TYPES;
+ type < ContentSettingsType.NUM_TYPES_BROMITE;
type++) {
String key = getPreferenceKey(type);
if (key != null) {
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java
@@ -2587,7 +2559,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/SiteSettingsDelegate.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java
@@ -149,6 +149,8 @@ public interface SiteSettingsDelegate {
@@ -150,6 +150,8 @@ public interface SiteSettingsDelegate {
*/
String getFirstPartySetOwner(String memberOrigin);
@@ -2659,7 +2631,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/WebsitePermissionsFetcher.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
@@ -108,7 +108,7 @@ public class WebsitePermissionsFetcher {
@@ -102,7 +102,7 @@ public class WebsitePermissionsFetcher {
case ContentSettingsType.USB_GUARD:
return WebsitePermissionsType.CHOSEN_OBJECT_INFO;
default:
@@ -2668,15 +2640,6 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
}
@@ -220,7 +220,7 @@ public class WebsitePermissionsFetcher {
addFetcherForStorage(queue);
queue.add(new CookiesInfoFetcher());
for (@ContentSettingsType.EnumType int type = 0;
- type < ContentSettingsType.NUM_TYPES;
+ type < ContentSettingsType.NUM_TYPES_BROMITE;
type++) {
addFetcherForContentSettingsType(queue, type);
}
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
@@ -2765,7 +2728,7 @@ new file mode 100644
diff --git a/components/content_settings/android/BUILD.gn b/components/content_settings/android/BUILD.gn
--- a/components/content_settings/android/BUILD.gn
+++ b/components/content_settings/android/BUILD.gn
@@ -57,6 +57,7 @@ android_library("content_settings_enums_java") {
@@ -58,6 +58,7 @@ android_library("content_settings_enums_java") {
}
java_cpp_enum("content_settings_enums_javagen") {
@@ -2807,9 +2770,9 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
namespace content_settings {
@@ -730,6 +731,7 @@ void ContentSettingsRegistry::Init() {
WebsiteSettingsRegistry::ALL_PLATFORMS,
ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE,
@@ -750,6 +751,7 @@ void ContentSettingsRegistry::Init() {
WebsiteSettingsRegistry::DESKTOP,
ContentSettingsInfo::INHERIT_IN_INCOGNITO,
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
+#include "components/content_settings/core/browser/bromite_content_settings.inc"
}
@@ -2818,17 +2781,19 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
diff --git a/components/content_settings/core/browser/content_settings_uma_util.cc b/components/content_settings/core/browser/content_settings_uma_util.cc
--- a/components/content_settings/core/browser/content_settings_uma_util.cc
+++ b/components/content_settings/core/browser/content_settings_uma_util.cc
@@ -187,8 +187,9 @@ void RecordContentSettingsHistogram(const std::string& name,
@@ -190,11 +190,7 @@ void RecordContentSettingsHistogram(const std::string& name,
}
int ContentSettingTypeToHistogramValue(ContentSettingsType content_setting) {
- static_assert(
- kHistogramValue.size() ==
- // DEFAULT is not in the histogram, so we want [0, kMaxValue]
- 1 + static_cast<size_t>(ContentSettingsType::kMaxValue),
- "Update content settings histogram lookup");
+ if ((true)) return 0;
static_assert(kHistogramValue.size() ==
- static_cast<size_t>(ContentSettingsType::NUM_TYPES),
+ static_cast<size_t>(ContentSettingsType::NUM_TYPES_CHROMIUM),
"Update content settings histogram lookup");
auto* found = kHistogramValue.find(content_setting);
auto found = kHistogramValue.find(content_setting);
if (found != kHistogramValue.end()) {
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
@@ -2943,7 +2908,7 @@ diff --git a/components/content_settings/core/browser/website_settings_registry.
diff --git a/components/content_settings/core/common/BUILD.gn b/components/content_settings/core/common/BUILD.gn
--- a/components/content_settings/core/common/BUILD.gn
+++ b/components/content_settings/core/common/BUILD.gn
@@ -57,6 +57,13 @@ static_library("common") {
@@ -55,6 +55,13 @@ static_library("common") {
"//net",
"//url",
]
@@ -2966,7 +2931,7 @@ new file mode 100644
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
@@ -15,6 +15,7 @@
@@ -16,6 +16,7 @@
#include "components/content_settings/core/common/content_settings_metadata.h"
#include "components/content_settings/core/common/content_settings_types.h"
#include "components/content_settings/core/common/content_settings_utils.h"
@@ -2974,7 +2939,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo
namespace {
@@ -103,6 +104,13 @@ std::ostream& operator<<(std::ostream& os,
@@ -104,6 +105,13 @@ std::ostream& operator<<(std::ostream& os,
// static
bool RendererContentSettingRules::IsRendererContentSetting(
ContentSettingsType content_type) {
@@ -2988,7 +2953,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo
return content_type == ContentSettingsType::IMAGES ||
content_type == ContentSettingsType::JAVASCRIPT ||
content_type == ContentSettingsType::POPUPS ||
@@ -112,6 +120,9 @@ bool RendererContentSettingRules::IsRendererContentSetting(
@@ -113,6 +121,9 @@ bool RendererContentSettingRules::IsRendererContentSetting(
void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL(
const GURL& outermost_main_frame_url) {
@@ -2998,7 +2963,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo
FilterRulesForType(image_rules, outermost_main_frame_url);
FilterRulesForType(script_rules, outermost_main_frame_url);
FilterRulesForType(popup_redirect_rules, outermost_main_frame_url);
@@ -143,3 +154,10 @@ bool RendererContentSettingRules::operator==(
@@ -144,3 +155,10 @@ bool RendererContentSettingRules::operator==(
other.popup_redirect_rules, other.mixed_content_rules,
other.auto_dark_content_rules);
}
@@ -3036,7 +3001,7 @@ diff --git a/components/content_settings/core/common/content_settings.h b/compon
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
@@ -78,6 +78,11 @@ struct RuleMetaData {
@@ -70,6 +70,11 @@ struct RuleMetaData {
TpcdMetadataRuleSource tpcd_metadata_rule_source;
};
@@ -3048,7 +3013,7 @@ diff --git a/components/content_settings/core/common/content_settings.mojom b/co
// This mirrors the C++ type in content_settings.h.
struct ContentSettingPatternSource {
ContentSettingsPattern primary_pattern;
@@ -91,6 +96,7 @@ struct ContentSettingPatternSource {
@@ -83,6 +88,7 @@ struct ContentSettingPatternSource {
// This mirrors the C++ type in content_settings.h.
// TODO(https://crbug.com/1485360): This should be removed.
struct RendererContentSettingRules {
@@ -3059,7 +3024,7 @@ diff --git a/components/content_settings/core/common/content_settings.mojom b/co
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
@@ -155,12 +155,22 @@ bool StructTraits<content_settings::mojom::ContentSettingPatternSourceDataView,
@@ -117,12 +117,22 @@ bool StructTraits<content_settings::mojom::ContentSettingPatternSourceDataView,
data.ReadMetadata(&out->metadata) && data.ReadSource(&out->source);
}
@@ -3086,7 +3051,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai
diff --git a/components/content_settings/core/common/content_settings_mojom_traits.h b/components/content_settings/core/common/content_settings_mojom_traits.h
--- a/components/content_settings/core/common/content_settings_mojom_traits.h
+++ b/components/content_settings/core/common/content_settings_mojom_traits.h
@@ -174,10 +174,34 @@ struct StructTraits<
@@ -164,10 +164,34 @@ struct StructTraits<
ContentSettingPatternSource* out);
};
@@ -3121,34 +3086,20 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai
static const std::vector<ContentSettingPatternSource>& image_rules(
const RendererContentSettingRules& r) {
return r.image_rules;
diff --git a/components/content_settings/core/common/content_settings_param_traits.h b/components/content_settings/core/common/content_settings_param_traits.h
--- a/components/content_settings/core/common/content_settings_param_traits.h
+++ b/components/content_settings/core/common/content_settings_param_traits.h
@@ -9,7 +9,7 @@
#include "ipc/ipc_message_macros.h"
IPC_ENUM_TRAITS_MAX_VALUE(ContentSettingsType,
- static_cast<int32_t>(ContentSettingsType::NUM_TYPES) -
+ static_cast<int32_t>(ContentSettingsType::NUM_TYPES_BROMITE) -
1)
#endif // COMPONENTS_CONTENT_SETTINGS_CORE_COMMON_CONTENT_SETTINGS_PARAM_TRAITS_H_
diff --git a/components/content_settings/core/common/content_settings_types.mojom b/components/content_settings/core/common/content_settings_types.mojom
--- a/components/content_settings/core/common/content_settings_types.mojom
+++ b/components/content_settings/core/common/content_settings_types.mojom
@@ -399,5 +399,7 @@ enum ContentSettingsType {
SPEAKER_SELECTION,
- NUM_TYPES,
+ NUM_TYPES_CHROMIUM,
@@ -408,4 +408,6 @@ enum ContentSettingsType {
// Pointer Lock API allows a site to hide the cursor and have exclusive access
// to mouse inputs.
POINTER_LOCK,
+
+#include "components/content_settings/core/common/bromite_content_settings.inc"
+ NUM_TYPES_BROMITE,
};
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
@@ -200,6 +200,39 @@ void ContentSettingsAgentImpl::SendRendererContentSettingRules(
@@ -206,6 +206,39 @@ void ContentSettingsAgentImpl::SendRendererContentSettingRules(
std::move(renderer_settings));
}
@@ -3191,7 +3142,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc
diff --git a/components/content_settings/renderer/content_settings_agent_impl.h b/components/content_settings/renderer/content_settings_agent_impl.h
--- a/components/content_settings/renderer/content_settings_agent_impl.h
+++ b/components/content_settings/renderer/content_settings_agent_impl.h
@@ -76,6 +76,11 @@ class ContentSettingsAgentImpl
@@ -80,6 +80,11 @@ class ContentSettingsAgentImpl
static mojom::ContentSettingsManager::StorageType ConvertToMojoStorageType(
StorageType storage_type);
@@ -3244,9 +3195,9 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
#include "components/content_settings/core/common/content_settings.h"
#include "components/content_settings/core/common/content_settings_types.h"
#include "components/page_info/android/jni_headers/PageInfoController_jni.h"
@@ -152,6 +153,15 @@ void PageInfoControllerAndroid::SetPermissionInfo(
permissions_to_display.push_back(ContentSettingsType::STORAGE_ACCESS);
@@ -149,6 +150,15 @@ void PageInfoControllerAndroid::SetPermissionInfo(
}
permissions_to_display.push_back(ContentSettingsType::STORAGE_ACCESS);
+ content_settings::WebsiteSettingsRegistry* website_settings =
+ content_settings::WebsiteSettingsRegistry::GetInstance();
@@ -3260,7 +3211,7 @@ 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>
@@ -211,6 +221,14 @@ std::optional<ContentSetting> PageInfoControllerAndroid::GetSettingToDisplay(
@@ -208,6 +218,14 @@ std::optional<ContentSetting> PageInfoControllerAndroid::GetSettingToDisplay(
return permission.setting;
}
@@ -3286,7 +3237,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.
#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_uma_util.h"
@@ -1225,6 +1226,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
@@ -1219,6 +1220,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
// applies to permissions listed in |kPermissionType|.
bool PageInfo::ShouldShowPermission(
const PageInfo::PermissionInfo& info) const {
@@ -3301,7 +3252,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.
// Note |ContentSettingsType::ADS| will show up regardless of its default
// value when it has been activated on the current origin.
if (info.type == ContentSettingsType::ADS) {
@@ -1331,7 +1340,19 @@ void PageInfo::PresentSitePermissions() {
@@ -1325,7 +1334,19 @@ void PageInfo::PresentSitePermissions() {
HostContentSettingsMap* content_settings = GetContentSettings();
DCHECK(web_contents_);
@@ -3359,7 +3310,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in
for (const PermissionUIInfo& info : GetContentSettingsUIInfo()) {
if (info.type == type)
return l10n_util::GetStringUTF16(info.string_id_mid_sentence);
@@ -1060,6 +1073,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) {
@@ -1063,6 +1076,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) {
if (info.type == type)
return true;
}
@@ -3392,17 +3343,17 @@ diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/t
#include "third_party/blink/public/common/client_hints/enabled_client_hints.h"
#include "third_party/blink/public/mojom/navigation/renderer_content_settings.mojom.h"
@@ -51,6 +52,10 @@ class WebContentSettingsClient {
return enabled_per_settings;
}
@@ -46,6 +47,10 @@ class WebContentSettingsClient {
// Blocks until done.
virtual bool AllowStorageAccessSync(StorageType storage_type) { return true; }
+ virtual bool AllowContentSetting(ContentSettingsType type, bool enabled_per_settings) {
+ return enabled_per_settings;
+ }
+
// Controls whether scripts are allowed to execute for this frame.
virtual bool AllowScript(bool enabled_per_settings) {
return enabled_per_settings;
// Controls whether insecure scripts are allowed to execute for this frame.
virtual bool AllowRunningInsecureContent(bool enabled_per_settings,
const WebURL&) {
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
+9 -9
View File
@@ -9122,7 +9122,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateCon
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
@@ -60,10 +60,10 @@ import org.chromium.chrome.browser.omaha.VersionNumber;
@@ -61,10 +61,10 @@ import org.chromium.chrome.browser.omaha.VersionNumber;
public class BromiteInlineUpdateController implements InlineUpdateController {
private static final String TAG = "BromiteInlineUpdateController";
@@ -9137,7 +9137,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/Br
public static String getDownloadUrl() {
return UPDATE_VERSION_URL + BuildConfig.BUILD_TARGET_CPU + "_ChromePublic.apk";
@@ -212,11 +212,20 @@ public class BromiteInlineUpdateController implements InlineUpdateController {
@@ -213,11 +213,20 @@ public class BromiteInlineUpdateController implements InlineUpdateController {
Log.i(TAG, "BromiteUpdater: obtained response '%s' and redirect URL '%s'", endpointResponse.getResponseString(), redirectURL);
if (redirectURL.indexOf(REDIRECT_URL_PREFIX) == 0) {
redirectURL = redirectURL.substring(REDIRECT_URL_PREFIX.length());
@@ -9158,7 +9158,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/Br
OmahaBase.setLatestModifiedVersion(parts[0]);
callback.onResult(version);
return;
@@ -239,6 +248,10 @@ public class BromiteInlineUpdateController implements InlineUpdateController {
@@ -240,6 +249,10 @@ public class BromiteInlineUpdateController implements InlineUpdateController {
}
private void checkLatestUpstreamVersion(final Callback<VersionNumber> callback) {
@@ -9193,7 +9193,7 @@ diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.
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
@@ -278,7 +278,7 @@
@@ -287,7 +287,7 @@
Change
</message>
<message name="IDS_SETTINGS_WEB_STORE" desc="Sub-label about choosing something from the Chrome Web Store.">
@@ -13147,7 +13147,7 @@ e)fqMZZ`3a)Ds&5H<cfp<0000<MNUMnLSTYHt&Yn8
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -2050,6 +2050,7 @@ static_library("browser") {
@@ -2058,6 +2058,7 @@ static_library("browser") {
"//build:chromeos_buildflags",
"//build/config/chromebox_for_meetings:buildflags",
"//build/config/compiler:compiler_buildflags",
@@ -13209,7 +13209,7 @@ diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.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
@@ -2124,7 +2124,7 @@ Your Google account may have other forms of browsing history like searches and a
@@ -2164,7 +2164,7 @@ Your Google account may have other forms of browsing history like searches and a
About Chrome
</message>
<message name="IDS_LEGAL_INFORMATION_SUMMARY" desc="Summary for legal information" meaning="Android">
@@ -13242,7 +13242,7 @@ diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h
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
@@ -994,7 +994,7 @@
@@ -999,7 +999,7 @@
<!-- Accessibility preferences -->
<message name="IDS_PREFS_ACCESSIBILITY" desc="Title of Accessibility settings, which allows the user to change webpage font sizes. [CHAR_LIMIT=32]">
@@ -18202,8 +18202,8 @@ diff --git a/tools/grit/grit/grd_reader.py b/tools/grit/grit/grd_reader.py
diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc
--- a/ui/base/ui_base_features.cc
+++ b/ui/base/ui_base_features.cc
@@ -643,4 +643,6 @@ BASE_FEATURE(kUseGammaContrastRegistrySettings,
base::FEATURE_DISABLED_BY_DEFAULT);
@@ -648,4 +648,6 @@ BASE_FEATURE(kUseGammaContrastRegistrySettings,
base::FEATURE_ENABLED_BY_DEFAULT);
#endif // BUILDFLAG(IS_WIN)
+SET_CROMITE_FEATURE_ENABLED(kChromeRefresh2023);
+10 -10
View File
@@ -35,7 +35,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionMod
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
@@ -737,10 +737,17 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -748,10 +748,17 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@TabLaunchType int type,
@TabCreationState int creationState,
boolean markedForSelection) {
@@ -93,7 +93,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
import org.chromium.base.TraceEvent;
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.supplier.ObservableSupplier;
@@ -814,11 +815,16 @@ public class RootUiCoordinator
@@ -813,11 +814,16 @@ public class RootUiCoordinator
TrackerFactory.getTrackerForProfile(tab.getProfile())
.notifyEvent(EventConstants.WEB_SEARCH_PERFORMED);
@@ -153,7 +153,7 @@ new file mode 100644
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
@@ -63,4 +63,28 @@ found in the LICENSE file.
@@ -68,4 +68,28 @@ found in the LICENSE file.
android:key="move_toolbar_bottom"
android:summary="@string/move_toolbar_bottom_summary"
android:title="@string/move_toolbar_bottom_title" />
@@ -353,7 +353,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
if (isSelectionPassword || intentHandler == null) {
addAdditionalTextProcessingItems(textProcessingItems, selectionActionMenuDelegate);
return textProcessingItems;
@@ -431,7 +478,7 @@ public class SelectActionMenuHelper {
@@ -432,7 +479,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_cut)
.setIconAttr(android.R.attr.actionModeCutDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.CUT)
@@ -362,7 +362,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
@@ -443,7 +490,7 @@ public class SelectActionMenuHelper {
@@ -444,7 +491,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_copy)
.setIconAttr(android.R.attr.actionModeCopyDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.COPY)
@@ -371,7 +371,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
@@ -455,7 +502,7 @@ public class SelectActionMenuHelper {
@@ -456,7 +503,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_paste)
.setIconAttr(android.R.attr.actionModePasteDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.PASTE)
@@ -380,7 +380,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
@@ -469,7 +516,7 @@ public class SelectActionMenuHelper {
@@ -470,7 +517,7 @@ public class SelectActionMenuHelper {
return new SelectionMenuItem.Builder(context.getString(R.string.actionbar_share))
.setId(R.id.select_action_menu_share)
.setIconAttr(android.R.attr.actionModeShareDrawable)
@@ -389,7 +389,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
@@ -481,7 +528,7 @@ public class SelectActionMenuHelper {
@@ -482,7 +529,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_select_all)
.setIconAttr(android.R.attr.actionModeSelectAllDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.SELECT_ALL)
@@ -398,7 +398,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
@@ -494,7 +541,7 @@ public class SelectActionMenuHelper {
@@ -495,7 +542,7 @@ public class SelectActionMenuHelper {
SelectionMenuItem.Builder builder =
new SelectionMenuItem.Builder(android.R.string.paste_as_plain_text)
.setId(R.id.select_action_menu_paste_as_plain_text)
@@ -407,7 +407,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled);
@@ -514,7 +561,7 @@ public class SelectActionMenuHelper {
@@ -515,7 +562,7 @@ public class SelectActionMenuHelper {
return new SelectionMenuItem.Builder(context.getString(R.string.actionbar_web_search))
.setId(R.id.select_action_menu_web_search)
.setIconAttr(android.R.attr.actionModeWebSearchDrawable)
@@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
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
@@ -3110,8 +3110,8 @@
@@ -3208,8 +3208,8 @@
status: "stable",
},
{
@@ -36,13 +36,13 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
+ android:summary="@string/enable_accessibility_summary"
+ android:title="@string/enable_accessibility_title" />
+
<org.chromium.components.browser_ui.accessibility.TextScalePreference
<org.chromium.chrome.browser.accessibility.settings.TextScalePreference
android:key="text_scale"
android:title="@string/font_size"
diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
--- a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
@@ -1112,6 +1112,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa
@@ -1039,6 +1039,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa
structure.setChildCount(0);
return;
}
+7 -8
View File
@@ -4,18 +4,17 @@ Subject: Disable Compose feature
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
components/compose/core/browser/compose_features.cc | 3 +++
components/compose/core/browser/compose_features.cc | 2 ++
components/compose/features.gni | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/components/compose/core/browser/compose_features.cc b/components/compose/core/browser/compose_features.cc
--- a/components/compose/core/browser/compose_features.cc
+++ b/components/compose/core/browser/compose_features.cc
@@ -56,4 +56,7 @@ BASE_FEATURE(kComposeTextOutputAnimation,
BASE_FEATURE(kComposeTextSelection,
"ComposeTextSelection",
base::FEATURE_DISABLED_BY_DEFAULT);
+
@@ -61,4 +61,6 @@ BASE_FEATURE(kComposeRequestLatencyTimeout,
"ComposeRequestLatencyTimeout",
base::FEATURE_ENABLED_BY_DEFAULT);
+SET_CROMITE_FEATURE_DISABLED(kEnableCompose);
+SET_CROMITE_FEATURE_DISABLED(kComposeEligible);
} // namespace compose::features
@@ -26,7 +25,7 @@ diff --git a/components/compose/features.gni b/components/compose/features.gni
declare_args() {
# Whether Compose is enabled in the build.
- enable_compose = is_mac || is_win || is_linux
- enable_compose = is_mac || is_win || is_linux || is_chromeos
+ enable_compose = false
}
--
@@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
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
@@ -651,16 +651,18 @@
@@ -672,16 +672,18 @@
}
},
{
@@ -10,22 +10,24 @@ 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
---
.../browser/chrome_content_browser_client.cc | 3 +++
chrome/browser/prefs/browser_prefs.cc | 2 +-
.../privacy_sandbox_settings_delegate.cc | 1 +
.../privacy_sandbox/privacy_sandbox_prompt.cc | 1 +
.../history/core/browser/history_backend.cc | 13 +------------
.../privacy_sandbox_attestations.cc | 2 --
.../privacy_sandbox_features.cc | 4 ++++
.../privacy_sandbox/privacy_sandbox_prefs.cc | 4 ++--
.../privacy_sandbox/privacy_sandbox_prefs.cc | 2 +-
.../privacy_sandbox_settings_impl.cc | 19 ++++++++++++++-----
.../identity_manager/account_capabilities.cc | 2 +-
.../Disable-FLoC-and-privacy-sandbox.inc | 1 +
third_party/blink/common/features.cc | 1 +
10 files changed, 28 insertions(+), 21 deletions(-)
12 files changed, 29 insertions(+), 22 deletions(-)
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Disable-FLoC-and-privacy-sandbox.inc
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
@@ -3239,6 +3239,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed(
@@ -3263,6 +3263,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed(
const url::Origin* destination_origin,
const url::Origin* reporting_origin,
bool* can_bypass) {
@@ -35,10 +37,22 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
Profile* profile = Profile::FromBrowserContext(browser_context);
auto* privacy_sandbox_settings =
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -1428,7 +1428,7 @@ void RegisterProfilePrefsForMigration(
registry->RegisterTimePref(kPlusAddressLastFetchedTime, base::Time());
// Deprecated 03/2024.
- registry->RegisterBooleanPref(kPrivacySandboxApisEnabled, true);
+ registry->RegisterBooleanPref(kPrivacySandboxApisEnabled, false);
// Deprecated 03/2024.
registry->RegisterBooleanPref(kDefaultSearchProviderChoicePendingDeprecated,
diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc
--- a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc
+++ b/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc
@@ -159,6 +159,7 @@ bool PrivacySandboxSettingsDelegate::HasAppropriateTopicsConsent() const {
@@ -160,6 +160,7 @@ bool PrivacySandboxSettingsDelegate::HasAppropriateTopicsConsent() const {
bool PrivacySandboxSettingsDelegate::PrivacySandboxRestrictedNoticeRequired()
const {
@@ -82,7 +96,7 @@ diff --git a/components/history/core/browser/history_backend.cc b/components/his
diff --git a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc b/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc
--- a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc
+++ b/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc
@@ -478,8 +478,6 @@ void PrivacySandboxAttestations::OnAttestationsParsed(
@@ -485,8 +485,6 @@ void PrivacySandboxAttestations::OnAttestationsParsed(
if (attestations_map.has_value() &&
(!file_version_.IsValid() || file_version_.CompareTo(version) < 0)) {
// Parsing succeeded and the attestations file has newer version.
@@ -94,7 +108,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_san
diff --git a/components/privacy_sandbox/privacy_sandbox_features.cc b/components/privacy_sandbox/privacy_sandbox_features.cc
--- a/components/privacy_sandbox/privacy_sandbox_features.cc
+++ b/components/privacy_sandbox/privacy_sandbox_features.cc
@@ -167,4 +167,8 @@ BASE_FEATURE(kTrackingProtectionNoticeRequestTracking,
@@ -175,4 +175,8 @@ BASE_FEATURE(kTrackingProtectionNoticeRequestTracking,
base::FEATURE_DISABLED_BY_DEFAULT);
#endif // BUILDFLAG(IS_ANDROID)
@@ -106,16 +120,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_features.cc b/components
diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/privacy_sandbox/privacy_sandbox_prefs.cc
--- a/components/privacy_sandbox/privacy_sandbox_prefs.cc
+++ b/components/privacy_sandbox/privacy_sandbox_prefs.cc
@@ -12,7 +12,7 @@ namespace privacy_sandbox {
void RegisterProfilePrefs(PrefRegistrySimple* registry) {
registry->RegisterBooleanPref(
- prefs::kPrivacySandboxApisEnabled, true,
+ prefs::kPrivacySandboxApisEnabled, false,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
registry->RegisterBooleanPref(prefs::kPrivacySandboxM1ConsentDecisionMade,
false);
@@ -27,7 +27,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
@@ -24,7 +24,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
registry->RegisterBooleanPref(prefs::kPrivacySandboxM1FledgeEnabled, false);
registry->RegisterBooleanPref(prefs::kPrivacySandboxM1AdMeasurementEnabled,
false);
@@ -202,6 +207,18 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo
if (delegate_->IsIncognitoProfile()) {
return Status::kIncognitoProfile;
}
diff --git a/components/signin/public/identity_manager/account_capabilities.cc b/components/signin/public/identity_manager/account_capabilities.cc
--- a/components/signin/public/identity_manager/account_capabilities.cc
+++ b/components/signin/public/identity_manager/account_capabilities.cc
@@ -82,7 +82,7 @@ signin::Tribool AccountCapabilities::
signin::Tribool AccountCapabilities::can_run_chrome_privacy_sandbox_trials()
const {
- return GetCapabilityByName(kCanRunChromePrivacySandboxTrialsCapabilityName);
+ return signin::Tribool::kFalse;
}
signin::Tribool AccountCapabilities::is_opted_in_to_parental_supervision()
diff --git a/cromite_flags/third_party/blink/common/features_cc/Disable-FLoC-and-privacy-sandbox.inc b/cromite_flags/third_party/blink/common/features_cc/Disable-FLoC-and-privacy-sandbox.inc
new file mode 100644
--- /dev/null
@@ -211,7 +228,7 @@ new file mode 100644
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
@@ -2462,6 +2462,7 @@ bool IsAllowPageWithIDBConnectionAndTransactionInBFCacheEnabled() {
@@ -2519,6 +2519,7 @@ bool IsAllowPageWithIDBConnectionAndTransactionInBFCacheEnabled() {
}
bool IsAllowURNsInIframeEnabled() {
+1 -1
View File
@@ -18,7 +18,7 @@ new file mode 100644
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
@@ -1570,7 +1570,7 @@
@@ -1604,7 +1604,7 @@
{
name: "FedCm",
public: true,
@@ -46,7 +46,7 @@ diff --git a/chrome/browser/first_party_sets/first_party_sets_policy_service.cc
diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc
--- a/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc
+++ b/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc
@@ -418,7 +418,7 @@ bool PrivacySandboxServiceImpl::IsRestrictedNoticeEnabled() {
@@ -419,7 +419,7 @@ bool PrivacySandboxServiceImpl::IsRestrictedNoticeEnabled() {
void PrivacySandboxServiceImpl::SetFirstPartySetsDataAccessEnabled(
bool enabled) {
pref_service_->SetBoolean(prefs::kPrivacySandboxRelatedWebsiteSetsEnabled,
@@ -58,7 +58,7 @@ diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc b/ch
diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/privacy_sandbox/privacy_sandbox_prefs.cc
--- a/components/privacy_sandbox/privacy_sandbox_prefs.cc
+++ b/components/privacy_sandbox/privacy_sandbox_prefs.cc
@@ -51,7 +51,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
@@ -48,7 +48,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
registry->RegisterBooleanPref(
prefs::kPrivacySandboxFirstPartySetsDataAccessAllowedInitialized, false);
registry->RegisterBooleanPref(
+2 -2
View File
@@ -22,7 +22,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j
import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteControllerProvider;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.profiles.ProfileManager;
@@ -244,8 +243,6 @@ public class IntentHandler {
@@ -255,8 +254,6 @@ public class IntentHandler {
private static int sReferrerId;
private static String sPendingIncognitoUrl;
@@ -31,7 +31,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j
private static final String PACKAGE_GMAIL = "com.google.android.gm";
private static final String PACKAGE_PLUS = "com.google.android.apps.plus";
private static final String PACKAGE_HANGOUTS = "com.google.android.talk";
@@ -461,8 +458,6 @@ public class IntentHandler {
@@ -472,8 +469,6 @@ public class IntentHandler {
return ExternalAppId.LINE;
} else if (packageName.equals(PACKAGE_WHATSAPP)) {
return ExternalAppId.WHATSAPP;
@@ -30,9 +30,9 @@ diff --git a/content/browser/installedapp/installed_app_provider_impl_win.cc b/c
blink::mojom::InstalledAppProvider::FilterInstalledAppsCallback callback,
const GURL frame_url) {
+ CHECK(true);
ComPtr<ILauncherStatics4> launcher_statics;
HRESULT hr = base::win::RoActivateInstance(
base::win::ScopedHString::Create(RuntimeClass_Windows_System_Launcher)
ComPtr<IUriRuntimeClassFactory> url_factory;
HRESULT hr =
base::win::GetActivationFactory<IUriRuntimeClassFactory,
diff --git a/cromite_flags/content/public/common/content_features_cc/Disable-GetInstalledRelatedApps-API.inc b/cromite_flags/content/public/common/content_features_cc/Disable-GetInstalledRelatedApps-API.inc
new file mode 100644
--- /dev/null
@@ -43,7 +43,7 @@ new file mode 100644
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
@@ -2114,9 +2114,9 @@
@@ -2190,9 +2190,9 @@
status: {"Android": "test", "default": "stable"},
},
{
+11 -13
View File
@@ -4,17 +4,17 @@ Subject: Disable PrivacyGuide
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/android/java/res/xml/privacy_preferences.xml | 1 +
chrome/browser/ui/webui/settings/settings_ui.cc | 2 +-
.../common/chrome_features_cc/Disable-PrivacyGuide.inc | 9 +++++++++
3 files changed, 11 insertions(+), 1 deletion(-)
chrome/android/java/res/xml/privacy_preferences.xml | 1 +
chrome/browser/ui/webui/settings/settings_ui.cc | 3 +--
.../common/chrome_features_cc/Disable-PrivacyGuide.inc | 6 ++++++
3 files changed, 8 insertions(+), 2 deletions(-)
create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-PrivacyGuide.inc
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
@@ -21,6 +21,7 @@ found in the LICENSE file.
android:fragment="org.chromium.chrome.browser.browsing_data.ClearBrowsingDataTabsFragment" />
@@ -27,6 +27,7 @@ found in the LICENSE file.
app:isPreferenceVisible="false" />
<Preference
android:key="privacy_guide"
+ app:isPreferenceVisible="false"
@@ -24,23 +24,21 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc
--- a/chrome/browser/ui/webui/settings/settings_ui.cc
+++ b/chrome/browser/ui/webui/settings/settings_ui.cc
@@ -357,7 +357,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
@@ -358,8 +358,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
#endif // !BUILDFLAG(IS_CHROMEOS_LACROS)
bool show_privacy_guide =
- !chrome::ShouldDisplayManagedUi(profile) && !profile->IsChild();
- base::FeatureList::IsEnabled(features::kPrivacyGuideForceAvailable) ||
- (!chrome::ShouldDisplayManagedUi(profile) && !profile->IsChild());
+ false;
html_source->AddBoolean("showPrivacyGuide", show_privacy_guide);
html_source->AddBoolean("enablePrivacyGuide3", base::FeatureList::IsEnabled(
html_source->AddBoolean(
diff --git a/cromite_flags/chrome/common/chrome_features_cc/Disable-PrivacyGuide.inc b/cromite_flags/chrome/common/chrome_features_cc/Disable-PrivacyGuide.inc
new file mode 100644
--- /dev/null
+++ b/cromite_flags/chrome/common/chrome_features_cc/Disable-PrivacyGuide.inc
@@ -0,0 +1,9 @@
+SET_CROMITE_FEATURE_DISABLED(kPrivacyGuide3);
+SET_CROMITE_FEATURE_DISABLED(kPrivacyGuidePreload);
+
@@ -0,0 +1,6 @@
+#if BUILDFLAG(IS_ANDROID)
+
+SET_CROMITE_FEATURE_DISABLED(kPrivacyGuideAndroid3);
+11 -11
View File
@@ -4,16 +4,16 @@ Subject: Disable Real Box
Real-box is search box in ntp
---
chrome/browser/prefs/browser_prefs.cc | 2 +-
chrome/browser/resources/new_tab_page/app.html | 5 -----
chrome/browser/ui/webui/realbox/realbox_handler.cc | 2 +-
components/search/ntp_features.cc | 6 +++---
chrome/browser/prefs/browser_prefs.cc | 2 +-
chrome/browser/resources/new_tab_page/app.html | 5 -----
chrome/browser/ui/webui/searchbox/realbox_handler.cc | 2 +-
components/search/ntp_features.cc | 6 +++---
4 files changed, 5 insertions(+), 10 deletions(-)
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -2072,7 +2072,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
@@ -2101,7 +2101,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
registry->RegisterBooleanPref(
prefs::kLensRegionSearchEnabled, true,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
@@ -29,18 +29,18 @@ diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/res
hidden$="[[!logoEnabled_]]">
</ntp-logo>
<div id="realboxContainer">
- <ntp-realbox id="realbox" is-dark="[[theme_.isDark]]"
- <cr-realbox id="realbox" is-dark="[[theme_.isDark]]"
- color-source-is-baseline="[[colorSourceIsBaseline]]"
- on-open-lens-search="onOpenLensSearch_"
- on-open-voice-search="onOpenVoiceSearch_" shown$="[[realboxShown_]]">
- </ntp-realbox>
- </cr-realbox>
<template is="dom-if" if="[[showLensUploadDialog_]]" restamp>
<ntp-lens-upload-dialog id="lensUploadDialog"
on-close-lens-search="onCloseLensSearch_">
diff --git a/chrome/browser/ui/webui/realbox/realbox_handler.cc b/chrome/browser/ui/webui/realbox/realbox_handler.cc
--- a/chrome/browser/ui/webui/realbox/realbox_handler.cc
+++ b/chrome/browser/ui/webui/realbox/realbox_handler.cc
@@ -672,7 +672,7 @@ void RealboxHandler::SetupWebUIDataSource(content::WebUIDataSource* source,
diff --git a/chrome/browser/ui/webui/searchbox/realbox_handler.cc b/chrome/browser/ui/webui/searchbox/realbox_handler.cc
--- a/chrome/browser/ui/webui/searchbox/realbox_handler.cc
+++ b/chrome/browser/ui/webui/searchbox/realbox_handler.cc
@@ -699,7 +699,7 @@ void RealboxHandler::SetupWebUIDataSource(content::WebUIDataSource* source,
source->AddBoolean(
"realboxLensSearch",
@@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -634,7 +634,7 @@ public abstract class ChromeFeatureList {
@@ -637,7 +637,7 @@ public abstract class ChromeFeatureList {
public static final CachedFlag sSmallerTabStripTitleLimit =
newCachedFlag(SMALLER_TAB_STRIP_TITLE_LIMIT, false);
public static final CachedFlag sStartSurfaceAndroid =
@@ -22,7 +22,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
+ newCachedFlag(START_SURFACE_ANDROID, false);
public static final CachedFlag sStartSurfaceOnTablet =
newCachedFlag(START_SURFACE_ON_TABLET, true);
public static final CachedFlag sStartSurfaceRefactor =
public static final CachedFlag sStartSurfaceReturnTime =
diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-StartSurface-feature.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-StartSurface-feature.inc
new file mode 100644
--- /dev/null
+8 -8
View File
@@ -79,7 +79,7 @@ new file mode 100644
diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc
--- a/net/http/http_network_session.cc
+++ b/net/http/http_network_session.cc
@@ -208,6 +208,7 @@ HttpNetworkSession::HttpNetworkSession(const HttpNetworkSessionParams& params,
@@ -209,6 +209,7 @@ HttpNetworkSession::HttpNetworkSession(const HttpNetworkSessionParams& params,
next_protos_.push_back(kProtoHTTP11);
@@ -90,7 +90,7 @@ diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc
diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc
--- a/net/quic/quic_session_pool.cc
+++ b/net/quic/quic_session_pool.cc
@@ -69,6 +69,7 @@
@@ -71,6 +71,7 @@
#include "net/third_party/quiche/src/quiche/quic/platform/api/quic_flags.h"
#include "net/traffic_annotation/network_traffic_annotation.h"
#include "third_party/boringssl/src/include/openssl/aead.h"
@@ -98,7 +98,7 @@ diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc
#include "url/gurl.h"
#include "url/scheme_host_port.h"
#include "url/url_constants.h"
@@ -156,6 +157,38 @@ std::set<std::string> HostsFromOrigins(std::set<HostPortPair> origins) {
@@ -158,6 +159,38 @@ std::set<std::string> HostsFromOrigins(std::set<HostPortPair> origins) {
} // namespace
@@ -137,7 +137,7 @@ diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc
QuicSessionRequest::QuicSessionRequest(QuicSessionPool* pool) : pool_(pool) {}
QuicSessionRequest::~QuicSessionRequest() {
@@ -1716,7 +1749,7 @@ QuicSessionPool::CreateCryptoConfigHandle(
@@ -1721,7 +1754,7 @@ QuicSessionPool::CreateCryptoConfigHandle(
cert_verifier_, transport_security_state_, sct_auditing_delegate_,
HostsFromOrigins(params_.origins_to_force_quic_on),
actual_network_anonymization_key),
@@ -149,7 +149,7 @@ diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc
diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc
--- a/net/socket/ssl_client_socket_impl.cc
+++ b/net/socket/ssl_client_socket_impl.cc
@@ -380,7 +380,33 @@ SSLClientSocketImpl::SSLClientSocketImpl(
@@ -288,7 +288,33 @@ SSLClientSocketImpl::SSLClientSocketImpl(
CHECK(context_);
}
@@ -183,7 +183,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket
Disconnect();
}
@@ -764,6 +790,8 @@ int SSLClientSocketImpl::Init() {
@@ -672,6 +698,8 @@ int SSLClientSocketImpl::Init() {
}
if (session)
SSL_set_session(ssl_.get(), session.get());
@@ -192,7 +192,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket
}
const int kBufferSize = GetDefaultOpenSSLBufferSize();
@@ -1062,6 +1090,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) {
@@ -960,6 +988,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) {
: SSLHandshakeDetails::kTLS13Full;
}
}
@@ -228,7 +228,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket
UMA_HISTOGRAM_ENUMERATION("Net.SSLHandshakeDetails", details);
// Measure TLS connections that implement the renegotiation_info extension.
@@ -1699,6 +1756,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const {
@@ -1585,6 +1642,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const {
}
bool SSLClientSocketImpl::IsCachingEnabled() const {
+4 -4
View File
@@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
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
@@ -586,6 +586,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs(
@@ -588,6 +588,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs(
WebRuntimeFeatures::EnableV8IdleTasks(true);
}
@@ -24,7 +24,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
--- a/gpu/config/gpu_finch_features.cc
+++ b/gpu/config/gpu_finch_features.cc
@@ -266,7 +266,7 @@ BASE_FEATURE(kEnableDrDc,
@@ -280,7 +280,7 @@ BASE_FEATURE(kEnableDrDc,
// enabled by default on supported platforms.
#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || \
BUILDFLAG(IS_ANDROID)
@@ -36,12 +36,12 @@ diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
diff --git a/third_party/blink/renderer/modules/webgpu/gpu.cc b/third_party/blink/renderer/modules/webgpu/gpu.cc
--- a/third_party/blink/renderer/modules/webgpu/gpu.cc
+++ b/third_party/blink/renderer/modules/webgpu/gpu.cc
@@ -376,6 +376,7 @@ ScriptPromise GPU::requestAdapter(ScriptState* script_state,
@@ -380,6 +380,7 @@ ScriptPromiseTyped<IDLNullable<GPUAdapter>> GPU::requestAdapter(
"WebGPU is experimental on this platform. See "
"https://github.com/gpuweb/gpuweb/wiki/"
"Implementation-Status#implementation-status"));
+ //(UAZO) add site setting
}
auto* resolver = MakeGarbageCollected<ScriptPromiseResolver>(script_state);
auto* resolver =
--
+72 -157
View File
@@ -5,34 +5,33 @@ Subject: Disable all predictors 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
---
chrome/browser/BUILD.gn | 2 --
.../preloading_model_keyed_service.cc | 1 +
.../preloading_model_keyed_service_factory.cc | 4 +--
.../chrome_hints_manager.cc | 1 +
.../model_validator_keyed_service.cc | 7 +++++-
.../optimization_guide_keyed_service.cc | 1 -
.../predictors/loading_predictor_config.cc | 4 +--
.../browser/predictors/predictors_features.cc | 11 ++------
chrome/browser/ui/tab_helpers.cc | 1 -
.../ui/webui/omnibox/omnibox_page_handler.cc | 14 +++++++++++
.../browser/autofill_optimization_guide.cc | 5 ++--
.../metrics/shadow_prediction_metrics.cc | 2 +-
.../browser/autocomplete_controller.cc | 2 ++
.../optimization_guide/core/hints_fetcher.cc | 1 +
.../optimization_guide/core/hints_manager.cc | 5 ++++
.../core/optimization_guide_features.cc | 25 +++++++++++--------
.../core/prediction_model_download_manager.cc | 6 +++--
.../core/prediction_model_fetcher_impl.cc | 1 +
components/optimization_guide/features.gni | 3 +--
.../phishing_classifier.cc | 2 +-
components/search/ntp_features.cc | 3 +++
.../Disable-all-predictors-code.inc | 4 +++
.../Disable-all-predictors-code.inc | 7 ++++++
.../Disable-all-predictors-code.inc | 4 +++
.../Disable-all-predictors-code.inc | 2 ++
.../document_speculation_rules.cc | 1 +
.../platform/runtime_enabled_features.json5 | 2 +-
27 files changed, 83 insertions(+), 38 deletions(-)
chrome/browser/BUILD.gn | 2 --
.../preloading_model_keyed_service.cc | 1 +
.../preloading_model_keyed_service_factory.cc | 4 +---
.../optimization_guide/chrome_hints_manager.cc | 1 +
.../model_validator_keyed_service.cc | 6 +++++-
.../optimization_guide_keyed_service.cc | 1 -
.../predictors/loading_predictor_config.cc | 4 ++--
chrome/browser/predictors/predictors_features.cc | 11 ++---------
chrome/browser/ui/tab_helpers.cc | 1 -
.../ui/webui/omnibox/omnibox_page_handler.cc | 2 ++
.../core/browser/autofill_optimization_guide.cc | 5 +++--
.../omnibox/browser/autocomplete_controller.cc | 2 ++
.../optimization_guide/core/hints_fetcher.cc | 1 +
.../optimization_guide/core/hints_manager.cc | 5 +++++
.../core/optimization_guide_features.cc | 15 +++++++++------
.../core/prediction_model_download_manager.cc | 6 ++++--
.../core/prediction_model_fetcher_impl.cc | 1 +
components/optimization_guide/features.gni | 3 +--
.../core/page_content_annotations_features.cc | 5 +++++
components/search/ntp_features.cc | 3 +++
.../Disable-all-predictors-code.inc | 4 ++++
.../Disable-all-predictors-code.inc | 1 +
.../features_cc/Disable-all-predictors-code.inc | 4 ++++
.../features_cc/Disable-all-predictors-code.inc | 2 ++
.../document_speculation_rules.cc | 1 +
.../platform/runtime_enabled_features.json5 | 2 +-
26 files changed, 61 insertions(+), 32 deletions(-)
create mode 100644 cromite_flags/chrome/browser/browser_features_cc/Disable-all-predictors-code.inc
create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc
create mode 100644 cromite_flags/components/permissions/features_cc/Disable-all-predictors-code.inc
@@ -41,7 +40,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -851,8 +851,6 @@ static_library("browser") {
@@ -847,8 +847,6 @@ static_library("browser") {
"navigation_predictor/navigation_predictor_keyed_service_factory.h",
"navigation_predictor/navigation_predictor_metrics_document_data.cc",
"navigation_predictor/navigation_predictor_metrics_document_data.h",
@@ -87,15 +86,7 @@ diff --git a/chrome/browser/optimization_guide/chrome_hints_manager.cc b/chrome/
diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc b/chrome/browser/optimization_guide/model_validator_keyed_service.cc
--- a/chrome/browser/optimization_guide/model_validator_keyed_service.cc
+++ b/chrome/browser/optimization_guide/model_validator_keyed_service.cc
@@ -8,6 +8,7 @@
#include "base/files/file_util.h"
#include "base/task/sequenced_task_runner.h"
#include "base/task/task_traits.h"
+#include "base/task/thread_pool.h"
#include "build/build_config.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/signin/identity_manager_factory.h"
@@ -55,13 +56,13 @@ namespace optimization_guide {
@@ -53,13 +53,13 @@ namespace optimization_guide {
ModelValidatorKeyedService::ModelValidatorKeyedService(Profile* profile)
: profile_(profile) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -110,7 +101,7 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc
if (switches::ShouldValidateModel()) {
// Create the validator object which will get destroyed when the model
// load is complete.
@@ -122,6 +123,7 @@ void ModelValidatorKeyedService::OnPrimaryAccountChanged(
@@ -120,6 +120,7 @@ void ModelValidatorKeyedService::OnPrimaryAccountChanged(
void ModelValidatorKeyedService::StartModelExecutionValidation() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -118,7 +109,7 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc
auto* opt_guide_service =
OptimizationGuideKeyedServiceFactory::GetForProfile(profile_);
if (!opt_guide_service) {
@@ -139,6 +141,7 @@ void ModelValidatorKeyedService::StartModelExecutionValidation() {
@@ -137,6 +138,7 @@ void ModelValidatorKeyedService::StartModelExecutionValidation() {
proto::ModelExecutionFeature::MODEL_EXECUTION_FEATURE_TEST, request,
base::BindOnce(&ModelValidatorKeyedService::OnModelExecuteResponse,
weak_ptr_factory_.GetWeakPtr()));
@@ -126,7 +117,7 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc
}
void ModelValidatorKeyedService::StartOnDeviceModelExecutionValidation(
@@ -156,6 +159,7 @@ void ModelValidatorKeyedService::StartOnDeviceModelExecutionValidation(
@@ -154,6 +156,7 @@ void ModelValidatorKeyedService::StartOnDeviceModelExecutionValidation(
void ModelValidatorKeyedService::PerformOnDeviceModelExecutionValidation(
std::unique_ptr<optimization_guide::proto::ComposeRequest> request) {
@@ -134,7 +125,7 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
auto* opt_guide_service =
OptimizationGuideKeyedServiceFactory::GetForProfile(profile_);
@@ -168,6 +172,7 @@ void ModelValidatorKeyedService::PerformOnDeviceModelExecutionValidation(
@@ -167,6 +170,7 @@ void ModelValidatorKeyedService::PerformOnDeviceModelExecutionValidation(
*request, base::RepeatingCallback(base::BindRepeating(
&ModelValidatorKeyedService::OnDeviceModelExecuteResponse,
weak_ptr_factory_.GetWeakPtr())));
@@ -145,7 +136,7 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc
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
@@ -528,7 +528,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel(
@@ -521,7 +521,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel(
void OptimizationGuideKeyedService::RegisterOptimizationTypes(
const std::vector<optimization_guide::proto::OptimizationType>&
optimization_types) {
@@ -204,7 +195,7 @@ diff --git a/chrome/browser/predictors/predictors_features.cc b/chrome/browser/p
diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
--- a/chrome/browser/ui/tab_helpers.cc
+++ b/chrome/browser/ui/tab_helpers.cc
@@ -414,7 +414,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
@@ -417,7 +417,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
}
MixedContentSettingsTabHelper::CreateForWebContents(web_contents);
NavigationMetricsRecorder::CreateForWebContents(web_contents);
@@ -220,61 +211,15 @@ diff --git a/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc b/chrome/br
#include "components/omnibox/browser/autocomplete_provider.h"
#include "components/omnibox/browser/autocomplete_result.h"
+#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
#include "components/omnibox/browser/autocomplete_scoring_model_service.h"
+#endif
#include "components/omnibox/browser/omnibox_field_trial.h"
+#endif
#include "components/optimization_guide/machine_learning_tflite_buildflags.h"
#include "components/search_engines/template_url.h"
#include "content/public/browser/web_ui.h"
@@ -498,6 +500,7 @@ void OmniboxPageHandler::StartOmniboxQuery(const std::string& input_string,
}
void OmniboxPageHandler::GetMlModelVersion(GetMlModelVersionCallback callback) {
+#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
if (auto* service = GetMlService()) {
auto version = service->GetModelVersion();
if (version == -1) {
@@ -510,10 +513,14 @@ void OmniboxPageHandler::GetMlModelVersion(GetMlModelVersionCallback callback) {
} else {
std::move(callback).Run(-1);
}
+#else
+ std::move(callback).Run(-1);
+#endif
}
void OmniboxPageHandler::StartMl(mojom::SignalsPtr mojom_signals,
StartMlCallback callback) {
+#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
if (auto* service = GetMlService()) {
AutocompleteMatch::ScoringSignals signals =
mojo::ConvertTo<AutocompleteMatch::ScoringSignals>(mojom_signals);
@@ -523,6 +530,9 @@ void OmniboxPageHandler::StartMl(mojom::SignalsPtr mojom_signals,
} else {
std::move(callback).Run(-1);
}
+#else
+ std::move(callback).Run(-1);
+#endif
}
std::unique_ptr<AutocompleteController> OmniboxPageHandler::CreateController(
@@ -547,8 +557,12 @@ OmniboxPageHandler::GetAutocompleteControllerType(
}
AutocompleteScoringModelService* OmniboxPageHandler::GetMlService() {
+#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
return OmniboxFieldTrial::IsMlUrlScoringEnabled()
? AutocompleteScoringModelServiceFactory::GetInstance()
->GetForProfile(profile_)
: nullptr;
+#else
+ return nullptr;
+#endif
}
diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/components/autofill/core/browser/autofill_optimization_guide.cc
--- a/components/autofill/core/browser/autofill_optimization_guide.cc
+++ b/components/autofill/core/browser/autofill_optimization_guide.cc
@@ -163,6 +163,7 @@ void AutofillOptimizationGuide::OnDidParseForm(
@@ -165,6 +165,7 @@ void AutofillOptimizationGuide::OnDidParseForm(
// If we do not have any optimization types to register, do not do anything.
if (!optimization_types.empty()) {
// Register all optimization types that we need based on `form_structure`.
@@ -282,7 +227,7 @@ diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/c
decider_->RegisterOptimizationTypes(
std::vector<optimization_guide::proto::OptimizationType>(
std::move(optimization_types).extract()));
@@ -214,7 +215,7 @@ bool AutofillOptimizationGuide::ShouldBlockSingleFieldSuggestions(
@@ -216,7 +217,7 @@ bool AutofillOptimizationGuide::ShouldBlockSingleFieldSuggestions(
AutofillField* field) const {
// If the field's storable type is `IBAN_VALUE`, check whether IBAN
// suggestions should be blocked based on `url`.
@@ -291,36 +236,24 @@ diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/c
optimization_guide::OptimizationGuideDecision decision =
decider_->CanApplyOptimization(
url, optimization_guide::proto::IBAN_AUTOFILL_BLOCKED,
@@ -240,7 +241,7 @@ bool AutofillOptimizationGuide::ShouldBlockFormFieldSuggestion(
const CreditCard* card) const {
@@ -242,7 +243,7 @@ bool AutofillOptimizationGuide::ShouldBlockFormFieldSuggestion(
const CreditCard& card) const {
if (auto optimization_type =
GetVcnMerchantOptOutOptimizationTypeForCard(*card);
GetVcnMerchantOptOutOptimizationTypeForCard(card);
- optimization_type != optimization_guide::proto::TYPE_UNSPECIFIED) {
+ decider_ && optimization_type != optimization_guide::proto::TYPE_UNSPECIFIED) {
optimization_guide::OptimizationGuideDecision decision =
decider_->CanApplyOptimization(url, optimization_type,
/*optimization_metadata=*/nullptr);
diff --git a/components/autofill/core/browser/metrics/shadow_prediction_metrics.cc b/components/autofill/core/browser/metrics/shadow_prediction_metrics.cc
--- a/components/autofill/core/browser/metrics/shadow_prediction_metrics.cc
+++ b/components/autofill/core/browser/metrics/shadow_prediction_metrics.cc
@@ -74,7 +74,7 @@ void LogRegexShadowPredictions(const AutofillField& field) {
void LogMlShadowPredictions(const AutofillField& field) {
#if !BUILDFLAG(BUILD_WITH_TFLITE_LIB)
- return;
+ if ((true)) return;
#endif
if (!base::FeatureList::IsEnabled(features::kAutofillModelPredictions)) {
return;
diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc
--- a/components/omnibox/browser/autocomplete_controller.cc
+++ b/components/omnibox/browser/autocomplete_controller.cc
@@ -47,7 +47,9 @@
@@ -46,7 +46,9 @@
#include "components/omnibox/browser/autocomplete_input.h"
#include "components/omnibox/browser/autocomplete_match_type.h"
#include "components/omnibox/browser/autocomplete_provider.h"
#include "components/omnibox/browser/autocomplete_provider_client.h"
+#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
#include "components/omnibox/browser/autocomplete_scoring_model_service.h"
#include "components/omnibox/browser/autocomplete_provider_client.h"
+#endif
#include "components/omnibox/browser/autocomplete_scoring_signals_annotator.h"
#include "components/omnibox/browser/bookmark_provider.h"
@@ -328,10 +261,10 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/
diff --git a/components/optimization_guide/core/hints_fetcher.cc b/components/optimization_guide/core/hints_fetcher.cc
--- a/components/optimization_guide/core/hints_fetcher.cc
+++ b/components/optimization_guide/core/hints_fetcher.cc
@@ -183,6 +183,7 @@ bool HintsFetcher::FetchOptimizationGuideServiceHints(
@@ -185,6 +185,7 @@ bool HintsFetcher::FetchOptimizationGuideServiceHints(
bool skip_cache,
HintsFetchedCallback hints_fetched_callback,
proto::RequestContextMetadata* request_context_metadata) {
std::optional<proto::RequestContextMetadata> request_context_metadata) {
+ if ((true)) return false;
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
DCHECK_GT(optimization_types.size(), 0u);
@@ -339,7 +272,7 @@ diff --git a/components/optimization_guide/core/hints_fetcher.cc b/components/op
diff --git a/components/optimization_guide/core/hints_manager.cc b/components/optimization_guide/core/hints_manager.cc
--- a/components/optimization_guide/core/hints_manager.cc
+++ b/components/optimization_guide/core/hints_manager.cc
@@ -390,6 +390,7 @@ void HintsManager::Shutdown() {
@@ -393,6 +393,7 @@ void HintsManager::Shutdown() {
OptimizationGuideDecision
HintsManager::GetOptimizationGuideDecisionFromOptimizationTypeDecision(
OptimizationTypeDecision optimization_type_decision) {
@@ -347,15 +280,15 @@ diff --git a/components/optimization_guide/core/hints_manager.cc b/components/op
switch (optimization_type_decision) {
case OptimizationTypeDecision::kAllowedByOptimizationFilter:
case OptimizationTypeDecision::kAllowedByHint:
@@ -1110,6 +1111,7 @@ void HintsManager::CanApplyOptimizationOnDemand(
@@ -1116,6 +1117,7 @@ void HintsManager::CanApplyOptimizationOnDemand(
OnDemandOptimizationGuideDecisionRepeatingCallback callback,
proto::RequestContextMetadata* request_context_metadata) {
std::optional<proto::RequestContextMetadata> request_context_metadata) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ if ((true)) return; // no consent on bromite
InsertionOrderedSet<GURL> urls_to_fetch;
InsertionOrderedSet<std::string> hosts_to_fetch;
@@ -1416,6 +1418,9 @@ OptimizationTypeDecision HintsManager::CanApplyOptimization(
@@ -1420,6 +1422,9 @@ OptimizationTypeDecision HintsManager::CanApplyOptimization(
bool skip_cache,
OptimizationMetadata* optimization_metadata) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -368,16 +301,9 @@ diff --git a/components/optimization_guide/core/hints_manager.cc b/components/op
diff --git a/components/optimization_guide/core/optimization_guide_features.cc b/components/optimization_guide/core/optimization_guide_features.cc
--- a/components/optimization_guide/core/optimization_guide_features.cc
+++ b/components/optimization_guide/core/optimization_guide_features.cc
@@ -37,18 +37,10 @@ namespace features {
@@ -36,11 +36,7 @@ namespace features {
namespace {
constexpr auto enabled_by_default_desktop_only =
-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
base::FEATURE_DISABLED_BY_DEFAULT;
-#else
- base::FEATURE_ENABLED_BY_DEFAULT;
-#endif
constexpr auto enabled_by_default_mobile_only =
-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
- base::FEATURE_ENABLED_BY_DEFAULT;
@@ -385,9 +311,9 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b
base::FEATURE_DISABLED_BY_DEFAULT;
-#endif
// Returns whether |locale| is a supported locale for |feature|.
//
@@ -575,8 +567,7 @@ size_t MaxURLKeyedHintCacheSize() {
} // namespace
@@ -434,8 +430,7 @@ size_t MaxURLKeyedHintCacheSize() {
}
bool ShouldPersistHintsToDisk() {
@@ -397,8 +323,8 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b
}
RequestContextSet GetAllowedContextsForPersonalizedMetadata() {
@@ -1080,5 +1071,19 @@ bool GetOnDeviceModelRetractRepeats() {
return kOnDeviceModelRetractRepeats.Get();
@@ -817,5 +812,13 @@ double GetOnDeviceModelDefaultTemperature() {
return kTemperature.Get();
}
+SET_CROMITE_FEATURE_DISABLED(kOptimizationHints);
@@ -406,14 +332,8 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b
+SET_CROMITE_FEATURE_DISABLED(kRemoteOptimizationGuideFetchingAnonymousDataConsent);
+SET_CROMITE_FEATURE_DISABLED(kOptimizationTargetPrediction);
+SET_CROMITE_FEATURE_DISABLED(kOptimizationGuideModelDownloading);
+SET_CROMITE_FEATURE_DISABLED(kPageContentAnnotations);
+SET_CROMITE_FEATURE_DISABLED(kRemotePageMetadata);
+SET_CROMITE_FEATURE_DISABLED(kPageEntitiesPageContentAnnotations);
+SET_CROMITE_FEATURE_DISABLED(kPushNotifications);
+SET_CROMITE_FEATURE_DISABLED(kPageVisibilityBatchAnnotations);
+SET_CROMITE_FEATURE_DISABLED(kPageContentAnnotationsValidation);
+SET_CROMITE_FEATURE_DISABLED(kPreventLongRunningPredictionModels);
+SET_CROMITE_FEATURE_DISABLED(kPageContentAnnotationsPersistSalientImageMetadata);
+SET_CROMITE_FEATURE_DISABLED(kOptimizationGuideFetchingForSRP);
} // namespace features
} // namespace optimization_guide
@@ -478,18 +398,19 @@ diff --git a/components/optimization_guide/features.gni b/components/optimizatio
}
declare_args() {
diff --git a/components/safe_browsing/content/renderer/phishing_classifier/phishing_classifier.cc b/components/safe_browsing/content/renderer/phishing_classifier/phishing_classifier.cc
--- a/components/safe_browsing/content/renderer/phishing_classifier/phishing_classifier.cc
+++ b/components/safe_browsing/content/renderer/phishing_classifier/phishing_classifier.cc
@@ -234,7 +234,7 @@ void PhishingClassifier::VisualExtractionFinished(bool success) {
*bitmap_, base::BindOnce(&PhishingClassifier::OnVisualTfLiteModelDone,
weak_factory_.GetWeakPtr(), std::move(verdict)));
#else
- RunCallback(*verdict);
+ //RunCallback(*verdict);
#endif
diff --git a/components/page_content_annotations/core/page_content_annotations_features.cc b/components/page_content_annotations/core/page_content_annotations_features.cc
--- a/components/page_content_annotations/core/page_content_annotations_features.cc
+++ b/components/page_content_annotations/core/page_content_annotations_features.cc
@@ -264,4 +264,9 @@ size_t MaxRelatedSearchesCacheSize() {
"max_related_searches_cache_size", 10);
}
+SET_CROMITE_FEATURE_DISABLED(kPageContentAnnotations);
+SET_CROMITE_FEATURE_DISABLED(kRemotePageMetadata);
+SET_CROMITE_FEATURE_DISABLED(kPageVisibilityBatchAnnotations);
+SET_CROMITE_FEATURE_DISABLED(kPageContentAnnotationsValidation);
+SET_CROMITE_FEATURE_DISABLED(kPageContentAnnotationsPersistSalientImageMetadata);
} // namespace page_content_annotations::features
diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.cc
--- a/components/search/ntp_features.cc
+++ b/components/search/ntp_features.cc
@@ -514,14 +435,8 @@ diff --git a/cromite_flags/chrome/common/chrome_features_cc/Disable-all-predicto
new file mode 100644
--- /dev/null
+++ b/cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc
@@ -0,0 +1,7 @@
@@ -0,0 +1 @@
+SET_CROMITE_FEATURE_DISABLED(kPrerenderFallbackToPreconnect);
+
+#if !BUILDFLAG(IS_ANDROID)
+
+SET_CROMITE_FEATURE_DISABLED(kSafetyCheckNotificationPermissions);
+
+#endif
diff --git a/cromite_flags/components/permissions/features_cc/Disable-all-predictors-code.inc b/cromite_flags/components/permissions/features_cc/Disable-all-predictors-code.inc
new file mode 100644
--- /dev/null
@@ -541,18 +456,18 @@ new file mode 100644
diff --git a/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc b/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc
--- a/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc
+++ b/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc
@@ -599,6 +599,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() {
@@ -657,6 +657,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() {
return;
}
+ if ((true)) return;
HeapVector<Member<SpeculationCandidate>> candidates;
auto push_candidates = [&candidates, &execution_context](
auto push_candidates = [&candidates, &document](
mojom::blink::SpeculationAction action,
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
@@ -2961,7 +2961,7 @@
@@ -3056,7 +3056,7 @@
//
// It also has some feature params defined throughout the codebase.
name: "Prerender2",
@@ -17,7 +17,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.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
@@ -1243,6 +1243,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@@ -1239,6 +1239,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
}
private boolean maybeShowPromo(Profile profile) {
@@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
--- a/chrome/browser/ui/browser_ui_prefs.cc
+++ b/chrome/browser/ui/browser_ui_prefs.cc
@@ -138,7 +138,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
@@ -137,7 +137,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(prefs::kEnterpriseHardwarePlatformAPIEnabled,
false);
@@ -40,7 +40,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u
diff --git a/chrome/browser/ui/views/user_education/browser_feature_promo_controller.cc b/chrome/browser/ui/views/user_education/browser_feature_promo_controller.cc
--- a/chrome/browser/ui/views/user_education/browser_feature_promo_controller.cc
+++ b/chrome/browser/ui/views/user_education/browser_feature_promo_controller.cc
@@ -132,6 +132,7 @@ ui::ElementContext BrowserFeaturePromoController::GetAnchorContext() const {
@@ -76,6 +76,7 @@ ui::ElementContext BrowserFeaturePromoController::GetAnchorContext() const {
bool BrowserFeaturePromoController::CanShowPromoForElement(
ui::TrackedElement* anchor_element) const {
@@ -51,7 +51,7 @@ diff --git a/chrome/browser/ui/views/user_education/browser_feature_promo_contro
diff --git a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java b/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java
--- a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java
+++ b/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java
@@ -74,6 +74,7 @@ public class UserEducationHelper {
@@ -125,6 +125,7 @@ public class UserEducationHelper {
}
private void showIPH(Tracker tracker, IPHCommand iphCommand) {
@@ -62,7 +62,7 @@ diff --git a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/
diff --git a/components/user_education/common/feature_promo_controller.cc b/components/user_education/common/feature_promo_controller.cc
--- a/components/user_education/common/feature_promo_controller.cc
+++ b/components/user_education/common/feature_promo_controller.cc
@@ -589,6 +589,7 @@ FeaturePromoResult FeaturePromoControllerCommon::CanShowPromoCommon(
@@ -600,6 +600,7 @@ FeaturePromoResult FeaturePromoControllerCommon::CanShowPromoCommon(
const FeaturePromoSpecification** spec_out,
std::unique_ptr<FeaturePromoLifecycle>* lifecycle_out,
ui::TrackedElement** anchor_element_out) const {
@@ -73,8 +73,8 @@ diff --git a/components/user_education/common/feature_promo_controller.cc b/comp
diff --git a/components/user_education/common/feature_promo_registry.cc b/components/user_education/common/feature_promo_registry.cc
--- a/components/user_education/common/feature_promo_registry.cc
+++ b/components/user_education/common/feature_promo_registry.cc
@@ -29,6 +29,7 @@ const FeaturePromoSpecification* FeaturePromoRegistry::GetParamsForFeature(
}
@@ -20,6 +20,7 @@ FeaturePromoRegistry& FeaturePromoRegistry::operator=(
FeaturePromoRegistry::~FeaturePromoRegistry() = default;
void FeaturePromoRegistry::RegisterFeature(FeaturePromoSpecification spec) {
+ if ((true)) return;
@@ -46,27 +46,27 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc
--- a/android_webview/browser/aw_content_browser_client.cc
+++ b/android_webview/browser/aw_content_browser_client.cc
@@ -1163,6 +1163,7 @@ network::mojom::AttributionSupport
@@ -1178,6 +1178,7 @@ network::mojom::AttributionSupport
AwContentBrowserClient::GetAttributionSupport(
AttributionReportingOsApiState state,
content::WebContents* web_contents) {
bool client_os_disabled) {
+ if ((true)) return network::mojom::AttributionSupport::kNone;
AwSettings* aw_settings = AwSettings::FromWebContents(web_contents);
if (aw_settings && aw_settings->GetAttributionBehavior() ==
AwSettings::AttributionBehavior::DISABLED) {
@@ -1187,6 +1188,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed(
// WebView only supports OS-level attribution and not web-attribution.
switch (state) {
case AttributionReportingOsApiState::kDisabled:
@@ -1196,6 +1197,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed(
const url::Origin* destination_origin,
const url::Origin* reporting_origin,
bool* can_bypass) {
+ if ((true))
+ return false;
// Check if attribution reporting has been disabled.
// This method should not be called at all if the configured behavior is
// DISABLED.
// WebView only supports OS-level attribution and not web-attribution.
// Note: We do not check here if attribution reporting has been disabled
// for the associated WebView as this is checked at the start of processing
diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.java b/android_webview/java/src/org/chromium/android_webview/AwSettings.java
--- a/android_webview/java/src/org/chromium/android_webview/AwSettings.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwSettings.java
@@ -162,7 +162,7 @@ public class AwSettings {
@@ -167,7 +167,7 @@ public class AwSettings {
private boolean mSpatialNavigationEnabled; // Default depends on device features.
private boolean mEnableSupportedHardwareAcceleratedFeatures;
private int mMixedContentMode = WebSettings.MIXED_CONTENT_NEVER_ALLOW;
@@ -75,7 +75,7 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.ja
private boolean mCSSHexAlphaColorEnabled;
private boolean mScrollTopLeftInteropEnabled;
private boolean mWillSuppressErrorPage;
@@ -1689,7 +1689,7 @@ public class AwSettings {
@@ -1705,7 +1705,7 @@ public class AwSettings {
public void setAttributionBehavior(@AttributionBehavior int behavior) {
synchronized (mAwSettingsLock) {
if (mAttributionBehavior != behavior) {
@@ -180,7 +180,7 @@ diff --git a/content/browser/aggregation_service/aggregation_service_features.cc
diff --git a/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc b/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc
--- a/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc
+++ b/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc
@@ -924,6 +924,7 @@ void AttributionDataHostManagerImpl::ParseHeader(
@@ -1041,6 +1041,7 @@ void AttributionDataHostManagerImpl::ParseHeader(
HeaderPendingDecode pending_decode,
Registrar registrar) {
DCHECK(it != registrations_.end());
@@ -191,7 +191,7 @@ diff --git a/content/browser/attribution_reporting/attribution_data_host_manager
diff --git a/content/browser/attribution_reporting/attribution_host.cc b/content/browser/attribution_reporting/attribution_host.cc
--- a/content/browser/attribution_reporting/attribution_host.cc
+++ b/content/browser/attribution_reporting/attribution_host.cc
@@ -257,6 +257,7 @@ void AttributionHost::NotifyNavigationRegistrationData(
@@ -258,6 +258,7 @@ void AttributionHost::NotifyNavigationRegistrationData(
return;
}
@@ -202,15 +202,15 @@ diff --git a/content/browser/attribution_reporting/attribution_host.cc b/content
diff --git a/content/browser/attribution_reporting/attribution_os_level_manager.cc b/content/browser/attribution_reporting/attribution_os_level_manager.cc
--- a/content/browser/attribution_reporting/attribution_os_level_manager.cc
+++ b/content/browser/attribution_reporting/attribution_os_level_manager.cc
@@ -47,6 +47,7 @@ std::optional<ApiState> g_state GUARDED_BY_CONTEXT(GetSequenceChecker());
@@ -45,6 +45,7 @@ std::optional<ApiState> g_state GUARDED_BY_CONTEXT(GetSequenceChecker());
// static
bool AttributionOsLevelManager::ShouldUseOsWebSource(
GlobalRenderFrameHostId render_frame_id) {
bool AttributionOsLevelManager::ShouldInitializeApiState() {
+ if ((true)) return false;
return GetContentClient()
->browser()
->ShouldUseOsWebSourceAttributionReporting(
@@ -75,7 +76,7 @@ bool AttributionOsLevelManager::ShouldInitializeApiState() {
DCHECK_CALLED_ON_VALID_SEQUENCE(GetSequenceChecker());
if (g_state.has_value()) {
return false;
@@ -56,7 +57,7 @@ bool AttributionOsLevelManager::ShouldInitializeApiState() {
// static
ApiState AttributionOsLevelManager::GetApiState() {
DCHECK_CALLED_ON_VALID_SEQUENCE(GetSequenceChecker());
@@ -271,7 +271,7 @@ diff --git a/content/browser/attribution_reporting/attribution_storage_sql.cc b/
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
@@ -1443,15 +1443,6 @@ void StoragePartitionImpl::Initialize(
@@ -1451,15 +1451,6 @@ void StoragePartitionImpl::Initialize(
bucket_manager_ = std::make_unique<BucketManager>(this);
@@ -727,15 +727,15 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
--- a/content/public/browser/content_browser_client.cc
+++ b/content/public/browser/content_browser_client.cc
@@ -543,6 +543,7 @@ void ContentBrowserClient::OnAuctionComplete(
@@ -539,6 +539,7 @@ void ContentBrowserClient::OnAuctionComplete(
network::mojom::AttributionSupport ContentBrowserClient::GetAttributionSupport(
AttributionReportingOsApiState state,
content::WebContents* web_contents) {
bool client_os_disabled) {
+ if ((true)) return network::mojom::AttributionSupport::kNone;
switch (state) {
case AttributionReportingOsApiState::kDisabled:
return network::mojom::AttributionSupport::kWeb;
@@ -559,17 +560,17 @@ bool ContentBrowserClient::IsAttributionReportingOperationAllowed(
@@ -556,13 +557,13 @@ bool ContentBrowserClient::IsAttributionReportingOperationAllowed(
const url::Origin* destination_origin,
const url::Origin* reporting_origin,
bool* can_bypass) {
@@ -743,14 +743,18 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b
+ return false;
}
bool ContentBrowserClient::ShouldUseOsWebSourceAttributionReporting(
content::RenderFrameHost* rfh) {
- return true;
+ return false;
ContentBrowserClient::AttributionReportingOsReportTypes
ContentBrowserClient::GetAttributionReportingOsReportTypes(
WebContents* web_contents) {
- return {AttributionReportType::kWeb, AttributionReportType::kWeb};
+ return {AttributionReportType::kDisabled, AttributionReportType::kDisabled};
}
bool ContentBrowserClient::ShouldUseOsWebTriggerAttributionReporting(
content::RenderFrameHost* rfh) {
bool ContentBrowserClient::IsAttributionReportingAllowedForContext(
@@ -570,7 +571,7 @@ bool ContentBrowserClient::IsAttributionReportingAllowedForContext(
content::RenderFrameHost* rfh,
const url::Origin& context_origin,
const url::Origin& reporting_origin) {
- return true;
+ return false;
}
@@ -832,7 +836,7 @@ diff --git a/services/network/public/cpp/attribution_utils.cc b/services/network
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
@@ -1352,7 +1352,7 @@ void Page::UpdateBrowsingContextGroup(
@@ -1383,7 +1383,7 @@ void Page::UpdateBrowsingContextGroup(
void Page::SetAttributionSupport(
network::mojom::AttributionSupport attribution_support) {
+1 -1
View File
@@ -11,7 +11,7 @@ Subject: Disable crash reporting
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
@@ -2509,15 +2509,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
@@ -2522,15 +2522,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
base::NumberToString(pid));
}
#endif
+2 -2
View File
@@ -17,7 +17,7 @@ diff --git a/third_party/blink/renderer/core/loader/ping_loader.cc b/third_party
if (!frame->DomWindow()
->GetContentSecurityPolicyForWorld(&state.World())
->AllowConnectToSource(url, url, RedirectStatus::kNoRedirect)) {
@@ -103,6 +104,7 @@ bool SendBeaconCommon(const ScriptState& state,
@@ -107,6 +108,7 @@ bool SendBeaconCommon(const ScriptState& state,
void PingLoader::SendLinkAuditPing(LocalFrame* frame,
const KURL& ping_url,
const KURL& destination_url) {
@@ -25,7 +25,7 @@ diff --git a/third_party/blink/renderer/core/loader/ping_loader.cc b/third_party
if (!ping_url.ProtocolIsInHTTPFamily())
return;
@@ -140,6 +142,7 @@ void PingLoader::SendLinkAuditPing(LocalFrame* frame,
@@ -147,6 +149,7 @@ void PingLoader::SendLinkAuditPing(LocalFrame* frame,
void PingLoader::SendViolationReport(ExecutionContext* execution_context,
const KURL& report_url,
scoped_refptr<EncodedFormData> report) {
@@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -1840,10 +1840,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
@@ -1869,10 +1869,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
supervised_user::RegisterProfilePrefs(registry);
#endif
@@ -64,7 +64,7 @@ diff --git a/components/feed/core/shared_prefs/pref_names.cc b/components/feed/c
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
@@ -164,4 +164,6 @@ BASE_FEATURE(kRefreshFeedOnRestart,
@@ -152,4 +152,6 @@ BASE_FEATURE(kRefreshFeedOnRestart,
"RefreshFeedOnRestart",
base::FEATURE_DISABLED_BY_DEFAULT);
@@ -33,7 +33,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/android_webview/common/aw_features.cc b/android_webview/common/aw_features.cc
--- a/android_webview/common/aw_features.cc
+++ b/android_webview/common/aw_features.cc
@@ -113,8 +113,8 @@ BASE_FEATURE(kWebViewJavaJsBridgeMojo,
@@ -119,8 +119,8 @@ BASE_FEATURE(kWebViewJavaJsBridgeMojo,
// Field trial feature for controlling support of Origin Trials on WebView.
BASE_FEATURE(kWebViewOriginTrials,
@@ -142,7 +142,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
diff --git a/components/ukm/ukm_recorder_impl.cc b/components/ukm/ukm_recorder_impl.cc
--- a/components/ukm/ukm_recorder_impl.cc
+++ b/components/ukm/ukm_recorder_impl.cc
@@ -164,6 +164,9 @@ bool HasUnknownMetrics(const builders::DecodeMap& decode_map,
@@ -165,6 +165,9 @@ bool HasUnknownMetrics(const builders::DecodeMap& decode_map,
UkmRecorderImpl::UkmRecorderImpl()
: sampling_seed_(static_cast<uint32_t>(base::RandUint64())) {
@@ -394,7 +394,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc
--- a/third_party/blink/renderer/core/loader/document_loader.cc
+++ b/third_party/blink/renderer/core/loader/document_loader.cc
@@ -197,13 +197,6 @@ WebVector<int> CopyInitiatorOriginTrials(
@@ -198,13 +198,6 @@ WebVector<int> CopyInitiatorOriginTrials(
const Vector<mojom::blink::OriginTrialFeature>&
initiator_origin_trial_features) {
WebVector<int> result;
+2 -2
View File
@@ -55,9 +55,9 @@ diff --git a/third_party/blink/renderer/modules/idle/idle_detector.idl b/third_p
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
@@ -2054,6 +2054,11 @@
@@ -2115,6 +2115,11 @@
name: "HTMLUnsafeMethods",
status: "experimental",
status: "stable",
},
+ {
+ name: "IdleDetection", // disabled
@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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,8 +434,8 @@ BASE_FEATURE(kOmniboxModernizeVisualUpdate,
@@ -431,8 +431,8 @@ BASE_FEATURE(kOmniboxModernizeVisualUpdate,
// used, on non-Android platforms this is controlled through the
// ChromeRefresh2023 flag.
BASE_FEATURE(kUpdatedConnectionSecurityIndicators,
@@ -23,7 +23,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse
#if !BUILDFLAG(IS_ANDROID)
if (!base::FeatureList::IsEnabled(kMediaRouter))
return false;
@@ -147,7 +148,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
@@ -148,7 +149,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
registry->RegisterStringPref(prefs::kMediaRouterReceiverIdHashToken, "",
PrefRegistry::PUBLIC);
registry->RegisterBooleanPref(
@@ -32,7 +32,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse
registry->RegisterBooleanPref(
media_router::prefs::kMediaRouterShowCastSessionsStartedByOtherDevices,
true);
@@ -218,4 +219,7 @@ std::optional<base::TimeDelta> GetCastMirroringPlayoutDelay() {
@@ -219,4 +220,7 @@ std::optional<base::TimeDelta> GetCastMirroringPlayoutDelay() {
#endif // !BUILDFLAG(IS_ANDROID)
@@ -55,7 +55,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p
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
@@ -586,6 +586,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs(
@@ -588,6 +588,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs(
WebRuntimeFeatures::EnableBackForwardCache(
content::IsBackForwardCacheEnabled());
@@ -79,7 +79,7 @@ diff --git a/third_party/blink/renderer/modules/remoteplayback/remote_playback.c
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -3086,14 +3086,10 @@
@@ -3184,14 +3184,10 @@
base_feature: "none",
},
{
@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -2147,9 +2147,7 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
@@ -2169,9 +2169,7 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
}
PluginData* LocalFrame::GetPluginData() const {
@@ -51,7 +51,7 @@ diff --git a/third_party/blink/renderer/core/preferences/preference_manager.idl
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
@@ -2945,7 +2945,11 @@
@@ -3040,7 +3040,11 @@
settable_from_internals: true,
},
{
@@ -5,14 +5,15 @@ Subject: Disable privacy issues in password manager
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
chrome/android/java/AndroidManifest.xml | 9 ---------
.../android/password_store_android_local_backend.cc | 3 +--
.../generated_password_leak_detection_pref.cc | 3 +--
.../affiliations/core/browser/affiliation_backend.cc | 1 +
.../core/browser/affiliation_service_impl.cc | 4 ++++
components/affiliations/core/browser/facet_manager.cc | 4 ++++
.../core/browser/features/password_features.cc | 4 ++++
.../core/browser/features/password_features.cc | 7 +++++++
.../leak_detection/leak_detection_check_factory_impl.cc | 5 +++++
.../browser/leak_detection/leak_detection_check_impl.cc | 4 +---
8 files changed, 20 insertions(+), 14 deletions(-)
9 files changed, 24 insertions(+), 16 deletions(-)
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
@@ -33,6 +34,19 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
<!-- Upgrade related -->
<receiver android:name="org.chromium.chrome.browser.upgrade.PackageReplacedBroadcastReceiver"
android:exported="false">
diff --git a/chrome/browser/password_manager/android/password_store_android_local_backend.cc b/chrome/browser/password_manager/android/password_store_android_local_backend.cc
--- a/chrome/browser/password_manager/android/password_store_android_local_backend.cc
+++ b/chrome/browser/password_manager/android/password_store_android_local_backend.cc
@@ -34,8 +34,7 @@ PasswordStoreAndroidLocalBackend::PasswordStoreAndroidLocalBackend(
: PasswordStoreAndroidBackend(std::move(bridge_helper),
std::move(lifecycle_helper),
prefs) {
- if (base::FeatureList::IsEnabled(
- password_manager::features::kUseGMSCoreForBrandingInfo)) {
+ if ((true)) {
// AccountBackend doesn't call `DisablePrefetching` when sync is turned off.
// This is why we have to explicitly call it here whenever local GMSCore is
// created.
diff --git a/chrome/browser/password_manager/generated_password_leak_detection_pref.cc b/chrome/browser/password_manager/generated_password_leak_detection_pref.cc
--- a/chrome/browser/password_manager/generated_password_leak_detection_pref.cc
+++ b/chrome/browser/password_manager/generated_password_leak_detection_pref.cc
@@ -60,7 +74,7 @@ diff --git a/components/affiliations/core/browser/affiliation_backend.cc b/compo
diff --git a/components/affiliations/core/browser/affiliation_service_impl.cc b/components/affiliations/core/browser/affiliation_service_impl.cc
--- a/components/affiliations/core/browser/affiliation_service_impl.cc
+++ b/components/affiliations/core/browser/affiliation_service_impl.cc
@@ -127,6 +127,10 @@ void AffiliationServiceImpl::Shutdown() {
@@ -128,6 +128,10 @@ void AffiliationServiceImpl::Shutdown() {
void AffiliationServiceImpl::PrefetchChangePasswordURLs(
const std::vector<GURL>& urls,
base::OnceClosure callback) {
@@ -88,13 +102,16 @@ diff --git a/components/affiliations/core/browser/facet_manager.cc b/components/
diff --git a/components/password_manager/core/browser/features/password_features.cc b/components/password_manager/core/browser/features/password_features.cc
--- a/components/password_manager/core/browser/features/password_features.cc
+++ b/components/password_manager/core/browser/features/password_features.cc
@@ -176,4 +176,8 @@ BASE_FEATURE(kUseGMSCoreForBrandingInfo,
base::FEATURE_DISABLED_BY_DEFAULT);
@@ -191,4 +191,11 @@ BASE_FEATURE(kUseGMSCoreForBrandingInfo,
base::FEATURE_ENABLED_BY_DEFAULT);
#endif
+SET_CROMITE_FEATURE_ENABLED(kFillOnAccountSelect);
+SET_CROMITE_FEATURE_DISABLED(kPasswordManagerEnableReceiverService);
+SET_CROMITE_FEATURE_DISABLED(kPasswordManagerEnableSenderService);
+#if BUILDFLAG(IS_ANDROID)
+SET_CROMITE_FEATURE_DISABLED(kUseGMSCoreForBrandingInfo);
+#endif
+
} // namespace password_manager::features
diff --git a/components/password_manager/core/browser/leak_detection/leak_detection_check_factory_impl.cc b/components/password_manager/core/browser/leak_detection/leak_detection_check_factory_impl.cc
+25 -24
View File
@@ -4,55 +4,55 @@ Subject: Disable safety check
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/android/BUILD.gn | 5 -----
chrome/android/chrome_java_sources.gni | 1 -
chrome/android/java/res/xml/main_preferences.xml | 5 -----
.../chrome/browser/settings/SettingsActivity.java | 15 ---------------
.../browser/settings/SettingsLauncherImpl.java | 5 +----
chrome/browser/BUILD.gn | 1 -
.../omnibox/suggestions/action/OmniboxPedal.java | 3 ---
7 files changed, 1 insertion(+), 34 deletions(-)
chrome/android/BUILD.gn | 5 -----
chrome/android/chrome_java_sources.gni | 1 -
chrome/android/java/res/xml/main_preferences.xml | 5 -----
.../browser/settings/SettingsActivity.java | 16 ----------------
.../browser/settings/SettingsLauncherImpl.java | 5 +----
chrome/browser/BUILD.gn | 1 -
.../omnibox/suggestions/action/OmniboxPedal.java | 3 ---
7 files changed, 1 insertion(+), 35 deletions(-)
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -401,7 +401,6 @@ if (current_toolchain == default_toolchain) {
@@ -433,7 +433,6 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/recent_tabs:helper_java",
"//chrome/browser/recent_tabs:java",
"//chrome/browser/safe_browsing/android:java",
- "//chrome/browser/safety_check/android:java",
"//chrome/browser/safety_hub/android:java",
"//chrome/browser/screenshot_monitor:java",
"//chrome/browser/search_engines/android:java",
"//chrome/browser/search_resumption:java",
@@ -1039,8 +1038,6 @@ if (current_toolchain == default_toolchain) {
@@ -1082,8 +1081,6 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/recent_tabs:java",
"//chrome/browser/recent_tabs:junit",
"//chrome/browser/recent_tabs/internal:junit",
- "//chrome/browser/safety_check/android:java",
- "//chrome/browser/safety_check/android:junit",
"//chrome/browser/safety_hub/android:java",
"//chrome/browser/screenshot_monitor:java",
"//chrome/browser/search_engines/android:java",
"//chrome/browser/search_engines/android:junit",
@@ -1661,8 +1658,6 @@ if (current_toolchain == default_toolchain) {
@@ -1710,8 +1707,6 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/quick_delete:javatests",
"//chrome/browser/safe_browsing/android:java",
"//chrome/browser/safe_browsing/android:javatests",
- "//chrome/browser/safety_check/android:java",
- "//chrome/browser/safety_check/android:javatests",
"//chrome/browser/safety_hub/android:java",
"//chrome/browser/screenshot_monitor:java",
"//chrome/browser/search_engines/android:java",
"//chrome/browser/segmentation_platform:javatests",
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
@@ -1009,7 +1009,6 @@ chrome_java_sources = [
@@ -1011,7 +1011,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",
- "java/src/org/chromium/chrome/browser/safety_check/SafetyCheckUpdatesDelegateImpl.java",
"java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java",
"java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java",
"java/src/org/chromium/chrome/browser/searchwidget/SearchBoxDataProvider.java",
"java/src/org/chromium/chrome/browser/searchwidget/SearchActivityUtils.java",
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
--- a/chrome/android/java/res/xml/main_preferences.xml
+++ b/chrome/android/java/res/xml/main_preferences.xml
@@ -66,12 +66,12 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
- android:order="13"
- android:title="@string/prefs_safety_check"/>
<Preference
android:fragment="org.chromium.chrome.browser.settings.AdBlockPreferences"
android:key="adblock"
android:fragment="org.chromium.chrome.browser.safety_hub.SafetyHubFragment"
android:key="safety_hub"
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
@@ -66,10 +66,6 @@ import org.chromium.chrome.browser.profiles.Profile;
@@ -69,10 +69,6 @@ import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.profiles.ProfileManager;
import org.chromium.chrome.browser.profiles.ProfileManagerUtils;
import org.chromium.chrome.browser.safe_browsing.settings.SafeBrowsingSettingsFragmentBase;
@@ -82,7 +82,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
import org.chromium.chrome.browser.search_engines.settings.SearchEngineSettings;
import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl;
import org.chromium.chrome.browser.site_settings.ChromeSiteSettingsDelegate;
@@ -535,17 +531,6 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -538,18 +534,6 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
baseSiteSettingsFragment.setCustomTabIntentHelper(
LaunchIntentDispatcher::createCustomTabActivityIntent);
}
@@ -95,7 +95,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
- SyncConsentActivityLauncherImpl.get(),
- getModalDialogManagerSupplier(),
- SyncServiceFactory.getForProfile(mProfile),
- UserPrefs.get(mProfile));
- UserPrefs.get(mProfile),
- PasswordManagerHelper.getForProfile(mProfile));
- }
if (fragment instanceof PasswordCheckFragmentView) {
PasswordCheckComponentUiFactory.create(
@@ -103,14 +104,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsLauncherImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsLauncherImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsLauncherImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsLauncherImpl.java
@@ -17,7 +17,6 @@ import org.chromium.chrome.browser.autofill.settings.AutofillPaymentMethodsFragm
@@ -18,7 +18,6 @@ import org.chromium.chrome.browser.autofill.settings.AutofillPaymentMethodsFragm
import org.chromium.chrome.browser.browsing_data.ClearBrowsingDataFragment;
import org.chromium.chrome.browser.browsing_data.ClearBrowsingDataFragmentAdvanced;
import org.chromium.chrome.browser.browsing_data.ClearBrowsingDataTabsFragment;
-import org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment;
import org.chromium.components.browser_ui.accessibility.AccessibilitySettings;
import org.chromium.components.browser_ui.settings.SettingsLauncher;
import org.chromium.components.browser_ui.site_settings.SiteSettings;
@@ -56,9 +55,7 @@ public class SettingsLauncherImpl implements SettingsLauncher {
break;
@@ -125,7 +126,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -3482,7 +3482,6 @@ static_library("browser") {
@@ -3487,7 +3487,6 @@ static_library("browser") {
"//chrome/browser/reading_list/android",
"//chrome/browser/recent_tabs:jni_headers",
"//chrome/browser/safe_browsing/android:safe_browsing_enums",
@@ -44,7 +44,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
@@ -183,6 +183,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -179,6 +179,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kCCTEmbedderSpecialBehaviorTrigger,
&kCCTExtendTrustedCdnPublisher,
&kCCTFeatureUsage,
@@ -55,18 +55,18 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
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
@@ -220,6 +220,7 @@ public abstract class ChromeFeatureList {
@@ -215,6 +215,7 @@ public abstract class ChromeFeatureList {
public static final String CCT_MINIMIZED_ENABLED_BY_DEFAULT = "CCTMinimizedEnabledByDefault";
public static final String CCT_INTENT_FEATURE_OVERRIDES = "CCTIntentFeatureOverrides";
public static final String CCT_PAGE_INSIGHTS_HUB = "CCTPageInsightsHub";
+ public static final String CHROME_SMART_SELECTION = "ChromeSmartSelection";
public static final String CCT_PAGE_INSIGHTS_HUB_BETTER_SCROLL =
"CCTPageInsightsHubBetterScroll";
public static final String CCT_REPORT_PARALLEL_REQUEST_STATUS =
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
@@ -1172,7 +1172,6 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
@@ -1199,7 +1199,6 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
public boolean canWebSearch() {
return hasSelection()
&& !isFocusedNodeEditable()
@@ -31,7 +31,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -1625,7 +1625,7 @@ ChromeContentRendererClient::CreateWorkerContentSettingsClient(
@@ -1636,7 +1636,7 @@ ChromeContentRendererClient::CreateWorkerContentSettingsClient(
std::unique_ptr<media::SpeechRecognitionClient>
ChromeContentRendererClient::CreateSpeechRecognitionClient(
content::RenderFrame* render_frame) {
@@ -43,7 +43,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
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
@@ -473,6 +473,14 @@ bool ContentSettingsAgentImpl::IsAllowlistedForContentSettings() const {
@@ -489,6 +489,14 @@ bool ContentSettingsAgentImpl::IsAllowlistedForContentSettings() const {
return false;
}
@@ -58,7 +58,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc
bool ContentSettingsAgentImpl::UpdateOverrides() {
// Evaluate the content setting rules
ContentSetting setting = CONTENT_SETTING_ALLOW;
@@ -483,7 +491,6 @@ bool ContentSettingsAgentImpl::UpdateOverrides() {
@@ -499,7 +507,6 @@ bool ContentSettingsAgentImpl::UpdateOverrides() {
}
return UpdateTimeZoneOverride(
setting, content_setting_rules_->timezone_override_value);
@@ -69,7 +69,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc
diff --git a/components/content_settings/renderer/content_settings_agent_impl.h b/components/content_settings/renderer/content_settings_agent_impl.h
--- a/components/content_settings/renderer/content_settings_agent_impl.h
+++ b/components/content_settings/renderer/content_settings_agent_impl.h
@@ -117,6 +117,8 @@ class ContentSettingsAgentImpl
@@ -121,6 +121,8 @@ class ContentSettingsAgentImpl
void SetRendererContentSettingRulesForTest(
const RendererContentSettingRules& rules);
@@ -22,10 +22,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -366,7 +366,7 @@ void PrefsTabHelper::RegisterProfilePrefs(
prefs::kEnableReferrers,
!base::FeatureList::IsEnabled(features::kNoReferrers));
@@ -368,7 +368,7 @@ void PrefsTabHelper::RegisterProfilePrefs(
registry->RegisterBooleanPref(prefs::kEnableEncryptedMedia, true);
registry->RegisterStringPref(prefs::kPrefixedVideoFullscreenApiAvailability,
"runtime-enabled");
- registry->RegisterBooleanPref(prefs::kScrollToTextFragmentEnabled, true);
+ registry->RegisterBooleanPref(prefs::kScrollToTextFragmentEnabled, false);
#if BUILDFLAG(IS_ANDROID)
@@ -74,9 +74,9 @@ new file mode 100644
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
@@ -4624,9 +4624,14 @@ void Document::SetURL(const KURL& url) {
TRACE_EVENT1("navigation", "Document::SetURL", "url",
new_url.GetString().Utf8());
@@ -4678,9 +4678,14 @@ void Document::SetURL(const KURL& url) {
TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT,
"url", new_url.GetString().Utf8());
+ // If text fragment identifiers are enabled, we strip the fragment directive
+ // from the URL fragment.
@@ -92,7 +92,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
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
@@ -3687,10 +3687,9 @@
@@ -3822,10 +3822,9 @@
},
{
name: "TextFragmentIdentifiers",
@@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/android_webview/common/aw_content_client.cc b/android_webview/common/aw_content_client.cc
--- a/android_webview/common/aw_content_client.cc
+++ b/android_webview/common/aw_content_client.cc
@@ -127,7 +127,6 @@ blink::OriginTrialPolicy* AwContentClient::GetOriginTrialPolicy() {
@@ -129,7 +129,6 @@ blink::OriginTrialPolicy* AwContentClient::GetOriginTrialPolicy() {
// flag to true after construction. This will work because trial token
// validator will always get the current instance of policy when needed.
if (IsDisableOriginTrialsSafeModeActionOn()) {
@@ -76,7 +76,7 @@ diff --git a/components/embedder_support/origin_trials/origin_trial_policy_impl.
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
@@ -8686,7 +8686,6 @@ void NavigationRequest::SetSourceSiteInstanceToInitiatorIfNeeded() {
@@ -8849,7 +8849,6 @@ void NavigationRequest::SetSourceSiteInstanceToInitiatorIfNeeded() {
void NavigationRequest::ForceEnableOriginTrials(
const std::vector<std::string>& trials) {
DCHECK(!HasCommitted());
@@ -106,7 +106,7 @@ diff --git a/content/browser/renderer_host/origin_trial_state_host_impl.cc b/con
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -538,10 +538,6 @@ void FillNavigationParamsRequest(
@@ -539,10 +539,6 @@ void FillNavigationParamsRequest(
common_params.initiator_origin.value();
}
@@ -117,7 +117,7 @@ diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_fra
navigation_params->was_discarded = commit_params.was_discarded;
navigation_params->document_ukm_source_id =
commit_params.document_ukm_source_id;
@@ -569,12 +565,6 @@ void FillNavigationParamsRequest(
@@ -570,12 +566,6 @@ void FillNavigationParamsRequest(
navigation_params->had_transient_user_activation =
common_params.has_user_gesture;
@@ -130,7 +130,7 @@ diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_fra
if (!commit_params.early_hints_preloaded_resources.empty()) {
navigation_params->early_hints_preloaded_resources = WebVector<WebURL>();
for (const auto& resource : commit_params.early_hints_preloaded_resources) {
@@ -636,11 +626,6 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams(
@@ -637,11 +627,6 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams(
info->url_request.GetURLRequestExtraData().get());
DCHECK(url_request_extra_data);
@@ -142,7 +142,7 @@ diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_fra
blink::NavigationDownloadPolicy download_policy;
download_policy.ApplyDownloadFramePolicy(
info->is_opener_navigation, info->url_request.HasUserGesture(),
@@ -663,7 +648,7 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams(
@@ -664,7 +649,7 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams(
info->url_request.HasUserGesture(),
info->url_request.HasTextFragmentToken(),
info->should_check_main_world_content_security_policy,
@@ -194,7 +194,7 @@ diff --git a/third_party/blink/common/origin_trials/trial_token_validator.cc b/t
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc
--- a/third_party/blink/renderer/core/loader/document_loader.cc
+++ b/third_party/blink/renderer/core/loader/document_loader.cc
@@ -183,13 +183,6 @@ namespace {
@@ -184,13 +184,6 @@ namespace {
Vector<mojom::blink::OriginTrialFeature> CopyInitiatorOriginTrials(
const WebVector<int>& initiator_origin_trial_features) {
Vector<mojom::blink::OriginTrialFeature> result;
@@ -208,7 +208,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p
return result;
}
@@ -203,18 +196,12 @@ WebVector<int> CopyInitiatorOriginTrials(
@@ -204,18 +197,12 @@ WebVector<int> CopyInitiatorOriginTrials(
Vector<String> CopyForceEnabledOriginTrials(
const WebVector<WebString>& force_enabled_origin_trials) {
Vector<String> result;
@@ -227,7 +227,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p
return result;
}
@@ -2936,10 +2923,6 @@ void DocumentLoader::CreateParserPostCommit() {
@@ -3030,10 +3017,6 @@ void DocumentLoader::CreateParserPostCommit() {
mojom::blink::OriginTrialFeature::kTouchEventFeatureDetection);
}
+5 -5
View File
@@ -103,7 +103,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
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
@@ -83,7 +83,6 @@
@@ -84,7 +84,6 @@
#include "chrome/browser/hid/chrome_hid_delegate.h"
#include "chrome/browser/interstitials/enterprise_util.h"
#include "chrome/browser/lifetime/browser_shutdown.h"
@@ -111,7 +111,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
#include "chrome/browser/media/audio_service_util.h"
#include "chrome/browser/media/prefs/capture_device_ranking.h"
#include "chrome/browser/media/router/media_router_feature.h"
@@ -4908,16 +4907,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
@@ -4953,16 +4952,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
content::NavigationHandle* handle) {
std::vector<std::unique_ptr<content::NavigationThrottle>> throttles;
@@ -128,7 +128,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
MaybeAddThrottle(
SupervisedUserNavigationThrottle::MaybeCreateThrottleFor(handle),
@@ -5018,10 +5007,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
@@ -5063,10 +5052,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
throttle_manager->MaybeAppendNavigationThrottles(handle, &throttles);
}
@@ -142,7 +142,7 @@ 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
@@ -92,6 +92,10 @@ BASE_FEATURE(kPostFREFixMetricsReportingFeature,
@@ -93,6 +93,10 @@ BASE_FEATURE(kPostFREFixMetricsReportingFeature,
// Name of the variations param that defines the sampling rate.
const char kRateParamName[] = "sampling_rate_per_mille";
@@ -210,7 +210,7 @@ diff --git a/components/ntp_tiles/custom_links_manager_impl.cc b/components/ntp_
diff --git a/components/ntp_tiles/most_visited_sites.cc b/components/ntp_tiles/most_visited_sites.cc
--- a/components/ntp_tiles/most_visited_sites.cc
+++ b/components/ntp_tiles/most_visited_sites.cc
@@ -704,8 +704,6 @@ void MostVisitedSites::SaveTilesAndNotify(
@@ -705,8 +705,6 @@ void MostVisitedSites::SaveTilesAndNotify(
: new_tiles;
if (fixed_tiles.size() != new_tiles.size()) {
@@ -9,7 +9,7 @@ Subject: Disallow Android App Scheme as referrer
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -547,11 +547,6 @@ void ChromeContentRendererClient::RenderThreadStarted() {
@@ -556,11 +556,6 @@ void ChromeContentRendererClient::RenderThreadStarted() {
// TODO(nyquist): Add test to ensure this happens when the flag is set.
WebSecurityPolicy::RegisterURLSchemeAsDisplayIsolated(dom_distiller_scheme);
@@ -4,14 +4,14 @@ Subject: Disallowing MIDI permission by default
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
.../Disallowing-MIDI-permission-by-default.inc | 1 +
.../features_cc/Disallowing-MIDI-permission-by-default.inc | 1 +
1 file changed, 1 insertion(+)
create mode 100644 cromite_flags/content/public/common/content_features_cc/Disallowing-MIDI-permission-by-default.inc
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Disallowing-MIDI-permission-by-default.inc
diff --git a/cromite_flags/content/public/common/content_features_cc/Disallowing-MIDI-permission-by-default.inc b/cromite_flags/content/public/common/content_features_cc/Disallowing-MIDI-permission-by-default.inc
diff --git a/cromite_flags/third_party/blink/common/features_cc/Disallowing-MIDI-permission-by-default.inc b/cromite_flags/third_party/blink/common/features_cc/Disallowing-MIDI-permission-by-default.inc
new file mode 100644
--- /dev/null
+++ b/cromite_flags/content/public/common/content_features_cc/Disallowing-MIDI-permission-by-default.inc
+++ b/cromite_flags/third_party/blink/common/features_cc/Disallowing-MIDI-permission-by-default.inc
@@ -0,0 +1 @@
+SET_CROMITE_FEATURE_ENABLED(kBlockMidiByDefault);
--
@@ -5,13 +5,13 @@ Subject: Do not build API keys infobar
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/browser/ui/BUILD.gn | 2 --
chrome/browser/ui/startup/infobar_utils.cc | 3 ---
2 files changed, 5 deletions(-)
chrome/browser/ui/startup/infobar_utils.cc | 4 ----
2 files changed, 6 deletions(-)
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -1416,8 +1416,6 @@ static_library("ui") {
@@ -1429,8 +1429,6 @@ static_library("ui") {
"singleton_tabs.h",
"startup/automation_infobar_delegate.cc",
"startup/automation_infobar_delegate.h",
@@ -23,12 +23,13 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
diff --git a/chrome/browser/ui/startup/infobar_utils.cc b/chrome/browser/ui/startup/infobar_utils.cc
--- a/chrome/browser/ui/startup/infobar_utils.cc
+++ b/chrome/browser/ui/startup/infobar_utils.cc
@@ -146,9 +146,6 @@ void AddInfoBarsIfNecessary(Browser* browser,
@@ -151,10 +151,6 @@ void AddInfoBarsIfNecessary(Browser* browser,
infobars::ContentInfoBarManager* infobar_manager =
infobars::ContentInfoBarManager::FromWebContents(web_contents);
- if (!google_apis::HasAPIKeyConfigured())
- if (!google_apis::HasAPIKeyConfigured()) {
- GoogleApiKeysInfoBarDelegate::Create(infobar_manager);
- }
-
if (ObsoleteSystem::IsObsoleteNowOrSoon()) {
PrefService* local_state = g_browser_process->local_state();
@@ -14,7 +14,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
@@ -3509,7 +3509,6 @@ generate_jni("chrome_jni_headers") {
@@ -3542,7 +3542,6 @@ generate_jni("chrome_jni_headers") {
"../browser/share/android/java/src/org/chromium/chrome/browser/share/link_to_text/LinkToTextBridge.java",
"../browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/LongScreenshotsTabService.java",
"../browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/LongScreenshotsTabServiceFactory.java",
@@ -25,7 +25,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
@@ -113,7 +113,6 @@ import org.chromium.chrome.browser.share.ShareButtonController;
@@ -112,7 +112,6 @@ import org.chromium.chrome.browser.share.ShareButtonController;
import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.share.ShareDelegate.ShareOrigin;
import org.chromium.chrome.browser.share.ShareUtils;
@@ -33,7 +33,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;
@@ -595,10 +594,6 @@ public class RootUiCoordinator
@@ -594,10 +593,6 @@ public class RootUiCoordinator
}
public void onAttachFragment(Fragment fragment) {
@@ -47,10 +47,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
diff --git a/chrome/browser/share/BUILD.gn b/chrome/browser/share/BUILD.gn
--- a/chrome/browser/share/BUILD.gn
+++ b/chrome/browser/share/BUILD.gn
@@ -43,7 +43,6 @@ source_set("share") {
"default_ranking_android.cc",
"editor_screenshot_task.cc",
@@ -45,7 +45,6 @@ source_set("share") {
"link_to_text_bridge.cc",
"page_info_sharing_bridge.cc",
"page_info_sharing_bridge.h",
- "qr_code_generator_android.cc",
]
deps += [
@@ -66,7 +66,7 @@ diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/s
import org.chromium.chrome.browser.share.send_tab_to_self.SendTabToSelfAndroidBridge;
import org.chromium.chrome.browser.share.send_tab_to_self.SendTabToSelfCoordinator;
import org.chromium.chrome.browser.share.share_sheet.ChromeOptionShareCallback;
@@ -268,9 +267,6 @@ public abstract class ChromeProvidedSharingOptionsProviderBase {
@@ -276,9 +275,6 @@ public abstract class ChromeProvidedSharingOptionsProviderBase {
}
private void maybeAddQrCodeFirstPartyOption() {
@@ -76,7 +76,7 @@ diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/s
}
private void maybeAddLongScreenshotFirstPartyOption() {
@@ -386,24 +382,6 @@ public abstract class ChromeProvidedSharingOptionsProviderBase {
@@ -394,24 +390,6 @@ public abstract class ChromeProvidedSharingOptionsProviderBase {
.build();
}
@@ -104,10 +104,10 @@ diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/s
diff --git a/chrome/browser/share/android/java_sources.gni b/chrome/browser/share/android/java_sources.gni
--- a/chrome/browser/share/android/java_sources.gni
+++ b/chrome/browser/share/android/java_sources.gni
@@ -33,17 +33,6 @@ share_java_sources = [
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/page_info_sheet/PageInfoBottomSheetCoordinator.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/page_info_sheet/PageInfoBottomSheetMediator.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/page_info_sheet/PageInfoBottomSheetProperties.java",
@@ -36,17 +36,6 @@ share_java_sources = [
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/page_info_sheet/PageInfoBottomSheetViewBinder.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/page_info_sheet/PageInfoSharingController.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/page_info_sheet/PageInfoSharingControllerImpl.java",
- "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/QRCodeGenerator.java",
- "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/QrCodeCoordinator.java",
- "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/QrCodeDialog.java",
@@ -26,7 +26,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
- if (dirs.size() == 1
- && !mLocationDialogManaged
- && mDialogType == DownloadLocationDialogType.DEFAULT
- && !shouldShowIncognitoWarning()) {
- && !mProfile.isOffTheRecord()) {
- final DirectoryOption dir = dirs.get(0);
- if (dir.type == DirectoryOption.DownloadLocationDirectoryType.DEFAULT) {
- assert (!TextUtils.isEmpty(dir.location));
@@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/base/BUILD.gn b/base/BUILD.gn
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -1128,7 +1128,7 @@ component("base") {
@@ -1133,7 +1133,7 @@ component("base") {
# more robust check for this.
if (!use_sysroot && (is_android || is_chromeos || (is_linux && !is_castos)) &&
host_toolchain != "//build/toolchain/cros:host") {
@@ -0,0 +1,43 @@
From: uazo <uazo@users.noreply.github.com>
Date: Tue, 16 Apr 2024 12:29:29 +0000
Subject: Do not use Windows ClearType Text Tuner setting
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
ui/gfx/font_render_params_win.cc | 4 ++--
ui/gfx/font_util_win.cc | 1 +
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/ui/gfx/font_render_params_win.cc b/ui/gfx/font_render_params_win.cc
--- a/ui/gfx/font_render_params_win.cc
+++ b/ui/gfx/font_render_params_win.cc
@@ -22,6 +22,7 @@ namespace gfx {
namespace {
FontRenderParams::SubpixelRendering GetSubpixelRenderingGeometry() {
+ if ((true)) return FontRenderParams::SUBPIXEL_RENDERING_NONE;
DWORD pixel_structure;
base::win::RegKey key = FontUtilWin::GetTextSettingsRegistryKey();
if (key.Valid() &&
@@ -75,8 +76,7 @@ class CachedFontRenderParams {
params_->hinting = FontRenderParams::HINTING_MEDIUM;
params_->subpixel_rendering = FontRenderParams::SUBPIXEL_RENDERING_NONE;
- BOOL enabled = false;
- if (SystemParametersInfo(SPI_GETFONTSMOOTHING, 0, &enabled, 0) && enabled) {
+ if ((true)) {
params_->antialiasing = true;
params_->subpixel_positioning = true;
diff --git a/ui/gfx/font_util_win.cc b/ui/gfx/font_util_win.cc
--- a/ui/gfx/font_util_win.cc
+++ b/ui/gfx/font_util_win.cc
@@ -52,6 +52,7 @@ TextParameters GetTextParameters() {
// static
base::win::RegKey FontUtilWin::GetTextSettingsRegistryKey(REGSAM access) {
+ if ((true)) return base::win::RegKey{};
DISPLAY_DEVICE display_device = {sizeof(DISPLAY_DEVICE)};
for (int i = 0; EnumDisplayDevices(nullptr, i, &display_device, 0); ++i) {
// TODO(scottmg): We only support the primary device currently.
--
+2 -2
View File
@@ -24,7 +24,7 @@ diff --git a/chrome/browser/net/stub_resolver_config_reader.cc b/chrome/browser/
} else if (entries.count("dns-over-https@2")) {
// The user has "Disabled" selected.
local_state_->SetString(prefs::kDnsOverHttpsMode,
@@ -346,22 +346,7 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration(
@@ -348,22 +348,7 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration(
check_parental_controls = false;
}
@@ -82,7 +82,7 @@ diff --git a/net/dns/dns_client.cc b/net/dns/dns_client.cc
diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
--- a/net/dns/host_resolver_manager.cc
+++ b/net/dns/host_resolver_manager.cc
@@ -599,6 +599,7 @@ void HostResolverManager::SetDnsConfigOverrides(DnsConfigOverrides overrides) {
@@ -583,6 +583,7 @@ void HostResolverManager::SetDnsConfigOverrides(DnsConfigOverrides overrides) {
bool changed = dns_client_->SetConfigOverrides(std::move(overrides));
if (changed) {
@@ -1,572 +0,0 @@
From: uazo <uazo@users.noreply.github.com>
Date: Wed, 3 Apr 2024 13:32:27 +0000
Subject: Emoji Fonts fingerprinting mitigation 01-02
Replaces the platform emoji font with the one embedded in the apk.
Require: Fonts-fingerprinting-mitigation.patch
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
chrome/android/BUILD.gn | 1 +
content/browser/v8_snapshot_files.cc | 9 ++
.../public/common/content_descriptor_keys.cc | 8 ++
.../public/common/content_descriptor_keys.h | 5 ++
...renderer_main_platform_delegate_android.cc | 88 +++++++++++++++++++
.../platform/fonts/skia/android/BUILD.gn | 17 ++++
.../fonts/skia/android/cromite_fonts.xml | 16 ++++
.../platform/fonts/skia/font_cache_skia.cc | 15 ++++
.../skia/include/ports/SkFontMgr_android.h | 30 ++++++-
.../skia/src/ports/SkFontMgr_android.cpp | 46 +++++++---
.../src/ports/SkFontMgr_android_parser.cpp | 37 +++++---
.../skia/src/ports/SkFontMgr_android_parser.h | 2 +
12 files changed, 250 insertions(+), 24 deletions(-)
create mode 100644 third_party/blink/renderer/platform/fonts/skia/android/BUILD.gn
create mode 100644 third_party/blink/renderer/platform/fonts/skia/android/cromite_fonts.xml
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -2176,6 +2176,7 @@ if (current_toolchain == default_toolchain) {
java_group("chrome_public_non_pak_assets") {
deps = [
+ "//third_party/blink/renderer/platform/fonts/skia/android:font_assets",
"//chrome/android/webapk/libs/runtime_library:runtime_library_assets",
]
}
diff --git a/content/browser/v8_snapshot_files.cc b/content/browser/v8_snapshot_files.cc
--- a/content/browser/v8_snapshot_files.cc
+++ b/content/browser/v8_snapshot_files.cc
@@ -22,12 +22,21 @@ GetV8SnapshotFilesToPreload() {
base::FilePath(FILE_PATH_LITERAL("snapshot_blob.bin"));
#endif
#elif BUILDFLAG(IS_ANDROID)
+ files[kFontsXmlDataDescriptor] =
+ base::FilePath(FILE_PATH_LITERAL("assets/fonts/cromite_fonts.xml"));
+ files[kNotoColorEmonjiDataDescriptor] =
+ base::FilePath(FILE_PATH_LITERAL("assets/fonts/NotoColorEmoji.ttf"));
+ files[kNotoSansSymbolsRegularSubsettedDataDescriptor] =
+ base::FilePath(FILE_PATH_LITERAL("assets/fonts/NotoSansSymbols-Regular-Subsetted.ttf"));
+ files[kNotoSansSymbolsRegularSubsetted2DataDescriptor] =
+ base::FilePath(FILE_PATH_LITERAL("assets/fonts/NotoSansSymbols-Regular-Subsetted2.ttf"));
#if !BUILDFLAG(USE_V8_CONTEXT_SNAPSHOT)
files[kV8Snapshot64DataDescriptor] =
base::FilePath(FILE_PATH_LITERAL("assets/snapshot_blob_64.bin"));
files[kV8Snapshot32DataDescriptor] =
base::FilePath(FILE_PATH_LITERAL("assets/snapshot_blob_32.bin"));
#elif BUILDFLAG(USE_V8_CONTEXT_SNAPSHOT)
+#error "Check this patch"
// For USE_V8_CONTEXT_SNAPSHOT, the renderer reads the files directly.
return {};
#endif
diff --git a/content/public/common/content_descriptor_keys.cc b/content/public/common/content_descriptor_keys.cc
--- a/content/public/common/content_descriptor_keys.cc
+++ b/content/public/common/content_descriptor_keys.cc
@@ -6,6 +6,14 @@
namespace content {
+const char kFontsXmlDataDescriptor[] = "fonts_xml";
+
+const char kNotoColorEmonjiDataDescriptor[] = "noto_color_emonji_data";
+
+const char kNotoSansSymbolsRegularSubsettedDataDescriptor[] = "notosanssymbols_regular_subsetted";
+
+const char kNotoSansSymbolsRegularSubsetted2DataDescriptor[] = "notosanssymbols_regular_subsetted2";
+
const char kV8SnapshotDataDescriptor[] = "v8_snapshot_data";
const char kV8Snapshot32DataDescriptor[] = "v8_snapshot_32_data";
diff --git a/content/public/common/content_descriptor_keys.h b/content/public/common/content_descriptor_keys.h
--- a/content/public/common/content_descriptor_keys.h
+++ b/content/public/common/content_descriptor_keys.h
@@ -10,6 +10,11 @@ namespace content {
// This is a list of global descriptor keys to be used with the
// base::FileDescriptorStore object (see base/file_descriptor_store.h)
+extern const char kFontsXmlDataDescriptor[];
+extern const char kNotoColorEmonjiDataDescriptor[];
+extern const char kNotoSansSymbolsRegularSubsettedDataDescriptor[];
+extern const char kNotoSansSymbolsRegularSubsetted2DataDescriptor[];
+
extern const char kV8SnapshotDataDescriptor[];
extern const char kV8Snapshot32DataDescriptor[];
extern const char kV8Snapshot64DataDescriptor[];
diff --git a/content/renderer/renderer_main_platform_delegate_android.cc b/content/renderer/renderer_main_platform_delegate_android.cc
--- a/content/renderer/renderer_main_platform_delegate_android.cc
+++ b/content/renderer/renderer_main_platform_delegate_android.cc
@@ -19,6 +19,93 @@
#include "sandbox/policy/sandbox_type.h"
#endif
+#include "base/path_service.h"
+#include "base/base_paths_android.h"
+#include "base/file_descriptor_store.h"
+#include "base/strings/string_number_conversions.h"
+#include "base/files/file_path.h"
+#include "content/public/common/content_descriptor_keys.h"
+#include "skia/ext/font_utils.h"
+#include "third_party/skia/include/core/SkFontMgr.h"
+#include "third_party/skia/include/ports/SkFontMgr_android.h"
+#include "third_party/blink/public/platform/web_font_render_style.h"
+
+namespace {
+ void InitializeCustomFonts() {
+ base::FileDescriptorStore& file_descriptor_store =
+ base::FileDescriptorStore::GetInstance();
+
+ base::MemoryMappedFile::Region fd_fonts_region;
+ base::ScopedFD fd_fonts = file_descriptor_store.MaybeTakeFD(
+ content::kFontsXmlDataDescriptor, &fd_fonts_region);
+ if (!fd_fonts.is_valid()) {
+ LOG(ERROR) << "FontsXmlDataDescriptor not found";
+ return;
+ }
+
+ base::MemoryMappedFile::Region fd_noto_font_region;
+ base::ScopedFD fd_noto_font = file_descriptor_store.MaybeTakeFD(
+ content::kNotoColorEmonjiDataDescriptor, &fd_noto_font_region);
+ if (!fd_noto_font.is_valid()) {
+ LOG(ERROR) << "NotoColorEmonjiDataDescriptor not found";
+ return;
+ }
+
+ base::MemoryMappedFile::Region fd_notosanssymbols_regular_subsetted_region;
+ base::ScopedFD fd_notosanssymbols_regular_subsetted_font = file_descriptor_store.MaybeTakeFD(
+ content::kNotoSansSymbolsRegularSubsettedDataDescriptor, &fd_notosanssymbols_regular_subsetted_region);
+ if (!fd_notosanssymbols_regular_subsetted_font.is_valid()) {
+ LOG(ERROR) << "kNotoSansSymbolsRegularSubsettedDataDescriptor not found";
+ return;
+ }
+
+ base::MemoryMappedFile::Region fd_notosanssymbols_regular_subsetted2_region;
+ base::ScopedFD fd_notosanssymbols_regular_subsetted2_font = file_descriptor_store.MaybeTakeFD(
+ content::kNotoSansSymbolsRegularSubsetted2DataDescriptor, &fd_notosanssymbols_regular_subsetted2_region);
+ if (!fd_notosanssymbols_regular_subsetted2_font.is_valid()) {
+ DLOG(ERROR) << "kNotoSansSymbolsRegularSubsetted2DataDescriptor not found";
+ return;
+ }
+
+ std::string kFontsXmlDataDescriptor =
+ "#" + std::string(content::kFontsXmlDataDescriptor);
+ std::string kNotoColorEmonjiDataDescriptor =
+ "#" + std::string(content::kNotoColorEmonjiDataDescriptor);
+ std::string kNotoSansSymbolsRegularSubsettedDataDescriptor =
+ "#" + std::string(content::kNotoSansSymbolsRegularSubsettedDataDescriptor);
+ std::string kNotoSansSymbolsRegularSubsetted2DataDescriptor =
+ "#" + std::string(content::kNotoSansSymbolsRegularSubsetted2DataDescriptor);
+
+ std::string android_fonts_dir = "use_fd";
+ std::string font_config = kFontsXmlDataDescriptor;
+
+ auto custom = std::make_unique<SkFontMgr_Android_CustomFonts>();
+ custom->fSystemFontUse =
+ SkFontMgr_Android_CustomFonts::SystemFontUse::kPreferCustom;
+ custom->fBasePath = android_fonts_dir.c_str();
+ custom->fFontsXml = font_config.c_str();
+ custom->fFallbackFontsXml = font_config.c_str();
+ custom->fIsolated = true;
+
+ custom->add_platform_file(
+ kFontsXmlDataDescriptor, fd_fonts.release(),
+ fd_fonts_region.offset, fd_fonts_region.size);
+ custom->add_platform_file(
+ kNotoColorEmonjiDataDescriptor, fd_noto_font.release(),
+ fd_noto_font_region.offset, fd_noto_font_region.size);
+ custom->add_platform_file(
+ kNotoSansSymbolsRegularSubsettedDataDescriptor, fd_notosanssymbols_regular_subsetted_font.release(),
+ fd_notosanssymbols_regular_subsetted_region.offset, fd_notosanssymbols_regular_subsetted_region.size);
+ custom->add_platform_file(
+ kNotoSansSymbolsRegularSubsetted2DataDescriptor, fd_notosanssymbols_regular_subsetted2_font.release(),
+ fd_notosanssymbols_regular_subsetted2_region.offset, fd_notosanssymbols_regular_subsetted2_region.size);
+
+ sk_sp<SkFontMgr> skia_font_manager =
+ SkFontMgr_New_Android(std::move(custom));
+ skia::OverrideDefaultSkFontMgr(std::move(skia_font_manager));
+ }
+}
+
namespace content {
RendererMainPlatformDelegate::RendererMainPlatformDelegate(
@@ -28,6 +115,7 @@ RendererMainPlatformDelegate::~RendererMainPlatformDelegate() {
}
void RendererMainPlatformDelegate::PlatformInitialize() {
+ InitializeCustomFonts();
}
void RendererMainPlatformDelegate::PlatformUninitialize() {
diff --git a/third_party/blink/renderer/platform/fonts/skia/android/BUILD.gn b/third_party/blink/renderer/platform/fonts/skia/android/BUILD.gn
new file mode 100644
--- /dev/null
+++ b/third_party/blink/renderer/platform/fonts/skia/android/BUILD.gn
@@ -0,0 +1,17 @@
+import("//build/config/android/rules.gni")
+
+android_assets("font_assets") {
+ renaming_sources = [
+ "cromite_fonts.xml",
+ "NotoColorEmoji.ttf",
+ "NotoSansSymbols-Regular-Subsetted.ttf",
+ "NotoSansSymbols-Regular-Subsetted2.ttf",
+ ]
+ renaming_destinations = [
+ "fonts/cromite_fonts.xml",
+ "fonts/NotoColorEmoji.ttf",
+ "fonts/NotoSansSymbols-Regular-Subsetted.ttf",
+ "fonts/NotoSansSymbols-Regular-Subsetted2.ttf",
+ ]
+ disable_compression = true
+}
diff --git a/third_party/blink/renderer/platform/fonts/skia/android/cromite_fonts.xml b/third_party/blink/renderer/platform/fonts/skia/android/cromite_fonts.xml
new file mode 100644
--- /dev/null
+++ b/third_party/blink/renderer/platform/fonts/skia/android/cromite_fonts.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<familyset version="23">
+ <!-- fallback fonts -->
+ <family>
+ <font weight="400" style="normal">#notosanssymbols_regular_subsetted</font>
+ </family>
+ <family lang="und-Zsye">
+ <font weight="400" style="normal">#noto_color_emonji_data</font>
+ </family>
+ <family lang="und-Zsye" ttfVersion="1.0.11.0">
+ <font weight="400" style="normal">#noto_color_emonji_data</font>
+ </family>
+ <family lang="und-Zsym">
+ <font weight="400" style="normal">#notosanssymbols_regular_subsetted2</font>
+ </family>
+</familyset>
diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc
--- a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc
+++ b/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc
@@ -77,6 +77,21 @@ sk_sp<SkTypeface> ReturnIfAllowed(sk_sp<SkTypeface> typeface, const std::string&
if (!check_fonts) return typeface;
if (!typeface) return nullptr;
+#if BUILDFLAG(IS_ANDROID)
+ // check for synthetic family names (used for emoji)
+ if (!name.empty() &&
+ base::EndsWith(name, "##fallback", base::CompareCase::INSENSITIVE_ASCII)) {
+ SkString fallback_postscript_name;
+ typeface->getPostScriptName(&fallback_postscript_name);
+ const AtomicString& family = ToAtomicString(fallback_postscript_name);
+ std::string postscript_name = family.Utf8();
+ if (postscript_name != "NotoColorEmoji"
+ && postscript_name != "NotoSansSymbols") {
+ DLOG(INFO) << "--Font " << postscript_name << " not allowed";
+ return nullptr;
+ }
+ }
+#endif
#if BUILDFLAG(IS_WIN)
SkString skia_family_name;
skia::DWriteFontTypeface_GetGDIFamilyName(typeface.get(), &skia_family_name);
diff --git a/third_party/skia/include/ports/SkFontMgr_android.h b/third_party/skia/include/ports/SkFontMgr_android.h
--- a/third_party/skia/include/ports/SkFontMgr_android.h
+++ b/third_party/skia/include/ports/SkFontMgr_android.h
@@ -9,6 +9,8 @@
#define SkFontMgr_android_DEFINED
#include "include/core/SkRefCnt.h"
+#include "include/core/SkStream.h"
+#include "src/core/SkTHash.h"
class SkFontMgr;
@@ -37,9 +39,35 @@ struct SkFontMgr_Android_CustomFonts {
* system IO resources on initialization.
*/
bool fIsolated;
+
+ struct SkFontMgr_Android_CustomFonts_MappedData {
+ int fd;
+ int64_t offset;
+ size_t size;
+ };
+ skia_private::THashMap<std::string,
+ SkFontMgr_Android_CustomFonts_MappedData> platform_file_map;
+
+ void add_platform_file(std::string key, int fd, int64_t offset, size_t size) {
+ SkFontMgr_Android_CustomFonts_MappedData data = {fd, offset, size};
+ platform_file_map.set(key, std::move(data));
+ }
+
+ std::unique_ptr<SkStreamAsset> getPlatformFile(const char* filename) const {
+ const auto* it = platform_file_map.find(filename);
+ if (!it) {
+ return nullptr;
+ }
+ auto whole_data = SkData::MakeFromFD(it->fd);
+ auto data = SkData::MakeSubset(whole_data.get(), it->offset, it->size);
+ if (!data) {
+ return nullptr;
+ }
+ return std::unique_ptr<SkStreamAsset>(new SkMemoryStream(std::move(data)));
+ }
};
/** Create a font manager for Android. If 'custom' is NULL, use only system fonts. */
-SK_API sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom);
+SK_API sk_sp<SkFontMgr> SkFontMgr_New_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom);
#endif // SkFontMgr_android_DEFINED
diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia/src/ports/SkFontMgr_android.cpp
--- a/third_party/skia/src/ports/SkFontMgr_android.cpp
+++ b/third_party/skia/src/ports/SkFontMgr_android.cpp
@@ -65,20 +65,25 @@ public:
bool isFixedPitch,
const SkString& familyName,
const TArray<SkLanguage, true>& lang,
- FontVariant variantStyle)
+ FontVariant variantStyle,
+ const SkFontMgr_Android_CustomFonts* custom)
: INHERITED(style, isFixedPitch, familyName)
, fPathName(pathName)
, fIndex(index)
, fAxes(axes, axesCount)
, fLang(lang)
, fVariantStyle(variantStyle)
- , fFile(cacheFontFiles ? sk_fopen(fPathName.c_str(), kRead_SkFILE_Flag) : nullptr) {
- if (cacheFontFiles) {
+ , fFile(cacheFontFiles ? sk_fopen(fPathName.c_str(), kRead_SkFILE_Flag) : nullptr)
+ , custom_(custom) {
+ if (cacheFontFiles && !custom_) {
SkASSERT(fFile);
}
}
std::unique_ptr<SkStreamAsset> makeStream() const {
+ if (custom_ && fPathName.startsWith('#')) {
+ return custom_->getPlatformFile(fPathName.c_str());
+ }
if (fFile) {
sk_sp<SkData> data(SkData::MakeFromFILE(fFile));
return data ? std::make_unique<SkMemoryStream>(std::move(data)) : nullptr;
@@ -116,7 +121,7 @@ public:
this->isFixedPitch(),
fFamilyName,
fLang,
- fVariantStyle);
+ fVariantStyle, custom_);
}
const SkString fPathName;
@@ -125,6 +130,7 @@ public:
const STArray<4, SkLanguage, true> fLang;
const FontVariant fVariantStyle;
SkAutoTCallVProc<FILE, sk_fclose> fFile;
+ const SkFontMgr_Android_CustomFonts* custom_;
using INHERITED = SkTypeface_Android;
};
@@ -136,7 +142,7 @@ template <typename D, typename S> sk_sp<D> sk_sp_static_cast(sk_sp<S>&& s) {
class SkFontStyleSet_Android : public SkFontStyleSet {
public:
explicit SkFontStyleSet_Android(const FontFamily& family, const SkFontScanner* scanner,
- const bool cacheFontFiles) {
+ const bool cacheFontFiles, const SkFontMgr_Android_CustomFonts* custom) {
const SkString* cannonicalFamilyName = nullptr;
if (family.fNames.size() > 0) {
cannonicalFamilyName = &family.fNames[0];
@@ -145,12 +151,21 @@ public:
// TODO? make this lazy
for (int i = 0; i < family.fFonts.size(); ++i) {
+ bool use_custom = false;
const FontFileInfo& fontFile = family.fFonts[i];
SkString pathName(family.fBasePath);
pathName.append(fontFile.fFileName);
- std::unique_ptr<SkStreamAsset> stream = SkStream::MakeFromFile(pathName.c_str());
+ std::unique_ptr<SkStreamAsset> stream;
+ if (!fontFile.fFileName.startsWith('#')) {
+ stream = SkStream::MakeFromFile(pathName.c_str());
+ } else if (custom) {
+ use_custom = true;
+ pathName = fontFile.fFileName;
+ SkDEBUGF("Requested font file apk %s", pathName.c_str());
+ stream = custom->getPlatformFile(pathName.c_str());
+ }
if (!stream) {
SkDEBUGF("Requested font file %s does not exist or cannot be opened.\n",
pathName.c_str());
@@ -202,7 +217,8 @@ public:
fStyles.push_back().reset(new SkTypeface_AndroidSystem(
pathName, cacheFontFiles, ttcIndex, axisValues.get(), axisDefinitions.size(),
- style, isFixedWidth, familyName, family.fLanguages, variant));
+ style, isFixedWidth, familyName, family.fLanguages, variant,
+ use_custom ? custom : nullptr));
}
}
@@ -256,13 +272,16 @@ struct NameToFamily {
class SkFontMgr_Android : public SkFontMgr {
public:
- SkFontMgr_Android(const SkFontMgr_Android_CustomFonts* custom) {
+ SkFontMgr_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom_in) {
+ custom_ = std::move(custom_in);
+ auto* custom = custom_.get();
+
fScanner = std::make_unique<SkFontScanner_FreeType>();
SkTDArray<FontFamily*> families;
if (custom && SkFontMgr_Android_CustomFonts::kPreferSystem != custom->fSystemFontUse) {
SkString base(custom->fBasePath);
SkFontMgr_Android_Parser::GetCustomFontFamilies(
- families, base, custom->fFontsXml, custom->fFallbackFontsXml);
+ families, base, custom, custom->fFontsXml, custom->fFallbackFontsXml);
}
if (!custom ||
(custom && SkFontMgr_Android_CustomFonts::kOnlyCustom != custom->fSystemFontUse))
@@ -272,7 +291,7 @@ public:
if (custom && SkFontMgr_Android_CustomFonts::kPreferSystem == custom->fSystemFontUse) {
SkString base(custom->fBasePath);
SkFontMgr_Android_Parser::GetCustomFontFamilies(
- families, base, custom->fFontsXml, custom->fFallbackFontsXml);
+ families, base, custom, custom->fFontsXml, custom->fFallbackFontsXml);
}
this->buildNameToFamilyMap(families, custom ? custom->fIsolated : false);
this->findDefaultStyleSet();
@@ -438,6 +457,7 @@ protected:
private:
std::unique_ptr<SkFontScanner> fScanner;
+ std::unique_ptr<SkFontMgr_Android_CustomFonts> custom_;
TArray<sk_sp<SkFontStyleSet_Android>> fStyleSets;
sk_sp<SkFontStyleSet> fDefaultStyleSet;
@@ -457,7 +477,7 @@ private:
}
sk_sp<SkFontStyleSet_Android> newSet =
- sk_make_sp<SkFontStyleSet_Android>(family, fScanner.get(), isolated);
+ sk_make_sp<SkFontStyleSet_Android>(family, fScanner.get(), isolated, custom_.get());
if (0 == newSet->count()) {
return;
}
@@ -504,7 +524,7 @@ static char const * const gSystemFontUseStrings[] = {
} // namespace
-sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom) {
+sk_sp<SkFontMgr> SkFontMgr_New_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom) {
if (custom) {
SkASSERT(0 <= custom->fSystemFontUse);
SkASSERT(custom->fSystemFontUse < std::size(gSystemFontUseStrings));
@@ -514,5 +534,5 @@ sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* cust
custom->fFontsXml,
custom->fFallbackFontsXml);
}
- return sk_make_sp<SkFontMgr_Android>(custom);
+ return sk_make_sp<SkFontMgr_Android>(std::move(custom));
}
diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_party/skia/src/ports/SkFontMgr_android_parser.cpp
--- a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp
+++ b/third_party/skia/src/ports/SkFontMgr_android_parser.cpp
@@ -645,14 +645,27 @@ static const XML_Memory_Handling_Suite sk_XML_alloc = {
* families array. Returns the version of the file, negative if the file does not exist.
*/
static int parse_config_file(const char* filename, SkTDArray<FontFamily*>& families,
- const SkString& basePath, bool isFallback)
+ const SkString& basePath, bool isFallback,
+ const SkFontMgr_Android_CustomFonts* custom = nullptr)
{
SkFILEStream file(filename);
-
- // Some of the files we attempt to parse (in particular, /vendor/etc/fallback_fonts.xml)
- // are optional - failure here is okay because one of these optional files may not exist.
- if (!file.isValid()) {
- SkDebugf(SK_FONTMGR_ANDROID_PARSER_PREFIX "'%s' could not be opened\n", filename);
+ std::unique_ptr<SkStreamAsset> stream;
+ if (filename[0] != '#') {
+ // Some of the files we attempt to parse (in particular, /vendor/etc/fallback_fonts.xml)
+ // are optional - failure here is okay because one of these optional files may not exist.
+ if (!file.isValid()) {
+ SkDebugf(SK_FONTMGR_ANDROID_PARSER_PREFIX "'%s' could not be opened\n", filename);
+ return -1;
+ }
+ stream = file.fork();
+ } else if (custom) {
+ stream = custom->getPlatformFile(filename);
+ if (!stream) {
+ SkDebugf(SK_FONTMGR_ANDROID_PARSER_PREFIX "'%s' platform file map not found\n", filename);
+ return -1;
+ }
+ } else {
+ SkDebugf(SK_FONTMGR_ANDROID_PARSER_PREFIX "'%s' custom fonts not set\n", filename);
return -1;
}
@@ -684,8 +697,9 @@ static int parse_config_file(const char* filename, SkTDArray<FontFamily*>& famil
SkDebugf(SK_FONTMGR_ANDROID_PARSER_PREFIX "could not buffer enough to continue\n");
return -1;
}
- size_t len = file.read(buffer, bufferSize);
- done = file.isAtEnd();
+ size_t len = stream->read(buffer, bufferSize);
+ // SkDebugf(SK_FONTMGR_ANDROID_PARSER_PREFIX "%.*s", len, buffer);
+ done = stream->isAtEnd();
XML_Status status = XML_ParseBuffer(parser, len, done);
if (XML_STATUS_ERROR == status) {
XML_Error error = XML_GetErrorCode(parser);
@@ -760,6 +774,7 @@ static void append_fallback_font_families_for_locale(SkTDArray<FontFamily*>& fal
static void append_system_fallback_font_families(SkTDArray<FontFamily*>& fallbackFonts,
const SkString& basePath)
{
+ if ((true)) return;
parse_config_file(FALLBACK_FONTS_FILE, fallbackFonts, basePath, true);
append_fallback_font_families_for_locale(fallbackFonts,
LOCALE_FALLBACK_FONTS_SYSTEM_DIR,
@@ -769,6 +784,7 @@ static void append_system_fallback_font_families(SkTDArray<FontFamily*>& fallbac
static void mixin_vendor_fallback_font_families(SkTDArray<FontFamily*>& fallbackFonts,
const SkString& basePath)
{
+ if ((true)) return;
SkTDArray<FontFamily*> vendorFonts;
parse_config_file(VENDOR_FONTS_FILE, vendorFonts, basePath, true);
append_fallback_font_families_for_locale(vendorFonts,
@@ -817,15 +833,16 @@ void SkFontMgr_Android_Parser::GetSystemFontFamilies(SkTDArray<FontFamily*>& fon
void SkFontMgr_Android_Parser::GetCustomFontFamilies(SkTDArray<FontFamily*>& fontFamilies,
const SkString& basePath,
+ const SkFontMgr_Android_CustomFonts* custom,
const char* fontsXml,
const char* fallbackFontsXml,
const char* langFallbackFontsDir)
{
if (fontsXml) {
- parse_config_file(fontsXml, fontFamilies, basePath, false);
+ parse_config_file(fontsXml, fontFamilies, basePath, false, custom);
}
if (fallbackFontsXml) {
- parse_config_file(fallbackFontsXml, fontFamilies, basePath, true);
+ parse_config_file(fallbackFontsXml, fontFamilies, basePath, true, custom);
}
if (langFallbackFontsDir) {
append_fallback_font_families_for_locale(fontFamilies,
diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.h b/third_party/skia/src/ports/SkFontMgr_android_parser.h
--- a/third_party/skia/src/ports/SkFontMgr_android_parser.h
+++ b/third_party/skia/src/ports/SkFontMgr_android_parser.h
@@ -15,6 +15,7 @@
#include "include/private/base/SkTArray.h"
#include "include/private/base/SkTDArray.h"
#include "src/core/SkTHash.h"
+#include "include/ports/SkFontMgr_android.h"
#include <climits>
#include <limits>
@@ -110,6 +111,7 @@ void GetSystemFontFamilies(SkTDArray<FontFamily*>& fontFamilies);
/** Parses font configuration files and appends result to fontFamilies. */
void GetCustomFontFamilies(SkTDArray<FontFamily*>& fontFamilies,
const SkString& basePath,
+ const SkFontMgr_Android_CustomFonts* custom,
const char* fontsXml,
const char* fallbackFontsXml,
const char* langFallbackFontsDir = nullptr);
--
File diff suppressed because it is too large Load Diff
@@ -23,7 +23,7 @@ diff --git a/chrome/version.gni b/chrome/version.gni
diff --git a/components/viz/common/features.cc b/components/viz/common/features.cc
--- a/components/viz/common/features.cc
+++ b/components/viz/common/features.cc
@@ -294,9 +294,11 @@ BASE_FEATURE(kDelegateTransforms,
@@ -289,9 +289,11 @@ BASE_FEATURE(kDelegateTransforms,
// If enabled, Chrome includes the Renderer Main thread(s) into the
// ADPF(Android Dynamic Performance Framework) hint session.
@@ -24,14 +24,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/browser_features.h b/chrome/browser/browser_features.h
--- a/chrome/browser/browser_features.h
+++ b/chrome/browser/browser_features.h
@@ -72,6 +72,7 @@ BASE_DECLARE_FEATURE(kTabCaptureBlueBorderCrOS);
BASE_DECLARE_FEATURE(kWebUsbDeviceDetection);
@@ -24,6 +24,7 @@ BASE_DECLARE_FEATURE(kAppBoundEncryptionMetrics);
BASE_DECLARE_FEATURE(kAutocompleteActionPredictorConfidenceCutoff);
BASE_DECLARE_FEATURE(kBookmarkTriggerForPrerender2);
+BASE_DECLARE_FEATURE(kCertificateTransparency);
BASE_DECLARE_FEATURE(kCertificateTransparencyAskBeforeEnabling);
BASE_DECLARE_FEATURE(kLargeFaviconFromGoogle);
BASE_DECLARE_FEATURE(kClosedTabCache);
BASE_DECLARE_FEATURE(kDeferredSpareRendererForTopChromeWebUI);
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
@@ -43,7 +43,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
+ features::kCertificateTransparency);
}
#if BUILDFLAG(CHROME_ROOT_STORE_OPTIONAL)
network::mojom::NetworkContextParamsPtr
diff --git a/chrome/browser/ssl/sct_reporting_service.cc b/chrome/browser/ssl/sct_reporting_service.cc
--- a/chrome/browser/ssl/sct_reporting_service.cc
+++ b/chrome/browser/ssl/sct_reporting_service.cc
@@ -116,7 +116,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
diff --git a/services/network/sct_auditing/sct_auditing_handler.cc b/services/network/sct_auditing/sct_auditing_handler.cc
--- a/services/network/sct_auditing/sct_auditing_handler.cc
+++ b/services/network/sct_auditing/sct_auditing_handler.cc
@@ -109,6 +109,7 @@ void SCTAuditingHandler::MaybeEnqueueReport(
@@ -108,6 +108,7 @@ void SCTAuditingHandler::MaybeEnqueueReport(
if (mode_ == mojom::SCTAuditingMode::kDisabled) {
return;
}
@@ -124,7 +124,7 @@ diff --git a/services/network/sct_auditing/sct_auditing_handler.cc b/services/ne
// Only audit valid SCTs. This ensures that they come from a known log, have
// a valid signature, and thus are expected to be public certificates. If
@@ -324,6 +325,7 @@ void SCTAuditingHandler::AddReporter(
@@ -323,6 +324,7 @@ void SCTAuditingHandler::AddReporter(
if (mode_ == mojom::SCTAuditingMode::kDisabled) {
return;
}
@@ -11,7 +11,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
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
@@ -3595,70 +3595,6 @@ void Document::open(LocalDOMWindow* entered_window,
@@ -3619,70 +3619,6 @@ void Document::open(LocalDOMWindow* entered_window,
// https://chromestatus.com/metrics/feature/timeline/popularity/4375
CountUse(WebFeature::kDocumentOpenMutateSandbox);
}
@@ -85,7 +85,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
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
@@ -1419,7 +1419,6 @@
@@ -1440,7 +1440,6 @@
{
name: "DocumentOpenSandboxInheritanceRemoval",
status: "stable",
+1 -1
View File
@@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -333,8 +333,8 @@ BASE_FEATURE(kEnableTabMuting,
@@ -328,8 +328,8 @@ BASE_FEATURE(kEnableTabMuting,
#if BUILDFLAG(ENABLE_PLATFORM_HEVC)
// Enables HEVC hardware accelerated decoding.
BASE_FEATURE(kPlatformHEVCDecoderSupport,
@@ -70,7 +70,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
import org.chromium.chrome.browser.bookmarks.BookmarkUiPrefs.BookmarkRowDisplayPref;
import org.chromium.chrome.browser.commerce.ShoppingServiceFactory;
import org.chromium.chrome.browser.document.ChromeLauncherActivity;
@@ -526,7 +527,7 @@ public class BookmarkUtils {
@@ -528,7 +529,7 @@ public class BookmarkUtils {
RecordUserAction.record("MobileBookmarkManagerReopenBookmarksInSameSession");
}
@@ -82,15 +82,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
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
@@ -797,7 +797,7 @@ public abstract class ChromeFeatureList {
@@ -802,7 +802,7 @@ public abstract class ChromeFeatureList {
public static final MutableFlagWithSafeDefault sAdvancedPeripheralsSupportTabStrip =
newMutableFlagWithSafeDefault(ADVANCED_PERIPHERALS_SUPPORT_TAB_STRIP, true);
public static final MutableFlagWithSafeDefault sAndroidImprovedBookmarks =
- newMutableFlagWithSafeDefault(ANDROID_IMPROVED_BOOKMARKS, false);
+ newMutableFlagWithSafeDefault(ANDROID_IMPROVED_BOOKMARKS, true);
public static final MutableFlagWithSafeDefault sDeferKeepScreenOnDuringGesture =
newMutableFlagWithSafeDefault(DEFER_KEEP_SCREEN_ON_DURING_GESTURE, false);
public static final MutableFlagWithSafeDefault sDeferNotifyInMotion =
public static final MutableFlagWithSafeDefault sBrowserControlsEarlyResize =
newMutableFlagWithSafeDefault(BROWSER_CONTROLS_EARLY_RESIZE, false);
public static final MutableFlagWithSafeDefault sIncognitoNtpRevamp =
diff --git a/components/bookmarks/browser/bookmark_node.cc b/components/bookmarks/browser/bookmark_node.cc
--- a/components/bookmarks/browser/bookmark_node.cc
+++ b/components/bookmarks/browser/bookmark_node.cc
@@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -1456,7 +1456,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
@@ -1465,7 +1465,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
registry->RegisterFilePathPref(prefs::kDiskCacheDir, base::FilePath());
registry->RegisterIntegerPref(prefs::kDiskCacheSize, 0);
registry->RegisterStringPref(prefs::kIsolateOrigins, std::string());
@@ -28,8 +28,8 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
+ registry->RegisterBooleanPref(prefs::kSitePerProcess, true);
registry->RegisterBooleanPref(prefs::kTabFreezingEnabled, true);
registry->RegisterIntegerPref(prefs::kSCTAuditingHashdanceReportCount, 0);
registry->RegisterBooleanPref(
@@ -1481,7 +1481,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs(
registry->RegisterBooleanPref(prefs::kNewBaseUrlInheritanceBehaviorAllowed,
@@ -1488,7 +1488,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs(
// user policy in addition to the same named ones in Local State (which are
// used for mapping the command-line flags).
registry->RegisterStringPref(prefs::kIsolateOrigins, std::string());
@@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -1635,9 +1635,9 @@
@@ -1716,9 +1716,9 @@
"expiry_milestone": 125
},
{
@@ -26,7 +26,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
+ "expiry_milestone": -1
},
{
"name": "data-sharing-android",
"name": "dcheck-is-fatal",
diff --git a/cromite_flags/components/content_settings/core/common/features_cc/Enable-darken-websites-checkbox-in-themes.inc b/cromite_flags/components/content_settings/core/common/features_cc/Enable-darken-websites-checkbox-in-themes.inc
new file mode 100644
--- /dev/null

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