v122 patches

This commit is contained in:
Carmelo Messina
2024-02-18 14:35:18 +01:00
parent 0543a8a30b
commit c3f33c02a7
198 changed files with 3126 additions and 113633 deletions
+1 -1
View File
@@ -1 +1 @@
121.0.6167.164
122.0.6261.43
-3
View File
@@ -220,7 +220,6 @@ Disable-SHA1-Server-Signature.patch
Remove-auth-header-upon-cross-origin-redirect.patch
Clear-CORS-Preflight-Cache-on-clearing-data.patch
Multi-Screen-Window-Placement-API-fix.patch
Remove-https-connection-from-chrome-discards.patch
Add-a-flag-to-disable-GamePad-API.patch
Disable-WebGPU.patch
Disable-FirstPartySets-and-StorageAccessAPI.patch
@@ -296,5 +295,3 @@ eyeo-beta-118.0.5993.48-extension_api.patch
Eyeo-Adblock-Remove-Privacy-Issues.patch
AdblockPlus-add-blocking-in-service-workers.patch
AdblockPlus-connect-popup-blocker.patch
Temp-FIXUP-Content-settings-infrastructure.patch
@@ -401,7 +401,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.h b/chrome/br
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
@@ -6305,7 +6305,9 @@ ChromeContentBrowserClient::
@@ -6132,7 +6132,9 @@ ChromeContentBrowserClient::
}
bool ChromeContentBrowserClient::WillInterceptWebSocket(
@@ -412,7 +412,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
#if BUILDFLAG(ENABLE_EXTENSIONS)
if (!frame) {
return false;
@@ -6328,9 +6330,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket(
@@ -6155,9 +6157,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket(
}
void ChromeContentBrowserClient::CreateWebSocket(
@@ -422,12 +422,12 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
const GURL& url,
+ const url::Origin& initiator_origin,
const net::SiteForCookies& site_for_cookies,
const absl::optional<std::string>& user_agent,
const std::optional<std::string>& user_agent,
mojo::PendingRemote<network::mojom::WebSocketHandshakeClient>
diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h
--- a/chrome/browser/chrome_content_browser_client.h
+++ b/chrome/browser/chrome_content_browser_client.h
@@ -642,11 +642,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
@@ -637,11 +637,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
CreateURLLoaderHandlerForServiceWorkerNavigationPreload(
int frame_tree_node_id,
const network::ResourceRequest& resource_request) override;
@@ -442,7 +442,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chr
const GURL& url,
+ const url::Origin& initiator_origin,
const net::SiteForCookies& site_for_cookies,
const absl::optional<std::string>& user_agent,
const std::optional<std::string>& user_agent,
mojo::PendingRemote<network::mojom::WebSocketHandshakeClient>
diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/components/adblock/content/browser/adblock_url_loader_factory.cc
--- a/components/adblock/content/browser/adblock_url_loader_factory.cc
@@ -683,7 +683,7 @@ diff --git a/content/browser/websockets/websocket_connector_impl.cc b/content/br
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
@@ -1023,7 +1023,7 @@ bool ContentBrowserClient::WillCreateURLLoaderFactory(
@@ -1009,7 +1009,7 @@ bool ContentBrowserClient::WillCreateURLLoaderFactory(
return false;
}
@@ -692,7 +692,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b
return false;
}
@@ -1032,9 +1032,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) {
@@ -1018,9 +1018,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) {
}
void ContentBrowserClient::CreateWebSocket(
@@ -702,12 +702,12 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b
const GURL& url,
+ const url::Origin& initiator_origin,
const net::SiteForCookies& site_for_cookies,
const absl::optional<std::string>& user_agent,
const std::optional<std::string>& user_agent,
mojo::PendingRemote<network::mojom::WebSocketHandshakeClient>
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -1859,7 +1859,7 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -1840,7 +1840,7 @@ class CONTENT_EXPORT ContentBrowserClient {
scoped_refptr<base::SequencedTaskRunner> navigation_response_task_runner);
// Returns true when the embedder wants to intercept a websocket connection.
@@ -716,7 +716,7 @@ diff --git a/content/public/browser/content_browser_client.h b/content/public/br
// Returns the WebSocket creation options.
virtual uint32_t GetWebSocketOptions(RenderFrameHost* frame);
@@ -1881,9 +1881,11 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -1862,9 +1862,11 @@ class CONTENT_EXPORT ContentBrowserClient {
// Always called on the UI thread and only when the Network Service is
// enabled.
virtual void CreateWebSocket(
@@ -726,6 +726,6 @@ diff --git a/content/public/browser/content_browser_client.h b/content/public/br
const GURL& url,
+ const url::Origin& initiator_origin,
const net::SiteForCookies& site_for_cookies,
const absl::optional<std::string>& user_agent,
const std::optional<std::string>& user_agent,
mojo::PendingRemote<network::mojom::WebSocketHandshakeClient>
--
@@ -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
@@ -228,6 +228,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider;
@@ -227,6 +227,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;
@@ -1097,6 +1098,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -1105,6 +1106,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
super.onStartWithNative();
ChromeActivitySessionTracker.getInstance().onStartWithNative();
ChromeCachedFlags.getInstance().cacheNativeFlags();
@@ -40,42 +40,42 @@ 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
@@ -144,6 +144,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -136,6 +136,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&feed::kFeedShowSignInCommand,
&feed::kFeedSignedOutViewDemotion,
&feed::kFeedUserInteractionReliabilityReport,
+ &kAllowUserCertificates,
&feed::kInterestFeedV2,
&feed::kInterestFeedV2Autoplay,
&feed::kInterestFeedV2Hearts,
&feed::kWebFeed,
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
@@ -103,6 +103,7 @@ public abstract class ChromeFeatureList {
@@ -141,6 +141,7 @@ public abstract class ChromeFeatureList {
return ChromeFeatureMap.getInstance().mutableFlagWithSafeDefault(featureName, defaultValue);
}
/* Alphabetical: */
+ public static final String ALLOW_USER_CERTIFICATES = "AllowUserCertificates";
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR = "AdaptiveButtonInTopToolbar";
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_TRANSLATE =
"AdaptiveButtonInTopToolbarTranslate";
@@ -522,6 +523,8 @@ public abstract class ChromeFeatureList {
public static final CachedFlag sAndroidAppIntegration =
new CachedFlag(ANDROID_APP_INTEGRATION, false);
public static final CachedFlag sAndroidHub = new CachedFlag(ANDROID_HUB, false);
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_ADD_TO_BOOKMARKS =
@@ -521,6 +522,8 @@ public abstract class ChromeFeatureList {
newCachedFlag(ANDROID_ELEGANT_TEXT_HEIGHT, false);
public static final CachedFlag sAndroidHub = newCachedFlag(ANDROID_HUB, false);
+ public static final CachedFlag sAllowUserCertificates =
+ new CachedFlag(ALLOW_USER_CERTIFICATES, false);
public static final CachedFlag sAppMenuMobileSiteOption =
new CachedFlag(APP_MENU_MOBILE_SITE_OPTION, false);
public static final CachedFlag sArchiveTabService = new CachedFlag(ARCHIVE_TAB_SERVICE, false);
@@ -662,6 +665,7 @@ public abstract class ChromeFeatureList {
+ 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);
@@ -655,6 +658,7 @@ public abstract class ChromeFeatureList {
public static final List<CachedFlag> sFlagsCachedFullBrowser =
List.of(
+ sAllowUserCertificates,
sAndroidAppIntegration,
sAndroidElegantTextHeight,
sAndroidHub,
sAppMenuMobileSiteOption,
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc
new file mode 100644
--- /dev/null
@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
@@ -198,6 +198,8 @@ public class KeyboardShortcuts {
@@ -204,6 +204,8 @@ public class KeyboardShortcuts {
R.string.keyboard_shortcut_address_bar,
KeyEvent.KEYCODE_L,
KeyEvent.META_CTRL_ON);
@@ -44,7 +44,7 @@ new file mode 100644
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
--- a/net/url_request/url_request_http_job.cc
+++ b/net/url_request/url_request_http_job.cc
@@ -287,6 +287,11 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) {
@@ -301,6 +301,11 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) {
}
}
@@ -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
@@ -7058,9 +7058,9 @@
@@ -7156,9 +7156,9 @@
"expiry_milestone": 123
},
{
@@ -25,11 +25,11 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
+ "expiry_milestone": -1
},
{
"name": "rounded-display",
"name": "revamp-page-info-ios",
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -3078,7 +3078,7 @@ const char kResetShortcutCustomizationsDescription[] =
@@ -3040,7 +3040,7 @@ const char kResetShortcutCustomizationsDescription[] =
const char kRestrictGamepadAccessName[] = "Restrict gamepad access";
const char kRestrictGamepadAccessDescription[] =
@@ -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
@@ -301,6 +301,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
@@ -302,6 +302,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
builtins_to_provide.push_back(
base::ASCIIToUTF16(chrome::kChromeUISettingsURL));
#endif
@@ -100,7 +100,7 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
--- a/chrome/browser/browser_resources.grd
+++ b/chrome/browser/browser_resources.grd
@@ -240,6 +240,9 @@
@@ -237,6 +237,9 @@
<include name="IDR_PREF_HASH_SEED_BIN" file="resources\settings_internal\pref_hash_seed.bin" type="BINDATA" />
<include name="IDR_ADDITIONAL_MODULE_IDS" file="${additional_modules_list_file}" use_base_dir="false" type="BINDATA" />
</if>
@@ -113,8 +113,8 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou
diff --git a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc
--- a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc
+++ b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc
@@ -388,7 +388,7 @@ absl::optional<base::Value::Dict> CreateProxyConfigDict(
return absl::nullopt;
@@ -387,7 +387,7 @@ std::optional<base::Value::Dict> CreateProxyConfigDict(
return std::nullopt;
}
return ProxyConfigDictionary::CreateFixedServers(proxy_rules_string,
- bypass_list);
@@ -197,16 +197,16 @@ diff --git a/chrome/browser/net/proxy_service_factory.h b/chrome/browser/net/pro
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -191,6 +191,8 @@
@@ -190,6 +190,8 @@
#include "printing/buildflags/buildflags.h"
#include "rlz/buildflags/buildflags.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
+#include "chrome/browser/net/proxy_service_factory.h"
+
#if BUILDFLAG(ENABLE_BACKGROUND_MODE)
#include "chrome/browser/background/background_mode_manager.h"
#endif
@@ -1451,6 +1453,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
@@ -1412,6 +1414,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") {
@@ -310,6 +310,8 @@ static_library("ui") {
"webui/metrics_internals/metrics_internals_ui.h",
"webui/net_export_ui.cc",
"webui/net_export_ui.h",
@@ -673,15 +673,15 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
--- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
@@ -56,6 +56,7 @@
@@ -55,6 +55,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"
+#include "chrome/browser/ui/webui/proxy_config_ui.h"
#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"
#include "chrome/browser/ui/webui/signin_internals_ui.h"
@@ -489,6 +490,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
@@ -494,6 +495,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
return &NewWebUI<MetricsInternalsUI>;
if (url.host_piece() == chrome::kChromeUINetExportHost)
return &NewWebUI<NetExportUI>;
@@ -1127,7 +1127,7 @@ new file mode 100644
diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc
--- a/chrome/common/webui_url_constants.cc
+++ b/chrome/common/webui_url_constants.cc
@@ -51,6 +51,8 @@ const char kChromeUICertificateViewerHost[] = "view-cert";
@@ -49,6 +49,8 @@ const char kChromeUICertificateViewerHost[] = "view-cert";
const char kChromeUICertificateViewerURL[] = "chrome://view-cert/";
const char kChromeUIChromeSigninHost[] = "chrome-signin";
const char kChromeUIChromeSigninURL[] = "chrome://chrome-signin/";
@@ -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";
@@ -454,6 +456,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
@@ -455,6 +457,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,
@@ -758,6 +761,7 @@ const char* const kChromeHostURLs[] = {
@@ -757,6 +760,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
@@ -137,6 +137,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[];
@@ -1321,7 +1321,7 @@ diff --git a/components/proxy_config/proxy_config_dictionary.h b/components/prox
diff --git a/components/proxy_config/proxy_policy_handler.cc b/components/proxy_config/proxy_policy_handler.cc
--- a/components/proxy_config/proxy_policy_handler.cc
+++ b/components/proxy_config/proxy_policy_handler.cc
@@ -262,7 +262,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies,
@@ -376,7 +376,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies,
set_proxy_pref_value(ProxyConfigDictionary::CreateFixedServers(
server->GetString(), bypass_list && bypass_list->is_string()
? bypass_list->GetString()
@@ -1333,7 +1333,7 @@ diff --git a/components/proxy_config/proxy_policy_handler.cc b/components/proxy_
diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_config.cc
--- a/net/proxy_resolution/proxy_config.cc
+++ b/net/proxy_resolution/proxy_config.cc
@@ -112,7 +112,7 @@ void ProxyConfig::ProxyRules::ParseFromString(const std::string& proxy_rules) {
@@ -109,7 +109,7 @@ void ProxyConfig::ProxyRules::ParseFromString(const std::string& proxy_rules) {
&single_proxies,
ProxyServer::SCHEME_HTTP);
type = Type::PROXY_LIST;
@@ -1342,7 +1342,7 @@ diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_c
}
// Trim whitespace off the url scheme.
@@ -143,6 +143,56 @@ void ProxyConfig::ProxyRules::ParseFromString(const std::string& proxy_rules) {
@@ -140,6 +140,56 @@ void ProxyConfig::ProxyRules::ParseFromString(const std::string& proxy_rules) {
}
}
@@ -72,7 +72,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/ui/messages/android/BUILD.gn | 1 +
.../snackbar/INeedSnackbarManager.java | 27 +++
chrome/common/pref_names.h | 6 +
.../browser/content_settings_pref_provider.cc | 8 +-
.../browser/content_settings_pref_provider.cc | 6 +-
.../browser/content_settings_pref_provider.h | 2 +
.../core/browser/host_content_settings_map.cc | 4 +-
.../core/browser/host_content_settings_map.h | 3 +
@@ -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, 773 insertions(+), 103 deletions(-)
66 files changed, 771 insertions(+), 103 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,7 +98,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
@@ -649,6 +649,7 @@ chrome_java_resources = [
@@ -642,6 +642,7 @@ chrome_java_resources = [
"java/res/xml/main_preferences.xml",
"java/res/xml/manage_sync_preferences.xml",
"java/res/xml/phone_as_a_security_key_accessory_filter.xml",
@@ -117,7 +117,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
"java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java",
"java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
"java/src/org/chromium/chrome/browser/ActivityUtils.java",
@@ -968,6 +969,7 @@ chrome_java_sources = [
@@ -971,6 +972,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java",
"java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegate.java",
"java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionNoticeController.java",
@@ -254,7 +254,7 @@ 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;
@@ -632,9 +636,14 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -662,9 +666,14 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
mTabModelOrchestrator.onNativeLibraryReady(getTabContentManager());
// For saving non-incognito tab closures for Recent Tabs.
@@ -272,7 +272,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
// Defer initialization of this helper so it triggers after TabModelFilter
// observers.
UndoRefocusHelper.initialize(
@@ -2229,8 +2238,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2349,8 +2358,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
// We determine the model as soon as possible so every systems get initialized coherently.
boolean startIncognito =
@@ -287,15 +287,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -95,6 +95,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager;
@@ -94,6 +94,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchFieldTrial;
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager;
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager.ContextualSearchTabPromotionDelegate;
import org.chromium.chrome.browser.customtabs.features.minimizedcustomtab.MinimizedFeatureUtils;
import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsModule;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.dependency_injection.ChromeActivityComponent;
import org.chromium.chrome.browser.dependency_injection.ModuleFactoryOverrides;
import org.chromium.chrome.browser.device.DeviceClassManager;
@@ -2005,6 +2006,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -2036,6 +2037,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
throw new IllegalStateException(
"Attempting to access TabCreator before initialization");
}
@@ -327,7 +327,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.
@@ -597,6 +602,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -599,6 +604,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
}
private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) {
@@ -341,7 +341,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
// We have to iterate all menu items since same menu item ID may be associated with more
// than one menu items.
boolean isOverviewModeMenu = menuGroup == MenuGroup.OVERVIEW_MODE_MENU;
@@ -659,7 +671,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -661,7 +673,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
}
if (item.getItemId() == R.id.recent_tabs_menu_id) {
@@ -358,7 +358,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);
@@ -865,8 +885,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -870,8 +890,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
&& !isChromeScheme
&& !isFileScheme
&& !isContentScheme
@@ -452,17 +452,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
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
@@ -21,6 +21,7 @@ import org.chromium.base.ContextUtils;
import org.chromium.base.supplier.ObservableSupplier;
@@ -22,6 +22,7 @@ import org.chromium.base.supplier.ObservableSupplier;
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.DefaultBrowserInfo;
import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl;
import org.chromium.chrome.browser.app.appmenu.DividerLineMenuItemViewBinder;
@@ -195,6 +196,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
downloadItemVisible = false;
@@ -203,6 +204,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
openInChromeItemVisible = false;
tryAddingReadAloud = false;
}
+ if (AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()) {
+ downloadItemVisible = true;
@@ -473,8 +473,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
@@ -83,6 +83,9 @@ import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.components.version_info.VersionInfo;
@@ -83,6 +83,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable;
import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.device.mojom.ScreenOrientationLockType;
+import org.chromium.base.ContextUtils;
@@ -483,7 +483,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;
@@ -1294,7 +1297,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
@@ -1291,7 +1294,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
@Override
public boolean isIncognito() {
@@ -502,7 +502,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.ChromeTabbedActivity;
import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.app.download.home.DownloadActivity;
import org.chromium.chrome.browser.app.download.home.DownloadActivityLauncher;
@@ -74,6 +75,10 @@ import org.chromium.url.GURL;
import java.io.File;
@@ -514,7 +514,7 @@ 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";
@@ -311,7 +316,16 @@ public class DownloadUtils {
@@ -285,7 +290,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.
@@ -535,7 +535,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
@@ -243,7 +243,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
@@ -244,7 +244,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
mHistoryAdapter.generateFooterItems();
// Listen to changes in sign in state.
@@ -546,7 +546,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();
@@ -278,7 +280,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
@@ -287,7 +289,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
mHistoryAdapter.onDestroyed();
mLargeIconBridge.destroy();
mLargeIconBridge = null;
@@ -589,7 +589,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
mSelectableListLayout = null;
mRootView = getIncognitoHistoryPlaceholderView();
return;
@@ -672,7 +679,7 @@ public class HistoryManager
@@ -673,7 +680,7 @@ public class HistoryManager
private void swapContentView() {
boolean toHistoryClusters;
@@ -598,7 +598,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
return;
} else if (isHistoryClustersUIShowing()) {
toHistoryClusters = false;
@@ -736,9 +743,22 @@ public class HistoryManager
@@ -737,9 +744,22 @@ public class HistoryManager
&& mContentView == mHistoryClustersCoordinator.getActivityContentView();
}
@@ -622,10 +622,10 @@ 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;
}
@@ -758,7 +778,7 @@ public class HistoryManager
@@ -809,7 +829,7 @@ public class HistoryManager
* @return True if manager handles this event, false if it decides to ignore.
*/
public boolean onBackPressed() {
private boolean onBackPressed() {
- if (mIsIncognito || mSelectableListLayout == null) {
+ if (shouldShowIncognitoPlaceholder() || mSelectableListLayout == null) {
// If Incognito placeholder is shown, the back press should handled by HistoryActivity.
@@ -681,7 +681,7 @@ 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;
@@ -276,7 +277,8 @@ public class NativePageFactory {
@@ -287,7 +288,8 @@ public class NativePageFactory {
String url, NativePage candidatePage, Tab tab, boolean isIncognito) {
NativePage page;
@@ -911,7 +911,7 @@ 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
@@ -74,6 +74,7 @@ import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl;
@@ -72,6 +72,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;
@@ -919,7 +919,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable;
import org.chromium.components.browser_ui.accessibility.AccessibilitySettings;
@@ -359,6 +360,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -358,6 +359,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
((PrivacySandboxSettingsBaseFragment) fragment)
.setSnackbarManager(getSnackbarManager());
}
@@ -1044,16 +1044,16 @@ 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
@@ -129,6 +129,8 @@ import org.chromium.components.webapps.bottomsheet.PwaBottomSheetController;
@@ -135,6 +135,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;
+import org.chromium.base.ContextUtils;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.ui.base.IntentRequestTracker;
import org.chromium.ui.dragdrop.DragDropGlobalState;
import org.chromium.ui.modaldialog.ModalDialogManager;
@@ -942,7 +944,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@@ -985,7 +987,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
() -> {
mTabCreatorManagerSupplier
.get()
@@ -1107,7 +1107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
@@ -51,6 +51,8 @@ import org.chromium.components.embedder_support.util.UrlUtilities;
@@ -50,6 +50,8 @@ import org.chromium.components.embedder_support.util.UrlUtilities;
import org.chromium.content_public.browser.LoadUrlParams;
import org.chromium.url.GURL;
@@ -1116,7 +1116,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;
@@ -673,6 +675,13 @@ public class TabPersistentStore {
@@ -671,6 +673,13 @@ public class TabPersistentStore {
}
}
}
@@ -1133,7 +1133,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
@@ -40,6 +40,7 @@ import org.chromium.base.supplier.OneshotSupplier;
@@ -41,6 +41,7 @@ import org.chromium.base.supplier.OneshotSupplier;
import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
@@ -1141,7 +1141,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;
@@ -590,7 +591,7 @@ public class ToolbarManager
@@ -603,7 +604,7 @@ public class ToolbarManager
TraceEvent.end("isOfflinePage");
return ret;
}
@@ -1198,7 +1198,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
@@ -26,6 +26,11 @@
@@ -27,6 +27,11 @@
#include "components/sessions/core/tab_restore_service.h"
#include "content/public/browser/web_contents.h"
@@ -1210,7 +1210,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
using base::android::JavaParamRef;
using base::android::ScopedJavaLocalRef;
@@ -38,7 +43,8 @@ constexpr int kInvalidGroupId = -1;
@@ -39,7 +44,8 @@ constexpr int kInvalidGroupId = -1;
void CreateHistoricalTab(
TabAndroid* tab_android,
@@ -1220,7 +1220,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
if (!tab_android) {
return;
}
@@ -49,9 +55,14 @@ void CreateHistoricalTab(
@@ -50,9 +56,14 @@ void CreateHistoricalTab(
return;
}
@@ -1237,16 +1237,16 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
if (!service) {
return;
}
@@ -99,7 +110,7 @@ void CreateHistoricalBulkClosure(
@@ -100,7 +111,7 @@ void CreateHistoricalBulkClosure(
std::vector<int> per_tab_android_group_id,
std::vector<TabAndroid*> tabs,
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());
@@ -234,11 +245,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab(
@@ -235,11 +246,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab(
JNIEnv* env,
const JavaParamRef<jobject>& jtab_android,
const JavaParamRef<jobject>& state,
@@ -1264,7 +1264,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
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
@@ -350,6 +350,15 @@ ChromeAutocompleteProviderClient::GetProviderStateService() const {
@@ -351,6 +351,15 @@ ChromeAutocompleteProviderClient::GetProviderStateService() const {
return ProviderStateServiceFactory::GetForProfile(profile_);
}
@@ -1317,17 +1317,17 @@ diff --git a/chrome/browser/autocomplete/remote_suggestions_service_factory.cc b
diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.cc b/chrome/browser/content_settings/host_content_settings_map_factory.cc
--- a/chrome/browser/content_settings/host_content_settings_map_factory.cc
+++ b/chrome/browser/content_settings/host_content_settings_map_factory.cc
@@ -15,6 +15,7 @@
#include "chrome/browser/profiles/profile.h"
@@ -16,6 +16,7 @@
#include "chrome/browser/profiles/profiles_state.h"
#include "chrome/browser/search_engines/template_url_service_factory.h"
#include "chrome/common/buildflags.h"
+#include "chrome/common/pref_names.h"
#include "components/content_settings/core/browser/content_settings_pref_provider.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
#include "components/permissions/features.h"
@@ -119,9 +120,25 @@ scoped_refptr<RefcountedKeyedService>
should_record_metrics && ash::ProfileHelper::IsUserProfile(profile);
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
@@ -105,9 +106,25 @@ scoped_refptr<RefcountedKeyedService>
if (profile->IsOffTheRecord() && !profile->IsGuestSession())
GetForProfile(original_profile);
+ bool always_incognito_enabled = false;
+ bool force_save_site_settings = false;
@@ -1350,9 +1350,9 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c
+ !force_save_site_settings && (profile->IsOffTheRecord() || profile->IsGuestSession()),
+ force_save_site_settings,
/*store_last_modified=*/true, profile->ShouldRestoreOldSessionCookies(),
should_record_metrics));
profiles::IsRegularUserProfile(profile)));
@@ -131,6 +148,9 @@ scoped_refptr<RefcountedKeyedService>
@@ -117,6 +134,9 @@ scoped_refptr<RefcountedKeyedService>
HostContentSettingsMap::WEBUI_ALLOWLIST_PROVIDER,
std::move(allowlist_provider));
@@ -1365,17 +1365,17 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c
diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/history/history_tab_helper.cc
--- a/chrome/browser/history/history_tab_helper.cc
+++ b/chrome/browser/history/history_tab_helper.cc
@@ -38,6 +38,9 @@
#include "chrome/browser/ui/android/tab_model/tab_model_list.h"
@@ -41,6 +41,9 @@
#include "components/feed/core/v2/public/feed_api.h"
#include "components/feed/core/v2/public/feed_service.h"
#include "content/public/browser/web_contents.h"
+#include "chrome/common/pref_names.h"
+#include "components/prefs/pref_registry_simple.h"
+#include "components/prefs/pref_service.h"
#else
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_finder.h"
@@ -445,6 +448,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
@@ -448,6 +451,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
history::HistoryService* HistoryTabHelper::GetHistoryService() {
Profile* profile =
Profile::FromBrowserContext(web_contents()->GetBrowserContext());
@@ -1389,7 +1389,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
if (profile->IsOffTheRecord())
return nullptr;
@@ -452,6 +462,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
@@ -455,6 +465,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
profile, ServiceAccessType::IMPLICIT_ACCESS);
}
@@ -1409,18 +1409,18 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/history/history_tab_helper.h
--- a/chrome/browser/history/history_tab_helper.h
+++ b/chrome/browser/history/history_tab_helper.h
@@ -14,6 +14,8 @@
@@ -15,6 +15,8 @@
#include "components/translate/core/browser/translate_driver.h"
#include "content/public/browser/web_contents_observer.h"
#include "content/public/browser/web_contents_user_data.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
+#include "components/prefs/pref_registry_simple.h"
+#include "components/prefs/pref_service.h"
namespace history {
struct HistoryAddPageArgs;
@@ -53,6 +55,11 @@ class HistoryTabHelper
force_eligible_tab_for_testing_ = force;
}
@@ -54,6 +56,11 @@ class HistoryTabHelper
void SetAppId(const std::string& app_id) { app_id_ = app_id; }
#endif
+ static void RegisterProfilePrefs(PrefRegistrySimple* registry);
+
@@ -1430,7 +1430,7 @@ diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/histor
private:
explicit HistoryTabHelper(content::WebContents* web_contents);
friend class content::WebContentsUserData<HistoryTabHelper>;
@@ -83,9 +90,6 @@ class HistoryTabHelper
@@ -89,9 +96,6 @@ class HistoryTabHelper
void OnLanguageDetermined(
const translate::LanguageDetectionDetails& details) override;
@@ -1643,9 +1643,9 @@ diff --git a/chrome/browser/offline_pages/recent_tab_helper.cc b/chrome/browser/
+ last_n_ongoing_snapshot_info_.get(),
+ /*user_requested*/ false));
IsSavingSamePageEnum saving_same_page_value = IsSavingSamePageEnum::kNewPage;
if (last_n_latest_saved_snapshot_info_) {
@@ -420,11 +434,12 @@ void RecentTabHelper::SaveSnapshotForDownloads(bool replace_latest) {
last_n_latest_saved_snapshot_info_.reset();
}
@@ -403,11 +417,12 @@ void RecentTabHelper::SaveSnapshotForDownloads(bool replace_latest) {
downloads_latest_saved_snapshot_info_->request_id,
downloads_latest_saved_snapshot_info_->origin);
std::vector<int64_t> ids{downloads_latest_saved_snapshot_info_->request_id};
@@ -1659,7 +1659,7 @@ diff --git a/chrome/browser/offline_pages/recent_tab_helper.cc b/chrome/browser/
OfflinePageModel::DeletePageResult::SUCCESS);
}
}
@@ -441,6 +456,7 @@ void RecentTabHelper::SaveSnapshotForDownloads(bool replace_latest) {
@@ -424,6 +439,7 @@ void RecentTabHelper::SaveSnapshotForDownloads(bool replace_latest) {
// for early termination in case of errors.
void RecentTabHelper::ContinueSnapshotWithIdsToPurge(
SnapshotProgressInfo* snapshot_info,
@@ -1667,7 +1667,7 @@ diff --git a/chrome/browser/offline_pages/recent_tab_helper.cc b/chrome/browser/
const std::vector<int64_t>& page_ids) {
DCHECK(snapshot_info);
@@ -450,13 +466,20 @@ void RecentTabHelper::ContinueSnapshotWithIdsToPurge(
@@ -433,13 +449,20 @@ void RecentTabHelper::ContinueSnapshotWithIdsToPurge(
criteria.offline_ids = page_ids;
page_model_->DeletePagesWithCriteria(
criteria, base::BindOnce(&RecentTabHelper::ContinueSnapshotAfterPurge,
@@ -1693,7 +1693,7 @@ diff --git a/chrome/browser/offline_pages/recent_tab_helper.cc b/chrome/browser/
diff --git a/chrome/browser/offline_pages/recent_tab_helper.h b/chrome/browser/offline_pages/recent_tab_helper.h
--- a/chrome/browser/offline_pages/recent_tab_helper.h
+++ b/chrome/browser/offline_pages/recent_tab_helper.h
@@ -123,8 +123,10 @@ class RecentTabHelper
@@ -106,8 +106,10 @@ class RecentTabHelper
bool EnsureInitialized();
void ContinueSnapshotWithIdsToPurge(SnapshotProgressInfo* snapshot_info,
@@ -1704,7 +1704,7 @@ diff --git a/chrome/browser/offline_pages/recent_tab_helper.h b/chrome/browser/o
OfflinePageModel::DeletePageResult result);
void SavePageCallback(SnapshotProgressInfo* snapshot_info,
OfflinePageModel::SavePageResult result,
@@ -146,6 +148,9 @@ class RecentTabHelper
@@ -129,6 +131,9 @@ class RecentTabHelper
// Not page-specific.
bool snapshots_enabled_ = false;
@@ -1738,7 +1738,7 @@ diff --git a/chrome/browser/offline_pages/request_coordinator_factory.h b/chrome
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
@@ -256,6 +256,7 @@
@@ -248,6 +248,7 @@
#if BUILDFLAG(IS_ANDROID)
#include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h"
@@ -1746,7 +1746,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"
@@ -1857,6 +1858,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
@@ -1813,6 +1814,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry);
variations::VariationsService::RegisterProfilePrefs(registry);
webapps::InstallPromptPrefs::RegisterProfilePrefs(registry);
@@ -1790,10 +1790,10 @@ diff --git a/chrome/browser/profiles/profile_selections.h b/chrome/browser/profi
@@ -6,7 +6,7 @@
#define CHROME_BROWSER_PROFILES_PROFILE_SELECTIONS_H_
#include "base/feature_list.h"
#include <optional>
-
+#include "build/build_config.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "base/feature_list.h"
class Profile;
@@ -27,6 +27,11 @@ bool AreKeyedServicesDisabledForProfileByDefault(const Profile* profile);
@@ -1885,7 +1885,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
@@ -1225,6 +1225,37 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1222,6 +1222,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>
@@ -1991,7 +1991,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
@@ -3940,6 +3940,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] =
@@ -3952,6 +3952,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] =
"net.out_of_process_system_dns_resolution_enabled";
#endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
@@ -2007,7 +2007,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
diff --git a/components/content_settings/core/browser/content_settings_pref_provider.cc b/components/content_settings/core/browser/content_settings_pref_provider.cc
--- a/components/content_settings/core/browser/content_settings_pref_provider.cc
+++ b/components/content_settings/core/browser/content_settings_pref_provider.cc
@@ -91,10 +91,12 @@ void PrefProvider::RegisterProfilePrefs(
@@ -97,10 +97,12 @@ void PrefProvider::RegisterProfilePrefs(
PrefProvider::PrefProvider(PrefService* prefs,
bool off_the_record,
@@ -2020,7 +2020,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
store_last_modified_(store_last_modified),
clock_(base::DefaultClock::GetInstance()) {
TRACE_EVENT_BEGIN("startup", "PrefProvider::PrefProvider");
@@ -117,10 +119,14 @@ PrefProvider::PrefProvider(PrefService* prefs,
@@ -124,11 +126,13 @@ PrefProvider::PrefProvider(PrefService* prefs,
WebsiteSettingsRegistry* website_settings =
WebsiteSettingsRegistry::GetInstance();
for (const WebsiteSettingsInfo* info : *website_settings) {
@@ -2028,18 +2028,17 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
+ info->incognito_behavior() == WebsiteSettingsInfo::INHERIT_IN_INCOGNITO;
content_settings_prefs_.insert(std::make_pair(
info->type(), std::make_unique<ContentSettingsPref>(
info->type(), prefs_, &pref_change_registrar_,
- info->pref_name(), off_the_record_, restore_session,
+ info->pref_name(),
+ off_the_record_ && !save_site_settings,
+ restore_session,
info->type(), prefs_, pref_change_registrar_.get(),
info->pref_name(), info->partitioned_pref_name(),
- off_the_record_, restore_session,
+ off_the_record_ && !save_site_settings, restore_session,
base::BindRepeating(&PrefProvider::Notify,
base::Unretained(this)))));
}
diff --git a/components/content_settings/core/browser/content_settings_pref_provider.h b/components/content_settings/core/browser/content_settings_pref_provider.h
--- a/components/content_settings/core/browser/content_settings_pref_provider.h
+++ b/components/content_settings/core/browser/content_settings_pref_provider.h
@@ -37,6 +37,7 @@ class PrefProvider : public UserModifiableProvider {
@@ -38,6 +38,7 @@ class PrefProvider : public UserModifiableProvider {
PrefProvider(PrefService* prefs,
bool off_the_record,
@@ -2047,7 +2046,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
bool store_last_modified,
bool restore_session);
@@ -116,6 +117,7 @@ class PrefProvider : public UserModifiableProvider {
@@ -127,6 +128,7 @@ class PrefProvider : public UserModifiableProvider {
raw_ptr<PrefService> prefs_;
const bool off_the_record_;
@@ -2058,7 +2057,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc
--- a/components/content_settings/core/browser/host_content_settings_map.cc
+++ b/components/content_settings/core/browser/host_content_settings_map.cc
@@ -288,6 +288,7 @@ struct ContentSettingEntry {
@@ -277,6 +277,7 @@ struct ContentSettingEntry {
HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
bool is_off_the_record,
@@ -2066,7 +2065,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
bool store_last_modified,
bool restore_session,
bool should_record_metrics)
@@ -297,6 +298,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
@@ -286,6 +287,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
#endif
prefs_(prefs),
is_off_the_record_(is_off_the_record),
@@ -2074,7 +2073,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
store_last_modified_(store_last_modified),
allow_invalid_secondary_pattern_for_testing_(false),
clock_(base::DefaultClock::GetInstance()) {
@@ -309,7 +311,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
@@ -298,7 +300,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
policy_provider->AddObserver(this);
auto pref_provider_ptr = std::make_unique<content_settings::PrefProvider>(
@@ -2082,7 +2081,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
+ prefs_, is_off_the_record_, force_save_site_settings_, store_last_modified_, restore_session);
pref_provider_ = pref_provider_ptr.get();
content_settings_providers_[PREF_PROVIDER] = std::move(pref_provider_ptr);
user_modifiable_providers_.push_back(pref_provider_);
user_modifiable_providers_.push_back(pref_provider_.get());
diff --git a/components/content_settings/core/browser/host_content_settings_map.h b/components/content_settings/core/browser/host_content_settings_map.h
--- a/components/content_settings/core/browser/host_content_settings_map.h
+++ b/components/content_settings/core/browser/host_content_settings_map.h
@@ -2094,7 +2093,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
bool store_last_modified,
bool restore_session,
bool should_record_metrics);
@@ -531,6 +532,8 @@ class HostContentSettingsMap : public content_settings::Observer,
@@ -544,6 +545,8 @@ class HostContentSettingsMap : public content_settings::Observer,
// Whether this settings map is for an incognito or guest session.
bool is_off_the_record_;
@@ -2117,7 +2116,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
@@ -138,6 +138,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client {
@@ -137,6 +137,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client {
virtual bool IsOffTheRecord() const = 0;
virtual bool IsIncognitoProfile() const = 0;
virtual bool IsGuestSession() const = 0;
@@ -2140,7 +2139,7 @@ diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omn
diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc
--- a/components/omnibox/browser/search_provider.cc
+++ b/components/omnibox/browser/search_provider.cc
@@ -767,7 +767,9 @@ bool SearchProvider::IsQuerySuitableForSuggest(bool* query_is_private) const {
@@ -774,7 +774,9 @@ bool SearchProvider::IsQuerySuitableForSuggest(bool* query_is_private) const {
// keyword input to a keyword suggest server, if any.)
const TemplateURL* default_url = providers_.GetDefaultProviderURL();
const TemplateURL* keyword_url = providers_.GetKeywordProviderURL();
@@ -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
@@ -250,7 +250,7 @@ void ContentSettingsRegistry::Init() {
@@ -255,7 +255,7 @@ void ContentSettingsRegistry::Init() {
ContentSettingsInfo::INHERIT_IN_INCOGNITO,
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
@@ -120,7 +120,7 @@ diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml b/c
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java
@@ -11,6 +11,7 @@ import androidx.annotation.Nullable;
@@ -12,6 +12,7 @@ import androidx.annotation.Nullable;
import org.chromium.base.jank_tracker.JankTracker;
import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.Supplier;
@@ -128,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe
import org.chromium.chrome.browser.app.tab_activity_glue.ActivityTabWebContentsDelegateAndroid;
import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
@@ -50,7 +51,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager;
@@ -51,7 +52,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager;
* {@link ChromeTabbedActivity}.
*/
public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
@@ -137,7 +137,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe
private final BrowserControlsVisibilityDelegate mAppBrowserControlsVisibilityDelegate;
private final Supplier<ShareDelegate> mShareDelegateSupplier;
private final Supplier<EphemeralTabCoordinator> mEphemeralTabCoordinatorSupplier;
@@ -77,7 +78,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
@@ -79,7 +80,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
private NativePageFactory mNativePageFactory;
public TabbedModeTabDelegateFactory(
@@ -149,7 +149,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java
@@ -21,6 +21,11 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
@@ -20,6 +20,11 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.components.bookmarks.BookmarkId;
import org.chromium.components.embedder_support.util.UrlConstants;
@@ -161,7 +161,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
/**
* The activity that displays the bookmark UI on the phone. It keeps a {@link
@@ -33,6 +38,9 @@ public class BookmarkActivity extends SnackbarActivity {
@@ -32,6 +37,9 @@ public class BookmarkActivity extends SnackbarActivity {
public static final int EDIT_BOOKMARK_REQUEST_CODE = 14;
public static final String INTENT_VISIT_BOOKMARK_ID = "BookmarkEditActivity.VisitBookmarkId";
@@ -171,10 +171,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -66,8 +74,23 @@ public class BookmarkActivity extends SnackbarActivity {
mBookmarkManagerCoordinator::onBackPressed,
SecondaryActivity.BOOKMARK);
}
@@ -62,8 +70,23 @@ public class BookmarkActivity extends SnackbarActivity {
getOnBackPressedDispatcher(),
mBookmarkManagerCoordinator,
SecondaryActivity.BOOKMARK);
+
+ final boolean listenToActivityState = true;
+ mIntentRequestTracker = IntentRequestTracker.createFromActivity(this);
@@ -195,7 +195,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
@Override
protected void onDestroy() {
super.onDestroy();
@@ -77,6 +100,7 @@ public class BookmarkActivity extends SnackbarActivity {
@@ -73,6 +96,7 @@ public class BookmarkActivity extends SnackbarActivity {
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
@@ -203,7 +203,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
if (requestCode == EDIT_BOOKMARK_REQUEST_CODE && resultCode == RESULT_OK) {
BookmarkId bookmarkId =
BookmarkId.getBookmarkIdFromString(
@@ -85,6 +109,14 @@ public class BookmarkActivity extends SnackbarActivity {
@@ -81,6 +105,14 @@ public class BookmarkActivity extends SnackbarActivity {
}
}
@@ -221,62 +221,54 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
@@ -4,7 +4,20 @@
package org.chromium.chrome.browser.bookmarks;
@@ -33,6 +33,46 @@ import org.chromium.url.GURL;
import java.util.ArrayList;
import java.util.List;
+import android.app.Activity;
+import android.content.Intent;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.net.Uri;
+import android.content.res.Resources;
+import android.content.ContentResolver;
+import android.net.Uri;
+import android.provider.Browser;
+import android.provider.DocumentsContract;
+import android.Manifest.permission;
+import android.view.View;
+import android.view.LayoutInflater;
+
+import androidx.appcompat.app.AlertDialog;
import android.os.SystemClock;
+import android.os.Build;
import android.text.TextUtils;
import android.util.Pair;
@@ -36,6 +49,33 @@ import org.chromium.url.GURL;
import java.util.ArrayList;
import java.util.List;
+
+import java.io.File;
+
+import org.chromium.base.ContentUriUtils;
+import org.chromium.base.shared_preferences.SharedPreferencesManager;
+import org.chromium.base.task.AsyncTask;
+import org.chromium.chrome.R;
+import org.chromium.chrome.browser.document.ChromeLauncherActivity;
+import org.chromium.chrome.browser.IntentHandler;
+import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
+import org.chromium.base.shared_preferences.SharedPreferencesManager;
+import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
+import org.chromium.ui.base.PageTransition;
+import org.chromium.ui.base.WindowAndroid;
+import org.chromium.ui.modaldialog.ModalDialogManager;
+
+import android.view.View;
+import android.view.LayoutInflater;
+import org.chromium.ui.modelutil.PropertyModel;
+import org.chromium.ui.modaldialog.ModalDialogProperties;
+import org.chromium.ui.modaldialog.DialogDismissalCause;
+import org.chromium.chrome.browser.download.DownloadLocationDialogType;
+import org.chromium.chrome.browser.download.dialogs.DownloadLocationDialogController;
+import org.chromium.chrome.browser.download.dialogs.DownloadLocationDialogCoordinator;
+import org.chromium.chrome.browser.download.dialogs.DownloadLocationCustomView;
+import org.chromium.chrome.browser.download.DirectoryOption;
+import android.content.res.Resources;
+import org.chromium.base.task.AsyncTask;
+
+import java.io.File;
+import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
+import org.chromium.ui.base.PageTransition;
+import org.chromium.ui.base.WindowAndroid;
+import org.chromium.ui.modelutil.PropertyModel;
+import org.chromium.ui.modaldialog.ModalDialogManager;
+import org.chromium.ui.modaldialog.ModalDialogProperties;
+import org.chromium.ui.modaldialog.DialogDismissalCause;
+
/**
* Provides the communication channel for Android to fetch and manipulate the bookmark model stored
* in native.
@@ -435,6 +475,209 @@ class BookmarkBridge {
@@ -483,6 +523,209 @@ class BookmarkBridge {
.getTotalBookmarkCount(mNativeBookmarkBridge, id.getId(), id.getType());
}
@@ -486,7 +478,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/**
* Synchronously gets a list of bookmarks that match the specified search query.
*
@@ -950,6 +1193,39 @@ class BookmarkBridge {
@@ -1032,6 +1275,39 @@ class BookmarkBridge {
depthList.add(depth);
}
@@ -526,7 +518,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++) {
@@ -994,6 +1270,10 @@ class BookmarkBridge {
@@ -1090,6 +1366,10 @@ class BookmarkBridge {
void getChildIds(
long nativeBookmarkBridge, long id, int type, List<BookmarkId> bookmarksList);
@@ -569,7 +561,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType;
import org.chromium.ui.modelutil.MVCListAdapter.ModelList;
@@ -320,6 +322,13 @@ public class BookmarkManagerCoordinator
@@ -317,6 +319,13 @@ public class BookmarkManagerCoordinator
// Public API implementation.
@@ -605,7 +597,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;
@@ -551,6 +556,14 @@ class BookmarkManagerMediator
@@ -550,6 +555,14 @@ class BookmarkManagerMediator
mNativePage = nativePage;
}
@@ -620,7 +612,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.
@@ -727,6 +740,16 @@ class BookmarkManagerMediator
@@ -726,6 +739,16 @@ class BookmarkManagerMediator
}
}
@@ -653,14 +645,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
@@ -31,7 +34,7 @@ public class BookmarkPage extends BasicNativePage {
ComponentName componentName,
SnackbarManager snackbarManager,
boolean isIncognito,
Profile profile,
- NativePageHost host) {
+ NativePageHost host, ChromeActivity activity) {
super(host);
mBookmarkManagerCoordinator =
@@ -44,6 +47,9 @@ public class BookmarkPage extends BasicNativePage {
Profile.getLastUsedRegularProfile(),
@@ -43,6 +46,9 @@ public class BookmarkPage extends BasicNativePage {
profile,
new BookmarkUiPrefs(ChromeSharedPreferences.getInstance()));
mBookmarkManagerCoordinator.setBasicNativePage(this);
+ mBookmarkManagerCoordinator.setWindow(activity.getWindowAndroid(),
@@ -797,7 +789,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;
@@ -70,7 +71,7 @@ public class NativePageFactory {
@@ -71,7 +72,7 @@ public class NativePageFactory {
private NativePageBuilder mNativePageBuilder;
public NativePageFactory(
@@ -806,7 +798,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,
@@ -130,7 +131,7 @@ public class NativePageFactory {
@@ -134,7 +135,7 @@ public class NativePageFactory {
@VisibleForTesting
static class NativePageBuilder {
@@ -815,8 +807,8 @@ 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;
@@ -146,7 +147,7 @@ public class NativePageFactory {
private final ObservableSupplier<TabContentManager> mTabContentManagerSupplier;
@@ -151,7 +152,7 @@ public class NativePageFactory {
private final ObservableSupplier<Integer> mTabStripHeightSupplier;
public NativePageBuilder(
- Activity activity,
@@ -824,10 +816,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
Supplier<NewTabPageUma> uma,
BottomSheetController sheetController,
BrowserControlsManager browserControlsManager,
@@ -208,7 +209,7 @@ public class NativePageFactory {
@@ -218,7 +219,7 @@ public class NativePageFactory {
mActivity.getComponentName(),
mSnackbarManagerSupplier.get(),
mTabModelSelector.isIncognitoSelected(),
tab.getProfile(),
- new TabShim(tab, mBrowserControlsManager, mTabModelSelector));
+ new TabShim(tab, mBrowserControlsManager, mTabModelSelector), mActivity);
}
@@ -836,7 +828,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -199,6 +199,8 @@ static_library("browser") {
@@ -197,6 +197,8 @@ static_library("browser") {
"bluetooth/chrome_bluetooth_delegate_impl_client.h",
"bookmarks/bookmark_model_factory.cc",
"bookmarks/bookmark_model_factory.h",
@@ -845,7 +837,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",
@@ -1939,6 +1941,13 @@ static_library("browser") {
@@ -1923,6 +1925,13 @@ static_library("browser") {
]
}
@@ -859,7 +851,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
configs += [
"//build/config/compiler:wexit_time_destructors",
"//build/config:precompiled_headers",
@@ -3664,8 +3673,6 @@ static_library("browser") {
@@ -3630,8 +3639,6 @@ static_library("browser") {
"badging/badge_manager_factory.h",
"banners/app_banner_manager_desktop.cc",
"banners/app_banner_manager_desktop.h",
@@ -871,7 +863,7 @@ 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
@@ -56,6 +56,25 @@
@@ -58,6 +58,25 @@
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/web_contents.h"
@@ -897,7 +889,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;
@@ -73,12 +92,96 @@ using bookmarks::android::JavaBookmarkIdGetType;
@@ -75,12 +94,96 @@ using bookmarks::android::JavaBookmarkIdGetType;
using content::BrowserThread;
using power_bookmarks::PowerBookmarkMeta;
@@ -994,10 +986,10 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
class BookmarkTitleComparer {
public:
explicit BookmarkTitleComparer(BookmarkBridge* bookmark_bridge,
@@ -199,6 +302,10 @@ BookmarkBridge::~BookmarkBridge() {
if (partner_bookmarks_shim_)
partner_bookmarks_shim_->RemoveObserver(this);
reading_list_manager_->RemoveObserver(this);
@@ -221,6 +324,10 @@ BookmarkBridge::~BookmarkBridge() {
partner_bookmarks_shim_observation_.Reset();
bookmark_model_observation_.Reset();
profile_observation_.Reset();
+ // There may be pending file dialogs, we need to tell them that we've gone
+ // away so they don't try and call back to us.
+ if (select_file_dialog_)
@@ -1005,7 +997,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
}
void BookmarkBridge::Destroy(JNIEnv*) {
@@ -539,6 +646,182 @@ jint BookmarkBridge::GetTotalBookmarkCount(
@@ -638,6 +745,182 @@ jint BookmarkBridge::GetTotalBookmarkCount(
return count;
}
@@ -1191,7 +1183,7 @@ 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
@@ -20,6 +20,7 @@
@@ -21,6 +21,7 @@
#include "base/supports_user_data.h"
#include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h"
#include "chrome/browser/image_service/image_service_factory.h"
@@ -1199,7 +1191,7 @@ 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"
@@ -31,6 +32,9 @@
@@ -33,6 +34,9 @@
#include "components/prefs/pref_change_registrar.h"
#include "url/android/gurl_android.h"
@@ -1209,17 +1201,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
@@ -42,7 +46,8 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
@@ -44,7 +48,8 @@ class BookmarkBridge : public ProfileObserver,
public bookmarks::BaseBookmarkModelObserver,
public PartnerBookmarksShim::Observer,
public ReadingListManager::Observer,
public ProfileObserver,
- public base::SupportsUserData::Data {
+ public base::SupportsUserData::Data,
+ public ui::SelectFileDialog::Listener {
public:
BookmarkBridge(Profile* profile,
bookmarks::BookmarkModel* model,
@@ -69,6 +74,12 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
BookmarkBridge(
Profile* profile,
@@ -81,6 +86,12 @@ class BookmarkBridge : public ProfileObserver,
bool IsDoingExtensiveChanges(JNIEnv* env);
@@ -1232,7 +1224,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
jboolean IsEditBookmarksEnabled(JNIEnv* env);
void LoadEmptyPartnerBookmarkShimForTesting(JNIEnv* env);
@@ -81,6 +92,15 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
@@ -93,6 +104,15 @@ class BookmarkBridge : public ProfileObserver,
jlong id,
jint type);
@@ -1248,10 +1240,10 @@ 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,
@@ -310,12 +330,16 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
@@ -340,12 +360,16 @@ class BookmarkBridge : public ProfileObserver,
void DestroyJavaObject();
raw_ptr<Profile> profile_;
raw_ptr<Profile> profile_; // weak
+ base::FilePath export_path_;
+ raw_ptr<BookmarksExportObserver> observer_; // weak
+
@@ -1265,9 +1257,9 @@ 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.
@@ -329,6 +353,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
// Observes the profile destruction and creation.
base::ScopedObservation<Profile, ProfileObserver> profile_observation_{this};
@@ -371,6 +395,10 @@ class BookmarkBridge : public ProfileObserver,
ReadingListManager::Observer>
reading_list_manager_observations_{this};
+ const std::string FileSelectedImpl(const base::FilePath& path);
+ void FileSelectedImplOnUIThread(const base::FilePath& path,
@@ -1375,25 +1367,25 @@ 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
@@ -189,6 +189,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -176,6 +176,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kCacheActivityTaskID,
&kCastDeviceFilter,
&kClearOmniboxFocusAfterNavigation,
&kCloseTabSaveTabList,
+ &kBookmarksExportUseSaf,
&kCriticalPersistedTabData,
+ &kBookmarksExportUseSaf
&kCreateNewTabInitializeRenderer,
&kCCTBottomBarSwipeUpGesture,
&kCCTBrandTransparencyMemoryImprovement,
&kCCTClientDataHeader,
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
@@ -494,6 +494,7 @@ public abstract class ChromeFeatureList {
@@ -492,6 +492,7 @@ public abstract class ChromeFeatureList {
public static final String USER_BYPASS_UI = "UserBypassUI";
public static final String VERTICAL_AUTOMOTIVE_BACK_BUTTON_TOOLBAR =
"VerticalAutomotiveBackButtonToolbar";
+ public static final String BOOKMARKS_EXPORT_USESAF = "BookmarksExportUseSaf";
public static final String VOICE_BUTTON_IN_TOP_TOOLBAR = "VoiceButtonInTopToolbar";
public static final String VOICE_SEARCH_AUDIO_CAPTURE_POLICY = "VoiceSearchAudioCapturePolicy";
public static final String WEBNOTES_STYLIZE = "WebNotesStylize";
public static final String WEB_APK_ALLOW_ICON_UPDATE = "WebApkAllowIconUpdate";
public static final String WEB_APK_BACKUP_AND_RESTORE_BACKEND = "WebApkBackupAndRestoreBackend";
diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer/profile_writer.cc
--- a/chrome/browser/importer/profile_writer.cc
+++ b/chrome/browser/importer/profile_writer.cc
@@ -1449,7 +1441,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
/**
* Whether Chrome is set as the default browser.
@@ -938,6 +940,7 @@ public final class ChromePreferenceKeys {
@@ -911,6 +913,7 @@ public final class ChromePreferenceKeys {
AUTOFILL_ASSISTANT_PROACTIVE_HELP_ENABLED,
APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE,
APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO,
@@ -1488,7 +1480,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
@@ -403,6 +403,9 @@ static_library("common_lib") {
@@ -407,6 +407,9 @@ static_library("common_lib") {
sources += [
"media/chrome_media_drm_bridge_client.cc",
"media/chrome_media_drm_bridge_client.h",
@@ -1762,7 +1754,7 @@ diff --git a/ui/android/java/strings/android_ui_strings.grd b/ui/android/java/st
diff --git a/ui/shell_dialogs/select_file_dialog.h b/ui/shell_dialogs/select_file_dialog.h
--- a/ui/shell_dialogs/select_file_dialog.h
+++ b/ui/shell_dialogs/select_file_dialog.h
@@ -213,6 +213,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDialog
@@ -199,6 +199,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDialog
const GURL* caller = nullptr);
bool HasMultipleFileTypeChoices();
@@ -1774,7 +1766,7 @@ diff --git a/ui/shell_dialogs/select_file_dialog.h b/ui/shell_dialogs/select_fil
diff --git a/ui/shell_dialogs/select_file_dialog_android.cc b/ui/shell_dialogs/select_file_dialog_android.cc
--- a/ui/shell_dialogs/select_file_dialog_android.cc
+++ b/ui/shell_dialogs/select_file_dialog_android.cc
@@ -142,6 +142,12 @@ void SelectFileDialogImpl::SelectFileImpl(
@@ -137,6 +137,12 @@ void SelectFileDialogImpl::SelectFileImpl(
owning_window->GetJavaObject());
}
@@ -1828,7 +1820,7 @@ diff --git a/ui/shell_dialogs/select_file_dialog_linux.h b/ui/shell_dialogs/sele
diff --git a/ui/shell_dialogs/select_file_dialog_win.cc b/ui/shell_dialogs/select_file_dialog_win.cc
--- a/ui/shell_dialogs/select_file_dialog_win.cc
+++ b/ui/shell_dialogs/select_file_dialog_win.cc
@@ -193,6 +193,7 @@ class SelectFileDialogImpl : public ui::SelectFileDialog,
@@ -194,6 +194,7 @@ class SelectFileDialogImpl : public ui::SelectFileDialog,
int index);
bool HasMultipleFileTypeChoicesImpl() override;
@@ -1836,7 +1828,7 @@ diff --git a/ui/shell_dialogs/select_file_dialog_win.cc b/ui/shell_dialogs/selec
// Returns the filter to be used while displaying the open/save file dialog.
// This is computed from the extensions for the file types being opened.
@@ -271,6 +272,10 @@ bool SelectFileDialogImpl::HasMultipleFileTypeChoicesImpl() {
@@ -272,6 +273,10 @@ bool SelectFileDialogImpl::HasMultipleFileTypeChoicesImpl() {
return has_multiple_file_type_choices_;
}
+80 -80
View File
@@ -16,7 +16,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
base/BUILD.gn | 4 +-
base/android/feature_map.cc | 8 +-
base/feature_list.cc | 80 ++++++++++
.../base/cached_flags/CachedFlag.java | 6 +
base/feature_list.cc | 79 +++++++++
base/feature_list.h | 72 ++++++++-
build/android/gyp/java_cpp_features.py | 17 ++
chrome/android/java/res/values/values.xml | 3 +
@@ -28,7 +29,6 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
chrome/browser/flags/BUILD.gn | 12 ++
.../flags/android/chrome_feature_list.cc | 1 +
.../flags/android/chrome_feature_list.h | 1 +
.../chrome/browser/flags/CachedFlag.java | 6 +
.../browser/flags/ChromeFeatureList.java | 13 +-
.../flags/cromite/include_all_directory.java | 1 +
.../java_template/CromiteCachedFlag.java.tmpl | 47 ++++++
@@ -87,7 +87,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
services/network/public/cpp/features.h | 1 +
third_party/blink/common/features.cc | 1 +
third_party/blink/public/common/features.h | 1 +
73 files changed, 737 insertions(+), 18 deletions(-)
73 files changed, 736 insertions(+), 18 deletions(-)
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/java_template/CromiteCachedFlag.java.tmpl
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/placeholder.txt
@@ -119,7 +119,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
@@ -206,6 +206,8 @@ buildflag_header("message_pump_buildflags") {
@@ -207,6 +207,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") {
@@ -128,15 +128,15 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn
sources = [
"allocator/allocator_check.cc",
"allocator/allocator_check.h",
@@ -1030,7 +1032,7 @@ component("base") {
@@ -1049,7 +1051,7 @@ component("base") {
"//build/config/compiler:wglobal_constructors",
]
- deps = [
+ deps += [
":check_version_internal",
":message_pump_buildflags",
"//base/allocator:buildflags",
"//base/allocator/partition_allocator:raw_ptr",
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
@@ -157,14 +157,29 @@ diff --git a/base/android/feature_map.cc b/base/android/feature_map.cc
return base::FeatureList::IsEnabled(*feature);
}
diff --git a/base/android/java/src/org/chromium/base/cached_flags/CachedFlag.java b/base/android/java/src/org/chromium/base/cached_flags/CachedFlag.java
--- a/base/android/java/src/org/chromium/base/cached_flags/CachedFlag.java
+++ b/base/android/java/src/org/chromium/base/cached_flags/CachedFlag.java
@@ -152,6 +152,12 @@ public class CachedFlag extends Flag {
.removeKeysWithPrefix(CachedFlagsSharedPreferences.FLAGS_CACHED);
}
+ public void setValueReturnedOverride(@Nullable Boolean value) {
+ synchronized (ValuesReturned.sBoolValues) {
+ ValuesReturned.sBoolValues.put(getSharedPreferenceKey(), value);
+ }
+ }
+
/** Create a Map of feature names -> {@link CachedFlag} from multiple lists of CachedFlags. */
public static Map<String, CachedFlag> createCachedFlagMap(
List<List<CachedFlag>> allCachedFlagsLists) {
diff --git a/base/feature_list.cc b/base/feature_list.cc
--- a/base/feature_list.cc
+++ b/base/feature_list.cc
@@ -30,6 +30,33 @@
#include "base/strings/stringprintf.h"
#include "build/build_config.h"
@@ -35,6 +35,32 @@
#include "base/feature_visitor.h"
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
+namespace base {
+namespace internal {
+
+using DefaultStateOverrides =
@@ -194,7 +209,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc
namespace base {
namespace {
@@ -441,6 +468,48 @@ bool FeatureList::IsEnabled(const Feature& feature) {
@@ -451,6 +477,48 @@ bool FeatureList::IsEnabled(const Feature& feature) {
return g_feature_list_instance->IsFeatureEnabled(feature);
}
@@ -243,7 +258,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc
// static
bool FeatureList::IsValidFeatureOrFieldTrialName(StringPiece name) {
return IsStringASCII(name) && name.find_first_of(",<*") == std::string::npos;
@@ -662,6 +731,17 @@ void FeatureList::AddEarlyAllowedFeatureForTesting(std::string feature_name) {
@@ -693,6 +761,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor) {
void FeatureList::FinalizeInitialization() {
DCHECK(!initialized_);
@@ -264,7 +279,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc
diff --git a/base/feature_list.h b/base/feature_list.h
--- a/base/feature_list.h
+++ b/base/feature_list.h
@@ -94,8 +94,10 @@ enum FeatureState {
@@ -99,8 +99,10 @@ enum FeatureState {
// [1]:
// https://crsrc.org/c/docs/speed/binary_size/android_binary_size_trybot.md#Mutable-Constants
struct BASE_EXPORT LOGICALLY_CONST Feature {
@@ -277,7 +292,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h
#if BUILDFLAG(ENABLE_BANNED_BASE_FEATURE_PREFIX)
if (StringPiece(name).find(BUILDFLAG(BANNED_BASE_FEATURE_PREFIX)) == 0) {
LOG(FATAL) << "Invalid feature name " << name << " starts with "
@@ -121,6 +123,9 @@ struct BASE_EXPORT LOGICALLY_CONST Feature {
@@ -126,6 +128,9 @@ struct BASE_EXPORT LOGICALLY_CONST Feature {
// command line switch.
const FeatureState default_state;
@@ -287,7 +302,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h
private:
friend class FeatureList;
@@ -396,6 +401,11 @@ class BASE_EXPORT FeatureList {
@@ -401,6 +406,11 @@ class BASE_EXPORT FeatureList {
// instance, which is checked in builds with DCHECKs enabled.
static bool IsEnabled(const Feature& feature);
@@ -299,7 +314,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h
// Some characters are not allowed to appear in feature names or the
// associated field trial names, as they are used as special characters for
// command-line serialization. This function checks that the strings are ASCII
@@ -652,4 +662,62 @@ class BASE_EXPORT FeatureList {
@@ -665,4 +675,62 @@ class BASE_EXPORT FeatureList {
} // namespace base
@@ -443,7 +458,7 @@ 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;
@@ -72,6 +73,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;
@@ -451,7 +466,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
import org.chromium.components.browser_ui.accessibility.AccessibilitySettings;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory;
@@ -113,6 +115,36 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -112,6 +114,36 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback,
SnackbarManageable,
DisplayStyleObserver {
@@ -488,7 +503,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";
@@ -365,6 +397,10 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -364,6 +396,10 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
((AccessibilitySettings) fragment)
.getDelegate()).setSnackbarManager(mSnackbarManager);
}
@@ -502,7 +517,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
@@ -369,6 +369,10 @@ using flags_ui::kOsLinux;
@@ -372,6 +372,10 @@ using flags_ui::kOsLinux;
using flags_ui::kOsMac;
using flags_ui::kOsWin;
@@ -513,9 +528,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
namespace about_flags {
namespace {
@@ -3947,6 +3951,10 @@ const flags_ui::FeatureEntry::FeatureVariation
std::size(kDesktopPWAsLinkCapturingDefaultOff), nullptr}};
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
@@ -3776,6 +3780,10 @@ const FeatureEntry::FeatureVariation
{"experimental V2", kCompressionDictionaryTransportBackendVersionV2,
std::size(kCompressionDictionaryTransportBackendVersionV2), nullptr}};
+#define FEATURE_PARAM_SECTION
+#include "cromite_flags/chrome_browser_about_flags_cc.inc"
@@ -524,7 +539,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.
@@ -3973,6 +3981,9 @@ const flags_ui::FeatureEntry::FeatureVariation
@@ -3802,6 +3810,9 @@ const FeatureEntry::FeatureVariation
const FeatureEntry kFeatureEntries[] = {
// Include generated flags for flag unexpiry; see //docs/flag_expiry.md and
// //tools/flags/generate_unexpire_flags.py.
@@ -537,8 +552,8 @@ 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
@@ -323,4 +323,5 @@ BASE_FEATURE(kPayloadTestComponent,
"PayloadTestComponent",
@@ -335,4 +335,5 @@ BASE_FEATURE(kOmniboxTriggerForNoStatePrefetch,
"OmniboxTriggerForNoStatePrefetch",
base::FEATURE_DISABLED_BY_DEFAULT);
+#include "cromite_flags/chrome_browser_browser_features_cc.inc"
@@ -546,19 +561,20 @@ diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_feature
diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
--- a/chrome/browser/flags/BUILD.gn
+++ b/chrome/browser/flags/BUILD.gn
@@ -25,7 +25,11 @@ android_library("java") {
"android/java/src/org/chromium/chrome/browser/flags/ValuesReturned.java",
"android/java/src/org/chromium/chrome/browser/flags/AdBlockNativeGateway.java",
@@ -12,8 +12,12 @@ android_library("java") {
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java",
"android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java",
]
+ sources += [
+ "android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java",
+ ]
public_deps = [ "//base:base_cached_flags_java" ]
deps = [
+ ":java_cromite_cached_flags",
"//base:base_java",
"//base/version_info/android:version_constants_java",
"//build:chromeos_buildflags",
"//build/android:build_java",
@@ -36,12 +40,20 @@ android_library("java") {
@@ -24,12 +28,20 @@ android_library("java") {
"//third_party/jni_zero:jni_zero_java",
]
srcjar_deps = [
@@ -582,8 +598,8 @@ 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
@@ -1216,5 +1216,6 @@ BASE_FEATURE(kWebApkInstallService,
"WebApkInstallService",
@@ -1008,5 +1008,6 @@ BASE_FEATURE(kWebApkBackupAndRestoreBackend,
"WebApkBackupAndRestoreBackend",
base::FEATURE_DISABLED_BY_DEFAULT);
+#include "cromite_flags/chrome_browser_flags_android_chrome_feature_list_cc.inc"
@@ -592,7 +608,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
@@ -230,6 +230,7 @@ constexpr base::FeatureParam<int> kAuxiliarySearchMaxTabsCountParam(
@@ -195,6 +195,7 @@ constexpr base::FeatureParam<int> kAuxiliarySearchMaxTabsCountParam(
"auxiliary_search_max_donation_tab",
100);
@@ -600,28 +616,12 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser
} // namespace android
} // namespace chrome
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFlag.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFlag.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFlag.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFlag.java
@@ -149,6 +149,12 @@ public class CachedFlag extends Flag {
.removeKeysWithPrefix(ChromePreferenceKeys.FLAGS_CACHED);
}
+ public void setValueReturnedOverride(@Nullable Boolean value) {
+ synchronized (ValuesReturned.sBoolValues) {
+ ValuesReturned.sBoolValues.put(getSharedPreferenceKey(), value);
+ }
+ }
+
/** Create a Map of feature names -> {@link CachedFlag} from multiple lists of CachedFlags. */
public static Map<String, CachedFlag> createCachedFlagMap(
List<List<CachedFlag>> allCachedFlagsLists) {
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
@@ -7,6 +7,10 @@ package org.chromium.chrome.browser.flags;
import org.chromium.base.FeatureMap;
import org.chromium.base.MutableFlagWithSafeDefault;
@@ -13,6 +13,10 @@ import org.chromium.base.cached_flags.DoubleCachedFieldTrialParameter;
import org.chromium.base.cached_flags.IntCachedFieldTrialParameter;
import org.chromium.base.cached_flags.StringCachedFieldTrialParameter;
+import org.chromium.chrome.browser.flags.cromite.CromiteCachedFlagImplBase;
+import java.util.Arrays;
@@ -630,16 +630,16 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
import java.util.List;
import java.util.Map;
@@ -673,7 +677,7 @@ public abstract class ChromeFeatureList {
@@ -666,7 +670,7 @@ public abstract class ChromeFeatureList {
public static final CachedFlag sVerticalAutomotiveBackButtonToolbar =
new CachedFlag(VERTICAL_AUTOMOTIVE_BACK_BUTTON_TOOLBAR, false);
newCachedFlag(VERTICAL_AUTOMOTIVE_BACK_BUTTON_TOOLBAR, false);
- public static final List<CachedFlag> sFlagsCachedFullBrowser =
+ public static final List<CachedFlag> sFlagsCachedFullBrowserChromium =
List.of(
sAllowUserCertificates,
sAndroidAppIntegration,
@@ -755,6 +759,13 @@ public abstract class ChromeFeatureList {
@@ -747,6 +751,13 @@ public abstract class ChromeFeatureList {
sUseLibunwindstackNativeUnwinderAndroid,
sVerticalAutomotiveBackButtonToolbar);
@@ -806,7 +806,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
@@ -429,4 +429,5 @@ BASE_FEATURE(kStopLoadingAnimationForHiddenWindow,
@@ -435,4 +435,5 @@ BASE_FEATURE(kStopLoadingAnimationForHiddenWindow,
"StopLoadingAnimationForHiddenWindow",
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -815,7 +815,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
@@ -1751,4 +1751,5 @@ BASE_FEATURE(kSupportsRtcWakeOver24Hours,
@@ -1708,4 +1708,5 @@ BASE_FEATURE(kSupportsRtcWakeOver24Hours,
base::FEATURE_ENABLED_BY_DEFAULT);
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
@@ -882,7 +882,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium
diff --git a/components/components_strings.grd b/components/components_strings.grd
--- a/components/components_strings.grd
+++ b/components/components_strings.grd
@@ -339,6 +339,7 @@
@@ -338,6 +338,7 @@
<part file="version_ui_strings.grdp" />
<part file="webapps_strings.grdp" />
<part file="user_scripts/strings/userscripts_strings.grdp" />
@@ -893,9 +893,9 @@ diff --git a/components/components_strings.grd b/components/components_strings.g
diff --git a/components/content_settings/core/common/features.cc b/components/content_settings/core/common/features.cc
--- a/components/content_settings/core/common/features.cc
+++ b/components/content_settings/core/common/features.cc
@@ -100,5 +100,6 @@ BASE_FEATURE(kHostIndexedMetadataGrants,
const base::FeatureParam<int> kMetadataGrantsThreshold{
&kHostIndexedMetadataGrants, kMetadataGrantsThresholdName, 1};
@@ -111,5 +111,6 @@ BASE_FEATURE(kIndexedHostContentSettingsMap,
"IndexedHostContentSettingsMap",
base::FEATURE_DISABLED_BY_DEFAULT);
+#include "cromite_flags/components_content_settings_core_common_features_cc.inc"
} // namespace features
@@ -1280,7 +1280,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
@@ -82,4 +82,5 @@ bool IsOfflinePagesNetworkStateLikelyUnknown() {
@@ -55,4 +55,5 @@ bool IsOfflinePagesNetworkStateLikelyUnknown() {
return base::FeatureList::IsEnabled(kOfflinePagesNetworkStateLikelyUnknown);
}
@@ -1289,7 +1289,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
@@ -64,6 +64,7 @@ bool IsOnTheFlyMhtmlHashComputationEnabled();
@@ -50,6 +50,7 @@ bool IsOnTheFlyMhtmlHashComputationEnabled();
// offline pages to avoid showing them even when the device is online.
bool IsOfflinePagesNetworkStateLikelyUnknown();
@@ -1300,7 +1300,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
@@ -135,6 +135,7 @@ BASE_FEATURE(kShowRelatedWebsiteSetsPermissionGrants,
@@ -142,6 +142,7 @@ BASE_FEATURE(kShowRelatedWebsiteSetsPermissionGrants,
"ShowRelatedWebsiteSetsPermissionGrants",
base::FEATURE_DISABLED_BY_DEFAULT);
@@ -1323,7 +1323,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
@@ -586,4 +586,5 @@ BASE_FEATURE(kWindowOpenFileSelectFix,
@@ -581,4 +581,5 @@ BASE_FEATURE(kWindowOpenFileSelectFix,
// Please keep features in alphabetical order.
@@ -1332,7 +1332,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
@@ -1388,4 +1388,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() {
@@ -1418,4 +1418,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() {
VideoCaptureServiceConfiguration::kEnabledForBrowserProcess;
}
@@ -1341,7 +1341,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
@@ -338,6 +338,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kWebRtcPipeWireCapturer);
@@ -341,6 +341,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kWebRtcPipeWireCapturer);
CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess();
CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess();
@@ -1639,7 +1639,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
@@ -1763,5 +1763,5 @@ uint32_t GetPassthroughAudioFormats() {
@@ -1821,5 +1821,5 @@ uint32_t GetPassthroughAudioFormats() {
return 0;
#endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS)
}
@@ -1649,7 +1649,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
@@ -519,5 +519,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled();
@@ -530,5 +530,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled();
MEDIA_EXPORT uint32_t GetPassthroughAudioFormats();
} // namespace media
@@ -1659,7 +1659,7 @@ 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
@@ -492,4 +492,5 @@ BASE_FEATURE(kTreatHTTPExpiresHeaderValueZeroAsExpired,
@@ -521,4 +521,5 @@ BASE_FEATURE(kTreatHTTPExpiresHeaderValueZeroAsExpired,
"TreatHTTPExpiresHeaderValueZeroAsExpired",
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -1668,7 +1668,7 @@ diff --git a/net/base/features.cc b/net/base/features.cc
diff --git a/net/base/features.h b/net/base/features.h
--- a/net/base/features.h
+++ b/net/base/features.h
@@ -487,6 +487,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kUseAlpsNewCodepoint);
@@ -512,6 +512,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kUseNewAlpsCodepointQUIC);
// while on stable channels.
NET_EXPORT BASE_DECLARE_FEATURE(kTreatHTTPExpiresHeaderValueZeroAsExpired);
@@ -1679,8 +1679,8 @@ 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
@@ -454,4 +454,5 @@ const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsSupport{
&kSkipTpcdMitigationsForAds, /*name=*/"SkipTpcdMitigationsForAdsSupport",
@@ -477,4 +477,5 @@ const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsTopLevelTrial{
/*name=*/"SkipTpcdMitigationsForAdsTopLevelTrial",
/*default_value=*/false};
+#include "cromite_flags/services_network_public_cpp_features_cc.inc"
@@ -1688,9 +1688,9 @@ 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
@@ -181,6 +181,7 @@ extern const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsMetadata;
@@ -196,6 +196,7 @@ extern const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsTrial;
COMPONENT_EXPORT(NETWORK_CPP)
extern const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsSupport;
extern const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsTopLevelTrial;
+#include "cromite_flags/services_network_public_cpp_features_h.inc"
} // namespace features
@@ -1699,7 +1699,7 @@ 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
@@ -2305,5 +2305,6 @@ BASE_FEATURE(kTreatHTTPExpiresHeaderValueZeroAsExpiredInBlink,
@@ -2404,5 +2404,6 @@ BASE_FEATURE(kTreatHTTPExpiresHeaderValueZeroAsExpiredInBlink,
"TreatHTTPExpiresHeaderValueZeroAsExpiredInBlink",
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -1709,9 +1709,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
@@ -1507,6 +1507,7 @@ BLINK_COMMON_EXPORT extern const base::FeatureParam<int> kPixelDistanceToExpand;
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(
kTreatHTTPExpiresHeaderValueZeroAsExpiredInBlink);
@@ -1541,6 +1541,7 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(
// Don't require FCP for the page to turn interactive. Useful for testing.
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kInteractiveDetectorIgnoreFcp);
+#include "cromite_flags/third_party_blink_common_features_h.inc"
} // namespace features
@@ -45,7 +45,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
@@ -56,6 +56,9 @@ import java.lang.annotation.Retention;
@@ -55,6 +55,9 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Set;
@@ -55,7 +55,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.
@@ -247,6 +250,9 @@ public class LaunchIntentDispatcher {
@@ -244,6 +247,9 @@ public class LaunchIntentDispatcher {
*/
public static boolean isCustomTabIntent(Intent intent) {
if (intent == null) return false;
@@ -65,7 +65,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
Log.w(
TAG,
"CustomTabsIntent#shouldAlwaysUseBrowserUI() = "
@@ -268,6 +274,10 @@ public class LaunchIntentDispatcher {
@@ -265,6 +271,10 @@ public class LaunchIntentDispatcher {
newIntent.setData(uri);
newIntent.setClassName(context, CustomTabActivity.class.getName());
@@ -76,7 +76,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());
@@ -413,6 +423,17 @@ public class LaunchIntentDispatcher {
@@ -410,6 +420,17 @@ public class LaunchIntentDispatcher {
if (Intent.ACTION_VIEW.equals(newIntent.getAction())
&& !IntentHandler.wasIntentSenderChrome(newIntent)) {
@@ -130,7 +130,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);
@@ -276,6 +279,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@@ -274,6 +277,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
new SpanApplier.SpanInfo("<link2>", "</link2>", servicesLink));
}
@@ -140,7 +140,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();
@@ -292,6 +298,14 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@@ -290,6 +296,14 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
} else if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
UserPrefs.get(getProfile())
.setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue);
@@ -155,7 +155,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
}
return true;
}
@@ -314,6 +328,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@@ -312,6 +326,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
}
@@ -191,7 +191,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
@@ -5056,6 +5056,20 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -5071,6 +5071,20 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<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>
+6 -6
View File
@@ -59,7 +59,7 @@ 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
@@ -252,6 +252,8 @@ import java.util.Map;
@@ -258,6 +258,8 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -68,7 +68,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.
@@ -2762,6 +2764,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2909,6 +2911,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
} else if (id == R.id.close_tab) {
getCurrentTabModel().closeTab(currentTab, true, false, true);
RecordUserAction.record("MobileTabClosed");
@@ -88,7 +88,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.chrome.browser.ChromeActivitySessionTracker;
import org.chromium.chrome.browser.ChromeApplicationImpl;
import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate;
@@ -2577,6 +2578,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -2616,6 +2617,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
return true;
}
@@ -98,8 +98,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
+ }
+
if (id == R.id.update_menu_id) {
UpdateMenuItemHelper.getInstance().onMenuItemClicked(this);
return true;
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
@@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -3659,6 +3659,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3676,6 +3676,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_MENU_AUTO_DARK_WEB_CONTENTS" desc="Menu item in Chrome's overflow/options menu. When Chrome's browser UI is set to dark theme and this option is checked, sites will have a dark theme automatically applied as well. [CHAR_LIMIT=24]">
Dark theme
</message>
@@ -19,14 +19,14 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/
--- a/components/omnibox/browser/autocomplete_controller.cc
+++ b/components/omnibox/browser/autocomplete_controller.cc
@@ -20,6 +20,7 @@
#include "base/barrier_callback.h"
#include "base/check_op.h"
#include "base/containers/contains.h"
+#include "base/command_line.h"
#include "base/feature_list.h"
#include "base/format_macros.h"
#include "base/functional/bind.h"
@@ -336,6 +337,15 @@ AutocompleteController::AutocompleteController(
@@ -392,6 +393,15 @@ AutocompleteController::AutocompleteController(
provider_client_->GetOmniboxTriggeredFeatureService()),
steady_state_omnibox_position_(
metrics::OmniboxEventProto::UNKNOWN_POSITION) {
@@ -45,7 +45,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/
diff --git a/components/omnibox/browser/history_url_provider.cc b/components/omnibox/browser/history_url_provider.cc
--- a/components/omnibox/browser/history_url_provider.cc
+++ b/components/omnibox/browser/history_url_provider.cc
@@ -478,6 +478,9 @@ void HistoryURLProvider::Start(const AutocompleteInput& input,
@@ -479,6 +479,9 @@ void HistoryURLProvider::Start(const AutocompleteInput& input,
if (fixed_up_input.type() != metrics::OmniboxInputType::QUERY)
matches_.push_back(what_you_typed_match);
@@ -66,7 +66,7 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/
#include "base/functional/callback.h"
#include "base/i18n/break_iterator.h"
#include "base/i18n/case_conversion.h"
@@ -636,6 +637,9 @@ void SearchProvider::Run(bool query_is_private) {
@@ -643,6 +644,9 @@ void SearchProvider::Run(bool query_is_private) {
}
void SearchProvider::DoHistoryQuery(bool minimal_changes) {
@@ -103,7 +103,7 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket
#include "net/ssl/ssl_config.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "url/gurl.h"
@@ -183,6 +187,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool(
@@ -168,6 +172,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool(
int ClientSocketPoolManager::max_sockets_per_group(
HttpNetworkSession::SocketPoolType pool_type) {
DCHECK_LT(pool_type, HttpNetworkSession::NUM_SOCKET_POOL_TYPES);
@@ -70,7 +70,7 @@ diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_pa
diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.cc b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
--- a/third_party/blink/renderer/modules/vibration/vibration_controller.cc
+++ b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
@@ -29,6 +29,7 @@
@@ -28,6 +28,7 @@
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/frame/navigator.h"
#include "third_party/blink/renderer/core/page/page.h"
@@ -78,7 +78,7 @@ diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.c
// Maximum number of entries in a vibration pattern.
const unsigned kVibrationPatternLengthMax = 99;
@@ -152,6 +153,8 @@ bool VibrationController::vibrate(Navigator& navigator,
@@ -109,6 +110,8 @@ bool VibrationController::vibrate(Navigator& navigator,
// reference to |window| or |navigator| was retained in another window.
if (!navigator.DomWindow())
return 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
@@ -2621,6 +2621,10 @@
@@ -2669,6 +2669,10 @@
status: {"Android": "stable"},
base_feature: "none",
},
@@ -7,30 +7,31 @@ Allows build with clangd by suppressing unsupported parameters
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
---
build/config/compiler/BUILD.gn | 6 ++++++
build/config/compiler/BUILD.gn | 7 ++++++-
build_overrides/build.gni | 3 +++
2 files changed, 9 insertions(+)
2 files changed, 9 insertions(+), 1 deletion(-)
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
@@ -1888,6 +1888,12 @@ config("default_warnings") {
# TODO(https://crbug.com/1490607): Fix and re-enable.
"-Wno-thread-safety-reference-return",
]
+ if (skip_clangd_unsupported_options) {
+ cflags -= [
+ "-Wno-deprecated-builtins",
+ "-Wno-thread-safety-reference-return",
+ ]
+ }
}
}
@@ -1884,7 +1884,12 @@ config("default_warnings") {
# TODO(https://crbug.com/1490607): Fix and re-enable.
"-Wno-thread-safety-reference-return",
]
-
+ if (skip_clangd_unsupported_options) {
+ cflags -= [
+ "-Wno-deprecated-builtins",
+ "-Wno-thread-safety-reference-return",
+ ]
+ }
if (!is_nacl) {
cflags_cc += [
# TODO(https://crbug.com/1513724): Fix and re-enable.
diff --git a/build_overrides/build.gni b/build_overrides/build.gni
--- a/build_overrides/build.gni
+++ b/build_overrides/build.gni
@@ -57,6 +57,9 @@ declare_args() {
@@ -58,6 +58,9 @@ declare_args() {
# to lack of toolchain support.
gtest_enable_absl_printers = !is_nacl
@@ -58,15 +58,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../one_time_permissions_tracker_factory.cc | 2 +-
.../permissions/embedded_permission_prompt.cc | 2 +-
.../permission_prompt_bubble_base_view.cc | 2 +-
.../site_settings/PermissionInfo.java | 14 +++-
.../site_settings/SingleWebsiteSettings.java | 10 +++
.../WebsitePreferenceBridge.java | 6 +-
.../android/website_preference_bridge.cc | 7 +-
.../site_settings/PermissionInfo.java | 1 +
.../site_settings/SingleWebsiteSettings.java | 9 ++
.../android/website_preference_bridge.cc | 2 +-
.../strings/android/browser_ui_strings.grd | 5 ++
components/content_settings/android/BUILD.gn | 1 +
.../core/browser/content_settings_utils.cc | 36 ++++++++
.../core/browser/content_settings_utils.h | 6 ++
.../common/content_settings_constraints.h | 11 +++
.../common/content_settings_constraints.h | 9 ++
.../page_info/PageInfoController.java | 4 +-
.../PermissionParamsListBuilder.java | 13 ++-
.../android/page_info_controller_android.cc | 10 ++-
@@ -77,10 +76,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../permission_dialog_delegate.cc | 19 +++++
.../permission_dialog_delegate.h | 1 +
.../permission_prompt_android.cc | 8 ++
.../permission_prompt_android.h | 2 +
.../permission_prompt_android.h | 3 +-
.../android/permissions_android_strings.grd | 17 ++++
.../geolocation_permission_context_android.cc | 35 ++++++--
.../geolocation_permission_context_android.h | 14 +++-
.../geolocation_permission_context_android.cc | 32 ++++++--
.../geolocation_permission_context_android.h | 13 ++-
.../permissions/permission_context_base.cc | 51 ++++++++++--
.../permissions/permission_context_base.h | 23 +++++-
components/permissions/permission_prompt.h | 3 +-
@@ -88,7 +87,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
components/permissions/permission_request.h | 16 +++-
.../permissions/permission_request_manager.cc | 45 ++++++----
.../permissions/permission_request_manager.h | 11 ++-
36 files changed, 511 insertions(+), 61 deletions(-)
35 files changed, 485 insertions(+), 57 deletions(-)
diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/browser/permissions/last_tab_standing_tracker.cc
--- a/chrome/browser/permissions/last_tab_standing_tracker.cc
@@ -176,18 +175,18 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker.cc b/chrome
OneTimePermissionsTracker::~OneTimePermissionsTracker() = default;
OneTimePermissionsTracker::OriginTrackEntry::OriginTrackEntry() = default;
@@ -108,6 +134,11 @@ void OneTimePermissionsTracker::WebContentsUnloadedOrigin(
observer.OnLastPageFromOriginClosed(origin);
}
}
+ HostContentSettingsMap* content_settings =
+ permissions::PermissionsClient::Get()->GetSettingsMap(context_);
+ RemoveSessionSettings(content_settings, origin, ContentSettingsType::GEOLOCATION);
+ RemoveSessionSettings(content_settings, origin, ContentSettingsType::MEDIASTREAM_MIC);
+ RemoveSessionSettings(content_settings, origin, ContentSettingsType::MEDIASTREAM_CAMERA);
@@ -258,6 +284,11 @@ void OneTimePermissionsTracker::NotifyLastPageFromOriginClosed(
for (auto& observer : observer_list_) {
observer.OnLastPageFromOriginClosed(origin);
}
+ HostContentSettingsMap* content_settings =
+ permissions::PermissionsClient::Get()->GetSettingsMap(context_);
+ RemoveSessionSettings(content_settings, origin, ContentSettingsType::GEOLOCATION);
+ RemoveSessionSettings(content_settings, origin, ContentSettingsType::MEDIASTREAM_MIC);
+ RemoveSessionSettings(content_settings, origin, ContentSettingsType::MEDIASTREAM_CAMERA);
}
bool OneTimePermissionsTracker::ShouldIgnoreOrigin(const url::Origin& origin) {
diff --git a/chrome/browser/permissions/one_time_permissions_tracker.h b/chrome/browser/permissions/one_time_permissions_tracker.h
--- a/chrome/browser/permissions/one_time_permissions_tracker.h
+++ b/chrome/browser/permissions/one_time_permissions_tracker.h
@@ -208,7 +207,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker.h b/chrome/
~OneTimePermissionsTracker() override;
OneTimePermissionsTracker(const OneTimePermissionsTracker&) = delete;
@@ -136,7 +137,7 @@ class OneTimePermissionsTracker : public KeyedService {
@@ -139,7 +140,7 @@ class OneTimePermissionsTracker : public KeyedService {
base::ObserverList<OneTimePermissionsTrackerObserver> observer_list_;
std::map<url::Origin, OriginTrackEntry> origin_tracker_;
@@ -230,7 +229,7 @@ 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
@@ -236,7 +236,7 @@ void EmbeddedPermissionPrompt::Allow() {
@@ -237,7 +237,7 @@ void EmbeddedPermissionPrompt::Allow() {
}
void EmbeddedPermissionPrompt::AllowThisTime() {
@@ -242,7 +241,7 @@ diff --git a/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc b
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
@@ -263,7 +263,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) {
@@ -270,7 +270,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) {
return;
case PermissionDialogButton::kAcceptOnce:
RecordDecision(permissions::PermissionAction::GRANTED_ONCE);
@@ -254,55 +253,18 @@ diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_v
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java
@@ -9,6 +9,7 @@ import androidx.annotation.Nullable;
import org.chromium.components.content_settings.ContentSettingValues;
@@ -10,6 +10,7 @@ import org.chromium.components.content_settings.ContentSettingValues;
import org.chromium.components.content_settings.ContentSettingsType;
import org.chromium.components.content_settings.SessionModel;
import org.chromium.content_public.browser.BrowserContextHandle;
+import org.chromium.components.content_settings.SessionModel;
import java.io.Serializable;
@@ -18,9 +19,15 @@ public class PermissionInfo implements Serializable {
private final String mEmbedder;
private final String mOrigin;
private final @ContentSettingsType int mContentSettingsType;
+ private final @SessionModel int mSessionModel;
+
+ public PermissionInfo(@ContentSettingsType int type, String origin, String embedder, boolean isEmbargoed) {
+ this(type, origin, embedder, isEmbargoed, 0);
+ }
public PermissionInfo(
- @ContentSettingsType int type, String origin, String embedder, boolean isEmbargoed) {
+ @ContentSettingsType int type, String origin, String embedder, boolean isEmbargoed,
+ @SessionModel int sessionModel) {
assert WebsitePermissionsFetcher.getPermissionsType(type)
== WebsitePermissionsFetcher.WebsitePermissionsType.PERMISSION_INFO
: "invalid type: " + type;
@@ -28,6 +35,11 @@ public class PermissionInfo implements Serializable {
mEmbedder = embedder;
mContentSettingsType = type;
mIsEmbargoed = isEmbargoed;
+ mSessionModel = sessionModel;
+ }
+
+ public @SessionModel int getSessionModel() {
+ return mSessionModel;
}
public @ContentSettingsType int getContentSettingsType() {
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
@@ -38,6 +38,7 @@ import org.chromium.components.browser_ui.settings.TextMessagePreference;
import org.chromium.components.browsing_data.DeleteBrowsingDataAction;
import org.chromium.components.content_settings.ContentSettingValues;
import org.chromium.components.content_settings.ContentSettingsType;
+import org.chromium.components.content_settings.SessionModel;
import org.chromium.components.embedder_support.util.Origin;
import org.chromium.components.permissions.PermissionsAndroidFeatureList;
import org.chromium.components.permissions.PermissionsAndroidFeatureMap;
@@ -567,6 +568,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -570,6 +570,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
}
}
@@ -314,7 +276,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
private void setUpClearDataPreference() {
ClearWebsiteStorage preference = findPreference(PREF_CLEAR_DATA);
long usage = mSite.getTotalUsage();
@@ -1094,6 +1100,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -1081,6 +1086,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
if (contentType == mHighlightedPermission) {
switchPreference.setBackgroundColor(mHighlightColor);
}
@@ -325,63 +287,14 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
/**
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
@@ -10,6 +10,7 @@ import org.jni_zero.NativeMethods;
import org.chromium.base.Callback;
import org.chromium.components.content_settings.ContentSettingValues;
import org.chromium.components.content_settings.ContentSettingsType;
+import org.chromium.components.content_settings.SessionModel;
import org.chromium.components.location.LocationUtils;
import org.chromium.content_public.browser.BrowserContextHandle;
import org.chromium.url.GURL;
@@ -54,7 +55,8 @@ public class WebsitePreferenceBridge {
ArrayList<PermissionInfo> list,
String origin,
String embedder,
- boolean isEmbargoed) {
+ boolean isEmbargoed,
+ @SessionModel int sessionModel) {
if (type == ContentSettingsType.MEDIASTREAM_CAMERA
|| type == ContentSettingsType.MEDIASTREAM_MIC) {
for (PermissionInfo info : list) {
@@ -63,7 +65,7 @@ public class WebsitePreferenceBridge {
}
}
}
- list.add(new PermissionInfo(type, origin, embedder, isEmbargoed));
+ list.add(new PermissionInfo(type, origin, embedder, isEmbargoed, sessionModel));
}
@CalledByNative
diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc
--- a/components/browser_ui/site_settings/android/website_preference_bridge.cc
+++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc
@@ -131,7 +131,8 @@ typedef void (*InfoListInsertionFunction)(
const base::android::JavaRef<jobject>&,
const base::android::JavaRef<jstring>&,
const base::android::JavaRef<jstring>&,
- jboolean);
+ jboolean,
+ JniIntWrapper);
void GetOrigins(JNIEnv* env,
const JavaParamRef<jobject>& jbrowser_context_handle,
@@ -173,7 +174,7 @@ void GetOrigins(JNIEnv* env,
seen_origins.push_back(origin);
insertionFunc(env, static_cast<int>(content_type), list,
ConvertOriginToJavaString(env, origin), jembedder,
- /*is_embargoed=*/false);
+ /*is_embargoed=*/false, static_cast<int>(settings_it.metadata.session_model()));
}
// Add any origins which have a default content setting value (thus skipped
@@ -195,7 +196,7 @@ void GetOrigins(JNIEnv* env,
@@ -198,7 +198,7 @@ void GetOrigins(JNIEnv* env,
seen_origins.push_back(origin);
insertionFunc(env, static_cast<int>(content_type), list,
ConvertOriginToJavaString(env, origin), jembedder,
- /*is_embargoed=*/true);
- /*is_embargoed=*/true, /*is_one_time=*/false);
+ /*is_embargoed=*/true, 0);
}
}
@@ -389,7 +302,7 @@ diff --git a/components/browser_ui/site_settings/android/website_preference_brid
diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd
--- a/components/browser_ui/strings/android/browser_ui_strings.grd
+++ b/components/browser_ui/strings/android/browser_ui_strings.grd
@@ -682,6 +682,11 @@
@@ -676,6 +676,11 @@
<message name="IDS_PAGE_INFO_URL_TRUNCATED" desc="Accessibility announcement when the URL in PageInfo switches from full to truncated display">
URL truncated
</message>
@@ -404,7 +317,7 @@ diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/comp
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
@@ -61,6 +61,7 @@ java_cpp_enum("content_settings_enums_javagen") {
@@ -65,6 +65,7 @@ java_cpp_enum("content_settings_enums_javagen") {
"../core/common/cookie_controls_breakage_confidence_level.h",
"../core/common/cookie_controls_enforcement.h",
"../core/common/cookie_controls_status.h",
@@ -415,7 +328,7 @@ diff --git a/components/content_settings/android/BUILD.gn b/components/content_s
diff --git a/components/content_settings/core/browser/content_settings_utils.cc b/components/content_settings/core/browser/content_settings_utils.cc
--- a/components/content_settings/core/browser/content_settings_utils.cc
+++ b/components/content_settings/core/browser/content_settings_utils.cc
@@ -173,6 +173,42 @@ bool IsConstraintPersistent(const ContentSettingConstraints& constraints) {
@@ -174,6 +174,42 @@ bool IsConstraintPersistent(const ContentSettingConstraints& constraints) {
return constraints.session_model() == SessionModel::Durable;
}
@@ -477,16 +390,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.h b
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
@@ -23,6 +23,8 @@ namespace content_settings {
// a crash or update related restart.
// OneTime: Settings will persist for the current "tab session", meaning
// until the last tab from the origin is closed.
+// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.content_settings
+// GENERATED_JAVA_CLASS_NAME_OVERRIDE: SessionModel
enum class SessionModel {
Durable = 0,
UserSession = 1,
@@ -31,6 +33,15 @@ enum class SessionModel {
@@ -33,6 +33,15 @@ enum class SessionModel : int32_t {
kMaxValue = OneTime,
};
@@ -604,7 +508,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc
--- a/components/page_info/page_info.cc
+++ b/components/page_info/page_info.cc
@@ -1187,6 +1187,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
@@ -1174,6 +1174,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);
@@ -616,7 +520,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.
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
@@ -200,6 +200,7 @@ class PageInfo : private content_settings::CookieControlsObserver,
@@ -199,6 +199,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;
@@ -627,26 +531,26 @@ diff --git a/components/page_info/page_info.h b/components/page_info/page_info.h
diff --git a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java
--- a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java
+++ b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java
@@ -11,6 +11,7 @@ import org.jni_zero.JNINamespace;
@@ -13,6 +13,7 @@ import org.jni_zero.JNINamespace;
import org.jni_zero.NativeMethods;
import org.chromium.ui.base.WindowAndroid;
+import org.chromium.components.content_settings.LifetimeMode;
/**
* Delegate class for modal permission dialogs. Contains all of the data displayed in a prompt,
@@ -46,6 +47,9 @@ public class PermissionDialogDelegate {
import java.util.ArrayList;
import java.util.List;
@@ -57,6 +58,9 @@ public class PermissionDialogDelegate {
/** The {@link ContentSettingsType}s requested in this dialog. */
private int[] mContentSettingsTypes;
+ /** Lifetime option selected by the user. */
+ private int mSelectedLifetimeOption = LifetimeMode.ALWAYS;
+
public WindowAndroid getWindow() {
return mWindow;
}
@@ -75,6 +79,15 @@ public class PermissionDialogDelegate {
PermissionDialogDelegateJni.get().accept(mNativeDelegatePtr, PermissionDialogDelegate.this);
/**
* Defines a (potentially empty) list of ranges represented as pairs of <startIndex, endIndex>,
* which shall be used by the UI to format the specified ranges as bold text.
@@ -110,6 +114,15 @@ public class PermissionDialogDelegate {
.acceptThisTime(mNativeDelegatePtr, PermissionDialogDelegate.this);
}
+ public void setSelectedLifetimeOption(int idx) {
@@ -683,20 +587,13 @@ 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(
@@ -25,7 +37,7 @@ class PermissionDialogModelFactory {
String messageText = delegate.getMessageText();
assert !TextUtils.isEmpty(messageText);
- return new PropertyModel.Builder(ModalDialogProperties.ALL_KEYS)
+ PropertyModel pm = new PropertyModel.Builder(ModalDialogProperties.ALL_KEYS)
.with(ModalDialogProperties.CONTROLLER, controller)
.with(ModalDialogProperties.FOCUS_DIALOG, true)
.with(ModalDialogProperties.CUSTOM_VIEW, customView)
@@ -38,5 +50,73 @@ class PermissionDialogModelFactory {
ModalDialogProperties.BUTTON_TAP_PROTECTION_PERIOD_MS,
UiUtils.PROMPT_INPUT_PROTECTION_SHORT_DELAY_MS)
.build();
@@ -59,6 +71,74 @@ class PermissionDialogModelFactory {
ModalDialogProperties.NEGATIVE_BUTTON_TEXT,
delegate.getNegativeButtonText());
}
- return builder.build();
+
+ PropertyModel pm = builder.build();
+ int[] types = delegate.getContentSettingsTypes();
+ if (contains(types, ContentSettingsType.GEOLOCATION) ||
+ contains(types, ContentSettingsType.MEDIASTREAM_MIC) ||
@@ -769,7 +666,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per
diff --git a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc
--- a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc
+++ b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc
@@ -113,6 +113,11 @@ void PermissionDialogJavaDelegate::DismissDialog() {
@@ -144,6 +144,11 @@ void PermissionDialogJavaDelegate::DismissDialog() {
Java_PermissionDialogDelegate_dismissFromNative(env, j_delegate_);
}
@@ -781,10 +678,10 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_
// static
void PermissionDialogDelegate::Create(
content::WebContents* web_contents,
@@ -141,12 +146,26 @@ PermissionDialogDelegate* PermissionDialogDelegate::CreateForTesting(
@@ -172,6 +177,13 @@ PermissionDialogDelegate* PermissionDialogDelegate::CreateForTesting(
void PermissionDialogDelegate::Accept(JNIEnv* env,
const JavaParamRef<jobject>& obj) {
DCHECK(permission_prompt_);
CHECK(permission_prompt_);
+ content_settings::LifetimeMode lifetimeOption =
+ static_cast<content_settings::LifetimeMode>(
+ java_delegate_->GetSelectedLifetimeOption());
@@ -795,9 +692,10 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_
permission_prompt_->Accept();
}
void PermissionDialogDelegate::Cancel(JNIEnv* env,
const JavaParamRef<jobject>& obj) {
DCHECK(permission_prompt_);
@@ -179,6 +191,13 @@ void PermissionDialogDelegate::AcceptThisTime(
JNIEnv* env,
const JavaParamRef<jobject>& obj) {
CHECK(permission_prompt_);
+ content_settings::LifetimeMode lifetimeOption =
+ static_cast<content_settings::LifetimeMode>(
+ java_delegate_->GetSelectedLifetimeOption());
@@ -805,7 +703,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_
+ permission_prompt_->DenyThisTime(lifetimeOption);
+ return;
+ }
permission_prompt_->Deny();
permission_prompt_->AcceptThisTime();
}
diff --git a/components/permissions/android/permission_prompt/permission_dialog_delegate.h b/components/permissions/android/permission_prompt/permission_dialog_delegate.h
@@ -822,8 +720,8 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_
diff --git a/components/permissions/android/permission_prompt/permission_prompt_android.cc b/components/permissions/android/permission_prompt/permission_prompt_android.cc
--- a/components/permissions/android/permission_prompt/permission_prompt_android.cc
+++ b/components/permissions/android/permission_prompt/permission_prompt_android.cc
@@ -52,6 +52,14 @@ void PermissionPromptAndroid::Accept() {
delegate_->Accept();
@@ -57,6 +57,14 @@ void PermissionPromptAndroid::AcceptThisTime() {
delegate_->AcceptThisTime();
}
+void PermissionPromptAndroid::AcceptThisTime(content_settings::LifetimeMode lifetimeOption) {
@@ -840,10 +738,11 @@ diff --git a/components/permissions/android/permission_prompt/permission_prompt_
diff --git a/components/permissions/android/permission_prompt/permission_prompt_android.h b/components/permissions/android/permission_prompt/permission_prompt_android.h
--- a/components/permissions/android/permission_prompt/permission_prompt_android.h
+++ b/components/permissions/android/permission_prompt/permission_prompt_android.h
@@ -47,7 +47,9 @@ class PermissionPromptAndroid : public PermissionPrompt {
@@ -44,8 +44,9 @@ class PermissionPromptAndroid : public PermissionPrompt {
void Closing();
void Accept();
- void AcceptThisTime();
+ void AcceptThisTime(content_settings::LifetimeMode lifetimeOption);
void Deny();
+ void DenyThisTime(content_settings::LifetimeMode lifetimeOption);
@@ -880,9 +779,9 @@ diff --git a/components/permissions/android/permissions_android_strings.grd b/co
diff --git a/components/permissions/contexts/geolocation_permission_context_android.cc b/components/permissions/contexts/geolocation_permission_context_android.cc
--- a/components/permissions/contexts/geolocation_permission_context_android.cc
+++ b/components/permissions/contexts/geolocation_permission_context_android.cc
@@ -163,7 +163,20 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
@@ -162,7 +162,20 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
bool is_one_time,
bool is_final_decision) {
DCHECK(!is_one_time);
DCHECK(is_final_decision);
+ NotifyPermissionSetWithLifetime(id, requesting_origin, embedding_origin,
+ std::move(callback), persist, content_setting, is_one_time, is_final_decision,
@@ -901,71 +800,70 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
bool is_default_search = IsRequestingOriginDSE(requesting_origin);
if (content_setting == CONTENT_SETTING_ALLOW &&
!location_settings_->IsSystemLocationSettingEnabled()) {
@@ -176,7 +189,8 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
@@ -175,7 +188,8 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
if (IsInLocationSettingsBackOff(is_default_search)) {
FinishNotifyPermissionSet(id, requesting_origin, embedding_origin,
std::move(callback), false /* persist */,
- CONTENT_SETTING_BLOCK);
- CONTENT_SETTING_BLOCK, is_one_time);
+ CONTENT_SETTING_BLOCK,
+ is_one_time, lifetime_option);
return;
}
@@ -194,7 +208,8 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
@@ -193,7 +207,8 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
!location_settings_dialog_callback_.is_null()) {
FinishNotifyPermissionSet(id, requesting_origin, embedding_origin,
std::move(callback), false /* persist */,
- CONTENT_SETTING_BLOCK);
- CONTENT_SETTING_BLOCK, is_one_time);
+ CONTENT_SETTING_BLOCK,
+ is_one_time, lifetime_option);
return;
}
@@ -206,12 +221,13 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
@@ -205,13 +220,13 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
base::BindOnce(
&GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown,
weak_factory_.GetWeakPtr(), requesting_origin, embedding_origin,
- persist, content_setting));
- persist, content_setting, is_one_time));
+ persist, content_setting, is_one_time, lifetime_option));
return;
}
FinishNotifyPermissionSet(id, requesting_origin, embedding_origin,
- std::move(callback), persist, content_setting);
+ std::move(callback), persist, content_setting,
std::move(callback), persist, content_setting,
- is_one_time);
+ is_one_time, lifetime_option);
}
content::PermissionResult
@@ -377,6 +393,7 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown(
@@ -377,7 +392,7 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown(
const GURL& embedding_origin,
bool persist,
ContentSetting content_setting,
- bool is_one_time,
+ bool is_one_time, content_settings::LifetimeMode lifetime_option,
LocationSettingsDialogOutcome prompt_outcome) {
bool is_default_search = IsRequestingOriginDSE(requesting_origin);
if (prompt_outcome == GRANTED) {
@@ -394,7 +411,8 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown(
FinishNotifyPermissionSet(
location_settings_dialog_request_id_, requesting_origin, embedding_origin,
- std::move(location_settings_dialog_callback_), persist, content_setting);
+ std::move(location_settings_dialog_callback_), persist, content_setting,
+ is_one_time, lifetime_option);
@@ -396,7 +411,8 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown(
FinishNotifyPermissionSet(location_settings_dialog_request_id_,
requesting_origin, embedding_origin,
std::move(location_settings_dialog_callback_),
- persist, content_setting, is_one_time);
+ persist, content_setting, is_one_time,
+ lifetime_option);
location_settings_dialog_request_id_ =
PermissionRequestID(content::GlobalRenderFrameHostId(0, 0),
@@ -407,10 +425,11 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet(
const GURL& embedding_origin,
@@ -410,10 +426,10 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet(
BrowserPermissionCallback callback,
bool persist,
- ContentSetting content_setting) {
- GeolocationPermissionContext::NotifyPermissionSet(
+ ContentSetting content_setting,
ContentSetting content_setting,
- bool is_one_time) {
+ bool is_one_time, content_settings::LifetimeMode lifetime_option) {
+ GeolocationPermissionContext::NotifyPermissionSetWithLifetime(
GeolocationPermissionContext::NotifyPermissionSet(
id, requesting_origin, embedding_origin, std::move(callback), persist,
- content_setting, /*is_one_time=*/false, /*is_final_decision=*/true);
- content_setting, is_one_time, /*is_final_decision=*/true);
+ content_setting, is_one_time, /*is_final_decision=*/true, lifetime_option);
}
@@ -989,20 +887,19 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
content::PermissionResult UpdatePermissionStatusWithDeviceStatus(
content::PermissionResult result,
const GURL& requesting_origin,
@@ -131,6 +140,7 @@ class GeolocationPermissionContextAndroid
const GURL& embedding_origin,
@@ -132,6 +141,7 @@ class GeolocationPermissionContextAndroid
bool persist,
ContentSetting content_setting,
+ bool is_one_time, content_settings::LifetimeMode lifetime_option,
bool is_one_time,
+ content_settings::LifetimeMode lifetime_option,
LocationSettingsDialogOutcome prompt_outcome);
void FinishNotifyPermissionSet(const PermissionRequestID& id,
@@ -138,7 +148,9 @@ class GeolocationPermissionContextAndroid
const GURL& embedding_origin,
@@ -140,7 +150,8 @@ class GeolocationPermissionContextAndroid
BrowserPermissionCallback callback,
bool persist,
- ContentSetting content_setting);
+ ContentSetting content_setting,
ContentSetting content_setting,
- bool is_one_time);
+ bool is_one_time,
+ content_settings::LifetimeMode lifetime_option);
@@ -1011,8 +908,8 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
diff --git a/components/permissions/permission_context_base.cc b/components/permissions/permission_context_base.cc
--- a/components/permissions/permission_context_base.cc
+++ b/components/permissions/permission_context_base.cc
@@ -261,6 +261,16 @@ PermissionContextBase::CreatePermissionRequest(
std::move(delete_callback));
@@ -265,6 +265,16 @@ bool PermissionContextBase::UsesAutomaticEmbargo() const {
return true;
}
+std::unique_ptr<PermissionRequest> PermissionContextBase::CreatePermissionRequest(
@@ -1028,7 +925,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
content::PermissionResult PermissionContextBase::GetPermissionStatus(
content::RenderFrameHost* render_frame_host,
const GURL& requesting_origin,
@@ -505,7 +515,8 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id,
@@ -511,7 +521,8 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id,
const GURL& embedding_origin,
ContentSetting content_setting,
bool is_one_time,
@@ -1038,7 +935,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
DCHECK(content_setting == CONTENT_SETTING_ALLOW ||
content_setting == CONTENT_SETTING_BLOCK ||
content_setting == CONTENT_SETTING_DEFAULT);
@@ -520,13 +531,14 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id,
@@ -526,13 +537,14 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id,
// missing if a permission prompt was preignored and we already notified an
// origin about it.
if (request->second.second) {
@@ -1057,7 +954,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
}
}
@@ -572,11 +584,27 @@ void PermissionContextBase::NotifyPermissionSet(
@@ -578,11 +590,27 @@ void PermissionContextBase::NotifyPermissionSet(
ContentSetting content_setting,
bool is_one_time,
bool is_final_decision) {
@@ -1086,7 +983,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
}
if (is_final_decision) {
@@ -606,6 +634,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
@@ -612,6 +640,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
const GURL& embedding_origin,
ContentSetting content_setting,
bool is_one_time) {
@@ -1102,7 +999,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
DCHECK_EQ(requesting_origin, requesting_origin.DeprecatedGetOriginAsURL());
DCHECK_EQ(embedding_origin, embedding_origin.DeprecatedGetOriginAsURL());
DCHECK(content_setting == CONTENT_SETTING_ALLOW ||
@@ -615,6 +652,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
@@ -621,6 +658,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
constraints.set_session_model(is_one_time
? content_settings::SessionModel::OneTime
: content_settings::SessionModel::Durable);
@@ -1142,9 +1039,9 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi
virtual void UpdateContentSetting(const GURL& requesting_origin,
const GURL& embedding_origin,
ContentSetting content_setting,
@@ -204,6 +218,12 @@ class PermissionContextBase : public content_settings::Observer {
PermissionRequest::PermissionDecidedCallback permission_decided_callback,
base::OnceClosure delete_callback) const;
@@ -207,6 +221,12 @@ class PermissionContextBase : public content_settings::Observer {
// Implementors can override this method to avoid using automatic embargo.
virtual bool UsesAutomaticEmbargo() const;
+ virtual std::unique_ptr<PermissionRequest> CreatePermissionRequest(
+ content::WebContents* web_contents,
@@ -1155,7 +1052,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi
base::ObserverList<permissions::Observer> permission_observers_;
// Set by subclasses to inform the base class that they will handle adding
@@ -226,7 +246,8 @@ class PermissionContextBase : public content_settings::Observer {
@@ -229,7 +249,8 @@ class PermissionContextBase : public content_settings::Observer {
const GURL& embedding_origin,
ContentSetting content_setting,
bool is_one_time,
@@ -1168,7 +1065,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi
diff --git a/components/permissions/permission_prompt.h b/components/permissions/permission_prompt.h
--- a/components/permissions/permission_prompt.h
+++ b/components/permissions/permission_prompt.h
@@ -65,8 +65,9 @@ class PermissionPrompt {
@@ -67,8 +67,9 @@ class PermissionPrompt {
virtual GURL GetEmbeddingOrigin() const = 0;
virtual void Accept() = 0;
@@ -1182,9 +1079,9 @@ diff --git a/components/permissions/permission_prompt.h b/components/permissions
diff --git a/components/permissions/permission_request.cc b/components/permissions/permission_request.cc
--- a/components/permissions/permission_request.cc
+++ b/components/permissions/permission_request.cc
@@ -37,6 +37,14 @@ PermissionRequest::PermissionRequest(
permission_decided_callback_(std::move(permission_decided_callback)),
delete_callback_(std::move(delete_callback)) {}
@@ -43,6 +43,14 @@ PermissionRequest::PermissionRequest(
delete_callback_(std::move(delete_callback)),
uses_automatic_embargo_(uses_automatic_embargo) {}
+PermissionRequest::PermissionRequest(
+ PermissionRequestData request_data,
@@ -1197,7 +1094,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio
PermissionRequest::~PermissionRequest() {
DCHECK(delete_callback_.is_null());
}
@@ -279,19 +287,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const {
@@ -363,19 +371,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const {
permissions::features::kPermissionStorageAccessAPI);
}
@@ -1240,7 +1137,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio
diff --git a/components/permissions/permission_request.h b/components/permissions/permission_request.h
--- a/components/permissions/permission_request.h
+++ b/components/permissions/permission_request.h
@@ -44,6 +44,11 @@ class PermissionRequest {
@@ -43,6 +43,11 @@ class PermissionRequest {
bool /*is_one_time*/,
bool /*is_final_decision*/)>;
@@ -1253,8 +1150,8 @@ diff --git a/components/permissions/permission_request.h b/components/permission
// resolved by the user (see comment on PermissionDecidedCallback above).
// `delete_callback` is called when the permission request is no longer needed
@@ -63,6 +68,10 @@ class PermissionRequest {
PermissionDecidedCallback permission_decided_callback,
base::OnceClosure delete_callback);
base::OnceClosure delete_callback,
bool uses_automatic_embargo);
+ PermissionRequest(PermissionRequestData request_data,
+ PermissionDecidedCallbackWithLifetime permission_decided_callback,
@@ -1263,7 +1160,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission
PermissionRequest(const PermissionRequest&) = delete;
PermissionRequest& operator=(const PermissionRequest&) = delete;
@@ -128,10 +137,10 @@ class PermissionRequest {
@@ -159,10 +168,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.
@@ -1276,7 +1173,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission
// Called when the user has cancelled the permission request. This
// corresponds to a denial, but is segregated in case the context needs to
@@ -180,6 +189,9 @@ class PermissionRequest {
@@ -216,6 +225,9 @@ class PermissionRequest {
// Called once a decision is made about the permission.
PermissionDecidedCallback permission_decided_callback_;
@@ -1289,7 +1186,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission
diff --git a/components/permissions/permission_request_manager.cc b/components/permissions/permission_request_manager.cc
--- a/components/permissions/permission_request_manager.cc
+++ b/components/permissions/permission_request_manager.cc
@@ -155,7 +155,7 @@ void PermissionRequestManager::AddRequest(
@@ -156,7 +156,7 @@ void PermissionRequestManager::AddRequest(
if (base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kDenyPermissionPrompts)) {
@@ -1298,7 +1195,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
request->RequestFinished();
return;
}
@@ -231,7 +231,7 @@ void PermissionRequestManager::AddRequest(
@@ -232,7 +232,7 @@ void PermissionRequestManager::AddRequest(
if (auto_approval_origin) {
if (url::Origin::Create(request->requesting_origin()) ==
auto_approval_origin.value()) {
@@ -1307,7 +1204,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
}
request->RequestFinished();
return;
@@ -574,7 +574,8 @@ void PermissionRequestManager::Accept() {
@@ -578,7 +578,8 @@ void PermissionRequestManager::Accept() {
(*requests_iter)->request_type(),
PermissionAction::GRANTED);
PermissionGrantedIncludingDuplicates(*requests_iter,
@@ -1317,7 +1214,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
#if !BUILDFLAG(IS_ANDROID)
absl::optional<ContentSettingsType> content_settings_type =
@@ -592,7 +593,7 @@ void PermissionRequestManager::Accept() {
@@ -596,7 +597,7 @@ void PermissionRequestManager::Accept() {
CurrentRequestsDecided(PermissionAction::GRANTED);
}
@@ -1326,7 +1223,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
if (ignore_callbacks_from_prompt_)
return;
DCHECK(view_);
@@ -603,7 +604,8 @@ void PermissionRequestManager::AcceptThisTime() {
@@ -608,7 +609,8 @@ void PermissionRequestManager::AcceptThisTime() {
(*requests_iter)->request_type(),
PermissionAction::GRANTED_ONCE);
PermissionGrantedIncludingDuplicates(*requests_iter,
@@ -1336,7 +1233,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
}
NotifyRequestDecided(PermissionAction::GRANTED_ONCE);
@@ -611,6 +613,15 @@ void PermissionRequestManager::AcceptThisTime() {
@@ -616,6 +618,15 @@ void PermissionRequestManager::AcceptThisTime() {
}
void PermissionRequestManager::Deny() {
@@ -1352,7 +1249,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
if (ignore_callbacks_from_prompt_)
return;
DCHECK(view_);
@@ -633,7 +644,7 @@ void PermissionRequestManager::Deny() {
@@ -639,7 +650,7 @@ void PermissionRequestManager::Deny() {
StorePermissionActionForUMA((*requests_iter)->requesting_origin(),
(*requests_iter)->request_type(),
PermissionAction::DENIED);
@@ -1361,7 +1258,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
}
NotifyRequestDecided(PermissionAction::DENIED);
@@ -1190,32 +1201,32 @@ PermissionRequestManager::VisitDuplicateRequests(
@@ -1180,32 +1191,32 @@ PermissionRequestManager::VisitDuplicateRequests(
void PermissionRequestManager::PermissionGrantedIncludingDuplicates(
PermissionRequest* request,
@@ -1404,7 +1301,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
request);
}
@@ -1467,7 +1478,7 @@ void PermissionRequestManager::LogWarningToConsole(const char* message) {
@@ -1457,7 +1468,7 @@ void PermissionRequestManager::LogWarningToConsole(const char* message) {
void PermissionRequestManager::DoAutoResponseForTesting() {
switch (auto_response_for_test_) {
case ACCEPT_ONCE:
@@ -1416,7 +1313,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
diff --git a/components/permissions/permission_request_manager.h b/components/permissions/permission_request_manager.h
--- a/components/permissions/permission_request_manager.h
+++ b/components/permissions/permission_request_manager.h
@@ -159,8 +159,10 @@ class PermissionRequestManager
@@ -161,8 +161,10 @@ class PermissionRequestManager
GURL GetRequestingOrigin() const override;
GURL GetEmbeddingOrigin() const override;
void Accept() override;
@@ -1428,7 +1325,7 @@ diff --git a/components/permissions/permission_request_manager.h b/components/pe
void Dismiss() override;
void Ignore() override;
void FinalizeCurrentRequests() override;
@@ -365,9 +367,12 @@ class PermissionRequestManager
@@ -367,9 +369,12 @@ class PermissionRequestManager
// Calls PermissionGranted on a request and all its duplicates.
void PermissionGrantedIncludingDuplicates(PermissionRequest* request,
@@ -13,20 +13,19 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../dialogs/DownloadLocationCustomView.java | 4 +-
.../strings/android_chrome_strings.grd | 3 +
components/bookmark_bar_strings.grdp | 6 ++
.../bookmarks/browser/bookmark_client.cc | 2 +
.../bookmarks/browser/bookmark_codec.cc | 22 ++++--
components/bookmarks/browser/bookmark_codec.h | 7 +-
.../browser/bookmark_load_details.cc | 4 ++
.../bookmarks/browser/bookmark_load_details.h | 3 +
.../bookmarks/browser/bookmark_model.cc | 3 +-
components/bookmarks/browser/bookmark_model.h | 7 ++
components/bookmarks/browser/bookmark_node.cc | 11 +++
components/bookmarks/browser/bookmark_node.cc | 13 ++++
components/bookmarks/browser/bookmark_node.h | 4 ++
.../bookmarks/browser/bookmark_uuids.cc | 3 +
components/bookmarks/browser/bookmark_uuids.h | 1 +
components/bookmarks/browser/model_loader.cc | 3 +-
.../bookmark_specifics_conversions.cc | 1 +
22 files changed, 232 insertions(+), 10 deletions(-)
21 files changed, 232 insertions(+), 10 deletions(-)
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
--- a/chrome/android/java/res/menu/main_menu.xml
@@ -63,7 +62,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;
@@ -2787,6 +2788,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2934,6 +2935,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
getTabModelSelectorSupplier().get(),
() -> getTabModelSelector().closeAllTabs());
RecordUserAction.record("MobileMenuCloseAllTabs");
@@ -72,8 +71,8 @@ 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(
@@ -2858,6 +2861,27 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
mTabModalHandler.onOmniboxFocusChanged(hasFocus);
@@ -3005,6 +3008,27 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
getTabModalLifetimeHandler().onOmniboxFocusChanged(hasFocus);
}
+ private void bookmarkAllTabs() {
@@ -103,18 +102,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
@@ -32,6 +32,7 @@ import org.jni_zero.NativeMethods;
@@ -18,11 +18,17 @@ import org.jni_zero.NativeMethods;
import org.chromium.base.Callback;
import org.chromium.base.ContextUtils;
+import org.chromium.base.Log;
import org.chromium.base.ObserverList;
import org.chromium.base.ThreadUtils;
import org.chromium.base.metrics.RecordHistogram;
@@ -39,6 +40,11 @@ import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.read_later.ReadingListUtils;
+import org.chromium.chrome.browser.tab.Tab;
+import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
@@ -123,7 +120,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
import org.chromium.components.bookmarks.BookmarkId;
import org.chromium.components.bookmarks.BookmarkItem;
import org.chromium.components.bookmarks.BookmarkType;
@@ -83,6 +89,8 @@ import java.io.File;
@@ -80,6 +86,8 @@ import org.chromium.ui.modaldialog.DialogDismissalCause;
class BookmarkBridge {
private final ObserverList<BookmarkModelObserver> mObservers = new ObserverList<>();
@@ -132,7 +129,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
private long mNativeBookmarkBridge;
private boolean mIsDestroyed;
private boolean mIsDoingExtensiveChanges;
@@ -374,6 +382,16 @@ class BookmarkBridge {
@@ -400,6 +408,16 @@ class BookmarkBridge {
return mMobileFolderId;
}
@@ -146,11 +143,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
+ mNativeBookmarkBridge, BookmarkBridge.this);
+ }
+
/**
* @return Id representing the special "other" folder from bookmark model.
*/
@@ -1018,6 +1036,50 @@ class BookmarkBridge {
return BookmarkBridgeJni.get().addToReadingList(mNativeBookmarkBridge, title, url);
/** Returns Id representing the special "other" folder from bookmark model. */
public BookmarkId getOtherFolderId() {
ThreadUtils.assertOnUiThread();
@@ -1084,6 +1102,50 @@ class BookmarkBridge {
.addToReadingList(mNativeBookmarkBridge, parentId, title, url);
}
+ // Used to bookmark all tabs in a specific folder, created if not existing
@@ -198,9 +195,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
+ }
+
/**
* Helper method to mark an article as read.
* Helper method to mark an item as read.
*
@@ -1243,6 +1305,9 @@ class BookmarkBridge {
@@ -1325,6 +1387,9 @@ class BookmarkBridge {
BookmarkId getMostRecentlyAddedUserBookmarkIdForUrl(long nativeBookmarkBridge, GURL url);
@@ -209,8 +206,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
+
BookmarkItem getBookmarkById(long nativeBookmarkBridge, long id, int type);
void getTopLevelFolderIds(long nativeBookmarkBridge, List<BookmarkId> bookmarksList);
@@ -1254,6 +1319,8 @@ class BookmarkBridge {
void getTopLevelFolderIds(
@@ -1344,6 +1409,8 @@ class BookmarkBridge {
BookmarkId getRootFolderId(long nativeBookmarkBridge);
@@ -222,7 +219,7 @@ 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
@@ -331,6 +331,33 @@ void BookmarkBridge::GetImageUrlForBookmark(
@@ -353,6 +353,33 @@ void BookmarkBridge::GetImageUrlForBookmark(
base::BindOnce(&HandleImageUrlResponse, callback));
}
@@ -256,7 +253,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
base::android::ScopedJavaLocalRef<jobject>
BookmarkBridge::GetMostRecentlyAddedUserBookmarkIdForUrl(
JNIEnv* env,
@@ -421,6 +448,7 @@ void BookmarkBridge::GetAllFoldersWithDepths(
@@ -461,6 +488,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(),
@@ -264,7 +261,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
bookmark_model_->bookmark_bar_node(),
bookmark_model_->other_node(),
};
@@ -474,6 +502,11 @@ std::vector<const BookmarkNode*> BookmarkBridge::GetTopLevelFolderIdsImpl() {
@@ -518,6 +546,11 @@ std::vector<const BookmarkNode*> BookmarkBridge::GetTopLevelFolderIdsImpl(
top_level_folders.push_back(root_child.get());
}
@@ -273,10 +270,10 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
+ top_level_folders.push_back(node.get());
+ }
+
if (reading_list_manager_->GetRoot()) {
top_level_folders.push_back(reading_list_manager_->GetRoot());
}
@@ -1027,6 +1060,17 @@ void BookmarkBridge::GetBookmarksOfType(
if (account_reading_list_manager_ &&
account_reading_list_manager_->GetRoot()) {
top_level_folders.push_back(account_reading_list_manager_->GetRoot());
@@ -1143,6 +1176,17 @@ void BookmarkBridge::GetBookmarksOfType(
AddBookmarkNodesToBookmarkIdList(env, j_list, results);
}
@@ -297,7 +294,7 @@ 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
@@ -67,6 +67,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
@@ -77,6 +77,10 @@ class BookmarkBridge : public ProfileObserver,
const base::android::JavaParamRef<jobject>& j_url,
const base::android::JavaParamRef<jobject>& j_callback);
@@ -308,7 +305,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
base::android::ScopedJavaLocalRef<jobject>
GetMostRecentlyAddedUserBookmarkIdForUrl(
JNIEnv* env,
@@ -197,6 +201,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
@@ -227,6 +231,10 @@ class BookmarkBridge : public ProfileObserver,
const base::android::JavaParamRef<jobject>& j_list,
jint type);
@@ -376,7 +373,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
@@ -3789,6 +3789,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3806,6 +3806,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_MENU_SELECT_TABS" desc="Menu item for bulk editing tabs. [CHAR_LIMIT=27]">
Select tabs
</message>
@@ -409,18 +406,6 @@ diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_stri
<message name="IDS_BOOKMARK_BAR_OTHER_FOLDER_NAME" desc="In Title Case: Name shown in the tree for the other bookmarks folder">
Other Bookmarks
</message>
diff --git a/components/bookmarks/browser/bookmark_client.cc b/components/bookmarks/browser/bookmark_client.cc
--- a/components/bookmarks/browser/bookmark_client.cc
+++ b/components/bookmarks/browser/bookmark_client.cc
@@ -55,6 +55,8 @@ bool BookmarkClient::IsPermanentNodeVisibleWhenEmpty(
case BookmarkNode::MOBILE:
// Either MOBILE or OTHER_NODE is visible when empty, but never both.
return !IsPermanentNodeVisibleWhenEmpty(BookmarkNode::OTHER_NODE);
+ case bookmarks::BookmarkNode::TABS_COLLECTION:
+ return !is_desktop;
}
NOTREACHED_NORETURN();
}
diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmarks/browser/bookmark_codec.cc
--- a/components/bookmarks/browser/bookmark_codec.cc
+++ b/components/bookmarks/browser/bookmark_codec.cc
@@ -432,7 +417,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
const char BookmarkCodec::kVersionKey[] = "version";
const char BookmarkCodec::kChecksumKey[] = "checksum";
const char BookmarkCodec::kIdKey[] = "id";
@@ -74,7 +75,8 @@ BookmarkCodec::~BookmarkCodec() = default;
@@ -72,7 +73,8 @@ BookmarkCodec::~BookmarkCodec() = default;
base::Value::Dict BookmarkCodec::Encode(BookmarkModel* model,
std::string sync_metadata_str) {
return Encode(model->bookmark_bar_node(), model->other_node(),
@@ -442,7 +427,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
std::move(sync_metadata_str));
}
@@ -82,6 +84,7 @@ base::Value::Dict BookmarkCodec::Encode(
@@ -80,6 +82,7 @@ base::Value::Dict BookmarkCodec::Encode(
const BookmarkNode* bookmark_bar_node,
const BookmarkNode* other_folder_node,
const BookmarkNode* mobile_folder_node,
@@ -450,7 +435,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
const BookmarkNode::MetaInfoMap* model_meta_info_map,
std::string sync_metadata_str) {
ids_reassigned_ = false;
@@ -102,6 +105,7 @@ base::Value::Dict BookmarkCodec::Encode(
@@ -100,6 +103,7 @@ base::Value::Dict BookmarkCodec::Encode(
roots.Set(kBookmarkBarFolderNameKey, EncodeNode(bookmark_bar_node));
roots.Set(kOtherBookmarkFolderNameKey, EncodeNode(other_folder_node));
roots.Set(kMobileBookmarkFolderNameKey, EncodeNode(mobile_folder_node));
@@ -458,7 +443,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
if (model_meta_info_map)
roots.Set(kMetaInfo, EncodeMetaInfo(*model_meta_info_map));
@@ -119,6 +123,7 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
@@ -117,6 +121,7 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
BookmarkNode* bb_node,
BookmarkNode* other_folder_node,
BookmarkNode* mobile_folder_node,
@@ -466,7 +451,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
int64_t* max_id,
std::string* sync_metadata_str) {
ids_.clear();
@@ -126,7 +131,8 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
@@ -124,7 +129,8 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
base::Uuid::ParseLowercase(kBookmarkBarNodeUuid),
base::Uuid::ParseLowercase(kOtherBookmarksNodeUuid),
base::Uuid::ParseLowercase(kMobileBookmarksNodeUuid),
@@ -476,7 +461,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
ids_reassigned_ = false;
uuids_reassigned_ = false;
ids_valid_ = true;
@@ -134,12 +140,13 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
@@ -132,12 +138,13 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
stored_checksum_.clear();
InitializeChecksum();
bool success = DecodeHelper(bb_node, other_folder_node, mobile_folder_node,
@@ -491,7 +476,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
*max_id = maximum_id_ + 1;
return success;
}
@@ -191,6 +198,7 @@ base::Value::Dict BookmarkCodec::EncodeMetaInfo(
@@ -189,6 +196,7 @@ base::Value::Dict BookmarkCodec::EncodeMetaInfo(
bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
BookmarkNode* other_folder_node,
BookmarkNode* mobile_folder_node,
@@ -499,7 +484,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
const base::Value::Dict& value,
std::string* sync_metadata_str) {
absl::optional<int> version = value.FindInt(kVersionKey);
@@ -215,6 +223,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
@@ -213,6 +221,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
roots->FindDict(kOtherBookmarkFolderNameKey);
const base::Value::Dict* mobile_folder_value =
roots->FindDict(kMobileBookmarkFolderNameKey);
@@ -508,7 +493,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
if (!bb_value || !other_folder_value || !mobile_folder_value)
return false;
@@ -222,6 +232,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
@@ -220,6 +230,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
DecodeNode(*bb_value, nullptr, bb_node);
DecodeNode(*other_folder_value, nullptr, other_folder_node);
DecodeNode(*mobile_folder_value, nullptr, mobile_folder_node);
@@ -517,7 +502,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
if (!DecodeMetaInfo(*roots, &model_meta_info_map_))
return false;
@@ -463,11 +475,13 @@ void BookmarkCodec::DecodeMetaInfoHelper(
@@ -461,11 +473,13 @@ void BookmarkCodec::DecodeMetaInfoHelper(
void BookmarkCodec::ReassignIDs(BookmarkNode* bb_node,
BookmarkNode* other_node,
@@ -580,10 +565,10 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark
diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/bookmarks/browser/bookmark_load_details.cc
--- a/components/bookmarks/browser/bookmark_load_details.cc
+++ b/components/bookmarks/browser/bookmark_load_details.cc
@@ -37,6 +37,10 @@ BookmarkLoadDetails::BookmarkLoadDetails(BookmarkClient* client)
root_node_->Add(BookmarkPermanentNode::CreateMobileBookmarks(
max_id_++,
client->IsPermanentNodeVisibleWhenEmpty(BookmarkNode::MOBILE))));
@@ -31,6 +31,10 @@ BookmarkLoadDetails::BookmarkLoadDetails(BookmarkClient* client)
root_node_->Add(BookmarkPermanentNode::CreateOtherBookmarks(max_id_++)));
mobile_folder_node_ = static_cast<BookmarkPermanentNode*>(
root_node_->Add(BookmarkPermanentNode::CreateMobileBookmarks(max_id_++)));
+ tabs_collection_folder_node_ = static_cast<BookmarkPermanentNode*>(
+ root_node_->Add(BookmarkPermanentNode::CreateTabsCollectionBookmarks(
+ max_id_++,
@@ -614,7 +599,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
@@ -829,7 +829,7 @@ bool BookmarkModel::HasBookmarks() const {
@@ -838,7 +838,7 @@ bool BookmarkModel::HasBookmarks() const {
bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() const {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
return bookmark_bar_node_->children().empty() &&
@@ -623,18 +608,18 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar
}
bool BookmarkModel::IsBookmarked(const GURL& url) const {
@@ -1166,6 +1166,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
@@ -1149,6 +1149,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
bookmark_bar_node_ = details->bb_node();
other_node_ = details->other_folder_node();
mobile_node_ = details->mobile_folder_node();
+ tabs_collection_node_ = details->tabs_collection_folder_node();
// TODO(crbug.com/1494120): Load nodes for account storage as well.
// TODO(crbug.com/1520418): Load nodes for account storage as well and load
// UUIDs onto `uuid_index_`.
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,
@@ -160,6 +160,12 @@ class BookmarkModel final : public BookmarkUndoProvider,
// bookmarks in the account storage).
const BookmarkNode* account_mobile_node() const;
@@ -647,7 +632,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_;
@@ -528,6 +534,7 @@ class BookmarkModel final : public BookmarkUndoProvider,
@@ -585,6 +591,7 @@ class BookmarkModel final : public BookmarkUndoProvider,
raw_ptr<BookmarkPermanentNode> account_bookmark_bar_node_ = nullptr;
raw_ptr<BookmarkPermanentNode> account_other_node_ = nullptr;
raw_ptr<BookmarkPermanentNode> account_mobile_node_ = nullptr;
@@ -658,8 +643,17 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark
diff --git a/components/bookmarks/browser/bookmark_node.cc b/components/bookmarks/browser/bookmark_node.cc
--- a/components/bookmarks/browser/bookmark_node.cc
+++ b/components/bookmarks/browser/bookmark_node.cc
@@ -189,6 +189,17 @@ BookmarkPermanentNode::CreateMobileBookmarks(int64_t id,
visible_when_empty));
@@ -161,6 +161,8 @@ bool BookmarkPermanentNode::IsTypeVisibleWhenEmpty(Type type) {
#endif
switch (type) {
+ case bookmarks::BookmarkNode::TABS_COLLECTION:
+ return !is_desktop;
case BookmarkNode::URL:
NOTREACHED_NORETURN();
case BookmarkNode::FOLDER:
@@ -211,6 +213,17 @@ BookmarkPermanentNode::CreateMobileBookmarks(int64_t id) {
l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_MOBILE_FOLDER_NAME)));
}
+// static
@@ -687,10 +681,10 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks
MOBILE
};
@@ -246,6 +247,9 @@ class BookmarkPermanentNode : public BookmarkNode {
@@ -247,6 +248,9 @@ class BookmarkPermanentNode : public BookmarkNode {
int64_t id);
static std::unique_ptr<BookmarkPermanentNode> CreateMobileBookmarks(
int64_t id,
bool visible_when_empty);
int64_t id);
+ static std::unique_ptr<BookmarkPermanentNode> CreateTabsCollectionBookmarks(
+ int64_t id,
+ bool visible_when_empty);
@@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml
--- a/chrome/android/java/res/menu/custom_tabs_menu.xml
+++ b/chrome/android/java/res/menu/custom_tabs_menu.xml
@@ -55,6 +55,9 @@ found in the LICENSE file.
@@ -59,6 +59,9 @@ found in the LICENSE file.
<item android:id="@+id/add_to_homescreen_id"
android:title="@string/menu_add_to_homescreen"
android:orderInCategory="2" />
@@ -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
@@ -2813,6 +2813,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2960,6 +2960,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
}
RecordUserAction.record("MobileMenuDownloadManager");
@@ -54,7 +54,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -2722,6 +2722,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -2763,6 +2763,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
return doOpenWebApk(currentTab);
}
@@ -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
@@ -578,6 +578,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -580,6 +580,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);
@@ -1181,6 +1182,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -1189,6 +1190,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
@@ -260,6 +260,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
@@ -276,6 +276,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
updateRequestDesktopSiteMenuItem(
menu, currentTab, requestDesktopSiteVisible, isChromeScheme);
@@ -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;
@@ -144,6 +144,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;
@@ -736,7 +737,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -743,7 +744,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
@@ -325,11 +325,14 @@ public class TabContentManager {
@@ -326,11 +326,14 @@ public class TabContentManager {
*/
public void getTabThumbnailWithCallback(
@NonNull int tabId,
@@ -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(
@@ -323,6 +351,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@@ -321,6 +349,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) {
@@ -348,6 +377,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@@ -346,6 +375,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;
}
@@ -388,6 +424,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@@ -386,6 +422,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
@@ -5275,6 +5275,14 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -5290,6 +5290,14 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
Your <ph name="FQDN">%1$s<ex>www.amazon.com</ex></ph> timer ran out. It'll start again tomorrow.
</message>
@@ -52,7 +52,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
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
@@ -987,7 +987,9 @@ public final class ReturnToChromeUtil {
@@ -975,7 +975,9 @@ public final class ReturnToChromeUtil {
public static boolean isScrollableMvtEnabled(Context context) {
boolean isSurfacePolishEnabled = ChromeFeatureList.sSurfacePolish.isEnabled();
@@ -66,7 +66,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;
@@ -100,6 +100,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 +74,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.quick_delete.QuickDeleteController;
@@ -1588,7 +1589,9 @@ public class RootUiCoordinator
@@ -1634,7 +1635,9 @@ public class RootUiCoordinator
if (!mSupportsFindInPageSupplier.getAsBoolean()) return;
int stubId = R.id.find_toolbar_stub;
@@ -88,7 +88,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BUILD.gn
--- a/chrome/browser/preferences/BUILD.gn
+++ b/chrome/browser/preferences/BUILD.gn
@@ -25,6 +25,7 @@ android_library("java") {
@@ -26,6 +26,7 @@ android_library("java") {
"//components/browser_ui/site_settings/android:constants_java",
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/jni_zero:jni_zero_java",
@@ -99,7 +99,7 @@ diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BU
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
@@ -310,6 +310,7 @@ public final class ChromePreferenceKeys {
@@ -294,6 +294,7 @@ public final class ChromePreferenceKeys {
AccessibilityConstants.FONT_USER_SET_FORCE_ENABLE_ZOOM;
public static final String HISTORY_SHOW_HISTORY_INFO = "history_home_show_info";
@@ -146,7 +146,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
@@ -777,7 +777,7 @@ public class LocationBarCoordinator
@@ -760,7 +760,7 @@ public class LocationBarCoordinator
}
private boolean isTabletWindow() {
@@ -158,7 +158,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -1561,6 +1561,13 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1558,6 +1558,13 @@ Your Google account may have other forms of browsing history like searches and a
Manage third-party cookies and tracking protections
</message>
@@ -175,7 +175,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/components/BUILD.gn b/components/BUILD.gn
--- a/components/BUILD.gn
+++ b/components/BUILD.gn
@@ -68,7 +68,7 @@ if (is_ios) {
@@ -69,7 +69,7 @@ if (is_ios) {
# Omit Lacros because it allows //components to depend on //chrome, which in
# turn depends on //extensions.
@@ -184,7 +184,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
@@ -819,7 +819,7 @@ test("components_unittests") {
@@ -829,7 +829,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.
@@ -193,7 +193,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
assert_no_deps = [ "//chrome/*" ]
assert_no_deps += disallowed_extension_deps_
}
@@ -1107,7 +1107,7 @@ if (use_blink) {
@@ -1120,7 +1120,7 @@ if (use_blink) {
# dependency. 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.
@@ -205,7 +205,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
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
@@ -35,6 +35,11 @@ found in the LICENSE file.
@@ -40,6 +40,11 @@ found in the LICENSE file.
android:summary="@string/reader_for_accessibility_summary"
android:title="@string/reader_for_accessibility_title" />
@@ -220,7 +220,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
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
@@ -31,6 +31,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
@@ -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";
@@ -228,8 +228,8 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
+ static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
private TextScalePreference mTextScalePref;
private PageZoomPreference mPageZoomDefaultZoomPref;
private ChromeSwitchPreference mPageZoomAlwaysShowPref;
@@ -123,6 +125,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
@@ -129,6 +131,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
getPreferenceScreen().removePreference(readerForAccessibilityPref);
}
@@ -242,7 +242,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
Preference captions = findPreference(PREF_CAPTIONS);
captions.setOnPreferenceClickListener(
preference -> {
@@ -182,6 +190,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
@@ -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);
@@ -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;
@@ -1484,8 +1485,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -1582,8 +1583,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
boolean hadCipherData =
CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
@@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
private IncognitoLockSettings mIncognitoLockSettings;
@@ -273,7 +278,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@@ -271,7 +276,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)) {
@@ -318,6 +327,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@@ -316,6 +325,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
@@ -4697,6 +4697,12 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -4724,6 +4724,12 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_CONTEXTMENU_IMAGE_TITLE" desc="The title of a context menu tab when the item pressed contains more than one type. This indicates that all the actions are related to the image.">
IMAGE
</message>
@@ -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
@@ -18,6 +18,7 @@ import org.chromium.base.Callback;
import org.chromium.base.ResettersForTesting;
import org.chromium.base.metrics.RecordUserAction;
@@ -22,6 +22,7 @@ import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.Supplier;
import org.chromium.base.task.PostTask;
import org.chromium.base.task.TaskTraits;
+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;
@@ -44,6 +45,7 @@ import org.chromium.ui.KeyboardVisibilityDelegate;
@@ -47,6 +48,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;
@@ -615,11 +617,16 @@ public class TabGridDialogMediator
@@ -634,11 +636,16 @@ public class TabGridDialogMediator
assert relatedTabs.size() > 0;
@@ -201,7 +201,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
@@ -323,6 +323,7 @@ public final class ChromePreferenceKeys {
@@ -307,6 +307,7 @@ public final class ChromePreferenceKeys {
public static final String HOMEPAGE_USE_CHROME_NTP = "Chrome.Homepage.UseNTP";
public static final String HOMEPAGE_USE_DEFAULT_URI = "homepage_partner_enabled";
@@ -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
@@ -1334,6 +1334,9 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1331,6 +1331,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>
@@ -248,7 +248,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u
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
@@ -1311,6 +1311,10 @@ inline constexpr char kUsedPolicyCertificates[] =
@@ -1304,6 +1304,10 @@ inline constexpr char kUsedPolicyCertificates[] =
// visible on the toolbar.
inline constexpr char kShowHomeButton[] = "browser.show_home_button";
+7 -7
View File
@@ -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
},
@@ -64,19 +64,19 @@ diff --git a/components/search_engines/prepopulated_engines.json b/components/se
diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h
--- a/components/search_engines/search_engine_type.h
+++ b/components/search_engines/search_engine_type.h
@@ -88,6 +88,8 @@ enum SearchEngineType {
SEARCH_ENGINE_QUENDU = 69,
@@ -89,6 +89,8 @@ enum SearchEngineType {
SEARCH_ENGINE_BRAVE = 70,
SEARCH_ENGINE_KARMA = 71,
+ SEARCH_ENGINE_GOOGLE_EN = 72,
+ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 73,
SEARCH_ENGINE_YOU = 72,
+ SEARCH_ENGINE_GOOGLE_EN = 73,
+ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 74,
SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro.
};
diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc
--- a/components/search_engines/template_url_prepopulate_data.cc
+++ b/components/search_engines/template_url_prepopulate_data.cc
@@ -61,6 +61,7 @@ struct EngineAndTier {
@@ -63,6 +63,7 @@ struct EngineAndTier {
// Default (for countries with no better engine set)
constexpr EngineAndTier engines_default[] = {
@@ -84,7 +84,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
{SearchEngineTier::kTopEngines, &google},
{SearchEngineTier::kTopEngines, &bing},
{SearchEngineTier::kTopEngines, &yahoo},
@@ -1613,6 +1614,8 @@ const std::vector<EngineAndTier> GetPrepopulationSetFromCountryID(
@@ -1615,6 +1616,8 @@ const std::vector<EngineAndTier> GetPrepopulationSetFromCountryID(
for (size_t i = 0; i < num_engines; i++) {
t_url.push_back(engines[i]);
}
@@ -26,16 +26,16 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../core/browsing_data_policies_utils.h | 11 +++
.../browsing_data/core/browsing_data_utils.cc | 34 +++++++++
.../core/clear_browsing_data_tab.h | 2 +-
components/browsing_data/core/pref_names.cc | 27 +++++++
components/browsing_data/core/pref_names.h | 9 +++
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, 321 insertions(+), 17 deletions(-)
25 files changed, 312 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
@@ -303,6 +303,7 @@ chrome_java_sources = [
@@ -305,6 +305,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
@@ -159,6 +159,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider;
@@ -164,6 +164,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.read_later.ReadingListUtils;
import org.chromium.chrome.browser.reengagement.ReengagementNotificationController;
@@ -1484,7 +1485,11 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -1582,7 +1583,11 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
Intent intent = getIntent();
boolean hadCipherData =
@@ -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
@@ -2257,6 +2257,16 @@
@@ -2247,6 +2247,16 @@
<message name="IDS_SETTINGS_CLEAR_BROWSING_DATA" desc="Text for clear browsing data button in Privacy options">
Clear browsing data
</message>
@@ -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
@@ -432,6 +432,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
@@ -434,6 +434,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
delete_end_, 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();
@@ -482,7 +485,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
@@ -484,7 +487,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.
@@ -503,7 +508,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
@@ -505,7 +510,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(
@@ -578,9 +585,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
@@ -580,9 +587,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
@@ -506,6 +506,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
@@ -502,6 +502,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
@@ -1495,6 +1495,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info,
@@ -1496,6 +1496,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info,
}
}
@@ -406,10 +406,10 @@ 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_ ||
@@ -2166,7 +2179,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) {
@@ -2171,7 +2184,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 (auto* browser_iter : *BrowserList::GetInstance()) {
for (Browser* browser_iter : *BrowserList::GetInstance()) {
- if (browser_iter->profile()->GetOriginalProfile() == original_profile)
+ if (browser_iter->profile() == profile)
return;
@@ -503,7 +503,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_
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
@@ -1429,6 +1429,9 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1426,6 +1426,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
@@ -1660,6 +1660,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
@@ -1661,6 +1661,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
{"clearedData", IDS_SETTINGS_CLEARED_DATA},
{"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA},
{"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION},
@@ -639,24 +639,7 @@ diff --git a/components/browsing_data/core/clear_browsing_data_tab.h b/component
diff --git a/components/browsing_data/core/pref_names.cc b/components/browsing_data/core/pref_names.cc
--- a/components/browsing_data/core/pref_names.cc
+++ b/components/browsing_data/core/pref_names.cc
@@ -26,6 +26,16 @@ const char kClearBrowsingDataOnExitDeletionPending[] =
// delete just before browser shutdown.
const char kClearBrowsingDataOnExitList[] = "browser.clear_data.clear_on_exit";
+// Clear Browsing Data dialog datatype preferences.
+const char kDeleteBrowsingHistoryAtStart[] = "browser.clear_data.browsing_history_at_start";
+const char kDeleteDownloadHistoryAtStart[] = "browser.clear_data.download_history_at_start";
+const char kDeleteCacheAtStart[] = "browser.clear_data.cache_at_start";
+const char kDeleteCookiesAtStart[] = "browser.clear_data.cookies_at_start";
+const char kDeletePasswordsAtStart[] = "browser.clear_data.passwords_at_start";
+const char kDeleteFormDataAtStart[] = "browser.clear_data.form_data_at_start";
+const char kDeleteHostedAppsDataAtStart[] = "browser.clear_data.hosted_apps_data_at_start";
+const char kDeleteSiteSettingsAtStart[] = "browser.clear_data.site_settings_at_start";
+
// Clear browsing data deletion time period.
const char kDeleteTimePeriod[] = "browser.clear_data.time_period";
const char kDeleteTimePeriodBasic[] = "browser.clear_data.time_period_basic";
@@ -99,6 +109,23 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
@@ -47,6 +47,23 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterIntegerPref(
kClearBrowsingDataHistoryNoticeShownTimes, 0);
@@ -683,26 +666,27 @@ diff --git a/components/browsing_data/core/pref_names.cc b/components/browsing_d
diff --git a/components/browsing_data/core/pref_names.h b/components/browsing_data/core/pref_names.h
--- a/components/browsing_data/core/pref_names.h
+++ b/components/browsing_data/core/pref_names.h
@@ -17,6 +17,15 @@ extern const char kBrowsingDataLifetime[];
extern const char kClearBrowsingDataOnExitDeletionPending[];
extern const char kClearBrowsingDataOnExitList[];
@@ -28,6 +28,16 @@ inline constexpr char kClearBrowsingDataOnExitDeletionPending[] =
inline constexpr char kClearBrowsingDataOnExitList[] =
"browser.clear_data.clear_on_exit";
+extern const char kDeleteBrowsingHistoryAtStart[];
+extern const char kDeleteDownloadHistoryAtStart[];
+extern const char kDeleteCacheAtStart[];
+extern const char kDeleteCookiesAtStart[];
+extern const char kDeletePasswordsAtStart[];
+extern const char kDeleteFormDataAtStart[];
+extern const char kDeleteHostedAppsDataAtStart[];
+extern const char kDeleteSiteSettingsAtStart[];
+// Clear Browsing Data dialog datatype preferences.
+inline constexpr char kDeleteBrowsingHistoryAtStart[] = "browser.clear_data.browsing_history_at_start";
+inline constexpr char kDeleteDownloadHistoryAtStart[] = "browser.clear_data.download_history_at_start";
+inline constexpr char kDeleteCacheAtStart[] = "browser.clear_data.cache_at_start";
+inline constexpr char kDeleteCookiesAtStart[] = "browser.clear_data.cookies_at_start";
+inline constexpr char kDeletePasswordsAtStart[] = "browser.clear_data.passwords_at_start";
+inline constexpr char kDeleteFormDataAtStart[] = "browser.clear_data.form_data_at_start";
+inline constexpr char kDeleteHostedAppsDataAtStart[] = "browser.clear_data.hosted_apps_data_at_start";
+inline constexpr char kDeleteSiteSettingsAtStart[] = "browser.clear_data.site_settings_at_start";
+
extern const char kDeleteTimePeriod[];
extern const char kDeleteTimePeriodBasic[];
// Clear browsing data deletion time period.
inline constexpr char kDeleteTimePeriod[] = "browser.clear_data.time_period";
inline constexpr char kDeleteTimePeriodBasic[] =
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
@@ -1571,6 +1571,7 @@ void StoragePartitionImpl::Initialize(
@@ -1553,6 +1553,7 @@ void StoragePartitionImpl::Initialize(
.AppendASCII("Code Cache");
}
DCHECK_GE(settings.size_in_bytes(), 0);
@@ -116,7 +116,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
if (FirstRunStatus.getFirstRunFlowComplete()
&& !isEmptyUrl(mParams.getUrl())
&& UrlUtilities.isAcceptedScheme(mParams.getUrl())) {
@@ -643,6 +646,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
@@ -631,6 +634,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
getProfile(),
false);
});
@@ -158,18 +158,18 @@ diff --git a/chrome/browser/contextmenu/java/src/org/chromium/chrome/browser/con
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
@@ -327,6 +327,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kTabDragDropAndroid,
&kTabAndLinkDragDropAndroid,
&kTabEngagementReportingAndroid,
@@ -287,6 +287,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kTabGroupParityAndroid,
&kTabletTabSwitcherLongPressMenu,
&kTabletToolbarIncognitoStatus,
+ &blink::features::kShowAlwaysContextMenuOnLinks,
&kTabletToolbarReordering,
&kTabResumptionModuleAndroid,
&kTabStateFlatBuffer,
&kTabStripStartupRefactoring,
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
@@ -327,6 +327,8 @@ public abstract class ChromeFeatureList {
@@ -336,6 +336,8 @@ public abstract class ChromeFeatureList {
public static final String NEW_TAB_SEARCH_ENGINE_URL_ANDROID = "NewTabSearchEngineUrlAndroid";
public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM =
"MoveTopToolbarToBottom";
@@ -178,17 +178,17 @@ 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";
@@ -614,6 +616,8 @@ public abstract class ChromeFeatureList {
new CachedFlag(OMNIBOX_MATCH_TOOLBAR_AND_STATUS_BAR_COLOR, false);
@@ -604,6 +606,8 @@ public abstract class ChromeFeatureList {
newCachedFlag(OMNIBOX_MATCH_TOOLBAR_AND_STATUS_BAR_COLOR, false);
public static final CachedFlag sMoveTopToolbarToBottom =
new CachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false);
+ public static final CachedFlag sShowAlwaysContextMenuOnLinks =
+ new CachedFlag(SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS, false);
public static final CachedFlag sOmniboxModernizeVisualUpdate =
new CachedFlag(OMNIBOX_MODERNIZE_VISUAL_UPDATE, true);
newCachedFlag(OMNIBOX_MODERNIZE_VISUAL_UPDATE, true);
public static final CachedFlag sOptimizationGuidePushNotifications =
@@ -747,6 +751,7 @@ public abstract class ChromeFeatureList {
sTabToGTSAnimation,
@@ -739,6 +743,7 @@ public abstract class ChromeFeatureList {
sTabWindowManagerReportIndicesMismatch,
sToolbarUseHardwareBitmapDraw,
sUseChimeAndroidSdk,
+ sShowAlwaysContextMenuOnLinks,
@@ -198,7 +198,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
@@ -1635,6 +1635,12 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1632,6 +1632,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 +211,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]">
@@ -2675,6 +2681,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -2701,6 +2707,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<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>
@@ -224,7 +224,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
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
@@ -30,6 +30,11 @@ found in the LICENSE file.
@@ -35,6 +35,11 @@ found in the LICENSE file.
android:summary="@string/page_zoom_always_show_preference_summary"
android:title="@string/page_zoom_always_show_preference_title" />
@@ -239,15 +239,15 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
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
@@ -34,6 +34,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
@@ -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 mPageZoomAlwaysShowPref;
@@ -43,6 +44,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
@@ -45,6 +46,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
private BooleanPreferenceDelegate mReaderForAccessibilityDelegate;
private double mPageZoomLatestDefaultZoomPrefValue;
private BooleanPreferenceDelegate mMoveTopToolbarToBottomDelegate;
@@ -255,7 +255,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
private FontSizePrefs mFontSizePrefs;
private FontSizePrefsObserver mFontSizePrefsObserver =
@@ -143,6 +145,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
@@ -149,6 +151,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
mMoveToolbarToBottomPref.setChecked(mMoveTopToolbarToBottomDelegate.isEnabled());
mMoveToolbarToBottomPref.setOnPreferenceChangeListener(this);
@@ -268,16 +268,16 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
Preference captions = findPreference(PREF_CAPTIONS);
captions.setOnPreferenceClickListener(
preference -> {
@@ -218,6 +226,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
@@ -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.
}
return true;
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
@@ -441,7 +441,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_
#include "third_party/blink/renderer/core/frame/attribution_src_loader.h"
#include "third_party/blink/renderer/core/frame/deprecation/deprecation.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
@@ -63,6 +64,7 @@
@@ -64,6 +65,7 @@
#include "third_party/blink/renderer/core/media_type_names.h"
#include "third_party/blink/renderer/core/page/chrome_client.h"
#include "third_party/blink/renderer/core/page/page.h"
@@ -449,7 +449,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"
@@ -794,6 +796,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate(
@@ -802,6 +804,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate(
}
}
@@ -474,7 +474,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_
diff --git a/third_party/blink/renderer/core/html/html_image_element.h b/third_party/blink/renderer/core/html/html_image_element.h
--- a/third_party/blink/renderer/core/html/html_image_element.h
+++ b/third_party/blink/renderer/core/html/html_image_element.h
@@ -232,6 +232,8 @@ class CORE_EXPORT HTMLImageElement final
@@ -236,6 +236,8 @@ class CORE_EXPORT HTMLImageElement final
void DidAddUserAgentShadowRoot(ShadowRoot&) override;
void AdjustStyle(ComputedStyleBuilder&) override;
@@ -532,7 +532,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;
@@ -835,11 +847,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
@@ -840,11 +852,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
SetAutofillData(result.InnerNode(), data);
SetPasswordManagerData(result.InnerElement(), data);
+2 -2
View File
@@ -23,7 +23,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
@@ -152,6 +152,7 @@
@@ -153,6 +153,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"
@@ -42,7 +42,7 @@ diff --git a/components/feature_engagement/internal/tracker_impl.cc b/components
#include "components/feature_engagement/internal/availability_model_impl.h"
#include "components/feature_engagement/internal/blocked_iph_features.h"
#include "components/feature_engagement/internal/chrome_variations_configuration.h"
@@ -187,6 +188,8 @@ TrackerImpl::TrackerImpl(
@@ -207,6 +208,8 @@ TrackerImpl::TrackerImpl(
TrackerImpl::~TrackerImpl() = default;
void TrackerImpl::NotifyEvent(const std::string& event) {
@@ -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
@@ -85,6 +85,7 @@ import org.chromium.components.browser_ui.settings.CustomDividerFragment;
@@ -83,6 +83,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;
@@ -454,8 +455,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -453,8 +454,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
finish();
return true;
} else if (item.getItemId() == R.id.menu_id_general_help) {
+30 -26
View File
@@ -56,8 +56,9 @@ Enabled by default
third_party/libjxl/OWNERS | 9 +
third_party/libjxl/README.chromium | 15 +
.../libjxl/gen_headers/jxl/jxl_export.h | 11 +
tools/metrics/histograms/enums.xml | 3 +-
52 files changed, 1995 insertions(+), 17 deletions(-)
tools/metrics/histograms/enums.xml | 1 +
.../histograms/metadata/blink/enums.xml | 2 +-
53 files changed, 1995 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
@@ -83,7 +84,7 @@ Enabled by default
diff --git a/DEPS b/DEPS
--- a/DEPS
+++ b/DEPS
@@ -485,6 +485,10 @@ vars = {
@@ -487,6 +487,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.
@@ -94,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
@@ -1103,6 +1107,9 @@ deps = {
@@ -1105,6 +1109,9 @@ deps = {
'src/third_party/dawn':
Var('dawn_git') + '/dawn.git' + '@' + Var('dawn_revision'),
@@ -315,7 +316,7 @@ diff --git a/media/BUILD.gn b/media/BUILD.gn
diff --git a/media/media_options.gni b/media/media_options.gni
--- a/media/media_options.gni
+++ b/media/media_options.gni
@@ -129,6 +129,9 @@ declare_args() {
@@ -132,6 +132,9 @@ declare_args() {
# `enable_libaom` should likely also be overriddent to false.
enable_av1_decoder = enable_dav1d_decoder
@@ -374,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
@@ -97,6 +97,7 @@
@@ -91,6 +91,7 @@
/libgifcodec
/libjingle/source
/libupnp
@@ -393,7 +394,7 @@ diff --git a/third_party/blink/common/loader/network_utils.cc b/third_party/blin
namespace blink {
namespace network_utils {
@@ -33,7 +34,20 @@ bool AlwaysAccessNetwork(
@@ -34,7 +35,20 @@ bool AlwaysAccessNetwork(
}
const char* ImageAcceptHeader() {
@@ -466,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
@@ -4246,6 +4246,7 @@ domain Emulation
@@ -4258,6 +4258,7 @@ domain Emulation
experimental type DisabledImageType extends string
enum
avif
@@ -477,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
@@ -495,10 +495,10 @@ AtomicString InspectorEmulationAgent::OverrideAcceptImageHeader(
@@ -502,10 +502,10 @@ AtomicString InspectorEmulationAgent::OverrideAcceptImageHeader(
String header(network_utils::ImageAcceptHeader());
for (String type : *disabled_image_types) {
// The header string is expected to be like
@@ -491,7 +492,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent
header.Replace(String(type + ","), "");
}
return AtomicString(header);
@@ -843,6 +843,7 @@ protocol::Response InspectorEmulationAgent::setDisabledImageTypes(
@@ -850,6 +850,7 @@ protocol::Response InspectorEmulationAgent::setDisabledImageTypes(
namespace DisabledImageTypeEnum = protocol::Emulation::DisabledImageTypeEnum;
for (protocol::Emulation::DisabledImageType type : *disabled_types) {
if (DisabledImageTypeEnum::Avif == type ||
@@ -607,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
@@ -2264,6 +2264,10 @@ source_set("blink_platform_unittests_sources") {
@@ -2277,6 +2277,10 @@ source_set("blink_platform_unittests_sources") {
sources += [ "text/locale_icu_test.cc" ]
}
@@ -618,7 +619,7 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re
sources += [ "testing/run_all_tests.cc" ]
configs += [
@@ -2307,6 +2311,7 @@ source_set("blink_platform_unittests_sources") {
@@ -2320,6 +2324,7 @@ source_set("blink_platform_unittests_sources") {
"//third_party/blink/renderer/platform/scheduler:unit_tests",
"//third_party/blink/renderer/platform/wtf",
"//third_party/libavif:libavif",
@@ -2221,7 +2222,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
@@ -4852,6 +4852,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai
@@ -4569,6 +4569,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 ]
@@ -2237,7 +2238,7 @@ diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/we
diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/web_tests/VirtualTestSuites
--- a/third_party/blink/web_tests/VirtualTestSuites
+++ b/third_party/blink/web_tests/VirtualTestSuites
@@ -441,6 +441,15 @@
@@ -102,6 +102,15 @@
"--disable-threaded-compositing", "--disable-threaded-animation"],
"expires": "Jul 1, 2023"
},
@@ -2251,8 +2252,8 @@ diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/w
+ "expires": "Jul 1, 2023"
+ },
{
"prefix": "scalefactor150",
"platforms": ["Linux", "Win"],
"prefix": "unsafe_webgpu",
"platforms": ["Linux", "Mac", "Win"],
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/emulation/emulation-set-disabled-image-types-jxl-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/emulation/emulation-set-disabled-image-types-jxl-expected.txt
new file mode 100644
--- /dev/null
@@ -2652,16 +2653,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
@@ -11344,7 +11344,7 @@ to ensure that the crash string is shown properly on the user-facing crash UI.
<int value="5" label="kImageICO"/>
<int value="6" label="kImageBMP"/>
<int value="7" label="kImageAVIF"/>
- <int value="8" label="(obsolete) kImageJXL"/>
+ <int value="8" label="kImageJXL"/>
</enum>
<enum name="DefaultAppName">
@@ -34310,6 +34310,7 @@ from previous Chrome versions.
@@ -23856,6 +23856,7 @@ from previous Chrome versions.
<int value="188610022" label="NewMessageListView:enabled"/>
<int value="189728101" label="FasterLocationReload:disabled"/>
<int value="189777537" label="DisableInitialMostVisitedFadeIn:enabled"/>
@@ -2669,4 +2661,16 @@ diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums
<int value="190395448" label="SearchWebInSidePanel:enabled"/>
<int value="191737931" label="enable-mark-http-as"/>
<int value="191891628" label="AutocompleteExtendedSuggestions:enabled"/>
diff --git a/tools/metrics/histograms/metadata/blink/enums.xml b/tools/metrics/histograms/metadata/blink/enums.xml
--- a/tools/metrics/histograms/metadata/blink/enums.xml
+++ b/tools/metrics/histograms/metadata/blink/enums.xml
@@ -227,7 +227,7 @@ chromium-metrics-reviews@google.com.
<int value="5" label="kImageICO"/>
<int value="6" label="kImageBMP"/>
<int value="7" label="kImageAVIF"/>
- <int value="8" label="(obsolete) kImageJXL"/>
+ <int value="8" label="kImageJXL"/>
</enum>
<enum name="FedCmAccountsResponseInvalidReason">
--
+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
@@ -309,6 +309,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits(
@@ -310,6 +310,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_);
@@ -582,25 +589,6 @@ static String ExtractWebGLContextCreationError(
@@ -583,25 +590,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('.');
@@ -660,6 +648,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider(
@@ -661,6 +649,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
@@ -1952,6 +1952,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
@@ -1959,6 +1959,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"
@@ -774,6 +775,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
@@ -807,6 +808,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
// origin.
WebRTCIPHandlingPolicy policy =
GetWebRTCIPHandlingPolicy(webrtc_ip_handling_policy);
@@ -244,9 +244,9 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
+#include "third_party/blink/public/platform/web_content_settings_client.h"
+#include "third_party/blink/public/web/web_local_frame.h"
#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"
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_rtcp_parameters.h"
@@ -1034,6 +1036,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state,
@@ -1062,6 +1064,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state,
if (kind != "audio" && kind != "video")
return nullptr;
@@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc b/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc
--- a/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc
+++ b/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc
@@ -376,6 +376,13 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow(
@@ -367,6 +367,13 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow(
return;
}
@@ -72,7 +72,7 @@ diff --git a/content/browser/network/cross_origin_embedder_policy_reporter.cc b/
void CrossOriginEmbedderPolicyReporter::QueueAndNotify(
std::initializer_list<std::pair<base::StringPiece, base::StringPiece>> body,
bool report_only) {
- const absl::optional<std::string>& endpoint =
- const std::optional<std::string>& endpoint =
- report_only ? report_only_endpoint_ : endpoint_;
const char* const disposition = report_only ? "reporting" : "enforce";
if (observer_) {
@@ -88,7 +88,7 @@ diff --git a/content/browser/network/cross_origin_embedder_policy_reporter.cc b/
base::Value::Dict body_to_pass;
for (const auto& pair : body) {
@@ -125,6 +127,7 @@ void CrossOriginEmbedderPolicyReporter::QueueAndNotify(
/*user_agent=*/absl::nullopt, std::move(body_to_pass));
/*user_agent=*/std::nullopt, std::move(body_to_pass));
}
}
+#endif
@@ -152,7 +152,7 @@ diff --git a/content/browser/network/cross_origin_opener_policy_reporter.cc b/co
@@ -280,12 +275,14 @@ void CrossOriginOpenerPolicyReporter::QueueAccessReport(
storage_partition_->GetNetworkContext()->QueueReport(
"coop", endpoint, context_url_, reporting_source_,
network_anonymization_key_, absl::nullopt, std::move(body));
network_anonymization_key_, std::nullopt, std::move(body));
+#endif
}
@@ -167,7 +167,7 @@ diff --git a/content/browser/network/cross_origin_opener_policy_reporter.cc b/co
@@ -294,6 +291,7 @@ void CrossOriginOpenerPolicyReporter::QueueNavigationReport(
"coop", endpoint, context_url_, reporting_source_,
network_anonymization_key_,
/*user_agent=*/absl::nullopt, std::move(body));
/*user_agent=*/std::nullopt, std::move(body));
+#endif
}
@@ -193,7 +193,7 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse
return;
rph->GetStoragePartition()->GetNetworkContext()->QueueReport(
type, group, url, reporting_source_, network_anonymization_key_,
/*user_agent=*/absl::nullopt, std::move(body));
/*user_agent=*/std::nullopt, std::move(body));
+#endif
}
@@ -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
@@ -13593,12 +13593,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
@@ -13726,12 +13726,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
base::Value::Dict body;
if (!reason.empty())
body.Set("reason", reason);
@@ -210,7 +210,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b
- GetProcess()->GetStoragePartition()->GetNetworkContext()->QueueReport(
- /*type=*/"crash", /*group=*/"default", last_committed_url_,
- GetReportingSource(), isolation_info_.network_anonymization_key(),
- absl::nullopt /* user_agent */, std::move(body));
- std::nullopt /* user_agent */, std::move(body));
}
void RenderFrameHostImpl::SendCommitNavigation(
@@ -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
@@ -227,6 +227,7 @@ extern const base::FeatureParam<base::TimeDelta> kTimeoutTcpConnectAttemptMax(
@@ -215,6 +215,7 @@ extern const base::FeatureParam<base::TimeDelta> kTimeoutTcpConnectAttemptMax(
base::Seconds(30));
#if BUILDFLAG(ENABLE_REPORTING)
@@ -265,7 +265,7 @@ diff --git a/net/base/features.cc b/net/base/features.cc
diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_service.cc
--- a/net/reporting/reporting_service.cc
+++ b/net/reporting/reporting_service.cc
@@ -211,6 +211,12 @@ class ReportingServiceImpl : public ReportingService {
@@ -214,6 +214,12 @@ class ReportingServiceImpl : public ReportingService {
base::Value::Dict body,
int depth,
base::TimeTicks queued_ticks) {
@@ -281,7 +281,7 @@ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_servic
diff --git a/services/network/network_context.h b/services/network/network_context.h
--- a/services/network/network_context.h
+++ b/services/network/network_context.h
@@ -472,10 +472,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
@@ -464,10 +464,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
const absl::optional<base::UnguessableToken>& reporting_source,
const net::NetworkAnonymizationKey& network_anonymization_key,
const absl::optional<std::string>& user_agent,
@@ -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
@@ -1435,7 +1435,6 @@ mojom("mojom") {
@@ -1439,7 +1439,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
@@ -1197,6 +1197,7 @@ interface NetworkContext {
@@ -1223,6 +1223,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,
@@ -1210,6 +1211,7 @@ interface NetworkContext {
@@ -1236,6 +1237,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|.
@@ -335,7 +335,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c
#include "base/containers/contains.h"
#include "base/debug/dump_without_crashing.h"
#include "services/network/public/cpp/web_sandbox_flags.h"
@@ -1169,6 +1170,7 @@ void ContentSecurityPolicy::ReportViolation(
@@ -1166,6 +1167,7 @@ void ContentSecurityPolicy::ReportViolation(
return;
}
@@ -343,7 +343,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c
PostViolationReport(violation_data, context_frame, report_endpoints,
use_reporting_api);
@@ -1176,6 +1178,7 @@ void ContentSecurityPolicy::ReportViolation(
@@ -1173,6 +1175,7 @@ void ContentSecurityPolicy::ReportViolation(
// `context_frame` (i.e. we're not processing 'frame-ancestors').
if (delegate_ && !context_frame)
delegate_->DispatchViolationEvent(*violation_data, element);
@@ -362,7 +362,7 @@ 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"
@@ -2585,9 +2586,11 @@ void LocalFrame::MainFrameInteractive() {
@@ -2601,9 +2602,11 @@ void LocalFrame::MainFrameInteractive() {
v8_local_compile_hints_producer_->GenerateData();
}
@@ -385,7 +385,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b
#include "services/device/public/mojom/device_posture_provider.mojom-blink-forward.h"
#include "services/metrics/public/cpp/ukm_source_id.h"
#include "services/network/public/mojom/fetch_api.mojom-blink-forward.h"
@@ -657,8 +658,9 @@ class CORE_EXPORT LocalFrame final
@@ -655,8 +656,9 @@ class CORE_EXPORT LocalFrame final
void FinishedScrollSequence();
SmoothScrollSequencer* GetSmoothScrollSequencer() const;
@@ -24,7 +24,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
@@ -3657,7 +3657,6 @@ generate_jni("chrome_jni_headers") {
@@ -3691,7 +3691,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",
@@ -46,7 +46,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
@@ -69,7 +69,6 @@ import org.chromium.components.browser_ui.widget.displaystyle.UiConfig;
@@ -68,7 +68,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 +54,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;
@@ -848,9 +847,7 @@ public class FeedSurfaceCoordinator
@@ -773,9 +772,7 @@ public class FeedSurfaceCoordinator
* Returns true if the supervised user feed should be displayed.
*/
public boolean shouldDisplaySupervisedFeed() {
@@ -68,7 +68,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
@@ -3161,8 +3161,6 @@ static_library("browser") {
@@ -3146,8 +3146,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 +77,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",
@@ -3381,10 +3379,6 @@ static_library("browser") {
@@ -3353,10 +3351,6 @@ static_library("browser") {
"ssl/chrome_security_state_model_delegate.h",
"ssl/known_interception_disclosure_infobar.cc",
"ssl/known_interception_disclosure_infobar.h",
@@ -91,7 +91,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
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
@@ -1001,9 +1001,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
@@ -999,9 +999,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
settings_api::PrefType::kBoolean;
#endif
@@ -106,7 +106,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
@@ -696,10 +696,12 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) {
@@ -683,10 +683,12 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) {
prefs->SetTime(prefs::kProfileCreationTime, path_creation_time_);
pref_change_registrar_.Init(prefs);
@@ -119,7 +119,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p
// Changes in the profile avatar.
pref_change_registrar_.Add(
@@ -1625,11 +1627,13 @@ GURL ProfileImpl::GetHomePage() {
@@ -1614,11 +1616,13 @@ GURL ProfileImpl::GetHomePage() {
}
void ProfileImpl::UpdateSupervisedUserIdInStorage() {
@@ -136,7 +136,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
@@ -1222,6 +1222,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
@@ -1223,6 +1223,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
profile->GetPrefs()->SetString(prefs::kProfileName, profile_name);
}
@@ -144,7 +144,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)
@@ -1243,6 +1244,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
@@ -1244,6 +1245,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
profile->GetPrefs()->SetString(prefs::kSupervisedUserId,
supervised_user_id);
}
@@ -152,7 +152,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);
@@ -2046,8 +2048,10 @@ void ProfileManager::AddProfileToStorage(Profile* profile) {
@@ -2051,8 +2053,10 @@ void ProfileManager::AddProfileToStorage(Profile* profile) {
init_params.icon_index =
profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex);
@@ -181,7 +181,7 @@ diff --git a/chrome/browser/ui/webui/managed_ui_handler.cc b/chrome/browser/ui/w
diff --git a/chrome/browser/ui/webui/management/management_ui_handler.cc b/chrome/browser/ui/webui/management/management_ui_handler.cc
--- a/chrome/browser/ui/webui/management/management_ui_handler.cc
+++ b/chrome/browser/ui/webui/management/management_ui_handler.cc
@@ -1456,10 +1456,12 @@ void ManagementUIHandler::AddObservers() {
@@ -1507,10 +1507,12 @@ void ManagementUIHandler::AddObservers() {
pref_registrar_.Init(profile->GetPrefs());
@@ -223,7 +223,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_preferences
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
@@ -165,4 +165,5 @@ bool IsShadowKidsApiWithSafeSitesEnabled() {
@@ -174,4 +174,5 @@ bool IsShadowKidsApiWithSafeSitesEnabled() {
return base::FeatureList::IsEnabled(kShadowKidsApiWithSafeSites);
}
@@ -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
@@ -1177,6 +1177,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
@@ -1181,6 +1181,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());
@@ -3504,7 +3510,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
@@ -3524,7 +3530,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
: HasAudio();
// Audio only stream is allowed to play when in background.
@@ -54,7 +54,7 @@ diff --git a/components/search_engines/android/java/src/org/chromium/components/
diff --git a/components/search_engines/android/template_url_service_android.cc b/components/search_engines/android/template_url_service_android.cc
--- a/components/search_engines/android/template_url_service_android.cc
+++ b/components/search_engines/android/template_url_service_android.cc
@@ -324,6 +324,7 @@ jboolean TemplateUrlServiceAndroid::SetPlayAPISearchEngine(
@@ -330,6 +330,7 @@ jboolean TemplateUrlServiceAndroid::SetPlayAPISearchEngine(
const base::android::JavaParamRef<jstring>&
jimage_translate_target_language_param_key,
jboolean set_as_default) {
@@ -161,15 +161,15 @@ diff --git a/third_party/blink/renderer/modules/webaudio/offline_audio_context.c
diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc
--- a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc
+++ b/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc
@@ -29,6 +29,7 @@
#include <algorithm>
@@ -31,6 +31,7 @@
#include <bit>
#include <complex>
+#include "third_party/blink/renderer/modules/webaudio/base_audio_context.h"
#include "third_party/blink/renderer/platform/audio/audio_bus.h"
#include "third_party/blink/renderer/platform/audio/audio_utilities.h"
#include "third_party/blink/renderer/platform/audio/vector_math.h"
@@ -154,6 +155,7 @@ void RealtimeAnalyser::GetFloatTimeDomainData(
@@ -155,6 +156,7 @@ void RealtimeAnalyser::GetFloatTimeDomainData(
input_buffer[(i + write_index - fft_size + kInputBufferSize) %
kInputBufferSize];
@@ -177,7 +177,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/
destination[i] = value;
}
}
@@ -181,6 +183,8 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) {
@@ -182,6 +184,8 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) {
input_buffer[(i + write_index - fft_size + kInputBufferSize) %
kInputBufferSize];
@@ -186,7 +186,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/
// Scale from nominal -1 -> +1 to unsigned byte.
double scaled_value = 128 * (value + 1);
@@ -300,6 +304,8 @@ void RealtimeAnalyser::ConvertToByteData(DOMUint8Array* destination_array) {
@@ -301,6 +305,8 @@ void RealtimeAnalyser::ConvertToByteData(DOMUint8Array* destination_array) {
double scaled_value =
UCHAR_MAX * (db_mag - min_decibels) * range_scale_factor;
@@ -195,7 +195,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/
// Clip to valid range.
destination[i] =
static_cast<unsigned char>(ClampTo(scaled_value, 0, UCHAR_MAX));
@@ -319,6 +325,7 @@ void RealtimeAnalyser::ConvertFloatToDb(DOMFloat32Array* destination_array) {
@@ -320,6 +326,7 @@ void RealtimeAnalyser::ConvertFloatToDb(DOMFloat32Array* destination_array) {
float linear_value = source[i];
double db_mag = audio_utilities::LinearToDecibels(linear_value);
destination[i] = static_cast<float>(db_mag);
@@ -50,7 +50,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h
--- a/third_party/blink/renderer/core/execution_context/execution_context.h
+++ b/third_party/blink/renderer/core/execution_context/execution_context.h
@@ -391,6 +391,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable<ExecutionContext>,
@@ -390,6 +390,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable<ExecutionContext>,
void SetAddressSpace(network::mojom::blink::IPAddressSpace ip_address_space);
HeapObserverSet<ContextLifecycleObserver>& ContextLifecycleObserverSet();
@@ -225,7 +225,7 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc
diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
--- a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
+++ b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
@@ -276,6 +276,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) {
@@ -277,6 +277,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) {
return false;
}
@@ -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
@@ -995,6 +995,8 @@ component("net") {
@@ -990,6 +990,8 @@ component("net") {
"url_request/url_request_http_job.cc",
"url_request/url_request_http_job.h",
"url_request/url_request_interceptor.cc",
@@ -228,7 +228,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/url_request_context_builder.cc
--- a/net/url_request/url_request_context_builder.cc
+++ b/net/url_request/url_request_context_builder.cc
@@ -48,6 +48,7 @@
@@ -47,6 +47,7 @@
#include "net/socket/network_binding_client_socket_factory.h"
#include "net/ssl/ssl_config_service_defaults.h"
#include "net/url_request/static_http_user_agent_settings.h"
@@ -236,7 +236,7 @@ diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/ur
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_job_factory.h"
#include "net/url_request/url_request_throttler_manager.h"
@@ -574,6 +575,8 @@ std::unique_ptr<URLRequestContext> URLRequestContextBuilder::Build() {
@@ -565,6 +566,8 @@ std::unique_ptr<URLRequestContext> URLRequestContextBuilder::Build() {
job_factory->SetProtocolHandler(scheme_handler.first,
std::move(scheme_handler.second));
}
@@ -270,7 +270,7 @@ diff --git a/url/url_constants.h b/url/url_constants.h
diff --git a/url/url_util.cc b/url/url_util.cc
--- a/url/url_util.cc
+++ b/url/url_util.cc
@@ -46,6 +46,7 @@ struct SchemeRegistry {
@@ -47,6 +47,7 @@ struct SchemeRegistry {
std::vector<SchemeWithType> standard_schemes = {
{kHttpsScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION},
{kHttpScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION},
@@ -278,7 +278,7 @@ diff --git a/url/url_util.cc b/url/url_util.cc
// Yes, file URLs can have a hostname, so file URLs should be handled as
// "standard". File URLs never have a port as specified by the SchemeType
// field. Unlike other SCHEME_WITH_HOST schemes, the 'host' in a file
@@ -91,6 +92,7 @@ struct SchemeRegistry {
@@ -92,6 +93,7 @@ struct SchemeRegistry {
kAboutScheme,
kJavaScriptScheme,
kDataScheme,
+389 -84
View File
@@ -21,10 +21,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../inline/BromiteInlineUpdateController.java | 272 ++++++++++++++++++
.../omaha/inline/InlineUpdateController.java | 51 ++++
.../inline/InlineUpdateControllerFactory.java | 21 ++
chrome/browser/endpoint_fetcher/BUILD.gn | 2 +
.../endpoint_fetcher_android.cc | 50 ++++
.../endpoint_fetcher/EndpointFetcher.java | 27 ++
chrome/browser/endpoint_fetcher/BUILD.gn | 32 +++
chrome/browser/endpoint_fetcher/DEPS | 3 +
chrome/browser/endpoint_fetcher/OWNERS | 1 +
.../endpoint_fetcher_android.cc | 183 ++++++++++++
.../endpoint_fetcher/EndpointFetcher.java | 165 +++++++++++
.../EndpointHeaderResponse.java | 31 ++
.../endpoint_fetcher/EndpointResponse.java | 30 ++
.../flags/android/chrome_feature_list.cc | 1 +
.../browser/flags/ChromeFeatureList.java | 1 +
.../strings/android_chrome_strings.grd | 23 +-
@@ -32,11 +35,17 @@ 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 +
24 files changed, 932 insertions(+), 52 deletions(-)
27 files changed, 1267 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
create mode 100644 chrome/browser/endpoint_fetcher/BUILD.gn
create mode 100644 chrome/browser/endpoint_fetcher/DEPS
create mode 100644 chrome/browser/endpoint_fetcher/OWNERS
create mode 100644 chrome/browser/endpoint_fetcher/endpoint_fetcher_android.cc
create mode 100644 chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java
create mode 100644 chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointHeaderResponse.java
create mode 100644 chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointResponse.java
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Bromite-auto-updater.inc
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/Bromite-auto-updater.inc
@@ -55,7 +64,7 @@ diff --git a/build/android/java/templates/BuildConfig.template b/build/android/j
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
@@ -1908,6 +1908,9 @@ if (enable_java_templates && is_android) {
@@ -1910,6 +1910,9 @@ if (enable_java_templates && is_android) {
sources = [ "//build/android/java/templates/BuildConfig.template" ]
defines = []
@@ -68,7 +77,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
@@ -872,6 +872,9 @@ chrome_java_sources = [
@@ -875,6 +875,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",
@@ -76,8 +85,8 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
+ "java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java",
+ "java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java",
"java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java",
"java/src/org/chromium/chrome/browser/omaha/metrics/HistogramUtils.java",
"java/src/org/chromium/chrome/browser/omaha/metrics/TrackingProvider.java",
"java/src/org/chromium/chrome/browser/omaha/metrics/UpdateSuccessMetrics.java",
diff --git a/chrome/android/java/res/xml/about_chrome_preferences.xml b/chrome/android/java/res/xml/about_chrome_preferences.xml
--- a/chrome/android/java/res/xml/about_chrome_preferences.xml
+++ b/chrome/android/java/res/xml/about_chrome_preferences.xml
@@ -318,7 +327,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMen
import org.chromium.base.BuildInfo;
import org.chromium.base.Callback;
@@ -138,8 +139,21 @@ public class UpdateMenuItemHelper {
@@ -146,8 +147,21 @@ public class UpdateMenuItemHelper {
Log.e(TAG, "Failed to launch Activity for: %s", mStatus.updateUrl);
}
break;
@@ -340,7 +349,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMen
default:
return;
}
@@ -188,7 +202,7 @@ public class UpdateMenuItemHelper {
@@ -196,7 +210,7 @@ public class UpdateMenuItemHelper {
mMenuUiState = new MenuUiState();
switch (mStatus.updateState) {
@@ -349,7 +358,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMen
// The badge is hidden if the update menu item has been clicked until there is an
// even newer version of Chrome available.
showBadge |=
@@ -247,6 +261,72 @@ public class UpdateMenuItemHelper {
@@ -255,6 +269,72 @@ public class UpdateMenuItemHelper {
mMenuUiState.itemState.icon = R.drawable.ic_error_24dp_filled;
mMenuUiState.itemState.enabled = false;
break;
@@ -1101,38 +1110,95 @@ new file mode 100644
+ }
+}
diff --git a/chrome/browser/endpoint_fetcher/BUILD.gn b/chrome/browser/endpoint_fetcher/BUILD.gn
--- a/chrome/browser/endpoint_fetcher/BUILD.gn
new file mode 100644
--- /dev/null
+++ b/chrome/browser/endpoint_fetcher/BUILD.gn
@@ -19,6 +19,7 @@ android_library("java") {
sources = [
"java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java",
"java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointResponse.java",
@@ -0,0 +1,32 @@
+# Copyright 2020 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/android/rules.gni")
+import("//third_party/jni_zero/jni_zero.gni")
+
+android_library("java") {
+ deps = [
+ ":jni_headers",
+ "//base:base_java",
+ "//build/android:build_java",
+ "//chrome/browser/profiles/android:java",
+ "//net/android:net_java",
+ "//third_party/androidx:androidx_annotation_annotation_java",
+ "//third_party/jni_zero:jni_zero_java",
+ ]
+ srcjar_deps = [ ":jni_headers" ]
+ sources = [
+ "java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java",
+ "java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointResponse.java",
+ "java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointHeaderResponse.java",
]
}
@@ -26,5 +27,6 @@ generate_jni("jni_headers") {
sources = [
"java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java",
"java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointResponse.java",
+ ]
+}
+
+generate_jni("jni_headers") {
+ sources = [
+ "java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java",
+ "java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointResponse.java",
+ "java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointHeaderResponse.java",
]
}
+ ]
+}
diff --git a/chrome/browser/endpoint_fetcher/DEPS b/chrome/browser/endpoint_fetcher/DEPS
new file mode 100644
--- /dev/null
+++ b/chrome/browser/endpoint_fetcher/DEPS
@@ -0,0 +1,3 @@
+include_rules = [
+ "+components/endpoint_fetcher",
+]
diff --git a/chrome/browser/endpoint_fetcher/OWNERS b/chrome/browser/endpoint_fetcher/OWNERS
new file mode 100644
--- /dev/null
+++ b/chrome/browser/endpoint_fetcher/OWNERS
@@ -0,0 +1 @@
+file://chrome/browser/complex_tasks/OWNERS
diff --git a/chrome/browser/endpoint_fetcher/endpoint_fetcher_android.cc b/chrome/browser/endpoint_fetcher/endpoint_fetcher_android.cc
--- a/chrome/browser/endpoint_fetcher/endpoint_fetcher_android.cc
new file mode 100644
--- /dev/null
+++ b/chrome/browser/endpoint_fetcher/endpoint_fetcher_android.cc
@@ -9,6 +9,7 @@
#include "base/android/jni_string.h"
#include "chrome/browser/endpoint_fetcher/jni_headers/EndpointFetcher_jni.h"
#include "chrome/browser/endpoint_fetcher/jni_headers/EndpointResponse_jni.h"
@@ -0,0 +1,183 @@
+// Copyright 2019 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/endpoint_fetcher/endpoint_fetcher.h"
+
+#include "base/android/callback_android.h"
+#include "base/android/jni_array.h"
+#include "base/android/jni_string.h"
+#include "chrome/browser/endpoint_fetcher/jni_headers/EndpointFetcher_jni.h"
+#include "chrome/browser/endpoint_fetcher/jni_headers/EndpointResponse_jni.h"
+#include "chrome/browser/endpoint_fetcher/jni_headers/EndpointHeaderResponse_jni.h"
#include "chrome/browser/profiles/profile_android.h"
#include "chrome/browser/signin/identity_manager_factory.h"
#include "chrome/common/channel_info.h"
@@ -31,6 +32,24 @@ static void OnEndpointFetcherComplete(
base::android::AttachCurrentThread(),
std::move(endpoint_response->response))));
}
+#include "chrome/browser/profiles/profile_android.h"
+#include "chrome/browser/signin/identity_manager_factory.h"
+#include "chrome/common/channel_info.h"
+#include "components/signin/public/base/consent_level.h"
+#include "components/version_info/channel.h"
+#include "content/public/browser/storage_partition.h"
+
+namespace {
+static void OnEndpointFetcherComplete(
+ const base::android::JavaRef<jobject>& jcaller,
+ // Passing the endpoint_fetcher ensures the endpoint_fetcher's
+ // lifetime extends to the callback and is not destroyed
+ // prematurely (which would result in cancellation of the request).
+ std::unique_ptr<EndpointFetcher> endpoint_fetcher,
+ std::unique_ptr<EndpointResponse> endpoint_response) {
+ base::android::RunObjectCallbackAndroid(
+ jcaller, Java_EndpointResponse_createEndpointResponse(
+ base::android::AttachCurrentThread(),
+ base::android::ConvertUTF8ToJavaString(
+ base::android::AttachCurrentThread(),
+ std::move(endpoint_response->response))));
+}
+
+static void OnEndpointFetcherHeadComplete(
+ const base::android::JavaRef<jobject>& jcaller,
@@ -1151,31 +1217,110 @@ diff --git a/chrome/browser/endpoint_fetcher/endpoint_fetcher_android.cc b/chrom
+ base::android::AttachCurrentThread(),
+ std::move(endpoint_response->redirect_url))));
+}
} // namespace
// TODO(crbug.com/1077537) Create a KeyProvider so
@@ -113,6 +132,7 @@ static void JNI_EndpointFetcher_NativeFetchWithNoAuth(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& jprofile,
const base::android::JavaParamRef<jstring>& jurl,
+} // namespace
+
+// TODO(crbug.com/1077537) Create a KeyProvider so
+// we can have one centralized API.
+
+static void JNI_EndpointFetcher_NativeFetchOAuth(
+ JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& jprofile,
+ const base::android::JavaParamRef<jstring>& joauth_consumer_name,
+ const base::android::JavaParamRef<jstring>& jurl,
+ const base::android::JavaParamRef<jstring>& jhttps_method,
+ const base::android::JavaParamRef<jstring>& jcontent_type,
+ const base::android::JavaParamRef<jobjectArray>& jscopes,
+ const base::android::JavaParamRef<jstring>& jpost_data,
+ jlong jtimeout,
+ jint jannotation_hash_code,
+ const base::android::JavaParamRef<jobject>& jcallback) {
+ std::vector<std::string> scopes;
+ base::android::AppendJavaStringArrayToStringVector(env, jscopes, &scopes);
+ auto endpoint_fetcher = std::make_unique<EndpointFetcher>(
+ ProfileAndroid::FromProfileAndroid(jprofile)
+ ->GetDefaultStoragePartition()
+ ->GetURLLoaderFactoryForBrowserProcess(),
+ base::android::ConvertJavaStringToUTF8(env, joauth_consumer_name),
+ GURL(base::android::ConvertJavaStringToUTF8(env, jurl)),
+ base::android::ConvertJavaStringToUTF8(env, jhttps_method),
+ base::android::ConvertJavaStringToUTF8(env, jcontent_type), scopes,
+ jtimeout, base::android::ConvertJavaStringToUTF8(env, jpost_data),
+ net::NetworkTrafficAnnotationTag::FromJavaAnnotation(
+ jannotation_hash_code),
+ IdentityManagerFactory::GetForProfile(
+ ProfileAndroid::FromProfileAndroid(jprofile)),
+ // TODO(crbug.com/1466445): ConsentLevel::kSync is deprecated and should
+ // be removed. See ConsentLevel::kSync documentation for details.
+ signin::ConsentLevel::kSync);
+ auto* const endpoint_fetcher_ptr = endpoint_fetcher.get();
+ endpoint_fetcher_ptr->Fetch(
+ base::BindOnce(&OnEndpointFetcherComplete,
+ base::android::ScopedJavaGlobalRef<jobject>(jcallback),
+ // unique_ptr endpoint_fetcher is passed until the callback
+ // to ensure its lifetime across the request.
+ std::move(endpoint_fetcher)));
+}
+
+static void JNI_EndpointFetcher_NativeFetchChromeAPIKey(
+ JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& jprofile,
+ const base::android::JavaParamRef<jstring>& jurl,
+ const base::android::JavaParamRef<jstring>& jhttps_method,
+ const base::android::JavaParamRef<jstring>& jcontent_type,
+ const base::android::JavaParamRef<jstring>& jpost_data,
+ jlong jtimeout,
+ const base::android::JavaParamRef<jobjectArray>& jheaders,
+ jint jannotation_hash_code,
+ const base::android::JavaParamRef<jobject>& jcallback) {
+ std::vector<std::string> headers;
+ base::android::AppendJavaStringArrayToStringVector(env, jheaders, &headers);
+ auto endpoint_fetcher = std::make_unique<EndpointFetcher>(
+ ProfileAndroid::FromProfileAndroid(jprofile)
+ ->GetDefaultStoragePartition()
+ ->GetURLLoaderFactoryForBrowserProcess(),
+ GURL(base::android::ConvertJavaStringToUTF8(env, jurl)),
+ base::android::ConvertJavaStringToUTF8(env, jhttps_method),
+ base::android::ConvertJavaStringToUTF8(env, jcontent_type), jtimeout,
+ base::android::ConvertJavaStringToUTF8(env, jpost_data), headers,
+ net::NetworkTrafficAnnotationTag::FromJavaAnnotation(
+ jannotation_hash_code),
+ chrome::GetChannel() == version_info::Channel::STABLE);
+ auto* const endpoint_fetcher_ptr = endpoint_fetcher.get();
+ endpoint_fetcher_ptr->PerformRequest(
+ base::BindOnce(&OnEndpointFetcherComplete,
+ base::android::ScopedJavaGlobalRef<jobject>(jcallback),
+ // unique_ptr endpoint_fetcher is passed until the callback
+ // to ensure its lifetime across the request.
+ std::move(endpoint_fetcher)),
+ nullptr);
+}
+
+static void JNI_EndpointFetcher_NativeFetchWithNoAuth(
+ JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& jprofile,
+ const base::android::JavaParamRef<jstring>& jurl,
+ jlong jtimeout, jboolean intercept_redirect,
jint jannotation_hash_code,
const base::android::JavaParamRef<jobject>& jcallback) {
auto endpoint_fetcher = std::make_unique<EndpointFetcher>(
@@ -120,6 +140,9 @@ static void JNI_EndpointFetcher_NativeFetchWithNoAuth(
->GetDefaultStoragePartition()
->GetURLLoaderFactoryForBrowserProcess(),
GURL(base::android::ConvertJavaStringToUTF8(env, jurl)),
+ jint jannotation_hash_code,
+ const base::android::JavaParamRef<jobject>& jcallback) {
+ auto endpoint_fetcher = std::make_unique<EndpointFetcher>(
+ ProfileAndroid::FromProfileAndroid(jprofile)
+ ->GetDefaultStoragePartition()
+ ->GetURLLoaderFactoryForBrowserProcess(),
+ GURL(base::android::ConvertJavaStringToUTF8(env, jurl)),
+ "GET",
+ jtimeout,
+ intercept_redirect,
net::NetworkTrafficAnnotationTag::FromJavaAnnotation(
jannotation_hash_code));
auto* const endpoint_fetcher_ptr = endpoint_fetcher.get();
@@ -131,3 +154,30 @@ static void JNI_EndpointFetcher_NativeFetchWithNoAuth(
std::move(endpoint_fetcher)),
nullptr);
}
+ net::NetworkTrafficAnnotationTag::FromJavaAnnotation(
+ jannotation_hash_code));
+ auto* const endpoint_fetcher_ptr = endpoint_fetcher.get();
+ endpoint_fetcher_ptr->PerformRequest(
+ base::BindOnce(&OnEndpointFetcherComplete,
+ base::android::ScopedJavaGlobalRef<jobject>(jcallback),
+ // unique_ptr endpoint_fetcher is passed until the callback
+ // to ensure its lifetime across the request.
+ std::move(endpoint_fetcher)),
+ nullptr);
+}
+
+static void JNI_EndpointFetcher_NativeHeadWithNoAuth(
+ JNIEnv* env,
@@ -1204,12 +1349,116 @@ diff --git a/chrome/browser/endpoint_fetcher/endpoint_fetcher_android.cc b/chrom
+ nullptr);
+}
diff --git a/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java b/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java
--- a/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java
new file mode 100644
--- /dev/null
+++ b/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java
@@ -104,6 +104,24 @@ public final class EndpointFetcher {
callback);
}
@@ -0,0 +1,165 @@
+// Copyright 2019 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.endpoint_fetcher;
+
+import androidx.annotation.MainThread;
+
+import org.jni_zero.NativeMethods;
+
+import org.chromium.base.Callback;
+import org.chromium.chrome.browser.profiles.Profile;
+import org.chromium.net.NetworkTrafficAnnotationTag;
+
+/**
+ * EndpointFetcher uses native EndpointFetcher to call a HTTPS endpoint and return
+ * the response. The call to native EndpointFetcher is achieved over a static call
+ * over JNI. The native EndpointFetcher is created during the static call and
+ * destroyed in the callback function.
+ * EndpointFetcher currently doesn't support incognito mode.
+ * If the request times out an empty response will be returned. There will also
+ * be an error code indicating timeout once more detailed error messaging is added
+ * TODO(crbug.com/993393).
+ */
+public final class EndpointFetcher {
+ private EndpointFetcher() {}
+
+ /**
+ * Calls an endpoint using OAuth and returns the response via a callback
+ * @param callback callback function response is returned in
+ * @param profile profile via which the endpoint is called
+ * @param oathConsumerName consumer name for OAuth
+ * @param url endpoint URL called
+ * @param httpsMethod the HTTPS method used e.g. "GET" or "POST"
+ * @param contentType the content type e.g. "application/json"
+ * @param scopes scopes used as part of authentication
+ * @param postData data for a "POST" request
+ * @param timeout time after which the request will terminate in the event a response hasn't
+ * been received
+ */
+ @MainThread
+ public static void fetchUsingOAuth(
+ Callback<EndpointResponse> callback,
+ Profile profile,
+ String oathConsumerName,
+ String url,
+ String httpsMethod,
+ String contentType,
+ String[] scopes,
+ String postData,
+ long timeout,
+ NetworkTrafficAnnotationTag annotation) {
+ // EndpointFetcher currently does not support incognito mode
+ assert !profile.isOffTheRecord();
+ EndpointFetcherJni.get()
+ .nativeFetchOAuth(
+ profile,
+ oathConsumerName,
+ url,
+ httpsMethod,
+ contentType,
+ scopes,
+ postData,
+ timeout,
+ annotation.getHashCode(),
+ callback);
+ }
+
+ /**
+ * Calls an endpoint using Chrome API Key returns the response via a callback
+ * @param callback to pass the response back in
+ * @param profile via which the endpoint is called
+ * @param url endpoint URL called
+ * @param httpsMethod the HTTPS method used e.g. "GET" or "POST"
+ * @param contentType the content type e.g. "application/json"
+ * @param postData data for a "POST" request
+ * @param timeout time after which the request will terminate in the event a response hasn't
+ * been received
+ * @param headers headers for the request. Key/value pairs are stored sequentially in the array.
+ */
+ @MainThread
+ public static void fetchUsingChromeAPIKey(
+ Callback<EndpointResponse> callback,
+ Profile profile,
+ String url,
+ String httpsMethod,
+ String contentType,
+ String postData,
+ long timeout,
+ String[] headers,
+ NetworkTrafficAnnotationTag annotation) {
+ // EndpointFetcher currently does not support incognito mode
+ // assert !profile.isOffTheRecord();
+ EndpointFetcherJni.get()
+ .nativeFetchChromeAPIKey(
+ profile,
+ url,
+ httpsMethod,
+ contentType,
+ postData,
+ timeout,
+ headers,
+ annotation.getHashCode(),
+ callback);
+ }
+
+ @MainThread
+ public static void nativeHeadWithNoAuth(
+ Callback<EndpointHeaderResponse> callback, Profile profile,
@@ -1228,17 +1477,38 @@ diff --git a/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browse
+ profile, url, timeout, allow_redirect, annotation.getHashCode(), callback);
+ }
+
@NativeMethods
public interface Natives {
void nativeFetchOAuth(
@@ -132,7 +150,16 @@ public final class EndpointFetcher {
void nativeFetchWithNoAuth(
Profile profile,
String url,
+ @NativeMethods
+ public interface Natives {
+ void nativeFetchOAuth(
+ Profile profile,
+ String oathConsumerName,
+ String url,
+ String httpsMethod,
+ String contentType,
+ String[] scopes,
+ String postData,
+ long timeout,
+ int annotationHashCode,
+ Callback<EndpointResponse> callback);
+
+ void nativeFetchChromeAPIKey(
+ Profile profile,
+ String url,
+ String httpsMethod,
+ String contentType,
+ String postData,
+ long timeout,
+ String[] headers,
+ int annotationHashCode,
+ Callback<EndpointResponse> callback);
+
+ void nativeFetchWithNoAuth(
+ Profile profile,
+ String url,
+ long timeout,
+ boolean allow_redirect,
int annotationHashCode,
Callback<EndpointResponse> callback);
+ int annotationHashCode,
+ Callback<EndpointResponse> callback);
+ void nativeHeadWithNoAuth(
+ Profile profile,
+ String url,
@@ -1246,8 +1516,8 @@ diff --git a/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browse
+ boolean allow_redirect,
+ int annotationHashCode,
+ Callback<EndpointHeaderResponse> callback);
}
}
+ }
+}
diff --git a/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointHeaderResponse.java b/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointHeaderResponse.java
new file mode 100644
--- /dev/null
@@ -1284,32 +1554,67 @@ new file mode 100644
+ return new EndpointHeaderResponse(response, redirectUrl);
+ }
+}
diff --git a/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointResponse.java b/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointResponse.java
new file mode 100644
--- /dev/null
+++ b/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointResponse.java
@@ -0,0 +1,30 @@
+// Copyright 2019 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.endpoint_fetcher;
+
+import org.jni_zero.CalledByNative;
+
+/** Encapsulates the response from the {@Link EndpointFetcher} */
+public class EndpointResponse {
+ private final String mResponseString;
+
+ /**
+ * Create the EndpointResponse
+ * @param responseString the response string acquired from the endpoint
+ */
+ public EndpointResponse(String responseString) {
+ mResponseString = responseString;
+ }
+
+ /** Response string acquired from calling an endpoint */
+ public String getResponseString() {
+ return mResponseString;
+ }
+
+ @CalledByNative
+ private static EndpointResponse createEndpointResponse(String response) {
+ return new EndpointResponse(response);
+ }
+}
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
@@ -264,6 +264,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -234,6 +234,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kPreconnectOnTabCreation,
&kPriceChangeModule,
&kPwaRestoreUi,
+ &kInlineUpdateFlow,
&kBookmarksImprovedSaveFlow,
&kBookmarksRefresh,
&kPwaUniversalInstallUi,
&kOmahaMinSdkVersionAndroid,
&kShortCircuitUnfocusAnimation,
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
@@ -303,6 +303,7 @@ public abstract class ChromeFeatureList {
@@ -313,6 +313,7 @@ public abstract class ChromeFeatureList {
"IncognitoReauthenticationForAndroid";
public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot";
public static final String INFOBAR_SCROLL_OPTIMIZATION = "InfobarScrollOptimization";
+ public static final String INLINE_UPDATE_FLOW = "InlineUpdateFlow";
public static final String INSTALLABLE_AMBIENT_BADGE_MESSAGE = "InstallableAmbientBadgeMessage";
public static final String INSTANCE_SWITCHER = "InstanceSwitcher";
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 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
@@ -2012,6 +2012,12 @@ Your Google account may have other forms of browsing history like searches and a
@@ -2038,6 +2038,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>
@@ -1322,7 +1627,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]">
@@ -3640,7 +3646,10 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3663,7 +3669,10 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<!-- Main menu items -->
<message name="IDS_MENU_UPDATE" desc="Menu item for updating chrome. [CHAR_LIMIT=24]">
@@ -1334,7 +1639,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
@@ -3651,6 +3660,18 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3674,6 +3683,18 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_MENU_UPDATE_UNSUPPORTED_SUMMARY_DEFAULT" desc="Summary string for update menu item explaining that the Android version on the device is unsupported. [CHAR_LIMIT=30]">
Android version is unsupported
</message>
@@ -48,11 +48,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../content/browser/ruleset_service.h | 7 +-
.../content/browser/ruleset_version.h | 4 +
.../unindexed_ruleset_stream_generator.cc | 3 +
.../browser/verified_ruleset_dealer.cc | 4 +
.../browser/verified_ruleset_dealer.cc | 3 +
.../browser/subresource_filter_features.cc | 116 +-------
.../core/common/indexed_ruleset.cc | 5 +-
.../Bromite-subresource-adblocker.inc | 3 +
40 files changed, 1254 insertions(+), 127 deletions(-)
40 files changed, 1253 insertions(+), 127 deletions(-)
create mode 100644 chrome/android/java/res/layout/adblock_editor.xml
create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
@@ -68,8 +68,8 @@ 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
@@ -304,6 +304,7 @@ if (current_toolchain == default_toolchain) {
"//chrome/android/modules/image_editor/provider:java",
@@ -302,6 +302,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",
+ "//chrome/browser/endpoint_fetcher: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
@@ -434,6 +434,7 @@ chrome_java_resources = [
@@ -429,6 +429,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",
@@ -638,6 +639,7 @@ chrome_java_resources = [
@@ -631,6 +632,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
@@ -961,6 +961,8 @@ chrome_java_sources = [
@@ -964,6 +964,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
@@ -72,6 +72,11 @@ found in the LICENSE file.
@@ -78,6 +78,11 @@ found in the LICENSE file.
android:key="safety_check"
android:order="12"
android:order="13"
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="13"
android:order="14"
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
new file mode 100644
--- /dev/null
@@ -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
@@ -14917,6 +14917,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
@@ -15005,6 +15005,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
Never show this again.
</message>
@@ -511,7 +511,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
@@ -1138,6 +1138,27 @@ BrowserProcessImpl::component_updater() {
@@ -1147,6 +1147,27 @@ BrowserProcessImpl::component_updater() {
return component_updater_.get();
}
@@ -542,7 +542,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h
--- a/chrome/browser/browser_process_impl.h
+++ b/chrome/browser/browser_process_impl.h
@@ -210,6 +210,7 @@ class BrowserProcessImpl : public BrowserProcess,
@@ -209,6 +209,7 @@ class BrowserProcessImpl : public BrowserProcess,
#endif
component_updater::ComponentUpdateService* component_updater() override;
@@ -550,7 +550,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc
MediaFileSystemRegistry* media_file_system_registry() override;
WebRtcLogUploader* webrtc_log_uploader() override;
network_time::NetworkTimeTracker* network_time_tracker() override;
@@ -406,6 +407,7 @@ class BrowserProcessImpl : public BrowserProcess,
@@ -405,6 +406,7 @@ class BrowserProcessImpl : public BrowserProcess,
// to concerns over integrity of data shared between profiles,
// but some users of component updater only install per-user.
std::unique_ptr<component_updater::ComponentUpdateService> component_updater_;
@@ -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
@@ -448,6 +448,9 @@ StartupProfileInfo CreateInitialProfile(
@@ -445,6 +445,9 @@ StartupProfileInfo CreateInitialProfile(
// missing code in the above test.
CHECK(profile_info.profile) << "Cannot get default profile.";
@@ -574,15 +574,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows
diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
--- a/chrome/browser/flags/BUILD.gn
+++ b/chrome/browser/flags/BUILD.gn
@@ -23,6 +23,7 @@ android_library("java") {
"android/java/src/org/chromium/chrome/browser/flags/StringCachedFieldTrialParameter.java",
"android/java/src/org/chromium/chrome/browser/flags/ValuesOverridden.java",
"android/java/src/org/chromium/chrome/browser/flags/ValuesReturned.java",
+ "android/java/src/org/chromium/chrome/browser/flags/AdBlockNativeGateway.java",
]
deps = [
"//base:base_java",
@@ -44,6 +45,7 @@ android_library("java") {
@@ -33,6 +33,7 @@ android_library("java") {
generate_jni("jni_headers") {
sources = [ "android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java" ]
sources += [
@@ -590,7 +582,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java",
"android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java",
]
@@ -58,6 +60,7 @@ static_library("flags_android") {
@@ -47,6 +48,7 @@ static_library("flags_android") {
"android/chrome_session_state.cc",
"android/chrome_session_state.h",
]
@@ -598,6 +590,14 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
deps = [
":jni_headers",
"//base",
@@ -71,6 +73,7 @@ robolectric_library("flags_junit_tests") {
"android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlagsAnnotationUnitTest.java",
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureListWithProcessorUnitTest.java",
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureListWithoutProcessorUnitTest.java",
+ "android/java/src/org/chromium/chrome/browser/flags/AdBlockNativeGateway.java",
]
deps = [
":java",
diff --git a/chrome/browser/flags/android/adblock_native_gateway.cc b/chrome/browser/flags/android/adblock_native_gateway.cc
new file mode 100755
--- /dev/null
@@ -672,7 +672,7 @@ new file mode 100755
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
@@ -602,6 +602,14 @@ SystemNetworkContextManager::~SystemNetworkContextManager() {
@@ -638,6 +638,14 @@ SystemNetworkContextManager::~SystemNetworkContextManager() {
void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) {
StubResolverConfigReader::RegisterPrefs(registry);
@@ -730,7 +730,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
@@ -2659,6 +2659,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";
@@ -745,7 +745,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp
--- a/components/browser_ui/strings/android/site_settings.grdp
+++ b/components/browser_ui/strings/android/site_settings.grdp
@@ -371,6 +371,9 @@
@@ -362,6 +362,9 @@
<message name="IDS_INTRUSIVE_ADS_INFORMATION" desc="The extra information at the top of the Site Details page when the site tends to show intrusive ads">
This site shows intrusive or misleading ads
</message>
@@ -771,12 +771,12 @@ diff --git a/components/component_updater/BUILD.gn b/components/component_update
"component_updater_service.cc",
"component_updater_service.h",
"component_updater_service_internal.h",
@@ -47,6 +53,7 @@ static_library("component_updater") {
"//components/prefs",
@@ -48,6 +54,7 @@ static_library("component_updater") {
"//components/update_client",
"//components/version_info",
"//net",
+ "//services/network/public/mojom",
"//third_party/boringssl:boringssl",
"//third_party/boringssl",
"//ui/base",
"//url",
diff --git a/components/component_updater/adblock_updater_service.cc b/components/component_updater/adblock_updater_service.cc
@@ -1554,8 +1554,8 @@ new file mode 100644
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
--- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
+++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
@@ -15,6 +15,9 @@
#include "base/trace_event/trace_conversion_helper.h"
@@ -14,6 +14,9 @@
#include "base/metrics/histogram_macros.h"
#include "base/trace_event/trace_event.h"
#include "base/trace_event/traced_value.h"
+#include "components/content_settings/core/common/content_settings_types.h"
@@ -1564,7 +1564,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f
#include "components/subresource_filter/content/browser/activation_state_computing_navigation_throttle.h"
#include "components/subresource_filter/content/browser/async_document_subresource_filter.h"
#include "components/subresource_filter/content/browser/content_subresource_filter_web_contents_helper.h"
@@ -149,6 +152,7 @@ ContentSubresourceFilterThrottleManager::
@@ -148,6 +151,7 @@ ContentSubresourceFilterThrottleManager::
profile_interaction_manager_(
std::make_unique<subresource_filter::ProfileInteractionManager>(
profile_context)),
@@ -1572,7 +1572,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f
web_contents_helper_(web_contents_helper) {}
ContentSubresourceFilterThrottleManager::
@@ -668,6 +672,17 @@ ContentSubresourceFilterThrottleManager::
@@ -667,6 +671,17 @@ ContentSubresourceFilterThrottleManager::
throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(),
ad_tagging_state);
}
@@ -1708,8 +1708,8 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
IndexAndWriteRulesetResult::FAILED_PARSING_UNINDEXED_RULESET);
return IndexedRulesetVersion();
@@ -328,8 +346,12 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
indexed_ruleset_version_dir, unindexed_ruleset_info.license_path,
indexer.data(), indexer.size());
WriteRuleset(indexed_ruleset_version_dir,
unindexed_ruleset_info.license_path, indexer.data());
RecordIndexAndWriteRulesetResult(result);
- if (result != IndexAndWriteRulesetResult::SUCCESS)
+ if (result != IndexAndWriteRulesetResult::SUCCESS) {
@@ -1736,11 +1736,11 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
-
publisher_->TryOpenAndSetRulesetFile(
file_path, version.checksum,
base::BindOnce(&RulesetService::OnRulesetSet, AsWeakPtr()));
base::BindOnce(&RulesetService::OnRulesetSet,
diff --git a/components/subresource_filter/content/browser/ruleset_service.h b/components/subresource_filter/content/browser/ruleset_service.h
--- a/components/subresource_filter/content/browser/ruleset_service.h
+++ b/components/subresource_filter/content/browser/ruleset_service.h
@@ -182,7 +182,7 @@ class RulesetService : public base::SupportsWeakPtr<RulesetService> {
@@ -182,7 +182,7 @@ class RulesetService {
//
// Virtual so that it can be mocked out in tests.
virtual void IndexAndStoreAndPublishRulesetIfNeeded(
@@ -1749,7 +1749,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.h b/c
// Get the ruleset version associated with the current local_state_.
IndexedRulesetVersion GetMostRecentlyIndexedVersion() const;
@@ -215,6 +215,11 @@ class RulesetService : public base::SupportsWeakPtr<RulesetService> {
@@ -215,6 +215,11 @@ class RulesetService {
const base::FilePath& indexed_ruleset_base_dir,
const UnindexedRulesetInfo& unindexed_ruleset_info);
@@ -1798,15 +1798,7 @@ diff --git a/components/subresource_filter/content/browser/unindexed_ruleset_str
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
@@ -11,6 +11,7 @@
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "base/location.h"
+#include "base/logging.h"
#include "base/metrics/histogram_macros.h"
#include "base/notreached.h"
#include "base/task/sequenced_task_runner.h"
@@ -39,6 +40,9 @@ RulesetFilePtr VerifiedRulesetDealer::OpenAndSetRulesetFile(
@@ -38,6 +38,9 @@ RulesetFilePtr VerifiedRulesetDealer::OpenAndSetRulesetFile(
TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("loading"),
"VerifiedRulesetDealer::OpenAndSetRulesetFile", "file_valid",
file->IsValid());
@@ -1819,8 +1811,8 @@ diff --git a/components/subresource_filter/content/browser/verified_ruleset_deal
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
@@ -54,72 +54,7 @@ class CommaSeparatedStrings {
const std::vector<base::StringPiece> pieces_;
@@ -55,72 +55,7 @@ class CommaSeparatedStrings {
const std::vector<std::string_view> pieces_;
};
-std::string TakeVariationParamOrReturnEmpty(
@@ -1835,7 +1827,7 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu
-}
-
-mojom::ActivationLevel ParseActivationLevel(
- const base::StringPiece activation_level) {
- const std::string_view activation_level) {
- if (base::EqualsCaseInsensitiveASCII(activation_level,
- kActivationLevelEnabled))
- return mojom::ActivationLevel::kEnabled;
@@ -1845,7 +1837,7 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu
- return mojom::ActivationLevel::kDisabled;
-}
-
-ActivationScope ParseActivationScope(const base::StringPiece activation_scope) {
-ActivationScope ParseActivationScope(const std::string_view activation_scope) {
- if (base::EqualsCaseInsensitiveASCII(activation_scope,
- kActivationScopeAllSites))
- return ActivationScope::ALL_SITES;
@@ -1881,7 +1873,7 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu
- return value < 1 ? value : 1;
-}
-
-int ParseInt(const base::StringPiece value) {
-int ParseInt(const std::string_view value) {
- int result = 0;
- base::StringToInt(value, &result);
- return result;
@@ -1893,7 +1885,7 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu
// If ad tagging is enabled, turn on the dryrun automatically.
bool ad_tagging_enabled = base::FeatureList::IsEnabled(kAdTagging);
const struct {
@@ -127,23 +62,16 @@ std::vector<Configuration> FillEnabledPresetConfigurations(
@@ -128,23 +63,16 @@ std::vector<Configuration> FillEnabledPresetConfigurations(
bool enabled_by_default;
Configuration (*factory_method)();
} kAvailablePresetConfigurations[] = {
@@ -1919,7 +1911,7 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu
enabled_configurations.push_back(available_preset.factory_method());
}
}
@@ -151,46 +79,10 @@ std::vector<Configuration> FillEnabledPresetConfigurations(
@@ -152,46 +80,10 @@ std::vector<Configuration> FillEnabledPresetConfigurations(
return enabled_configurations;
}
@@ -1978,15 +1970,14 @@ diff --git a/components/subresource_filter/core/common/indexed_ruleset.cc b/comp
#include "base/metrics/histogram_macros.h"
#include "base/trace_event/trace_event.h"
#include "components/subresource_filter/core/common/first_party_origin.h"
@@ -37,8 +38,10 @@ VerifyStatus GetVerifyStatus(const uint8_t* buffer,
@@ -36,7 +37,9 @@ VerifyStatus GetVerifyStatus(base::span<const uint8_t> buffer,
// least once. The verifier detects a subset of the errors detected by the
// checksum, and is unneeded once expected_checksum is consistently nonzero.
flatbuffers::Verifier verifier(buffer, size);
flatbuffers::Verifier verifier(buffer.data(), buffer.size());
- if (expected_checksum != 0 && expected_checksum != LocalGetChecksum(buffer)) {
+ int local_checksum = LocalGetChecksum(buffer, size);
+ LOG(INFO) << "GetVerifyStatus: expected checksum = 0x" << std::hex << expected_checksum << ", local checksum = 0x" << std::hex << local_checksum;
if (expected_checksum != 0 &&
- expected_checksum != LocalGetChecksum(buffer, size)) {
+ expected_checksum != local_checksum) {
+ if (expected_checksum != 0 && expected_checksum != local_checksum) {
return flat::VerifyIndexedRulesetBuffer(verifier)
? VerifyStatus::kChecksumFailVerifierPass
: VerifyStatus::kChecksumFailVerifierFail;
@@ -250,7 +250,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
@@ -126,7 +126,7 @@ void ContentSettingsRegistry::Init() {
@@ -131,7 +131,7 @@ void ContentSettingsRegistry::Init() {
WebsiteSettingsInfo::SYNCABLE,
/*allowlisted_primary_schemes=*/
{kChromeUIScheme, kChromeDevToolsScheme, kExtensionScheme},
@@ -79,7 +79,7 @@ diff --git a/services/network/cors/preflight_result.cc b/services/network/cors/p
diff --git a/services/network/network_context.cc b/services/network/network_context.cc
--- a/services/network/network_context.cc
+++ b/services/network/network_context.cc
@@ -1136,6 +1136,8 @@ void NetworkContext::ClearHttpCache(base::Time start_time,
@@ -1179,6 +1179,8 @@ void NetworkContext::ClearHttpCache(base::Time start_time,
base::BindOnce(&NetworkContext::OnHttpCacheCleared,
base::Unretained(this), std::move(callback))));
@@ -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
@@ -638,6 +638,7 @@ template("chrome_common_apk_or_module_tmpl") {
@@ -641,6 +641,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" ]
@@ -27,7 +27,7 @@ Require: bromite-build-utils.patch
.../site_settings_page_util.ts | 55 +++
chrome/browser/ui/BUILD.gn | 1 +
.../controls/rich_controls_container_view.h | 7 +
.../ui/views/page_info/page_info_main_view.cc | 27 +-
.../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 +
.../page_info/permission_toggle_row_view.cc | 163 ++++++-
@@ -45,7 +45,7 @@ Require: bromite-build-utils.patch
.../ContentSettingsResources.java | 14 +-
.../site_settings/SingleCategorySettings.java | 50 ++-
.../site_settings/SingleWebsiteSettings.java | 58 ++-
.../site_settings/SiteSettings.java | 14 +-
.../site_settings/SiteSettings.java | 30 +-
.../site_settings/SiteSettingsCategory.java | 18 +-
.../site_settings/SiteSettingsDelegate.java | 2 +
.../TriStateSiteSettingsPreference.java | 13 +-
@@ -72,7 +72,7 @@ Require: bromite-build-utils.patch
.../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.h | 4 +-
.../core/common/content_settings_types.mojom | 4 +-
.../renderer/content_settings_agent_impl.cc | 33 ++
.../renderer/content_settings_agent_impl.h | 5 +
.../PageInfoPermissionsController.java | 9 +
@@ -84,7 +84,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 +
73 files changed, 1821 insertions(+), 76 deletions(-)
73 files changed, 1829 insertions(+), 85 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
@@ -109,7 +109,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 =
@@ -202,7 +206,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
@@ -199,7 +203,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
@Override
public boolean isHelpAndFeedbackEnabled() {
@@ -118,7 +118,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C
}
@Override
@@ -315,6 +319,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
@@ -312,6 +316,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
return PrivacySandboxBridge.getFirstPartySetOwner(memberOrigin);
}
@@ -151,7 +151,7 @@ diff --git a/chrome/browser/installable/installed_webapp_bridge.cc b/chrome/brow
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
@@ -1326,4 +1326,5 @@
@@ -1390,4 +1390,5 @@
</settings-subpage>
</template>
</template>
@@ -263,7 +263,7 @@ 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,
@@ -136,6 +137,7 @@ function addPrivacyChildRoutes(r: Partial<SettingsRoutes>) {
@@ -140,6 +141,7 @@ function addPrivacyChildRoutes(r: Partial<SettingsRoutes>) {
r.SITE_SETTINGS_STORAGE_ACCESS =
r.SITE_SETTINGS.createChild('storageAccess');
}
@@ -338,7 +338,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d
private getAllowOptionForCategory_(): ContentSetting {
switch (this.category) {
case ContentSettingsTypes.ADS:
@@ -161,6 +176,8 @@ export class SettingsCategoryDefaultRadioGroupElement extends
@@ -163,6 +178,8 @@ export class SettingsCategoryDefaultRadioGroupElement extends
// "Ask" vs "Blocked".
return ContentSetting.ASK;
default:
@@ -347,7 +347,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d
assertNotReached('Invalid category: ' + this.category);
}
}
@@ -185,6 +202,7 @@ export class SettingsCategoryDefaultRadioGroupElement extends
@@ -187,6 +204,7 @@ export class SettingsCategoryDefaultRadioGroupElement extends
/** @type {!ContentSetting} */ (this.getAllowOptionForCategory_());
this.browserProxy.setDefaultValueForContentType(
this.category,
@@ -355,7 +355,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d
this.categoryEnabled_ ? allowOption : ContentSetting.BLOCK);
}
@@ -216,7 +234,9 @@ export class SettingsCategoryDefaultRadioGroupElement extends
@@ -218,7 +236,9 @@ export class SettingsCategoryDefaultRadioGroupElement extends
}
const enabled = this.computeIsSettingEnabled(update.setting);
@@ -369,7 +369,7 @@ 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
@@ -279,4 +279,5 @@
@@ -289,4 +289,5 @@
label="$i18n{siteSettingsAutoPictureInPicture}">
</site-details-permission>
</template>
@@ -588,7 +588,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_
{
route: routes.SITE_SETTINGS_ADS,
id: Id.ADS,
@@ -371,10 +371,36 @@ function getCategoryItemMap(): Map<ContentSettingsTypes, CategoryListItem> {
@@ -389,10 +389,36 @@ function getCategoryItemMap(): Map<ContentSettingsTypes, CategoryListItem> {
disabledLabel: 'trackingProtectionLinkRowSubLabel',
});
}
@@ -625,7 +625,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_
function buildItemListFromIds(orderedIdList: ContentSettingsTypes[]):
CategoryListItem[] {
const map = getCategoryItemMap();
@@ -465,7 +491,7 @@ export class SettingsSiteSettingsPageElement extends
@@ -484,7 +510,7 @@ export class SettingsSiteSettingsPageElement extends
Id.IMAGES,
Id.POPUPS,
]),
@@ -692,7 +692,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|.
@@ -90,6 +138,13 @@ export function getLocalizationStringForContentType(
@@ -93,6 +141,13 @@ export function getLocalizationStringForContentType(
case ContentSettingsTypes.SITE_DATA:
return null;
default:
@@ -709,7 +709,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
@@ -2047,6 +2047,7 @@ static_library("ui") {
@@ -2068,6 +2068,7 @@ static_library("ui") {
"//components/commerce/core/mojom:mojo_bindings",
"//components/commerce/core/webui",
"//components/endpoint_fetcher:endpoint_fetcher",
@@ -720,7 +720,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
@@ -42,6 +42,13 @@ class RichControlsContainerView : public views::FlexLayoutView {
@@ -43,6 +43,13 @@ class RichControlsContainerView : public views::FlexLayoutView {
return AddChildView(std::move(control_view));
}
@@ -737,7 +737,7 @@ diff --git a/chrome/browser/ui/views/controls/rich_controls_container_view.h b/c
diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/browser/ui/views/page_info/page_info_main_view.cc
--- a/chrome/browser/ui/views/page_info/page_info_main_view.cc
+++ b/chrome/browser/ui/views/page_info/page_info_main_view.cc
@@ -49,6 +49,7 @@
@@ -50,6 +50,7 @@
#include "ui/views/controls/separator.h"
#include "ui/views/layout/box_layout.h"
#include "ui/views/layout/flex_layout.h"
@@ -745,7 +745,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b
#include "ui/views/view_class_properties.h"
#if BUILDFLAG(FULL_SAFE_BROWSING)
@@ -243,8 +244,20 @@ void PageInfoMainView::SetPermissionInfo(
@@ -244,8 +245,20 @@ void PageInfoMainView::SetPermissionInfo(
scroll_view->SetDrawOverflowIndicator(false);
auto* content_view =
scroll_view->SetContents(std::make_unique<views::View>());
@@ -768,7 +768,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b
content_view->SetID(PageInfoViewFactory::VIEW_ID_PAGE_INFO_PERMISSION_VIEW);
content_view->SetProperty(views::kElementIdentifierKey,
kPermissionsElementId);
@@ -259,17 +272,24 @@ void PageInfoMainView::SetPermissionInfo(
@@ -260,17 +273,24 @@ void PageInfoMainView::SetPermissionInfo(
}
}
@@ -793,10 +793,11 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b
// The view takes ownership of the object info.
auto object_view = std::make_unique<ChosenObjectView>(
std::move(object),
@@ -280,6 +300,9 @@ void PageInfoMainView::SetPermissionInfo(
@@ -281,6 +301,10 @@ void PageInfoMainView::SetPermissionInfo(
content_view->AddChildView(std::move(object_view)));
}
+ table_layout->AddRows(/*n=*/1, views::TableLayout::kFixedSize);
+ if (++count % 2 == 0)
+ content_view->AddChildView(std::make_unique<views::View>());
+
@@ -815,7 +816,7 @@ 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"
@@ -253,7 +255,13 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
@@ -254,7 +256,13 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
ContentSetting setting = info.setting == CONTENT_SETTING_DEFAULT
? info.default_setting
: info.setting;
@@ -829,7 +830,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom
// For guard content settings and Automatic Picture-in-Picture, ASK is treated
// as an "on" state.
const bool show_blocked_badge =
@@ -507,6 +515,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
@@ -508,6 +516,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
icon = &vector_icons::kPictureInPictureIcon;
break;
default:
@@ -1101,10 +1102,10 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.h b/ch
-class PermissionToggleRowView : public views::View {
+class PermissionToggleRowView : public views::View,
+ public ui::SimpleMenuModel::Delegate {
METADATA_HEADER(PermissionToggleRowView, views::View)
public:
METADATA_HEADER(PermissionToggleRowView);
PermissionToggleRowView(ChromePageInfoUiDelegate* delegate,
@@ -52,6 +58,12 @@ class PermissionToggleRowView : public views::View {
@@ -55,6 +61,12 @@ class PermissionToggleRowView : public views::View {
private:
friend class test::PageInfoBubbleViewTestApi;
@@ -1117,7 +1118,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);
@@ -65,6 +77,10 @@ class PermissionToggleRowView : public views::View {
@@ -68,6 +80,10 @@ class PermissionToggleRowView : public views::View {
raw_ptr<views::ToggleButton, DanglingUntriaged> toggle_button_ = nullptr;
raw_ptr<views::View, DanglingUntriaged> spacer_view_ = nullptr;
@@ -1149,7 +1150,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"
@@ -3628,6 +3632,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
@@ -3738,6 +3742,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
policy_indicator::AddLocalizedStrings(html_source);
AddSecurityKeysStrings(html_source);
@@ -1218,7 +1219,7 @@ 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"
@@ -209,7 +211,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = {
@@ -215,7 +217,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = {
static_assert(std::size(kContentSettingsTypeGroupNames) ==
// ContentSettingsType starts at -1, so add 1 here.
@@ -1227,7 +1228,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
"kContentSettingsTypeGroupNames should have "
"CONTENT_SETTINGS_NUM_TYPES elements");
@@ -462,6 +464,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) {
@@ -468,6 +470,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) {
return true;
}
}
@@ -1241,7 +1242,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
return false;
}
@@ -475,11 +484,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(base::StringPiece name) {
@@ -481,11 +490,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(base::StringPiece name) {
return entry.type;
}
}
@@ -1267,7 +1268,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
@@ -494,7 +516,6 @@ base::StringPiece ContentSettingsTypeToGroupName(ContentSettingsType type) {
@@ -500,7 +522,6 @@ base::StringPiece ContentSettingsTypeToGroupName(ContentSettingsType type) {
return entry.name ? entry.name : base::StringPiece();
}
}
@@ -1275,8 +1276,8 @@ 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();
@@ -574,6 +595,13 @@ const std::vector<ContentSettingsType>& GetVisiblePermissionCategories() {
base_types->push_back(ContentSettingsType::MIDI_SYSEX);
@@ -585,6 +606,13 @@ const std::vector<ContentSettingsType>& GetVisiblePermissionCategories() {
base_types->push_back(ContentSettingsType::WEB_PRINTING);
}
+ content_settings::WebsiteSettingsRegistry* website_settings =
@@ -1455,7 +1456,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
@@ -149,6 +149,23 @@ android_library("java") {
@@ -141,6 +141,23 @@ android_library("java") {
":site_settings_jni_headers",
"//components/content_settings/android:java_pref_names_srcjar",
]
@@ -1479,7 +1480,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b
}
android_library("javatests") {
@@ -194,6 +211,7 @@ robolectric_library("junit") {
@@ -186,6 +203,7 @@ robolectric_library("junit") {
}
android_resources("java_resources") {
@@ -2142,8 +2143,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
assert false; // NOTREACHED
return null;
}
@@ -617,6 +619,12 @@ public class ContentSettingsResources {
}
@@ -600,6 +602,12 @@ public class ContentSettingsResources {
return getResourceItem(contentType, null).getDefaultDisabledValue();
}
+ public static int getCategorySummary(int contentType, @Nullable @ContentSettingValues int value) {
@@ -2153,9 +2154,9 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
+ }
+
/**
* Returns the string resource id for a content type to show with a permission category.
* @param enabled Whether the content type is enabled.
@@ -769,6 +777,8 @@ public class ContentSettingsResources {
* Returns the string resource id for a given ContentSetting to show with a permission category.
*
@@ -762,6 +770,8 @@ public class ContentSettingsResources {
* Blocked states, in that order.
*/
public static int[] getTriStateSettingDescriptionIDs(int contentType) {
@@ -2167,7 +2168,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/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
@@ -337,6 +337,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -329,6 +329,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
website.site()
.getContentSetting(
browserContextHandle, mCategory.getContentSettingsType());
@@ -2178,7 +2179,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (contentSetting != null) {
return ContentSettingValues.BLOCK == contentSetting;
}
@@ -501,6 +505,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -493,6 +497,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
? new HashSet<>(getArguments().getStringArrayList(EXTRA_SELECTED_DOMAINS))
: null;
@@ -2186,7 +2187,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
configureGlobalToggles();
if (mCategory.getType() == SiteSettingsCategory.Type.REQUEST_DESKTOP_SITE) {
RecordUserAction.record("DesktopSiteContentSetting.SettingsPage.Entered");
@@ -531,7 +536,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -523,7 +528,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
if (queryHasChanged) getInfoForOrigins();
});
@@ -2196,7 +2197,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
MenuItem help =
menu.add(
Menu.NONE,
@@ -543,12 +549,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -535,12 +541,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
getResources(),
R.drawable.ic_help_and_feedback,
getContext().getTheme()));
@@ -2217,7 +2218,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (mCategory.getType() == SiteSettingsCategory.Type.PROTECTED_MEDIA) {
getSiteSettingsDelegate()
.launchProtectedContentHelpAndFeedbackActivity(getActivity());
@@ -620,6 +634,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -612,6 +626,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
BrowserContextHandle browserContextHandle =
getSiteSettingsDelegate().getBrowserContextHandle();
PrefService prefService = UserPrefs.get(browserContextHandle);
@@ -2229,7 +2230,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (BINARY_TOGGLE_KEY.equals(preference.getKey())) {
assert !mCategory.isManaged();
boolean toggleValue = (boolean) newValue;
@@ -817,6 +836,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -804,6 +823,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
.website_settings_allowed_group_heading_request_desktop_site;
break;
}
@@ -2238,7 +2239,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
assert resource > 0;
return getString(resource);
}
@@ -934,6 +955,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -921,6 +942,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
default:
break;
}
@@ -2247,7 +2248,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (allowSpecifyingExceptions) {
getPreferenceScreen()
.addPreference(
@@ -1122,8 +1145,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1109,8 +1132,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
private boolean isBlocked() {
switch (mGlobalToggleLayout) {
case GlobalToggleLayout.TRI_STATE_TOGGLE:
@@ -2264,7 +2265,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
return (triStateToggle.getCheckedSetting() == ContentSettingValues.BLOCK);
case GlobalToggleLayout.TRI_STATE_COOKIE_TOGGLE:
TriStateCookieSettingsPreference triStateCookieToggle =
@@ -1190,7 +1221,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1175,7 +1206,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
} else if (mCategory.getType() == SiteSettingsCategory.Type.STORAGE_ACCESS) {
infoText.setSummary(getStorageAccessSummary());
} else {
@@ -2277,7 +2278,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
// Hide the anti-abuse text preferences, as needed.
@@ -1214,6 +1249,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1199,6 +1234,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
screen.removePreference(antiAbuseThingsToConsiderHeader);
screen.removePreference(antiAbuseThingsToConsiderSectionOne);
}
@@ -2285,7 +2286,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (permissionBlockedByOs) {
maybeShowOsWarning(screen);
@@ -1378,7 +1414,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1350,7 +1386,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
getSiteSettingsDelegate().getBrowserContextHandle(), contentType);
int[] descriptionIds =
ContentSettingsResources.getTriStateSettingDescriptionIDs(contentType);
@@ -2294,7 +2295,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
private void configureBinaryToggle(ChromeSwitchPreference binaryToggle, int contentType) {
@@ -1517,6 +1553,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1461,6 +1497,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@ContentSettingValues
Integer value = site.getContentSetting(browserContextHandle, contentSettingsType);
@@ -2312,7 +2313,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
@@ -49,6 +49,7 @@ import java.util.Collection;
@@ -48,6 +48,7 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -2320,7 +2321,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
/** Shows the permissions and other settings for a particular website. */
public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -169,7 +170,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -168,7 +169,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
case ContentSettingsType.CLIPBOARD_READ_WRITE:
return "clipboard_permission_list";
default:
@@ -2329,14 +2330,14 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
}
@@ -544,8 +545,21 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -545,8 +546,21 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
private void setupContentSettingsPreferences() {
mMaxPermissionOrder = findPreference(PREF_PERMISSIONS_HEADER).getOrder();
- for (@ContentSettingsType int type : SiteSettingsUtil.SETTINGS_ORDER) {
- for (@ContentSettingsType.EnumType int type : SiteSettingsUtil.SETTINGS_ORDER) {
- Preference preference = new ChromeSwitchPreference(getStyledContext());
+ List<Integer> order = BromiteCustomContentSettingImpl.getSettingsOrder();
+ for (@ContentSettingsType int type : order) {
+ for (@ContentSettingsType.EnumType int type : order) {
+ @ContentSettingValues @Nullable Integer value =
+ mSite.getContentSetting(
+ getSiteSettingsDelegate().getBrowserContextHandle(), type);
@@ -2353,10 +2354,10 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
preference.setKey(getPreferenceKey(type));
if (type == ContentSettingsType.ADS) {
@@ -1085,20 +1099,32 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
Preference preference,
@@ -1071,20 +1085,32 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@ContentSettingValues @Nullable Integer value,
boolean isEmbargoed) {
boolean isEmbargoed,
boolean isOneTime) {
- if (value == null) return;
+ int content_type = getContentSettingsTypeFromPreferenceKey(preference.getKey());
+ BromiteCustomContentSetting cs =
@@ -2380,10 +2381,10 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
switchPreference.setSummary(
isEmbargoed
? getString(R.string.automatically_blocked)
- : getString(ContentSettingsResources.getCategorySummary(value)));
+ : getString(ContentSettingsResources.getCategorySummary(content_type, value)));
- : getString(ContentSettingsResources.getCategorySummary(value, isOneTime)));
+ : getString(ContentSettingsResources.getCategorySummary(content_type, value, isOneTime)));
switchPreference.setOnPreferenceChangeListener(this);
@ContentSettingsType
@ContentSettingsType.EnumType
int contentType = getContentSettingsTypeFromPreferenceKey(preference.getKey());
- if (contentType == mHighlightedPermission) {
- switchPreference.setBackgroundColor(mHighlightColor);
@@ -2392,16 +2393,16 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
if (isSessionPermission(contentType)) {
switchPreference.setSummary(switchPreference.getSummary() + " " +
@@ -1256,7 +1282,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
public @ContentSettingsType int getContentSettingsTypeFromPreferenceKey(String preferenceKey) {
@@ -1261,7 +1287,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
if (mPreferenceMap == null) {
mPreferenceMap = new HashMap<>();
- for (@ContentSettingsType int type = 0; type < ContentSettingsType.NUM_TYPES; type++) {
+ for (@ContentSettingsType int type = 0; type < ContentSettingsType.NUM_TYPES_BROMITE; type++) {
for (@ContentSettingsType.EnumType int type = 0;
- type < ContentSettingsType.NUM_TYPES;
+ type < ContentSettingsType.NUM_TYPES_BROMITE;
type++) {
String key = getPreferenceKey(type);
if (key != null) {
mPreferenceMap.put(key, type);
@@ -1293,11 +1319,17 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -1299,14 +1325,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
permission =
(Boolean) newValue ? ContentSettingValues.ALLOW : ContentSettingValues.BLOCK;
} else {
@@ -2416,20 +2417,23 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
mSite.setContentSetting(browserContextHandle, type, permission);
- preference.setSummary(getString(ContentSettingsResources.getCategorySummary(permission)));
+ preference.setSummary(getString(ContentSettingsResources.getCategorySummary(type, permission)));
// In Clank, one time grants are only possible via prompt, not via page
// info.
preference.setSummary(
- getString(ContentSettingsResources.getCategorySummary(permission, false)));
+ getString(ContentSettingsResources.getCategorySummary(type, permission, false)));
preference.setIcon(getContentSettingsIcon(type, permission));
if (mWebsiteSettingsObserver != null) {
@@ -1325,7 +1357,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
// TODO(mvanouwerkerk): Refactor this class so that it does not depend on the screen state
@@ -1335,7 +1367,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 int type = 0; type < ContentSettingsType.NUM_TYPES; type++) {
+ for (@ContentSettingsType int type = 0; type < ContentSettingsType.NUM_TYPES_BROMITE; type++) {
for (@ContentSettingsType.EnumType int type = 0;
- type < ContentSettingsType.NUM_TYPES;
+ type < ContentSettingsType.NUM_TYPES_BROMITE;
type++) {
String key = getPreferenceKey(type);
if (key != null) {
removePreferenceSafely(key);
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
@@ -2459,19 +2463,35 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
Preference p = findPreference(prefCategory);
int contentType = SiteSettingsCategory.contentSettingsType(prefCategory);
// p can be null if the Preference was removed in configurePreferences.
@@ -139,10 +140,13 @@ public class SiteSettings extends BaseSiteSettingsFragment
@@ -142,19 +143,20 @@ public class SiteSettings extends BaseSiteSettingsFragment
} else if (Type.ZOOM == prefCategory) {
// Don't want to set a summary for Zoom because we don't want any message to display
// under the Zoom row on site settings.
- } else if (requiresTriStateSetting) {
- p.setSummary(ContentSettingsResources.getCategorySummary(setting));
- p.setSummary(
- ContentSettingsResources.getCategorySummary(
- setting, /* isOneTime= */ false));
} else {
- p.setSummary(ContentSettingsResources.getCategorySummary(contentType, checked));
- @ContentSettingValues
- int defaultForToggle =
- checked
- ? ContentSettingsResources.getDefaultEnabledValue(contentType)
- : ContentSettingsResources.getDefaultDisabledValue(contentType);
- p.setSummary(
- ContentSettingsResources.getCategorySummary(
- defaultForToggle, /* isOneTime= */ false));
+ int summary = ContentSettingsResources.getCategorySummary(contentType, setting);
+ if (summary != 0) {
+ p.setSummary(summary);
+ } else {
+ p.setSummary(ContentSettingsResources.getCategorySummary(contentType, checked));
+ @ContentSettingValues
+ int defaultForToggle =
+ checked
+ ? ContentSettingsResources.getDefaultEnabledValue(contentType)
+ : ContentSettingsResources.getDefaultDisabledValue(contentType);
+ p.setSummary(
+ ContentSettingsResources.getCategorySummary(
+ defaultForToggle, /* isOneTime= */ false));
+ }
}
@@ -2508,7 +2528,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
@@ -162,7 +165,7 @@ public class SiteSettingsCategory {
@ContentSettingsType int contentSettingsType) {
@ContentSettingsType.EnumType int contentSettingsType) {
assert contentSettingsType != -1;
assert Type.ALL_SITES == 0;
- for (@Type int i = Type.ALL_SITES; i < Type.NUM_ENTRIES; i++) {
@@ -2551,7 +2571,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
@@ -152,6 +152,8 @@ public interface SiteSettingsDelegate {
@@ -149,6 +149,8 @@ public interface SiteSettingsDelegate {
*/
String getFirstPartySetOwner(String memberOrigin);
@@ -2632,19 +2652,19 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
}
@@ -228,7 +228,7 @@ public class WebsitePermissionsFetcher {
if (SiteSettingsFeatureMap.isEnabled(SiteSettingsFeatureList.SITE_DATA_IMPROVEMENTS)) {
queue.add(new CookiesInfoFetcher());
}
- for (@ContentSettingsType int type = 0; type < ContentSettingsType.NUM_TYPES; type++) {
+ for (@ContentSettingsType int type = 0; type < ContentSettingsType.NUM_TYPES_BROMITE; type++) {
@@ -226,7 +226,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
@@ -283,7 +283,7 @@ public class WebsitePreferenceBridge {
@@ -291,7 +291,7 @@ public class WebsitePreferenceBridge {
case ContentSettingsType.PROTECTED_MEDIA_IDENTIFIER:
return true;
default:
@@ -2653,10 +2673,10 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
}
@@ -299,7 +299,6 @@ public class WebsitePreferenceBridge {
@@ -307,7 +307,6 @@ public class WebsitePreferenceBridge {
public static boolean isCategoryEnabled(
BrowserContextHandle browserContextHandle,
@ContentSettingsType int contentSettingsType) {
@ContentSettingsType.EnumType int contentSettingsType) {
- assert !requiresTriStateContentSetting(contentSettingsType);
return isContentSettingEnabled(browserContextHandle, contentSettingsType);
}
@@ -2729,7 +2749,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
@@ -53,6 +53,7 @@ android_library("content_settings_enums_java") {
@@ -57,6 +57,7 @@ android_library("content_settings_enums_java") {
}
java_cpp_enum("content_settings_enums_javagen") {
@@ -2763,7 +2783,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
@@ -15,6 +15,7 @@
@@ -16,6 +16,7 @@
#include "components/content_settings/core/browser/website_settings_registry.h"
#include "components/content_settings/core/common/content_settings.h"
#include "components/content_settings/core/common/features.h"
@@ -2771,8 +2791,8 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
namespace content_settings {
@@ -654,6 +655,7 @@ void ContentSettingsRegistry::Init() {
WebsiteSettingsRegistry::DESKTOP,
@@ -711,6 +712,7 @@ void ContentSettingsRegistry::Init() {
WebsiteSettingsRegistry::PLATFORM_CHROMEOS,
ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE,
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
+#include "components/content_settings/core/browser/bromite_content_settings.inc"
@@ -2782,7 +2802,7 @@ 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
@@ -180,8 +180,9 @@ void RecordContentSettingsHistogram(const std::string& name,
@@ -184,8 +184,9 @@ void RecordContentSettingsHistogram(const std::string& name,
}
int ContentSettingTypeToHistogramValue(ContentSettingsType content_setting) {
@@ -2802,9 +2822,9 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc
#include "components/content_settings/core/browser/host_content_settings_map.h"
+#include "components/content_settings/core/browser/website_settings_registry.h"
#include "components/content_settings/core/common/content_settings.h"
#include "components/content_settings/core/common/content_settings_types.h"
#include "components/content_settings/core/common/content_settings_utils.h"
#include "components/content_settings/core/common/features.h"
@@ -121,6 +122,17 @@ PatternPair ParsePatternString(const std::string& pattern_str) {
@@ -122,6 +123,17 @@ PatternPair ParsePatternString(const std::string& pattern_str) {
void GetRendererContentSettingRules(const HostContentSettingsMap* map,
RendererContentSettingRules* rules) {
@@ -2819,13 +2839,13 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc
+ rules->settings_rules.push_back(rule);
+ }
+ }
#if !BUILDFLAG(IS_ANDROID)
#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS)
rules->image_rules = map->GetSettingsForOneType(ContentSettingsType::IMAGES);
rules->mixed_content_rules =
diff --git a/components/content_settings/core/browser/website_settings_info.h b/components/content_settings/core/browser/website_settings_info.h
--- a/components/content_settings/core/browser/website_settings_info.h
+++ b/components/content_settings/core/browser/website_settings_info.h
@@ -132,6 +132,32 @@ class WebsiteSettingsInfo {
@@ -135,6 +135,32 @@ class WebsiteSettingsInfo {
ScopingType scoping_type() const { return scoping_type_; }
IncognitoBehavior incognito_behavior() const { return incognito_behavior_; }
@@ -2858,7 +2878,7 @@ diff --git a/components/content_settings/core/browser/website_settings_info.h b/
private:
const ContentSettingsType type_;
const std::string name_;
@@ -143,6 +169,18 @@ class WebsiteSettingsInfo {
@@ -147,6 +173,18 @@ class WebsiteSettingsInfo {
const LossyStatus lossy_status_;
const ScopingType scoping_type_;
const IncognitoBehavior incognito_behavior_;
@@ -2880,7 +2900,7 @@ diff --git a/components/content_settings/core/browser/website_settings_info.h b/
diff --git a/components/content_settings/core/browser/website_settings_registry.cc b/components/content_settings/core/browser/website_settings_registry.cc
--- a/components/content_settings/core/browser/website_settings_registry.cc
+++ b/components/content_settings/core/browser/website_settings_registry.cc
@@ -45,6 +45,12 @@ const WebsiteSettingsInfo* WebsiteSettingsRegistry::Get(
@@ -46,6 +46,12 @@ const WebsiteSettingsInfo* WebsiteSettingsRegistry::Get(
return nullptr;
}
@@ -2907,7 +2927,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
@@ -52,6 +52,13 @@ static_library("common") {
@@ -56,6 +56,13 @@ static_library("common") {
"//net",
"//url",
]
@@ -2938,7 +2958,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo
namespace {
@@ -92,6 +93,13 @@ bool ContentSettingPatternSource::operator==(
@@ -103,6 +104,13 @@ std::ostream& operator<<(std::ostream& os,
// static
bool RendererContentSettingRules::IsRendererContentSetting(
ContentSettingsType content_type) {
@@ -2952,7 +2972,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 ||
@@ -101,6 +109,9 @@ bool RendererContentSettingRules::IsRendererContentSetting(
@@ -112,6 +120,9 @@ bool RendererContentSettingRules::IsRendererContentSetting(
void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL(
const GURL& outermost_main_frame_url) {
@@ -2962,7 +2982,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);
@@ -132,3 +143,10 @@ bool RendererContentSettingRules::operator==(
@@ -143,3 +154,10 @@ bool RendererContentSettingRules::operator==(
other.popup_redirect_rules, other.mixed_content_rules,
other.auto_dark_content_rules);
}
@@ -2976,9 +2996,9 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo
diff --git a/components/content_settings/core/common/content_settings.h b/components/content_settings/core/common/content_settings.h
--- a/components/content_settings/core/common/content_settings.h
+++ b/components/content_settings/core/common/content_settings.h
@@ -66,10 +66,20 @@ struct ContentSettingPatternSource {
typedef std::vector<ContentSettingPatternSource> ContentSettingsForOneType;
@@ -74,10 +74,20 @@ typedef std::vector<ContentSettingPatternSource> ContentSettingsForOneType;
typedef std::map<std::string, ContentSettingsForOneType>
HostIndexedContentSettings;
+struct ContentSettingRuleSource {
+ int type;
@@ -3000,7 +3020,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
@@ -79,6 +79,11 @@ struct RuleMetaData {
@@ -76,6 +76,11 @@ struct RuleMetaData {
mojo_base.mojom.TimeDelta lifetime;
};
@@ -3012,7 +3032,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;
@@ -92,6 +97,7 @@ struct ContentSettingPatternSource {
@@ -89,6 +94,7 @@ struct ContentSettingPatternSource {
// This mirrors the C++ type in content_settings.h.
// TODO(https://crbug.com/1485360): This should be removed.
struct RendererContentSettingRules {
@@ -3097,12 +3117,12 @@ diff --git a/components/content_settings/core/common/content_settings_param_trai
1)
#endif // COMPONENTS_CONTENT_SETTINGS_CORE_COMMON_CONTENT_SETTINGS_PARAM_TRAITS_H_
diff --git a/components/content_settings/core/common/content_settings_types.h b/components/content_settings/core/common/content_settings_types.h
--- a/components/content_settings/core/common/content_settings_types.h
+++ b/components/content_settings/core/common/content_settings_types.h
@@ -371,7 +371,9 @@ enum class ContentSettingsType : int32_t {
// shown to the user, for a given origin.
FILE_SYSTEM_ACCESS_RESTORE_PERMISSION,
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
@@ -387,6 +387,8 @@ enum ContentSettingsType {
// Content settings for access to printers for the Web Printing API.
WEB_PRINTING,
- NUM_TYPES,
+ NUM_TYPES_CHROMIUM,
@@ -3110,11 +3130,10 @@ diff --git a/components/content_settings/core/common/content_settings_types.h b/
+ NUM_TYPES_BROMITE,
};
struct ContentSettingsTypeHash {
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
@@ -202,6 +202,39 @@ void ContentSettingsAgentImpl::SendRendererContentSettingRules(
@@ -200,6 +200,39 @@ void ContentSettingsAgentImpl::SendRendererContentSettingRules(
std::move(renderer_settings));
}
@@ -3157,7 +3176,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
@@ -75,6 +75,11 @@ class ContentSettingsAgentImpl
@@ -76,6 +76,11 @@ class ContentSettingsAgentImpl
static mojom::ContentSettingsManager::StorageType ConvertToMojoStorageType(
StorageType storage_type);
@@ -3252,7 +3271,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"
@@ -1249,6 +1250,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
@@ -1236,6 +1237,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
// applies to permissions listed in |kPermissionType|.
bool PageInfo::ShouldShowPermission(
const PageInfo::PermissionInfo& info) const {
@@ -3267,7 +3286,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) {
@@ -1375,7 +1384,19 @@ void PageInfo::PresentSitePermissions() {
@@ -1362,7 +1371,19 @@ void PageInfo::PresentSitePermissions() {
HostContentSettingsMap* content_settings = GetContentSettings();
DCHECK(web_contents_);
@@ -3299,7 +3318,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in
#include "components/page_info/core/features.h"
#include "components/page_info/page_info.h"
#include "components/page_info/page_info_ui_delegate.h"
@@ -622,6 +623,12 @@ PageInfoUI::~PageInfoUI() = default;
@@ -624,6 +625,12 @@ PageInfoUI::~PageInfoUI() = default;
// static
std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) {
@@ -3312,7 +3331,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);
@@ -633,6 +640,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) {
@@ -635,6 +642,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) {
// static
std::u16string PageInfoUI::PermissionTypeToUIStringMidSentence(
ContentSettingsType type) {
@@ -3325,7 +3344,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);
@@ -1067,6 +1080,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) {
@@ -1069,6 +1082,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) {
if (info.type == type)
return true;
}
+5 -5
View File
@@ -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
@@ -2051,6 +2051,7 @@ static_library("browser") {
@@ -2037,6 +2037,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
@@ -2086,7 +2086,7 @@ Your Google account may have other forms of browsing history like searches and a
@@ -2112,7 +2112,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">
@@ -13230,7 +13230,7 @@ diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h
#if BUILDFLAG(IS_CHROMEOS_ASH)
inline constexpr char kChromeOsHelpViaWebUIURL[] =
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
@@ -180,7 +180,7 @@ inline constexpr char kChromeUIUntrustedNewTabPageUrl[] =
@@ -177,7 +177,7 @@ inline constexpr char kChromeUIUntrustedNewTabPageUrl[] =
"chrome-untrusted://new-tab-page/";
// The URL for the Chromium project used in the About dialog.
@@ -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
@@ -1003,7 +1003,7 @@
@@ -997,7 +997,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,7 +18202,7 @@ 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
@@ -636,4 +636,6 @@ BASE_FEATURE(kUseGammaContrastRegistrySettings,
@@ -625,4 +625,6 @@ BASE_FEATURE(kUseGammaContrastRegistrySettings,
base::FEATURE_DISABLED_BY_DEFAULT);
#endif // BUILDFLAG(IS_WIN)
+21 -21
View File
@@ -20,7 +20,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/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
@@ -693,10 +693,17 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -723,10 +723,17 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@TabLaunchType int type,
@TabCreationState int creationState,
boolean markedForSelection) {
@@ -53,7 +53,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo
import org.chromium.base.ObserverList;
import org.chromium.base.TraceEvent;
import org.chromium.base.supplier.ObservableSupplier;
@@ -228,6 +229,13 @@ public class LayoutManagerImpl
@@ -227,6 +228,13 @@ public class LayoutManagerImpl
&& launchType != TabLaunchType.FROM_RECENT_TABS
&& launchType != TabLaunchType.FROM_RESTORE_TABS_UI
|| (!getTabModelSelector().isIncognitoSelected() && incognito);
@@ -78,7 +78,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;
@@ -785,11 +786,16 @@ public class RootUiCoordinator
@@ -805,11 +806,16 @@ public class RootUiCoordinator
TrackerFactory.getTrackerForProfile(tab.getProfile())
.notifyEvent(EventConstants.WEB_SEARCH_PERFORMED);
@@ -138,7 +138,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
@@ -58,4 +58,28 @@ found in the LICENSE file.
@@ -63,4 +63,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" />
@@ -170,15 +170,15 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
@@ -25,6 +25,7 @@ import androidx.annotation.VisibleForTesting;
import androidx.core.content.ContextCompat;
@@ -26,6 +26,7 @@ import androidx.core.content.ContextCompat;
import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
+import org.chromium.base.ContextUtils;
import org.chromium.base.PackageManagerUtils;
import org.chromium.base.StrictModeContext;
import org.chromium.content.R;
@@ -50,38 +51,84 @@ import java.util.TreeSet;
@@ -51,38 +52,84 @@ import java.util.TreeSet;
public class SelectActionMenuHelper {
private static final String TAG = "SelectActionMenu"; // 20 char limit.
@@ -293,7 +293,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
}
@Retention(RetentionPolicy.SOURCE)
@@ -158,7 +205,7 @@ public class SelectActionMenuHelper {
@@ -159,7 +206,7 @@ public class SelectActionMenuHelper {
if (!additionalMenuItems.isEmpty()) {
// Additional menu item group which comes after default menu items.
SelectionMenuGroup additionalItemGroup =
@@ -302,7 +302,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
additionalItemGroup.addItems(additionalMenuItems);
pasteMenuItems.add(additionalItemGroup);
}
@@ -224,7 +271,7 @@ public class SelectActionMenuHelper {
@@ -225,7 +272,7 @@ public class SelectActionMenuHelper {
}
SelectionMenuGroup primaryAssistGroup =
new SelectionMenuGroup(
@@ -311,7 +311,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
View.OnClickListener clickListener = null;
if (classificationResult.onClickListener != null) {
clickListener = classificationResult.onClickListener;
@@ -250,7 +297,7 @@ public class SelectActionMenuHelper {
@@ -251,7 +298,7 @@ public class SelectActionMenuHelper {
String selectedText) {
SelectionMenuGroup defaultGroup =
new SelectionMenuGroup(
@@ -320,7 +320,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
List<SelectionMenuItem.Builder> menuItemBuilders = new ArrayList<>();
menuItemBuilders.add(cut(delegate.canCut()));
menuItemBuilders.add(copy(delegate.canCopy()));
@@ -301,7 +348,7 @@ public class SelectActionMenuHelper {
@@ -302,7 +349,7 @@ public class SelectActionMenuHelper {
// these menu items.
SelectionMenuGroup secondaryAssistItems =
new SelectionMenuGroup(
@@ -329,7 +329,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
// First action is reserved for primary action so start at index 1.
final int startIndex = 1;
@@ -334,7 +381,7 @@ public class SelectActionMenuHelper {
@@ -335,7 +382,7 @@ public class SelectActionMenuHelper {
SelectionMenuGroup textProcessingItems =
new SelectionMenuGroup(
R.id.select_action_menu_text_processing_items,
@@ -338,7 +338,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
if (isSelectionPassword || intentHandler == null) {
addAdditionalTextProcessingItems(textProcessingItems, selectionActionMenuDelegate);
return textProcessingItems;
@@ -430,7 +477,7 @@ public class SelectActionMenuHelper {
@@ -431,7 +478,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_cut)
.setIconAttr(android.R.attr.actionModeCutDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.CUT)
@@ -347,7 +347,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)
@@ -442,7 +489,7 @@ public class SelectActionMenuHelper {
@@ -443,7 +490,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_copy)
.setIconAttr(android.R.attr.actionModeCopyDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.COPY)
@@ -356,7 +356,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)
@@ -454,7 +501,7 @@ public class SelectActionMenuHelper {
@@ -455,7 +502,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_paste)
.setIconAttr(android.R.attr.actionModePasteDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.PASTE)
@@ -365,8 +365,8 @@ 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)
@@ -465,7 +512,7 @@ public class SelectActionMenuHelper {
return new SelectionMenuItem.Builder(R.string.actionbar_share)
@@ -469,7 +516,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)
- .setOrderInCategory(DefaultItemOrder.SHARE)
@@ -374,7 +374,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)
@@ -477,7 +524,7 @@ public class SelectActionMenuHelper {
@@ -481,7 +528,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_select_all)
.setIconAttr(android.R.attr.actionModeSelectAllDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.SELECT_ALL)
@@ -383,7 +383,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)
@@ -490,7 +537,7 @@ public class SelectActionMenuHelper {
@@ -494,7 +541,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)
@@ -392,8 +392,8 @@ 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);
@@ -506,7 +553,7 @@ public class SelectActionMenuHelper {
return new SelectionMenuItem.Builder(R.string.actionbar_web_search)
@@ -514,7 +561,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)
- .setOrderInCategory(DefaultItemOrder.WEB_SEARCH)
@@ -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
@@ -3129,8 +3129,8 @@
@@ -3187,8 +3187,8 @@
status: "stable",
},
{
@@ -27,7 +27,7 @@ diff --git a/chrome/android/java/res/layout/url_bar.xml b/chrome/android/java/re
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
@@ -288,8 +288,17 @@ class LocationBarMediator
@@ -286,8 +286,17 @@ class LocationBarMediator
if (mNativeInitialized) RecordUserAction.record("FocusLocation");
// Don't clear Omnibox if the user just pasted text to NTP Omnibox.
if (mShouldClearOmniboxOnFocus) {
@@ -19,14 +19,14 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
--- a/chrome/browser/flags/BUILD.gn
+++ b/chrome/browser/flags/BUILD.gn
@@ -34,6 +34,7 @@ android_library("java") {
@@ -23,6 +23,7 @@ android_library("java") {
"//build:chromeos_buildflags",
"//build/android:build_java",
"//chrome/browser/preferences:java",
+ "//components/policy/android:policy_java",
"//components/version_info/android:version_constants_java",
"//third_party/android_deps:guava_android_java",
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/jni_zero:jni_zero_java",
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sEnableAndroidAppRestriction.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sEnableAndroidAppRestriction.java
new file mode 100644
--- /dev/null
@@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/component_updater/registration.cc
--- a/chrome/browser/component_updater/registration.cc
+++ b/chrome/browser/component_updater/registration.cc
@@ -102,6 +102,7 @@
@@ -100,6 +100,7 @@
namespace component_updater {
void RegisterComponentsForUpdate() {
@@ -23,18 +23,18 @@ diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/c
diff --git a/components/component_updater/component_installer.cc b/components/component_updater/component_installer.cc
--- a/components/component_updater/component_installer.cc
+++ b/components/component_updater/component_installer.cc
@@ -92,6 +92,7 @@ void ComponentInstaller::Register(RegisterCallback register_callback,
@@ -97,6 +97,7 @@ void ComponentInstaller::Register(ComponentUpdateService* cus,
void ComponentInstaller::Register(RegisterCallback register_callback,
base::OnceClosure callback,
base::TaskPriority task_priority,
const base::Version& registered_version) {
+ if ((true)) return;
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
task_runner_ = base::ThreadPool::CreateSequencedTaskRunner(
if (!installer_policy_) {
diff --git a/components/component_updater/component_updater_service.cc b/components/component_updater/component_updater_service.cc
--- a/components/component_updater/component_updater_service.cc
+++ b/components/component_updater/component_updater_service.cc
@@ -535,7 +535,7 @@ std::unique_ptr<ComponentUpdateService> ComponentUpdateServiceFactory(
@@ -530,7 +530,7 @@ std::unique_ptr<ComponentUpdateService> ComponentUpdateServiceFactory(
// Register prefs required by the component update service.
void RegisterComponentUpdateServicePrefs(PrefRegistrySimple* registry) {
// The component updates are enabled by default, if the preference is not set.
@@ -10,8 +10,8 @@ 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
@@ -721,16 +721,18 @@
status: "stable",
@@ -705,16 +705,18 @@
}
},
{
- name: "CompressionDictionaryTransport",
+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
@@ -1591,7 +1591,7 @@
@@ -1600,7 +1600,7 @@
{
name: "FedCm",
public: true,
@@ -13,7 +13,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
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
@@ -55,7 +55,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
@@ -51,7 +51,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
registry->RegisterBooleanPref(
prefs::kPrivacySandboxFirstPartySetsDataAccessAllowedInitialized, false);
registry->RegisterBooleanPref(
@@ -39,7 +39,7 @@ diff --git a/components/privacy_sandbox/tracking_protection_prefs.cc b/component
- registry->RegisterBooleanPref(prefs::kTrackingProtection3pcdEnabled, false);
+ registry->RegisterBooleanPref(prefs::kTrackingProtection3pcdEnabled, false); // with true enables FPS
registry->RegisterBooleanPref(
prefs::kEnableDoNotTrack, false,
prefs::kIpProtectionEnabled, false,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
diff --git a/cromite_flags/content/public/common/content_features_cc/Disable-FirstPartySets-and-StorageAccessAPI.inc b/cromite_flags/content/public/common/content_features_cc/Disable-FirstPartySets-and-StorageAccessAPI.inc
new file mode 100644
+5 -5
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.renderer_host.ChromeNavigationUIData;
@@ -239,8 +238,6 @@ public class IntentHandler {
@@ -243,8 +242,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";
@@ -456,8 +453,6 @@ public class IntentHandler {
@@ -460,8 +457,6 @@ public class IntentHandler {
return ExternalAppId.LINE;
} else if (packageName.equals(PACKAGE_WHATSAPP)) {
return ExternalAppId.WHATSAPP;
@@ -43,7 +43,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java
@@ -11,7 +11,6 @@ import android.text.TextUtils;
@@ -10,7 +10,6 @@ import android.os.Build;
import org.chromium.base.ResettersForTesting;
import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
@@ -51,7 +51,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils
import org.chromium.components.externalauth.ExternalAuthUtils;
/** This class provides utilities for intenting into Google Lens. */
@@ -55,12 +54,7 @@ public class LensUtils {
@@ -54,12 +53,7 @@ public class LensUtils {
if (context == null) {
return "";
}
@@ -64,7 +64,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils
}
}
@@ -112,11 +106,7 @@ public class LensUtils {
@@ -98,11 +92,7 @@ public class LensUtils {
* @return Whether the package is valid.
*/
public static boolean isValidAgsaPackage(final ExternalAuthUtils externalAuthUtils) {
@@ -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
@@ -2133,9 +2133,9 @@
@@ -2160,9 +2160,9 @@
status: {"Android": "test", "default": "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/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
@@ -351,7 +351,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
@@ -357,7 +357,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
#endif // !BUILDFLAG(IS_CHROMEOS_LACROS)
bool show_privacy_guide =
+32 -17
View File
@@ -4,10 +4,24 @@ Subject: Disable Real Box
Real-box is search box in ntp
---
chrome/browser/resources/new_tab_page/app.html | 5 -----
components/search/ntp_features.cc | 10 +++++-----
2 files changed, 5 insertions(+), 10 deletions(-)
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 +++---
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
@@ -2027,7 +2027,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
registry->RegisterBooleanPref(
prefs::kLensRegionSearchEnabled, true,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
- registry->RegisterBooleanPref(prefs::kLensDesktopNTPSearchEnabled, true);
+ registry->RegisterBooleanPref(prefs::kLensDesktopNTPSearchEnabled, false);
#endif
#if !BUILDFLAG(IS_ANDROID)
diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/resources/new_tab_page/app.html
--- a/chrome/browser/resources/new_tab_page/app.html
+++ b/chrome/browser/resources/new_tab_page/app.html
@@ -16,17 +30,29 @@ diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/res
</ntp-logo>
<div id="realboxContainer">
- <ntp-realbox id="realbox" is-dark="[[theme_.isDark]]"
- single-colored-icons="[[theme_.themeRealboxIcons]]"
- color-source-is-baseline="[[colorSourceIsBaseline]]"
- on-open-lens-search="onOpenLensSearch_"
- on-open-voice-search="onOpenVoiceSearch_" shown$="[[realboxShown_]]">
- </ntp-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
@@ -670,7 +670,7 @@ void RealboxHandler::SetupWebUIDataSource(content::WebUIDataSource* source,
source->AddBoolean(
"realboxLensSearch",
- profile->GetPrefs()->GetBoolean(prefs::kLensDesktopNTPSearchEnabled));
+ false);
source->AddString("realboxLensVariations", GetBase64UrlVariations(profile));
source->AddBoolean(
"realboxLensDirectUpload",
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
@@ -166,7 +166,7 @@ BASE_FEATURE(kNtpHandleMostVisitedNavigationExplicitly,
@@ -165,7 +165,7 @@ BASE_FEATURE(kNtpHandleMostVisitedNavigationExplicitly,
base::FEATURE_ENABLED_BY_DEFAULT);
// If enabled, logo will be shown.
@@ -35,7 +61,7 @@ diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.
// If enabled, logo will fill up less vertical space.
BASE_FEATURE(kNtpReducedLogoSpace,
@@ -243,8 +243,8 @@ BASE_FEATURE(kNtpMostVisitedReflowOnOverflow,
@@ -242,8 +242,8 @@ BASE_FEATURE(kNtpMostVisitedReflowOnOverflow,
// If enabled, OneGoogleBar will be shown.
BASE_FEATURE(kNtpOneGoogleBar,
@@ -46,15 +72,4 @@ diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.
// If enabled, Google Photos module will be shown.
BASE_FEATURE(kNtpPhotosModule,
@@ -279,8 +279,8 @@ BASE_FEATURE(kNtpFeedModule,
// If enabled, Google Lens image search will be shown in the NTP Realbox.
BASE_FEATURE(kNtpRealboxLensSearch,
- "NtpRealboxLensSearch",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ "NtpRealboxLensSearch", // disabled
+ base::FEATURE_DISABLED_BY_DEFAULT); // by default
// If enabled, Google Lens image search will call Lens v3 direct upload
// endpoint instead of uploading to Scotty.
--
@@ -14,15 +14,15 @@ 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
@@ -631,7 +631,7 @@ public abstract class ChromeFeatureList {
new CachedFlag(SHOW_NTP_AT_STARTUP_ANDROID, false);
public static final CachedFlag sSpareTab = new CachedFlag(SPARE_TAB, false);
@@ -620,7 +620,7 @@ public abstract class ChromeFeatureList {
public static final CachedFlag sSmallerTabStripTitleLimit =
newCachedFlag(SMALLER_TAB_STRIP_TITLE_LIMIT, false);
public static final CachedFlag sStartSurfaceAndroid =
- new CachedFlag(START_SURFACE_ANDROID, true);
+ new CachedFlag(START_SURFACE_ANDROID, false);
public static final CachedFlag sStartSurfaceDisabledFeedImprovement =
new CachedFlag(START_SURFACE_DISABLED_FEED_IMPROVEMENT, false);
- newCachedFlag(START_SURFACE_ANDROID, true);
+ newCachedFlag(START_SURFACE_ANDROID, false);
public static final CachedFlag sStartSurfaceOnTablet =
newCachedFlag(START_SURFACE_ON_TABLET, true);
public static final CachedFlag sStartSurfaceRefactor =
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
+13 -13
View File
@@ -29,7 +29,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../features_cc/Disable-TLS-resumption.inc | 7 +++
.../features_h/Disable-TLS-resumption.inc | 5 ++
net/http/http_network_session.cc | 1 +
net/quic/quic_stream_factory.cc | 35 ++++++++++-
net/quic/quic_session_pool.cc | 35 ++++++++++-
net/socket/ssl_client_socket_impl.cc | 59 +++++++++++++++++++
net/socket/ssl_client_socket_impl.h | 2 +
7 files changed, 120 insertions(+), 1 deletion(-)
@@ -87,9 +87,9 @@ diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc
http_server_properties_->SetMaxServerConfigsStoredInProperties(
context.quic_context->params()->max_server_configs_stored_in_properties);
http_server_properties_->SetBrokenAlternativeServicesDelayParams(
diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc
--- a/net/quic/quic_stream_factory.cc
+++ b/net/quic/quic_stream_factory.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 @@
#include "net/third_party/quiche/src/quiche/quic/core/quic_utils.h"
#include "net/third_party/quiche/src/quiche/quic/platform/api/quic_flags.h"
@@ -98,7 +98,7 @@ diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc
#include "url/gurl.h"
#include "url/scheme_host_port.h"
#include "url/url_constants.h"
@@ -194,6 +195,38 @@ std::set<std::string> HostsFromOrigins(std::set<HostPortPair> origins) {
@@ -196,6 +197,38 @@ std::set<std::string> HostsFromOrigins(std::set<HostPortPair> origins) {
} // namespace
@@ -136,20 +136,20 @@ diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc
+
// Refcounted class that owns quic::QuicCryptoClientConfig and tracks how many
// consumers are using it currently. When the last reference is freed, the
// QuicCryptoClientConfigHandle informs the owning QuicStreamFactory, moves it
@@ -2368,7 +2401,7 @@ QuicStreamFactory::CreateCryptoConfigHandle(
sct_auditing_delegate_,
// QuicCryptoClientConfigHandle informs the owning QuicSessionPool, moves it
@@ -2409,7 +2442,7 @@ QuicSessionPool::CreateCryptoConfigHandle(
cert_verifier_, transport_security_state_, sct_auditing_delegate_,
HostsFromOrigins(params_.origins_to_force_quic_on),
actual_network_anonymization_key),
- std::make_unique<quic::QuicClientSessionCache>(), this);
+ std::make_unique<BromiteSessionCache>(), this);
+ std::make_unique<quic::BromiteSessionCache>(), this);
quic::QuicCryptoClientConfig* crypto_config = crypto_config_owner->config();
crypto_config->AddCanonicalSuffix(".c.youtube.com");
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
@@ -387,7 +387,33 @@ SSLClientSocketImpl::SSLClientSocketImpl(
@@ -380,7 +380,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();
}
@@ -772,6 +798,8 @@ int SSLClientSocketImpl::Init() {
@@ -764,6 +790,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();
@@ -1066,6 +1094,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) {
@@ -1062,6 +1090,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.
@@ -1718,6 +1775,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const {
@@ -1699,6 +1756,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const {
}
bool SSLClientSocketImpl::IsCachingEnabled() const {
+2 -2
View File
@@ -11,7 +11,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
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
@@ -300,7 +300,7 @@ BASE_FEATURE(kForceGpuMainThreadToNormalPriorityDrDc,
@@ -295,7 +295,7 @@ BASE_FEATURE(kForceGpuMainThreadToNormalPriorityDrDc,
// enabled by default on supported platforms.
#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || \
BUILDFLAG(IS_ANDROID)
@@ -23,7 +23,7 @@ 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
@@ -369,6 +369,7 @@ ScriptPromise GPU::requestAdapter(ScriptState* script_state,
@@ -368,6 +368,7 @@ ScriptPromise GPU::requestAdapter(ScriptState* script_state,
"WebGPU is experimental on this platform. See "
"https://github.com/gpuweb/gpuweb/wiki/"
"Implementation-Status#implementation-status"));
@@ -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
@@ -1143,6 +1143,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@@ -1198,6 +1198,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
@@ -143,7 +143,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
@@ -135,7 +135,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(prefs::kEnterpriseHardwarePlatformAPIEnabled,
false);
@@ -40,14 +40,14 @@ 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
@@ -129,6 +129,7 @@ ui::ElementContext BrowserFeaturePromoController::GetAnchorContext() const {
@@ -132,6 +132,7 @@ ui::ElementContext BrowserFeaturePromoController::GetAnchorContext() const {
bool BrowserFeaturePromoController::CanShowPromoForElement(
ui::TrackedElement* anchor_element) const {
+ if ((true)) return false;
auto* const profile = browser_view_->GetProfile();
// Verify that there are no required notices pending.
// Turn off IPH while a required privacy interstitial is visible or pending.
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
@@ -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
@@ -433,6 +433,7 @@ FeaturePromoResult FeaturePromoControllerCommon::CanShowPromoCommon(
@@ -446,6 +446,7 @@ FeaturePromoResult FeaturePromoControllerCommon::CanShowPromoCommon(
const FeaturePromoSpecification** spec_out,
std::unique_ptr<FeaturePromoLifecycle>* lifecycle_out,
ui::TrackedElement** anchor_element_out) const {
@@ -43,7 +43,7 @@ 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
@@ -1216,6 +1216,7 @@ network::mojom::AttributionSupport
@@ -1157,6 +1157,7 @@ network::mojom::AttributionSupport
AwContentBrowserClient::GetAttributionSupport(
AttributionReportingOsApiState state,
content::WebContents* web_contents) {
@@ -62,7 +62,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30"/>
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_CONNECT"/>
<!--
@@ -1166,9 +1165,6 @@ by a child template that "extends" this file.
@@ -1157,9 +1156,6 @@ by a child template that "extends" this file.
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize" >
</activity>
@@ -95,7 +95,7 @@ diff --git a/components/embedder_support/origin_trials/features.cc b/components/
diff --git a/components/renderer_context_menu/render_view_context_menu_base.cc b/components/renderer_context_menu/render_view_context_menu_base.cc
--- a/components/renderer_context_menu/render_view_context_menu_base.cc
+++ b/components/renderer_context_menu/render_view_context_menu_base.cc
@@ -510,9 +510,6 @@ RenderViewContextMenuBase::GetOpenURLParamsWithExtraHeaders(
@@ -502,9 +502,6 @@ RenderViewContextMenuBase::GetOpenURLParamsWithExtraHeaders(
open_url_params.source_site_instance = site_instance_;
@@ -147,7 +147,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
@@ -833,6 +833,7 @@ void AttributionDataHostManagerImpl::ParseHeader(
@@ -827,6 +827,7 @@ void AttributionDataHostManagerImpl::ParseHeader(
HeaderPendingDecode pending_decode,
Registrar registrar) {
DCHECK(it != registrations_.end());
@@ -158,18 +158,18 @@ 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
@@ -361,6 +361,7 @@ void AttributionHost::RegisterNavigationDataHost(
@@ -257,6 +257,7 @@ void AttributionHost::NotifyNavigationRegistrationData(
return;
}
+ if ((true)) return;
AttributionManager* attribution_manager =
auto* attribution_manager =
AttributionManager::FromWebContents(web_contents());
DCHECK(attribution_manager);
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
@@ -46,6 +46,7 @@ absl::optional<ApiState> g_state GUARDED_BY_CONTEXT(GetSequenceChecker());
@@ -46,6 +46,7 @@ std::optional<ApiState> g_state GUARDED_BY_CONTEXT(GetSequenceChecker());
// static
bool AttributionOsLevelManager::ShouldUseOsWebSource(
GlobalRenderFrameHostId render_frame_id) {
@@ -215,7 +215,7 @@ diff --git a/content/browser/attribution_reporting/attribution_report_network_se
diff --git a/content/browser/attribution_reporting/attribution_storage_sql.cc b/content/browser/attribution_reporting/attribution_storage_sql.cc
--- a/content/browser/attribution_reporting/attribution_storage_sql.cc
+++ b/content/browser/attribution_reporting/attribution_storage_sql.cc
@@ -398,14 +398,16 @@ base::FilePath DatabasePath(const base::FilePath& user_data_directory) {
@@ -459,14 +459,16 @@ base::FilePath DatabasePath(const base::FilePath& user_data_directory) {
return user_data_directory.Append(kDatabasePath);
}
@@ -238,7 +238,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
@@ -1526,15 +1526,6 @@ void StoragePartitionImpl::Initialize(
@@ -1508,15 +1508,6 @@ void StoragePartitionImpl::Initialize(
bucket_manager_ = std::make_unique<BucketManager>(this);
@@ -656,7 +656,7 @@ 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
@@ -554,6 +554,7 @@ void ContentBrowserClient::OnAuctionComplete(
@@ -539,6 +539,7 @@ void ContentBrowserClient::OnAuctionComplete(
network::mojom::AttributionSupport ContentBrowserClient::GetAttributionSupport(
AttributionReportingOsApiState state,
content::WebContents* web_contents) {
@@ -664,7 +664,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b
switch (state) {
case AttributionReportingOsApiState::kDisabled:
return network::mojom::AttributionSupport::kWeb;
@@ -570,17 +571,17 @@ bool ContentBrowserClient::IsAttributionReportingOperationAllowed(
@@ -555,17 +556,17 @@ bool ContentBrowserClient::IsAttributionReportingOperationAllowed(
const url::Origin* destination_origin,
const url::Origin* reporting_origin,
bool* can_bypass) {
@@ -755,7 +755,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
@@ -1303,7 +1303,7 @@ void Page::UpdateBrowsingContextGroup(
@@ -1336,7 +1336,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
@@ -2622,6 +2622,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
@@ -2509,6 +2509,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
base::NumberToString(pid));
}
#endif
@@ -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,
@@ -1797,10 +1797,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
@@ -169,4 +169,6 @@ BASE_FEATURE(kRefreshFeedOnRestart,
@@ -164,4 +164,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
@@ -107,8 +107,8 @@ BASE_FEATURE(kWebViewMetricsFiltering,
@@ -96,8 +96,8 @@ BASE_FEATURE(kWebViewJavaJsBridgeMojo,
// Field trial feature for controlling support of Origin Trials on WebView.
BASE_FEATURE(kWebViewOriginTrials,
@@ -131,7 +131,7 @@ diff --git a/chrome/browser/metrics/chrome_browser_sampling_trials.cc b/chrome/b
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
@@ -815,7 +815,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams(
@@ -840,7 +840,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams(
void SystemNetworkContextManager::ConfigureDefaultNetworkContextParams(
network::mojom::NetworkContextParams* network_context_params) {
@@ -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
@@ -166,6 +166,9 @@ bool HasUnknownMetrics(const builders::DecodeMap& decode_map,
@@ -163,6 +163,9 @@ bool HasUnknownMetrics(const builders::DecodeMap& decode_map,
UkmRecorderImpl::UkmRecorderImpl()
: sampling_seed_(static_cast<uint32_t>(base::RandUint64())) {
@@ -262,7 +262,7 @@ diff --git a/components/variations/net/variations_http_headers.cc b/components/v
diff --git a/components/variations/service/variations_field_trial_creator_base.cc b/components/variations/service/variations_field_trial_creator_base.cc
--- a/components/variations/service/variations_field_trial_creator_base.cc
+++ b/components/variations/service/variations_field_trial_creator_base.cc
@@ -118,6 +118,7 @@ Study::CpuArchitecture GetCurrentCpuArchitecture() {
@@ -119,6 +119,7 @@ Study::CpuArchitecture GetCurrentCpuArchitecture() {
}
#if BUILDFLAG(FIELDTRIAL_TESTING_ENABLED)
@@ -270,7 +270,7 @@ diff --git a/components/variations/service/variations_field_trial_creator_base.c
// Determines whether the field trial testing config defined in
// testing/variations/fieldtrial_testing_config.json should be applied. If the
// "disable_fieldtrial_testing_config" GN flag is set to true, then the testing
@@ -300,11 +301,6 @@ bool VariationsFieldTrialCreatorBase::SetUpFieldTrials(
@@ -318,11 +319,6 @@ bool VariationsFieldTrialCreatorBase::SetUpFieldTrials(
safe_seed_manager);
}
@@ -282,7 +282,7 @@ diff --git a/components/variations/service/variations_field_trial_creator_base.c
base::FeatureList::SetInstance(std::move(feature_list));
// For testing Variations Safe Mode, maybe crash here.
@@ -581,6 +577,7 @@ bool VariationsFieldTrialCreatorBase::CreateTrialsFromSeed(
@@ -603,6 +599,7 @@ bool VariationsFieldTrialCreatorBase::CreateTrialsFromSeed(
const EntropyProviders& entropy_providers,
base::FeatureList* feature_list,
SafeSeedManagerBase* safe_seed_manager) {
@@ -290,7 +290,7 @@ diff --git a/components/variations/service/variations_field_trial_creator_base.c
// This histogram name uses "VariationsFieldTrialCreator" rather than
// "VariationsFieldTrialCreatorBase" for consistency with historical data
TRACE_EVENT0("startup", "VariationsFieldTrialCreator::CreateTrialsFromSeed");
@@ -674,6 +671,7 @@ bool VariationsFieldTrialCreatorBase::CreateTrialsFromSeed(
@@ -704,6 +701,7 @@ bool VariationsFieldTrialCreatorBase::CreateTrialsFromSeed(
void VariationsFieldTrialCreatorBase::LoadSeedFromJsonFile(
const base::FilePath& json_seed_path) {
@@ -301,7 +301,7 @@ diff --git a/components/variations/service/variations_field_trial_creator_base.c
diff --git a/components/variations/service/variations_service.cc b/components/variations/service/variations_service.cc
--- a/components/variations/service/variations_service.cc
+++ b/components/variations/service/variations_service.cc
@@ -221,17 +221,8 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers,
@@ -223,17 +223,8 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers,
// Variations seed fetching is only enabled in official Chrome builds, if a URL
// is specified on the command line, and for testing.
bool IsFetchingEnabled() {
@@ -321,7 +321,7 @@ diff --git a/components/variations/service/variations_service.cc b/components/va
}
// Returns the already downloaded first run seed, and clear the seed from the
@@ -601,7 +592,7 @@ bool VariationsService::DoFetchFromURL(const GURL& url, bool is_http_retry) {
@@ -607,7 +598,7 @@ bool VariationsService::DoFetchFromURL(const GURL& url, bool is_http_retry) {
// debugger or if the machine was suspended) and OnURLFetchComplete() hasn't
// had a chance to run yet from the previous request. In this case, don't
// start a new request and just let the previous one finish.
@@ -333,7 +333,7 @@ diff --git a/components/variations/service/variations_service.cc b/components/va
diff --git a/content/browser/loader/url_loader_throttles.cc b/content/browser/loader/url_loader_throttles.cc
--- a/content/browser/loader/url_loader_throttles.cc
+++ b/content/browser/loader/url_loader_throttles.cc
@@ -50,8 +50,6 @@ CreateContentBrowserURLLoaderThrottles(
@@ -52,8 +52,6 @@ CreateContentBrowserURLLoaderThrottles(
// TODO(crbug.com/1094303): Consider whether we want to use the WebContents to
// determine the value for variations::Owner. Alternatively, this is the
// browser side, and we might be fine with Owner::kUnknown.
@@ -342,7 +342,7 @@ diff --git a/content/browser/loader/url_loader_throttles.cc b/content/browser/lo
ClientHintsControllerDelegate* client_hint_delegate =
browser_context->GetClientHintsControllerDelegate();
@@ -130,11 +128,6 @@ CreateContentBrowserURLLoaderThrottlesForKeepAlive(
@@ -132,11 +130,6 @@ CreateContentBrowserURLLoaderThrottlesForKeepAlive(
GetContentClient()->browser()->CreateURLLoaderThrottlesForKeepAlive(
request, browser_context, wc_getter, frame_tree_node_id);
variations::OmniboxURLLoaderThrottle::AppendThrottleIfNeeded(&throttles);
@@ -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
@@ -194,13 +194,6 @@ WebVector<int> CopyInitiatorOriginTrials(
@@ -197,13 +197,6 @@ WebVector<int> CopyInitiatorOriginTrials(
const Vector<mojom::blink::OriginTrialFeature>&
initiator_origin_trial_features) {
WebVector<int> result;
+2 -2
View File
@@ -31,7 +31,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5 b/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5
--- a/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5
+++ b/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5
@@ -275,6 +275,7 @@
@@ -280,6 +280,7 @@
{
name: "IdleDetection",
permissions_policy_name: "idle-detection",
@@ -55,7 +55,7 @@ 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
@@ -2068,6 +2068,11 @@
@@ -2105,6 +2105,11 @@
name: "HTMLUnsafeMethods",
status: "experimental",
},
@@ -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
@@ -448,8 +448,8 @@ BASE_FEATURE(kOmniboxModernizeVisualUpdate,
@@ -434,8 +434,8 @@ BASE_FEATURE(kOmniboxModernizeVisualUpdate,
// used, on non-Android platforms this is controlled through the
// ChromeRefresh2023 flag.
BASE_FEATURE(kUpdatedConnectionSecurityIndicators,
@@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browser/media/router/media_router_feature.cc
--- a/chrome/browser/media/router/media_router_feature.cc
+++ b/chrome/browser/media/router/media_router_feature.cc
@@ -105,6 +105,7 @@ void ClearMediaRouterStoredPrefsForTesting() {
@@ -110,6 +110,7 @@ void ClearMediaRouterStoredPrefsForTesting() {
}
bool MediaRouterEnabled(content::BrowserContext* context) {
@@ -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;
@@ -146,7 +147,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
@@ -151,7 +152,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);
@@ -217,4 +218,7 @@ absl::optional<base::TimeDelta> GetCastMirroringPlayoutDelay() {
@@ -222,4 +223,7 @@ std::optional<base::TimeDelta> GetCastMirroringPlayoutDelay() {
#endif // !BUILDFLAG(IS_ANDROID)
@@ -43,7 +43,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse
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
@@ -418,7 +418,7 @@ void ProfileImpl::RegisterProfilePrefs(
@@ -419,7 +419,7 @@ void ProfileImpl::RegisterProfilePrefs(
#endif
registry->RegisterBooleanPref(prefs::kForceEphemeralProfiles, false);
@@ -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
@@ -558,6 +558,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs(
@@ -589,6 +589,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
@@ -3109,14 +3109,10 @@
@@ -3163,14 +3163,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
@@ -2113,9 +2113,7 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
@@ -2129,9 +2129,7 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
}
PluginData* LocalFrame::GetPluginData() const {
@@ -4,21 +4,68 @@ Subject: Disable prefers-reduced-transparency media query
This feature can be used for fingerprinting as it exposes a user preference
---
.../blink/renderer/platform/runtime_enabled_features.json5 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
third_party/blink/renderer/core/css/media_query_exp.cc | 3 ++-
.../blink/renderer/core/css/parser/media_query_parser.cc | 4 ++--
.../renderer/core/preferences/preference_manager.idl | 2 +-
.../renderer/platform/runtime_enabled_features.json5 | 8 ++++++--
4 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/third_party/blink/renderer/core/css/media_query_exp.cc b/third_party/blink/renderer/core/css/media_query_exp.cc
--- a/third_party/blink/renderer/core/css/media_query_exp.cc
+++ b/third_party/blink/renderer/core/css/media_query_exp.cc
@@ -112,7 +112,8 @@ static inline bool FeatureWithValidIdent(const String& media_feature,
ident == CSSValueID::kLess || ident == CSSValueID::kCustom;
}
- if (media_feature == media_feature_names::kPrefersReducedMotionMediaFeature) {
+ if (RuntimeEnabledFeatures::PrefersReducedTransparencyEnabled() &&
+ media_feature == media_feature_names::kPrefersReducedMotionMediaFeature) {
return ident == CSSValueID::kNoPreference || ident == CSSValueID::kReduce;
}
diff --git a/third_party/blink/renderer/core/css/parser/media_query_parser.cc b/third_party/blink/renderer/core/css/parser/media_query_parser.cc
--- a/third_party/blink/renderer/core/css/parser/media_query_parser.cc
+++ b/third_party/blink/renderer/core/css/parser/media_query_parser.cc
@@ -79,8 +79,8 @@ class MediaQueryFeatureSet : public MediaQueryParser::FeatureSet {
RuntimeEnabledFeatures::CSSUpdateMediaFeatureEnabled()) ||
(feature == media_feature_names::kPrefersReducedDataMediaFeature &&
RuntimeEnabledFeatures::PrefersReducedDataEnabled()) ||
- feature ==
- media_feature_names::kPrefersReducedTransparencyMediaFeature ||
+ (feature == media_feature_names::kPrefersReducedTransparencyMediaFeature &&
+ RuntimeEnabledFeatures::PrefersReducedTransparencyEnabled()) ||
(feature == media_feature_names::kForcedColorsMediaFeature &&
RuntimeEnabledFeatures::ForcedColorsEnabled()) ||
(feature == media_feature_names::kNavigationControlsMediaFeature &&
diff --git a/third_party/blink/renderer/core/preferences/preference_manager.idl b/third_party/blink/renderer/core/preferences/preference_manager.idl
--- a/third_party/blink/renderer/core/preferences/preference_manager.idl
+++ b/third_party/blink/renderer/core/preferences/preference_manager.idl
@@ -12,6 +12,6 @@ interface PreferenceManager {
readonly attribute PreferenceObject colorScheme;
readonly attribute PreferenceObject contrast;
readonly attribute PreferenceObject reducedMotion;
- readonly attribute PreferenceObject reducedTransparency;
+ [RuntimeEnabled=PrefersReducedTransparency] readonly attribute PreferenceObject reducedTransparency;
[RuntimeEnabled=PrefersReducedData] readonly attribute PreferenceObject reducedData;
};
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
@@ -2957,8 +2957,8 @@
base_feature: "none",
@@ -3010,10 +3010,14 @@
settable_from_internals: true,
},
{
- name: "PrefersReducedTransparency",
- status: "stable",
+ name: "PrefersReducedTransparency", // disabled by default
+ status: "experimental", // see https://bugs.chromium.org/p/chromium/issues/detail?id=1424879
- name: "PrefersReducedData",
- status: "experimental",
+ name: "PrefersReducedData", // must be
+ status: "experimental", // disabled
base_feature: "none",
},
+ {
+ name: "PrefersReducedTransparency",
+ status: "experimental",
+ },
// This feature is deprecated and we are evangelizing affected sites.
// See https://crbug.com/346236 for current status.
{
--
@@ -49,7 +49,7 @@ diff --git a/chrome/browser/password_manager/generated_password_leak_detection_p
diff --git a/components/password_manager/core/browser/affiliation/affiliation_backend.cc b/components/password_manager/core/browser/affiliation/affiliation_backend.cc
--- a/components/password_manager/core/browser/affiliation/affiliation_backend.cc
+++ b/components/password_manager/core/browser/affiliation/affiliation_backend.cc
@@ -409,6 +409,7 @@ void AffiliationBackend::OnMalformedResponse(
@@ -397,6 +397,7 @@ void AffiliationBackend::OnMalformedResponse(
}
bool AffiliationBackend::OnCanSendNetworkRequest() {
@@ -114,7 +114,7 @@ diff --git a/components/password_manager/core/browser/affiliation/facet_manager.
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
@@ -239,4 +239,8 @@ BASE_FEATURE(kUseGMSCoreForBrandingInfo,
@@ -181,4 +181,8 @@ BASE_FEATURE(kUseGMSCoreForBrandingInfo,
base::FEATURE_DISABLED_BY_DEFAULT);
#endif
@@ -14,7 +14,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/net/http/http_server_properties_manager.cc b/net/http/http_server_properties_manager.cc
--- a/net/http/http_server_properties_manager.cc
+++ b/net/http/http_server_properties_manager.cc
@@ -38,7 +38,7 @@ const int kMissingVersion = 0;
@@ -39,7 +39,7 @@ const int kMissingVersion = 0;
const int kVersionNumber = 5;
// Persist at most 200 currently-broken alternative services to disk.
@@ -26,7 +26,7 @@ diff --git a/net/http/http_server_properties_manager.cc b/net/http/http_server_p
diff --git a/net/http/http_stream_factory_job_controller.cc b/net/http/http_stream_factory_job_controller.cc
--- a/net/http/http_stream_factory_job_controller.cc
+++ b/net/http/http_stream_factory_job_controller.cc
@@ -1233,11 +1233,7 @@ HttpStreamFactory::JobController::GetAlternativeServiceInfoInternal(
@@ -1256,11 +1256,7 @@ HttpStreamFactory::JobController::GetAlternativeServiceInfoInternal(
// single user on a multi-user system to hijack the alternate protocol.
// These systems also enforce ports <1024 as restricted ports. So don't
// allow protocol upgrades to user-controllable ports.
@@ -34,12 +34,12 @@ diff --git a/net/http/http_stream_factory_job_controller.cc b/net/http/http_stre
- if (!session_->params().enable_user_alternate_protocol_ports &&
- (alternative_service_info.alternative_service().port >=
- kUnrestrictedPort &&
- original_url.EffectiveIntPort() < kUnrestrictedPort))
+ if (alternative_service_info.alternative_service().port != 443)
- original_url.EffectiveIntPort() < kUnrestrictedPort)) {
+ if (alternative_service_info.alternative_service().port != 443) {
continue;
}
if (alternative_service_info.protocol() == kProtoHTTP2) {
@@ -1274,8 +1270,7 @@ HttpStreamFactory::JobController::GetAlternativeServiceInfoInternal(
@@ -1303,8 +1299,7 @@ HttpStreamFactory::JobController::GetAlternativeServiceInfoInternal(
GURL destination = CreateAltSvcUrl(
original_url, alternative_service_info.host_port_pair());
@@ -52,7 +52,7 @@ diff --git a/net/http/http_stream_factory_job_controller.cc b/net/http/http_stre
diff --git a/net/quic/quic_context.h b/net/quic/quic_context.h
--- a/net/quic/quic_context.h
+++ b/net/quic/quic_context.h
@@ -183,7 +183,7 @@ struct NET_EXPORT QuicParams {
@@ -186,7 +186,7 @@ struct NET_EXPORT QuicParams {
bool allow_server_migration = false;
// If true, allows QUIC to use alternative services with a different
// hostname from the origin.
+19 -18
View File
@@ -4,19 +4,19 @@ 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 | 12 ------------
.../browser/settings/SettingsLauncherImpl.java | 5 +----
chrome/browser/BUILD.gn | 1 -
.../omnibox/suggestions/action/OmniboxPedal.java | 3 ---
7 files changed, 1 insertion(+), 31 deletions(-)
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 | 13 -------------
.../browser/settings/SettingsLauncherImpl.java | 5 +----
chrome/browser/BUILD.gn | 1 -
.../omnibox/suggestions/action/OmniboxPedal.java | 3 ---
7 files changed, 1 insertion(+), 32 deletions(-)
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -397,7 +397,6 @@ if (current_toolchain == default_toolchain) {
@@ -400,7 +400,6 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/recent_tabs:helper_java",
"//chrome/browser/recent_tabs:java",
"//chrome/browser/safe_browsing/android:java",
@@ -24,7 +24,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//chrome/browser/screenshot_monitor:java",
"//chrome/browser/search_engines/android:java",
"//chrome/browser/search_resumption:java",
@@ -1037,8 +1036,6 @@ if (current_toolchain == default_toolchain) {
@@ -1034,8 +1033,6 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/recent_tabs:java",
"//chrome/browser/recent_tabs:junit",
"//chrome/browser/recent_tabs/internal:junit",
@@ -33,7 +33,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//chrome/browser/screenshot_monitor:java",
"//chrome/browser/search_engines/android:java",
"//chrome/browser/search_engines/android:junit",
@@ -1659,8 +1656,6 @@ if (current_toolchain == default_toolchain) {
@@ -1655,8 +1652,6 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/quick_delete:javatests",
"//chrome/browser/safe_browsing/android:java",
"//chrome/browser/safe_browsing/android:javatests",
@@ -56,14 +56,14 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_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
@@ -67,11 +67,6 @@ found in the LICENSE file.
@@ -73,11 +73,6 @@ found in the LICENSE file.
android:key="privacy"
android:order="11"
android:order="12"
android:title="@string/prefs_privacy_security"/>
- <Preference
- android:fragment="org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment"
- android:key="safety_check"
- android:order="12"
- android:order="13"
- android:title="@string/prefs_safety_check"/>
<Preference
android:fragment="org.chromium.chrome.browser.settings.AdBlockPreferences"
@@ -71,7 +71,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
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,9 +66,6 @@ import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsBaseFra
@@ -64,9 +64,6 @@ import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsBaseFra
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.profiles.ProfileManagerUtils;
import org.chromium.chrome.browser.safe_browsing.settings.SafeBrowsingSettingsFragmentBase;
@@ -81,7 +81,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;
@@ -550,15 +547,6 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -531,16 +528,6 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
baseSiteSettingsFragment.setCustomTabIntentHelper(
LaunchIntentDispatcher::createCustomTabActivityIntent);
}
@@ -92,7 +92,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
- mSettingsLauncher,
- SyncConsentActivityLauncherImpl.get(),
- getModalDialogManagerSupplier(),
- SyncServiceFactory.getForProfile(mProfile));
- SyncServiceFactory.getForProfile(mProfile),
- UserPrefs.get(mProfile));
- }
if (fragment instanceof PasswordCheckFragmentView) {
PasswordCheckComponentUiFactory.create(
@@ -122,7 +123,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
@@ -3489,7 +3489,6 @@ static_library("browser") {
@@ -3459,7 +3459,6 @@ static_library("browser") {
"//chrome/browser/reading_list/android",
"//chrome/browser/recent_tabs:jni_headers",
"//chrome/browser/safe_browsing/android:safe_browsing_enums",
@@ -44,9 +44,9 @@ 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
@@ -198,6 +198,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kCCTClientDataHeader,
&kCCTDeprecatedAPIs,
@@ -183,6 +183,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kCCTEmbedderSpecialBehaviorTrigger,
&kCCTExtendTrustedCdnPublisher,
&kCCTFeatureUsage,
+ &kChromeSmartSelection,
&kCCTIncognitoAvailableToThirdParty,
@@ -55,14 +55,14 @@ 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
@@ -198,6 +198,7 @@ public abstract class ChromeFeatureList {
public static final String CCT_REAL_TIME_ENGAGEMENT_SIGNALS_ALTERNATIVE_IMPL =
"CCTRealTimeEngagementSignalsAlternativeImpl";
public static final String CCT_REDIRECT_PRECONNECT = "CCTRedirectPreconnect";
@@ -218,6 +218,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_REMOVE_REMOTE_VIEW_IDS = "CCTRemoveRemoteViewIds";
public static final String CCT_PAGE_INSIGHTS_HUB_BETTER_SCROLL =
"CCTPageInsightsHubBetterScroll";
public static final String CCT_REPORT_PARALLEL_REQUEST_STATUS =
"CCTReportParallelRequestStatus";
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
@@ -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
@@ -1603,7 +1603,7 @@ ChromeContentRendererClient::CreateWorkerContentSettingsClient(
@@ -1622,7 +1622,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
@@ -475,6 +475,14 @@ bool ContentSettingsAgentImpl::IsAllowlistedForContentSettings() const {
@@ -473,6 +473,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;
@@ -485,7 +493,6 @@ bool ContentSettingsAgentImpl::UpdateOverrides() {
@@ -483,7 +491,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
@@ -116,6 +116,8 @@ class ContentSettingsAgentImpl
@@ -117,6 +117,8 @@ class ContentSettingsAgentImpl
void SetRendererContentSettingRulesForTest(
const RendererContentSettingRules& rules);
@@ -139,7 +139,7 @@ new file mode 100644
diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/third_party/blink/public/platform/web_content_settings_client.h
--- a/third_party/blink/public/platform/web_content_settings_client.h
+++ b/third_party/blink/public/platform/web_content_settings_client.h
@@ -115,6 +115,8 @@ class WebContentSettingsClient {
@@ -111,6 +111,8 @@ class WebContentSettingsClient {
// frame.
virtual bool ShouldAutoupgradeMixedContent() { return true; }
@@ -51,7 +51,7 @@ diff --git a/chrome/services/file_util/safe_archive_analyzer.cc b/chrome/service
diff --git a/chrome/services/file_util/safe_archive_analyzer.h b/chrome/services/file_util/safe_archive_analyzer.h
--- a/chrome/services/file_util/safe_archive_analyzer.h
+++ b/chrome/services/file_util/safe_archive_analyzer.h
@@ -7,7 +7,6 @@
@@ -9,7 +9,6 @@
#include "chrome/common/safe_browsing/archive_analyzer_results.h"
#include "chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom.h"
@@ -59,7 +59,7 @@ diff --git a/chrome/services/file_util/safe_archive_analyzer.h b/chrome/services
#include "chrome/utility/safe_browsing/seven_zip_analyzer.h"
#include "chrome/utility/safe_browsing/zip_analyzer.h"
#include "mojo/public/cpp/bindings/remote.h"
@@ -66,7 +65,6 @@ class SafeArchiveAnalyzer : public chrome::mojom::SafeArchiveAnalyzer {
@@ -67,7 +66,6 @@ class SafeArchiveAnalyzer : public chrome::mojom::SafeArchiveAnalyzer {
void Timeout();
safe_browsing::ZipAnalyzer zip_analyzer_;
@@ -34,15 +34,15 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
--- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc
@@ -292,6 +292,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
@@ -312,6 +312,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
#endif
{wf::EnableTouchDragAndContextMenu,
raw_ref(features::kTouchDragAndContextMenu)},
+ {wf::EnableTextFragmentIdentifiers,
+ raw_ref(blink::features::kTextFragmentAnchor)},
{wf::EnableUserActivationSameOriginVisibility,
raw_ref(features::kUserActivationSameOriginVisibility)},
{wf::EnableVideoPlaybackQuality, raw_ref(features::kVideoPlaybackQuality)},
{wf::EnableTouchDragAndContextMenu,
raw_ref(features::kTouchDragAndContextMenu)},
+ {wf::EnableTextFragmentIdentifiers,
+ raw_ref(blink::features::kTextFragmentAnchor)},
{wf::EnableUserActivationSameOriginVisibility,
raw_ref(features::kUserActivationSameOriginVisibility)},
{wf::EnableVideoPlaybackQuality,
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Disable-text-fragments-by-default.inc b/cromite_flags/chrome/browser/about_flags_cc/Disable-text-fragments-by-default.inc
new file mode 100644
--- /dev/null
@@ -74,7 +74,7 @@ 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
@@ -4432,9 +4432,14 @@ void Document::SetURL(const KURL& url) {
@@ -4487,9 +4487,14 @@ void Document::SetURL(const KURL& url) {
TRACE_EVENT1("navigation", "Document::SetURL", "url",
new_url.GetString().Utf8());
@@ -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
@@ -3703,10 +3703,9 @@
@@ -3753,10 +3753,9 @@
},
{
name: "TextFragmentIdentifiers",
@@ -75,7 +75,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
@@ -8520,7 +8520,6 @@ void NavigationRequest::SetSourceSiteInstanceToInitiatorIfNeeded() {
@@ -8681,7 +8681,6 @@ void NavigationRequest::SetSourceSiteInstanceToInitiatorIfNeeded() {
void NavigationRequest::ForceEnableOriginTrials(
const std::vector<std::string>& trials) {
DCHECK(!HasCommitted());
@@ -86,7 +86,7 @@ diff --git a/content/browser/renderer_host/navigation_request.cc b/content/brows
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
@@ -483,10 +483,6 @@ void FillNavigationParamsRequest(
@@ -485,10 +485,6 @@ void FillNavigationParamsRequest(
common_params.initiator_origin.value();
}
@@ -97,7 +97,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;
@@ -514,12 +510,6 @@ void FillNavigationParamsRequest(
@@ -516,12 +512,6 @@ void FillNavigationParamsRequest(
navigation_params->had_transient_user_activation =
common_params.has_user_gesture;
@@ -110,7 +110,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) {
@@ -581,11 +571,6 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams(
@@ -583,11 +573,6 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams(
info->url_request.GetURLRequestExtraData().get());
DCHECK(url_request_extra_data);
@@ -122,7 +122,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(),
@@ -608,7 +593,7 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams(
@@ -610,7 +595,7 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams(
info->url_request.HasUserGesture(),
info->url_request.HasTextFragmentToken(),
info->should_check_main_world_content_security_policy,
@@ -174,7 +174,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
@@ -180,13 +180,6 @@ namespace {
@@ -183,13 +183,6 @@ namespace {
Vector<mojom::blink::OriginTrialFeature> CopyInitiatorOriginTrials(
const WebVector<int>& initiator_origin_trial_features) {
Vector<mojom::blink::OriginTrialFeature> result;
@@ -188,7 +188,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p
return result;
}
@@ -200,18 +193,12 @@ WebVector<int> CopyInitiatorOriginTrials(
@@ -203,18 +196,12 @@ WebVector<int> CopyInitiatorOriginTrials(
Vector<String> CopyForceEnabledOriginTrials(
const WebVector<WebString>& force_enabled_origin_trials) {
Vector<String> result;
@@ -207,7 +207,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p
return result;
}
@@ -2942,10 +2929,6 @@ void DocumentLoader::CreateParserPostCommit() {
@@ -2939,10 +2926,6 @@ void DocumentLoader::CreateParserPostCommit() {
mojom::blink::OriginTrialFeature::kTouchEventFeatureDetection);
}
@@ -233,7 +233,7 @@ diff --git a/third_party/blink/renderer/core/loader/http_equiv.cc b/third_party/
diff --git a/third_party/blink/renderer/core/origin_trials/origin_trial_context.cc b/third_party/blink/renderer/core/origin_trials/origin_trial_context.cc
--- a/third_party/blink/renderer/core/origin_trials/origin_trial_context.cc
+++ b/third_party/blink/renderer/core/origin_trials/origin_trial_context.cc
@@ -317,6 +317,9 @@ void OriginTrialContext::AddToken(const String& token) {
@@ -314,6 +314,9 @@ void OriginTrialContext::AddToken(const String& token) {
void OriginTrialContext::AddTokenFromExternalScript(
const String& token,
const Vector<scoped_refptr<SecurityOrigin>>& external_origins) {
@@ -243,7 +243,7 @@ diff --git a/third_party/blink/renderer/core/origin_trials/origin_trial_context.
Vector<OriginInfo> script_origins;
for (const scoped_refptr<SecurityOrigin>& origin : external_origins) {
OriginInfo origin_info = {.origin = origin,
@@ -452,8 +455,6 @@ bool OriginTrialContext::InstallSettingFeature(
@@ -466,8 +469,6 @@ bool OriginTrialContext::InstallSettingFeature(
}
void OriginTrialContext::AddFeature(mojom::blink::OriginTrialFeature feature) {
@@ -252,7 +252,7 @@ diff --git a/third_party/blink/renderer/core/origin_trials/origin_trial_context.
}
bool OriginTrialContext::IsFeatureEnabled(
@@ -497,6 +498,7 @@ void OriginTrialContext::AddForceEnabledTrials(
@@ -511,6 +512,7 @@ void OriginTrialContext::AddForceEnabledTrials(
}
bool OriginTrialContext::CanEnableTrialFromName(const StringView& trial_name) {
+6 -6
View File
@@ -24,7 +24,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/firstrun/FirstRunActivityBase.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
@@ -63,7 +63,7 @@ public abstract class FirstRunActivityBase extends AsyncInitializationActivity
@@ -62,7 +62,7 @@ public abstract class FirstRunActivityBase extends AsyncInitializationActivity
static final String SHOW_SEARCH_ENGINE_PAGE = "ShowSearchEnginePage";
static final String SHOW_SYNC_CONSENT_PAGE = "ShowSyncConsent";
@@ -91,7 +91,7 @@ diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/br
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
@@ -1051,7 +1051,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) {
@@ -1060,7 +1060,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) {
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
registry->RegisterBooleanPref(metrics::prefs::kMetricsReportingEnabled,
@@ -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"
@@ -5030,16 +5029,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
@@ -4880,16 +4879,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),
@@ -5140,10 +5129,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
@@ -4990,10 +4979,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
throttle_manager->MaybeAppendNavigationThrottles(handle, &throttles);
}
@@ -188,7 +188,7 @@ diff --git a/components/ntp_tiles/BUILD.gn b/components/ntp_tiles/BUILD.gn
"most_visited_sites.cc",
"most_visited_sites.h",
"ntp_tile.cc",
@@ -92,7 +90,6 @@ source_set("unit_tests") {
@@ -91,7 +89,6 @@ source_set("unit_tests") {
"custom_links_manager_impl_unittest.cc",
"custom_links_store_unittest.cc",
"icon_cacher_impl_unittest.cc",
@@ -222,7 +222,7 @@ diff --git a/components/ntp_tiles/most_visited_sites.cc b/components/ntp_tiles/m
diff --git a/services/metrics/public/cpp/ukm_recorder.cc b/services/metrics/public/cpp/ukm_recorder.cc
--- a/services/metrics/public/cpp/ukm_recorder.cc
+++ b/services/metrics/public/cpp/ukm_recorder.cc
@@ -130,4 +130,5 @@ void UkmRecorder::RemoveObserver(Observer* observer) {
@@ -122,4 +122,5 @@ void UkmRecorder::RemoveObserver(Observer* observer) {
observers_.RemoveObserver(observer);
}
@@ -13,7 +13,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/components/visitedlink/browser/visitedlink_writer.cc b/components/visitedlink/browser/visitedlink_writer.cc
--- a/components/visitedlink/browser/visitedlink_writer.cc
+++ b/components/visitedlink/browser/visitedlink_writer.cc
@@ -234,7 +234,7 @@ VisitedLinkWriter::VisitedLinkWriter(content::BrowserContext* browser_context,
@@ -235,7 +235,7 @@ VisitedLinkWriter::VisitedLinkWriter(content::BrowserContext* browser_context,
: browser_context_(browser_context),
delegate_(delegate),
listener_(std::make_unique<VisitedLinkEventListener>(browser_context)),
@@ -22,7 +22,7 @@ diff --git a/components/visitedlink/browser/visitedlink_writer.cc b/components/v
VisitedLinkWriter::VisitedLinkWriter(Listener* listener,
VisitedLinkDelegate* delegate,
@@ -244,10 +244,10 @@ VisitedLinkWriter::VisitedLinkWriter(Listener* listener,
@@ -245,10 +245,10 @@ VisitedLinkWriter::VisitedLinkWriter(Listener* listener,
int32_t default_table_size)
: delegate_(delegate),
listener_(listener),
@@ -35,7 +35,7 @@ diff --git a/components/visitedlink/browser/visitedlink_writer.cc b/components/v
DCHECK(listener_);
}
@@ -317,6 +317,7 @@ void VisitedLinkWriter::AddURL(const GURL& url, bool update_file) {
@@ -318,6 +318,7 @@ void VisitedLinkWriter::AddURL(const GURL& url, bool update_file) {
}
VisitedLinkWriter::Hash VisitedLinkWriter::TryToAddURL(const GURL& url) {
@@ -43,7 +43,7 @@ diff --git a/components/visitedlink/browser/visitedlink_writer.cc b/components/v
// Extra check that we are not incognito. This should not happen.
// TODO(boliu): Move this check to HistoryService when IsOffTheRecord is
// removed from BrowserContext.
@@ -1033,7 +1034,6 @@ bool VisitedLinkWriter::RebuildTableFromDelegate() {
@@ -1029,7 +1030,6 @@ bool VisitedLinkWriter::RebuildTableFromDelegate() {
// TODO(brettw) make sure we have reasonable salt!
table_builder_ = new TableBuilder(this, salt_);
@@ -54,7 +54,7 @@ diff --git a/components/visitedlink/browser/visitedlink_writer.cc b/components/v
diff --git a/components/visitedlink/common/visitedlink_common.cc b/components/visitedlink/common/visitedlink_common.cc
--- a/components/visitedlink/common/visitedlink_common.cc
+++ b/components/visitedlink/common/visitedlink_common.cc
@@ -41,6 +41,7 @@ bool VisitedLinkCommon::IsVisited(const GURL& url) const {
@@ -43,6 +43,7 @@ bool VisitedLinkCommon::IsVisited(const GURL& url) const {
}
bool VisitedLinkCommon::IsVisited(Fingerprint fingerprint) const {
@@ -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
@@ -529,11 +529,6 @@ void ChromeContentRendererClient::RenderThreadStarted() {
@@ -542,11 +542,6 @@ void ChromeContentRendererClient::RenderThreadStarted() {
// TODO(nyquist): Add test to ensure this happens when the flag is set.
WebSecurityPolicy::RegisterURLSchemeAsDisplayIsolated(dom_distiller_scheme);
@@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -1421,8 +1421,6 @@ static_library("ui") {
@@ -1435,8 +1435,6 @@ static_library("ui") {
"singleton_tabs.h",
"startup/automation_infobar_delegate.cc",
"startup/automation_infobar_delegate.h",
@@ -5,16 +5,16 @@ Subject: Do not compile QR code sharing
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/android/BUILD.gn | 1 -
.../chrome/browser/ui/RootUiCoordinator.java | 5 ----
.../chrome/browser/ui/RootUiCoordinator.java | 5 -----
chrome/browser/share/BUILD.gn | 2 --
...omeProvidedSharingOptionsProviderBase.java | 23 -------------------
chrome/browser/share/android/java_sources.gni | 11 ---------
5 files changed, 42 deletions(-)
...omeProvidedSharingOptionsProviderBase.java | 22 -------------------
chrome/browser/share/android/java_sources.gni | 11 ----------
5 files changed, 41 deletions(-)
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -3471,7 +3471,6 @@ generate_jni("chrome_jni_headers") {
@@ -3503,7 +3503,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
@@ -112,7 +112,6 @@ import org.chromium.chrome.browser.share.ShareButtonController;
@@ -114,7 +114,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;
@@ -574,10 +573,6 @@ public class RootUiCoordinator
@@ -587,10 +586,6 @@ public class RootUiCoordinator
}
public void onAttachFragment(Fragment fragment) {
@@ -59,7 +59,7 @@ diff --git a/chrome/browser/share/BUILD.gn b/chrome/browser/share/BUILD.gn
diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/ChromeProvidedSharingOptionsProviderBase.java b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/ChromeProvidedSharingOptionsProviderBase.java
--- a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/ChromeProvidedSharingOptionsProviderBase.java
+++ b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/ChromeProvidedSharingOptionsProviderBase.java
@@ -24,7 +24,6 @@ import org.chromium.chrome.browser.preferences.Pref;
@@ -19,7 +19,6 @@ import org.chromium.chrome.browser.preferences.Pref;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.share.ChromeShareExtras.DetailedContentType;
import org.chromium.chrome.browser.share.ShareContentTypeHelper.ContentType;
@@ -67,7 +67,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;
@@ -303,9 +302,6 @@ public abstract class ChromeProvidedSharingOptionsProviderBase {
@@ -268,9 +267,6 @@ public abstract class ChromeProvidedSharingOptionsProviderBase {
}
private void maybeAddQrCodeFirstPartyOption() {
@@ -76,8 +76,8 @@ diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/s
- }
}
private void maybeAddScreenshotFirstPartyOption() {
@@ -486,25 +482,6 @@ public abstract class ChromeProvidedSharingOptionsProviderBase {
private void maybeAddLongScreenshotFirstPartyOption() {
@@ -386,24 +382,6 @@ public abstract class ChromeProvidedSharingOptionsProviderBase {
.build();
}
@@ -86,8 +86,7 @@ diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/s
- ContentType.LINK_PAGE_VISIBLE,
- ContentType.LINK_PAGE_NOT_VISIBLE,
- ContentType.IMAGE)
- .setDetailedContentTypesToDisableFor(
- DetailedContentType.WEB_NOTES, DetailedContentType.SCREENSHOT)
- .setDetailedContentTypesToDisableFor(DetailedContentType.SCREENSHOT)
- .setIcon(R.drawable.qr_code, R.string.qr_code_share_icon_label)
- .setFeatureNameForMetrics(USER_ACTION_QR_CODE_SELECTED)
- .setOnClickCallback(
@@ -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
@@ -1100,7 +1100,7 @@ component("base") {
@@ -1120,7 +1120,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") {
@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc
--- a/components/password_manager/core/browser/password_manager.cc
+++ b/components/password_manager/core/browser/password_manager.cc
@@ -253,14 +253,14 @@ base::CallbackListSubscription AddSyncEnabledOrDisabledCallback(
@@ -256,14 +256,14 @@ base::CallbackListSubscription AddSyncEnabledOrDisabledCallback(
void PasswordManager::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(
+8 -8
View File
@@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/net/stub_resolver_config_reader.cc b/chrome/browser/net/stub_resolver_config_reader.cc
--- a/chrome/browser/net/stub_resolver_config_reader.cc
+++ b/chrome/browser/net/stub_resolver_config_reader.cc
@@ -149,7 +149,7 @@ StubResolverConfigReader::StubResolverConfigReader(PrefService* local_state,
@@ -150,7 +150,7 @@ StubResolverConfigReader::StubResolverConfigReader(PrefService* local_state,
if (entries.count("dns-over-https@1")) {
// The user has "Enabled" selected.
local_state_->SetString(prefs::kDnsOverHttpsMode,
@@ -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,
@@ -344,22 +344,7 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration(
@@ -345,22 +345,7 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration(
check_parental_controls = false;
}
@@ -50,9 +50,9 @@ diff --git a/chrome/browser/net/stub_resolver_config_reader.cc b/chrome/browser/
diff --git a/net/dns/dns_client.cc b/net/dns/dns_client.cc
--- a/net/dns/dns_client.cc
+++ b/net/dns/dns_client.cc
@@ -242,11 +242,14 @@ class DnsClientImpl : public DnsClient {
@@ -243,11 +243,14 @@ class DnsClientImpl : public DnsClient {
private:
absl::optional<DnsConfig> BuildEffectiveConfig() const {
std::optional<DnsConfig> BuildEffectiveConfig() const {
DnsConfig config;
- if (config_overrides_.OverridesEverything()) {
+ // in Bromite it is sufficient to have secure DoH enabled to give the overrides priority
@@ -62,19 +62,19 @@ diff --git a/net/dns/dns_client.cc b/net/dns/dns_client.cc
- if (!system_config_)
+ if (!system_config_) {
+ LOG(WARNING) << "BuildEffectiveConfig(): no system configuration";
return absl::nullopt;
return std::nullopt;
+ }
config = config_overrides_.ApplyOverrides(system_config_.value());
}
@@ -261,8 +264,10 @@ class DnsClientImpl : public DnsClient {
@@ -262,8 +265,10 @@ class DnsClientImpl : public DnsClient {
if (config.unhandled_options)
config.nameservers.clear();
- if (!config.IsValid())
+ if (!config.IsValid()) {
+ LOG(WARNING) << "BuildEffectiveConfig(): invalid configuration";
return absl::nullopt;
return std::nullopt;
+ }
return config;
@@ -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
@@ -3139,6 +3139,7 @@ void HostResolverManager::SetDnsConfigOverrides(DnsConfigOverrides overrides) {
@@ -599,6 +599,7 @@ void HostResolverManager::SetDnsConfigOverrides(DnsConfigOverrides overrides) {
bool changed = dns_client_->SetConfigOverrides(std::move(overrides));
if (changed) {
@@ -11,7 +11,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/version.gni b/chrome/version.gni
--- a/chrome/version.gni
+++ b/chrome/version.gni
@@ -75,7 +75,7 @@ if (is_mac) {
@@ -76,7 +76,7 @@ if (is_mac) {
"trichrome_64_version_code = \"@TRICHROME_64_VERSION_CODE@\" "
_version_dictionary_template +=
"trichrome_auto_64_version_code = \"@TRICHROME_AUTO_64_VERSION_CODE@\" "
@@ -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
@@ -303,9 +303,10 @@ BASE_FEATURE(kDelegateTransforms,
@@ -295,9 +295,10 @@ BASE_FEATURE(kDelegateTransforms,
// If enabled, Chrome includes the Renderer Main thread(s) into the
// ADPF(Android Dynamic Performance Framework) hint session.
@@ -15,10 +15,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../Enable-Certificate-Transparency.inc | 6 ++++++
.../Enable-Certificate-Transparency.inc | 2 ++
net/http/transport_security_state.cc | 5 +++--
net/url_request/report_sender.cc | 3 ++-
services/network/network_context.cc | 2 +-
services/network/sct_auditing/sct_auditing_handler.cc | 2 ++
10 files changed, 32 insertions(+), 5 deletions(-)
8 files changed, 29 insertions(+), 3 deletions(-)
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Enable-Certificate-Transparency.inc
create mode 100644 cromite_flags/chrome/browser/browser_features_cc/Enable-Certificate-Transparency.inc
create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Enable-Certificate-Transparency.inc
@@ -26,7 +24,7 @@ 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
@@ -62,6 +62,7 @@ BASE_DECLARE_FEATURE(kTabCaptureBlueBorderCrOS);
@@ -63,6 +63,7 @@ BASE_DECLARE_FEATURE(kTabCaptureBlueBorderCrOS);
BASE_DECLARE_FEATURE(kWebUsbDeviceDetection);
@@ -37,7 +35,7 @@ diff --git a/chrome/browser/browser_features.h b/chrome/browser/browser_features
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
@@ -982,7 +982,7 @@ bool SystemNetworkContextManager::IsCertificateTransparencyEnabled() {
@@ -1012,7 +1012,7 @@ bool SystemNetworkContextManager::IsCertificateTransparencyEnabled() {
// - on an opt-in basis for other builds and embedders, controlled with the
// kCertificateTransparencyAskBeforeEnabling flag
return base::FeatureList::IsEnabled(
@@ -96,7 +94,7 @@ new file mode 100644
diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_state.cc
--- a/net/http/transport_security_state.cc
+++ b/net/http/transport_security_state.cc
@@ -327,6 +327,7 @@ class HSTSPreloadDecoder : public net::extras::PreloadDecoder {
@@ -190,6 +190,7 @@ class HSTSPreloadDecoder : public net::extras::PreloadDecoder {
bool DecodeHSTSPreload(const std::string& search_hostname, PreloadResult* out) {
#if !BUILDFLAG(INCLUDE_TRANSPORT_SECURITY_STATE_PRELOAD_LIST)
@@ -104,7 +102,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
if (g_hsts_source == nullptr)
return false;
#endif
@@ -372,8 +373,8 @@ bool DecodeHSTSPreload(const std::string& search_hostname, PreloadResult* out) {
@@ -235,8 +236,8 @@ bool DecodeHSTSPreload(const std::string& search_hostname, PreloadResult* out) {
// static
BASE_FEATURE(kCertificateTransparencyEnforcement,
@@ -115,31 +113,6 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
void SetTransportSecurityStateSourceForTesting(
const TransportSecurityStateSource* source) {
diff --git a/net/url_request/report_sender.cc b/net/url_request/report_sender.cc
--- a/net/url_request/report_sender.cc
+++ b/net/url_request/report_sender.cc
@@ -87,7 +87,8 @@ void ReportSender::Send(
URLRequest* raw_url_request = url_request.get();
inflight_requests_[raw_url_request] = std::move(url_request);
- raw_url_request->Start();
+ // pretend that request completed
+ OnResponseStarted(raw_url_request, OK);
}
void ReportSender::OnResponseStarted(URLRequest* request, int net_error) {
diff --git a/services/network/network_context.cc b/services/network/network_context.cc
--- a/services/network/network_context.cc
+++ b/services/network/network_context.cc
@@ -2797,7 +2797,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
// TransportSecurityState. Since no requests have been made yet, safe to do
// this even after the call to Build().
- if (params_->enable_certificate_reporting) {
+ if ((false) /* params_->enable_certificate_reporting*/) {
net::NetworkTrafficAnnotationTag traffic_annotation =
net::DefineNetworkTrafficAnnotation("domain_security_policy", R"(
semantics {
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
@@ -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
@@ -3421,70 +3421,6 @@ void Document::open(LocalDOMWindow* entered_window,
@@ -3472,70 +3472,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
@@ -1439,7 +1439,6 @@
@@ -1448,7 +1448,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
@@ -348,8 +348,8 @@ BASE_FEATURE(kEnableTabMuting,
@@ -333,8 +333,8 @@ BASE_FEATURE(kEnableTabMuting,
#if BUILDFLAG(ENABLE_PLATFORM_HEVC)
// Enables HEVC hardware accelerated decoding.
BASE_FEATURE(kPlatformHEVCDecoderSupport,
@@ -9,7 +9,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../chromium/chrome/browser/bookmarks/BookmarkUiPrefs.java | 2 +-
.../org/chromium/chrome/browser/bookmarks/BookmarkUtils.java | 3 ++-
.../org/chromium/chrome/browser/flags/ChromeFeatureList.java | 2 +-
components/bookmarks/browser/bookmark_client.cc | 3 +--
components/bookmarks/browser/bookmark_node.cc | 3 +--
.../Enable-ImprovedBookmarks-by-default.inc | 1 +
7 files changed, 10 insertions(+), 7 deletions(-)
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Enable-ImprovedBookmarks-by-default.inc
@@ -39,7 +39,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
import androidx.annotation.DrawableRes;
import androidx.annotation.StringRes;
@@ -54,6 +55,7 @@ class BookmarkSearchBoxRowViewBinder {
@@ -34,6 +35,7 @@ class BookmarkSearchBoxRowViewBinder {
private void bindInternal(PropertyModel model, View view, PropertyKey key) {
BookmarkSearchBoxRow row = (BookmarkSearchBoxRow) view;
ChipView shoppingChip = view.findViewById(R.id.shopping_filter_chip);
@@ -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;
@@ -491,7 +492,7 @@ public class BookmarkUtils {
@@ -489,7 +490,7 @@ public class BookmarkUtils {
RecordUserAction.record("MobileBookmarkManagerReopenBookmarksInSameSession");
}
@@ -82,19 +82,19 @@ 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
@@ -773,7 +773,7 @@ public abstract class ChromeFeatureList {
@@ -765,7 +765,7 @@ public abstract class ChromeFeatureList {
public static final MutableFlagWithSafeDefault sAdvancedPeripheralsSupportTabStrip =
newMutableFlagWithSafeDefault(ADVANCED_PERIPHERALS_SUPPORT_TAB_STRIP, false);
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 sAvoidRelayoutDuringFocusAnimation =
newMutableFlagWithSafeDefault(AVOID_RELAYOUT_DURING_FOCUS_ANIMATION, true);
public static final MutableFlagWithSafeDefault sCctRealTimeEngagementSignals =
diff --git a/components/bookmarks/browser/bookmark_client.cc b/components/bookmarks/browser/bookmark_client.cc
--- a/components/bookmarks/browser/bookmark_client.cc
+++ b/components/bookmarks/browser/bookmark_client.cc
@@ -50,8 +50,7 @@ bool BookmarkClient::IsPermanentNodeVisibleWhenEmpty(
public static final MutableFlagWithSafeDefault sDeferKeepScreenOnDuringGesture =
newMutableFlagWithSafeDefault(DEFER_KEEP_SCREEN_ON_DURING_GESTURE, false);
public static final MutableFlagWithSafeDefault sDeferNotifyInMotion =
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
@@ -171,8 +171,7 @@ bool BookmarkPermanentNode::IsTypeVisibleWhenEmpty(Type type) {
case BookmarkNode::BOOKMARK_BAR:
return is_desktop;
case BookmarkNode::OTHER_NODE:
@@ -103,7 +103,7 @@ diff --git a/components/bookmarks/browser/bookmark_client.cc b/components/bookma
+ return true;
case BookmarkNode::MOBILE:
// Either MOBILE or OTHER_NODE is visible when empty, but never both.
return !IsPermanentNodeVisibleWhenEmpty(BookmarkNode::OTHER_NODE);
return !IsTypeVisibleWhenEmpty(BookmarkNode::OTHER_NODE);
diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Enable-ImprovedBookmarks-by-default.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Enable-ImprovedBookmarks-by-default.inc
new file mode 100644
--- /dev/null
@@ -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
@@ -1549,7 +1549,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
@@ -1446,7 +1446,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
registry->RegisterFilePathPref(prefs::kDiskCacheDir, base::FilePath());
registry->RegisterIntegerPref(prefs::kDiskCacheSize, 0);
registry->RegisterStringPref(prefs::kIsolateOrigins, std::string());
@@ -29,7 +29,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
registry->RegisterBooleanPref(prefs::kTabFreezingEnabled, true);
registry->RegisterIntegerPref(prefs::kSCTAuditingHashdanceReportCount, 0);
registry->RegisterBooleanPref(
@@ -1574,7 +1574,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs(
@@ -1471,7 +1471,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
@@ -1554,9 +1554,9 @@
@@ -1604,9 +1604,9 @@
"expiry_milestone": 125
},
{
@@ -45,7 +45,7 @@ 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
@@ -395,6 +395,10 @@ config("compiler") {
@@ -397,6 +397,10 @@ config("compiler") {
}
}
@@ -21,7 +21,7 @@ in android there is a test function accessible in the developer settings.
diff --git a/android_webview/lib/aw_main_delegate.cc b/android_webview/lib/aw_main_delegate.cc
--- a/android_webview/lib/aw_main_delegate.cc
+++ b/android_webview/lib/aw_main_delegate.cc
@@ -397,7 +397,7 @@ void AwMainDelegate::InitializeMemorySystem(const bool is_browser_process) {
@@ -396,7 +396,7 @@ void AwMainDelegate::InitializeMemorySystem(const bool is_browser_process) {
const std::string process_type =
base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
switches::kProcessType);
@@ -73,7 +73,7 @@ diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/andr
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java
@@ -5,13 +5,16 @@
@@ -5,7 +5,9 @@
package org.chromium.chrome.browser.tracing.settings;
import android.os.Bundle;
@@ -83,14 +83,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/setting
import androidx.preference.PreferenceFragmentCompat;
import org.chromium.base.ResettersForTesting;
@@ -15,11 +17,13 @@ import org.chromium.base.version_info.VersionInfo;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
+import org.chromium.chrome.browser.util.PlatformUtil;
import org.chromium.components.browser_ui.settings.SettingsUtils;
import org.chromium.components.version_info.Channel;
import org.chromium.components.version_info.VersionConstants;
@@ -20,6 +23,7 @@ import org.chromium.components.version_info.VersionInfo;
/** Settings fragment containing preferences aimed at Chrome and web developers. */
public class DeveloperSettings extends PreferenceFragmentCompat {
private static final String UI_PREF_BETA_STABLE_HINT = "beta_stable_hint";
@@ -123,7 +122,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/setting
diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegate.cc
--- a/chrome/app/chrome_main_delegate.cc
+++ b/chrome/app/chrome_main_delegate.cc
@@ -1939,7 +1939,7 @@ void ChromeMainDelegate::InitializeMemorySystem() {
@@ -2014,7 +2014,7 @@ void ChromeMainDelegate::InitializeMemorySystem() {
const version_info::Channel channel = chrome::GetChannel();
const bool is_canary_dev = (channel == version_info::Channel::CANARY ||
channel == version_info::Channel::DEV);
@@ -37,18 +37,18 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../content/renderer/autofill_agent.cc | 6 ++
.../renderer/password_autofill_agent.cc | 5 +-
.../autofill/core/browser/autofill_driver.h | 2 +
.../autofill/core/common/autofill_prefs.cc | 6 ++
.../autofill/core/common/autofill_prefs.h | 2 +
.../autofill/core/common/autofill_prefs.cc | 2 +
.../autofill/core/common/autofill_prefs.h | 5 ++
.../embedder_support/view/ContentView.java | 46 +++++++++++
.../selection/FloatingPastePopupMenu.java | 3 +-
.../chromium/ui/base/ViewAndroidDelegate.java | 8 ++
27 files changed, 416 insertions(+), 10 deletions(-)
27 files changed, 415 insertions(+), 10 deletions(-)
create mode 100644 components/android_autofill/browser/java/src/org/chromium/components/autofill/BrowserSelectionActionMenuDelegate.java
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -424,6 +424,7 @@ if (current_toolchain == default_toolchain) {
@@ -428,6 +428,7 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/ui/android/hats:message_ui_delegate_java",
"//chrome/browser/ui/android/layouts:java",
"//chrome/browser/ui/android/layouts/glue:java",
@@ -185,7 +185,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
@@ -74,6 +74,18 @@ import org.chromium.url.GURL;
@@ -71,6 +71,18 @@ import org.chromium.url.GURL;
import java.nio.ByteBuffer;
@@ -204,16 +204,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
/**
* Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}. This
* class is not intended to be extended.
@@ -224,6 +236,8 @@ class TabImpl implements Tab {
*/
private @Nullable @TabLaunchType Integer mTabLaunchTypeAtCreation;
@@ -230,6 +242,8 @@ class TabImpl implements Tab {
private String mPendingNativePageHost;
+ AutofillProvider mAutofillProvider;
+
/**
* Creates an instance of a {@link TabImpl}. Package-private. Use {@link TabBuilder} to create
* an instance.
@@ -844,6 +858,11 @@ class TabImpl implements Tab {
@@ -850,6 +864,11 @@ class TabImpl implements Tab {
for (TabObserver observer : mObservers) observer.onDestroyed(this);
mObservers.clear();
@@ -225,7 +225,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
mUserDataHost.destroy();
mTabViewManager.destroy();
hideNativePage(false, null);
@@ -1424,6 +1443,16 @@ class TabImpl implements Tab {
@@ -1446,6 +1465,16 @@ class TabImpl implements Tab {
return mWebContentsState == null ? -1 : mWebContentsState.version();
}
@@ -242,7 +242,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
/**
* Initializes the {@link WebContents}. Completes the browser content components initialization
* around a native WebContents pointer.
@@ -1491,6 +1520,30 @@ class TabImpl implements Tab {
@@ -1513,6 +1542,30 @@ class TabImpl implements Tab {
this));
mWebContents.notifyRendererPreferenceUpdate();
@@ -273,7 +273,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
TabHelpers.initWebContentsHelpers(this);
notifyContentChanged();
} finally {
@@ -1954,6 +2007,8 @@ class TabImpl implements Tab {
@@ -1968,6 +2021,8 @@ class TabImpl implements Tab {
boolean handleNonNavigationAboutURL(GURL url);
@@ -316,7 +316,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndr
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -2664,6 +2664,13 @@ static_library("browser") {
@@ -2647,6 +2647,13 @@ static_library("browser") {
deps += [ "//chrome/browser/error_reporting" ]
}
@@ -333,7 +333,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_android.cc
--- a/chrome/browser/android/tab_android.cc
+++ b/chrome/browser/android/tab_android.cc
@@ -53,6 +53,13 @@
@@ -52,6 +52,13 @@
#include "url/android/gurl_android.h"
#include "url/gurl.h"
@@ -347,7 +347,7 @@ diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_
using base::android::AttachCurrentThread;
using base::android::ConvertUTF8ToJavaString;
using base::android::JavaParamRef;
@@ -513,3 +520,11 @@ static void JNI_TabImpl_Init(JNIEnv* env,
@@ -507,3 +514,11 @@ static void JNI_TabImpl_Init(JNIEnv* env,
// This will automatically bind to the Java object and pass ownership there.
new TabAndroid(env, obj, profile, id);
}
@@ -362,7 +362,7 @@ diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_
diff --git a/chrome/browser/android/tab_android.h b/chrome/browser/android/tab_android.h
--- a/chrome/browser/android/tab_android.h
+++ b/chrome/browser/android/tab_android.h
@@ -173,6 +173,8 @@ class TabAndroid : public base::SupportsUserData {
@@ -172,6 +172,8 @@ class TabAndroid : public base::SupportsUserData {
void SetDevToolsAgentHost(scoped_refptr<content::DevToolsAgentHost> host);
@@ -374,7 +374,7 @@ diff --git a/chrome/browser/android/tab_android.h b/chrome/browser/android/tab_a
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
@@ -634,6 +634,12 @@ CHAR_LIMIT guidelines:
@@ -637,6 +637,12 @@ CHAR_LIMIT guidelines:
<message name="IDS_PASSWORD_SETTINGS_SAVE_PASSWORDS" desc="Title for the checkbox toggling whether passwords are saved or not. [CHAR_LIMIT=32]">
Save passwords
</message>
@@ -390,7 +390,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/browser/ui/autofill/chrome_autofill_client.cc
--- a/chrome/browser/ui/autofill/chrome_autofill_client.cc
+++ b/chrome/browser/ui/autofill/chrome_autofill_client.cc
@@ -1359,7 +1359,13 @@ ChromeAutofillClient::ChromeAutofillClient(content::WebContents* web_contents)
@@ -1338,7 +1338,13 @@ ChromeAutofillClient::ChromeAutofillClient(content::WebContents* web_contents)
web_contents,
base::BindRepeating(&BrowserDriverInitHook,
this,
@@ -431,9 +431,9 @@ diff --git a/components/android_autofill/browser/android_autofill_manager.cc b/c
diff --git a/components/android_autofill/browser/android_autofill_manager.h b/components/android_autofill/browser/android_autofill_manager.h
--- a/components/android_autofill/browser/android_autofill_manager.h
+++ b/components/android_autofill/browser/android_autofill_manager.h
@@ -91,12 +91,12 @@ class AndroidAutofillManager : public AutofillManager,
const std::u16string& value,
PopupItemId popup_item_id) override;
@@ -84,12 +84,12 @@ class AndroidAutofillManager : public AutofillManager,
const FieldTypeGroup field_type_group,
const url::Origin& triggered_origin);
+ AndroidAutofillManager(AutofillDriver* driver, AutofillClient* client);
+
@@ -583,7 +583,7 @@ new file mode 100644
diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/components/autofill/content/browser/content_autofill_driver.cc
--- a/components/autofill/content/browser/content_autofill_driver.cc
+++ b/components/autofill/content/browser/content_autofill_driver.cc
@@ -455,6 +455,10 @@ void ContentAutofillDriver::FormsSeen(
@@ -447,6 +447,10 @@ void ContentAutofillDriver::FormsSeen(
const std::vector<FormGlobalId>& removed_forms) {
target->GetAutofillManager().OnFormsSeen(
WithNewVersion(updated_forms), removed_forms);
@@ -594,7 +594,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
});
}
@@ -482,6 +486,10 @@ void ContentAutofillDriver::FormSubmitted(
@@ -474,6 +478,10 @@ void ContentAutofillDriver::FormSubmitted(
}
target->GetAutofillManager().OnFormSubmitted(
WithNewVersion(form), known_success, submission_source);
@@ -605,7 +605,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
});
}
@@ -503,6 +511,10 @@ void ContentAutofillDriver::TextFieldDidChange(const FormData& raw_form,
@@ -495,6 +503,10 @@ void ContentAutofillDriver::TextFieldDidChange(const FormData& raw_form,
base::TimeTicks timestamp) {
target->GetAutofillManager().OnTextFieldDidChange(
WithNewVersion(form), field, bounding_box, timestamp);
@@ -616,7 +616,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
});
}
@@ -522,6 +534,10 @@ void ContentAutofillDriver::TextFieldDidScroll(const FormData& raw_form,
@@ -514,6 +526,10 @@ void ContentAutofillDriver::TextFieldDidScroll(const FormData& raw_form,
const FormFieldData& field, const gfx::RectF& bounding_box) {
target->GetAutofillManager().OnTextFieldDidScroll(WithNewVersion(form),
field, bounding_box);
@@ -627,7 +627,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
});
}
@@ -542,6 +558,10 @@ void ContentAutofillDriver::SelectControlDidChange(
@@ -534,6 +550,10 @@ void ContentAutofillDriver::SelectControlDidChange(
const FormFieldData& field, const gfx::RectF& bounding_box) {
target->GetAutofillManager().OnSelectControlDidChange(
WithNewVersion(form), field, bounding_box);
@@ -638,7 +638,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
});
}
@@ -564,6 +584,10 @@ void ContentAutofillDriver::AskForValuesToFill(
@@ -556,6 +576,10 @@ void ContentAutofillDriver::AskForValuesToFill(
AutofillSuggestionTriggerSource trigger_source) {
target->GetAutofillManager().OnAskForValuesToFill(
WithNewVersion(form), field, bounding_box, trigger_source);
@@ -649,7 +649,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
});
}
@@ -575,6 +599,8 @@ void ContentAutofillDriver::HidePopup() {
@@ -567,6 +591,8 @@ void ContentAutofillDriver::HidePopup() {
DCHECK(!target->IsPrerendering())
<< "We should never affect UI while prerendering";
target->GetAutofillManager().OnHidePopup();
@@ -658,7 +658,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
});
}
@@ -586,6 +612,8 @@ void ContentAutofillDriver::FocusNoLongerOnForm(bool had_interacted_form) {
@@ -578,6 +604,8 @@ void ContentAutofillDriver::FocusNoLongerOnForm(bool had_interacted_form) {
this, had_interacted_form,
[](autofill::AutofillDriver* target, bool had_interacted_form) {
target->GetAutofillManager().OnFocusNoLongerOnForm(had_interacted_form);
@@ -667,7 +667,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
});
}
@@ -605,9 +633,16 @@ void ContentAutofillDriver::FocusOnFormField(const FormData& raw_form,
@@ -597,9 +625,16 @@ void ContentAutofillDriver::FocusOnFormField(const FormData& raw_form,
const FormFieldData& field, const gfx::RectF& bounding_box) {
target->GetAutofillManager().OnFocusOnFormField(WithNewVersion(form),
field, bounding_box);
@@ -684,7 +684,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
});
}
@@ -622,6 +657,10 @@ void ContentAutofillDriver::DidFillAutofillFormData(const FormData& raw_form,
@@ -614,6 +649,10 @@ void ContentAutofillDriver::DidFillAutofillFormData(const FormData& raw_form,
base::TimeTicks timestamp) {
target->GetAutofillManager().OnDidFillAutofillFormData(
WithNewVersion(form), timestamp);
@@ -695,7 +695,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
});
}
@@ -631,6 +670,8 @@ void ContentAutofillDriver::DidEndTextFieldEditing() {
@@ -623,6 +662,8 @@ void ContentAutofillDriver::DidEndTextFieldEditing() {
}
router().DidEndTextFieldEditing(this, [](autofill::AutofillDriver* target) {
target->GetAutofillManager().OnDidEndTextFieldEditing();
@@ -704,7 +704,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
});
}
@@ -645,6 +686,10 @@ void ContentAutofillDriver::SelectOrSelectListFieldOptionsDidChange(
@@ -637,6 +678,10 @@ void ContentAutofillDriver::SelectOrSelectListFieldOptionsDidChange(
cast(target)
->GetAutofillManager()
.OnSelectOrSelectListFieldOptionsDidChange(WithNewVersion(form));
@@ -715,7 +715,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
});
}
@@ -664,6 +709,10 @@ void ContentAutofillDriver::JavaScriptChangedAutofilledValue(
@@ -656,6 +701,10 @@ void ContentAutofillDriver::JavaScriptChangedAutofilledValue(
const FormFieldData& field, const std::u16string& old_value) {
target->GetAutofillManager().OnJavaScriptChangedAutofilledValue(
WithNewVersion(form), field, old_value);
@@ -726,7 +726,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
});
}
@@ -676,6 +725,8 @@ void ContentAutofillDriver::OnContextMenuShownInField(
@@ -668,6 +717,8 @@ void ContentAutofillDriver::OnContextMenuShownInField(
const FieldGlobalId& field_global_id) {
target->GetAutofillManager().OnContextMenuShownInField(form_global_id,
field_global_id);
@@ -735,7 +735,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
});
}
@@ -686,6 +737,8 @@ void ContentAutofillDriver::Reset() {
@@ -678,6 +729,8 @@ void ContentAutofillDriver::Reset() {
owner_->router().UnregisterDriver(this,
/*driver_is_dying=*/false);
autofill_manager_->Reset();
@@ -744,7 +744,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
}
const mojo::AssociatedRemote<mojom::AutofillAgent>&
@@ -698,6 +751,10 @@ ContentAutofillDriver::GetAutofillAgent() {
@@ -690,6 +743,10 @@ ContentAutofillDriver::GetAutofillAgent() {
return autofill_agent_;
}
@@ -772,7 +772,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.h b/com
content::RenderFrameHost* render_frame_host() { return &*render_frame_host_; }
const content::RenderFrameHost* render_frame_host() const {
@@ -351,6 +354,10 @@ class ContentAutofillDriver : public AutofillDriver,
@@ -349,6 +352,10 @@ class ContentAutofillDriver : public AutofillDriver,
std::unique_ptr<AutofillManager> autofill_manager_ = nullptr;
@@ -786,15 +786,15 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.h b/com
diff --git a/components/autofill/content/browser/content_autofill_driver_factory.cc b/components/autofill/content/browser/content_autofill_driver_factory.cc
--- a/components/autofill/content/browser/content_autofill_driver_factory.cc
+++ b/components/autofill/content/browser/content_autofill_driver_factory.cc
@@ -13,6 +13,7 @@
#include "components/autofill/content/browser/content_autofill_driver.h"
@@ -14,6 +14,7 @@
#include "components/autofill/core/browser/autofill_experiments.h"
#include "components/autofill/core/browser/browser_autofill_manager.h"
#include "components/autofill/core/common/autofill_features.h"
+#include "components/android_autofill/browser/android_autofill_manager.h"
#include "content/public/browser/global_routing_id.h"
#include "content/public/browser/navigation_handle.h"
#include "content/public/browser/render_frame_host.h"
@@ -44,9 +45,17 @@ bool ShouldEnableHeavyFormDataScraping(const version_info::Channel channel) {
@@ -45,9 +46,17 @@ bool ShouldEnableHeavyFormDataScraping(const version_info::Channel channel) {
void BrowserDriverInitHook(AutofillClient* client,
const std::string& app_locale,
@@ -827,7 +827,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver_factory
diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components/autofill/content/renderer/autofill_agent.cc
--- a/components/autofill/content/renderer/autofill_agent.cc
+++ b/components/autofill/content/renderer/autofill_agent.cc
@@ -1024,14 +1024,18 @@ void AutofillAgent::ShowSuggestions(
@@ -1008,14 +1008,18 @@ void AutofillAgent::ShowSuggestions(
password_generation_agent_->ShowPasswordGenerationSuggestions(
input_element)) {
is_popup_possibly_visible_ = true;
@@ -846,7 +846,7 @@ diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components
}
}
@@ -1043,11 +1047,13 @@ void AutofillAgent::ShowSuggestions(
@@ -1027,11 +1031,13 @@ void AutofillAgent::ShowSuggestions(
// match a regex). In this specific case we are actually interested in whether
// the field is currently a password field, not whether it has ever been a
// password field.
@@ -863,7 +863,7 @@ diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components
diff --git a/components/autofill/content/renderer/password_autofill_agent.cc b/components/autofill/content/renderer/password_autofill_agent.cc
--- a/components/autofill/content/renderer/password_autofill_agent.cc
+++ b/components/autofill/content/renderer/password_autofill_agent.cc
@@ -827,7 +827,10 @@ void PasswordAutofillAgent::UpdatePasswordStateForTextChange(
@@ -828,7 +828,10 @@ void PasswordAutofillAgent::UpdatePasswordStateForTextChange(
void PasswordAutofillAgent::TrackAutofilledElement(
const blink::WebFormControlElement& element) {
@@ -878,7 +878,7 @@ diff --git a/components/autofill/content/renderer/password_autofill_agent.cc b/c
diff --git a/components/autofill/core/browser/autofill_driver.h b/components/autofill/core/browser/autofill_driver.h
--- a/components/autofill/core/browser/autofill_driver.h
+++ b/components/autofill/core/browser/autofill_driver.h
@@ -69,6 +69,8 @@ class AutofillDriver {
@@ -70,6 +70,8 @@ class AutofillDriver {
// Returns the AutofillManager owned by the AutofillDriver.
virtual AutofillManager& GetAutofillManager() = 0;
@@ -890,18 +890,7 @@ diff --git a/components/autofill/core/browser/autofill_driver.h b/components/aut
diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/autofill/core/common/autofill_prefs.cc
--- a/components/autofill/core/common/autofill_prefs.cc
+++ b/components/autofill/core/common/autofill_prefs.cc
@@ -141,6 +141,10 @@ const char kAutofillUsingVirtualViewStructure[] =
"autofill.using_virtual_view_structure";
#endif // BUILDFLAG(IS_ANDROID)
+// Boolean that is true to enable native Android Autofill
+const char kAutofillAndroidEnabled[] = "autofill.android_autofill_enabled";
+const char kAutofillAndroidIncognitoEnabled[] = "autofill.android_autofill_incognito_enabled";
+
void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
// Synced prefs. Used for cross-device choices, e.g., credit card Autofill.
registry->RegisterBooleanPref(
@@ -166,6 +170,8 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
@@ -61,6 +61,8 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(
prefs::kAutofillCreditCardFidoAuthOfferCheckboxState, true);
#endif
@@ -913,15 +902,18 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto
diff --git a/components/autofill/core/common/autofill_prefs.h b/components/autofill/core/common/autofill_prefs.h
--- a/components/autofill/core/common/autofill_prefs.h
+++ b/components/autofill/core/common/autofill_prefs.h
@@ -42,6 +42,8 @@ extern const char kAutofillUploadEncodingSeed[];
extern const char kAutofillUploadEvents[];
extern const char kAutofillUploadEventsLastResetTimestamp[];
extern const char kAutocompleteLastVersionRetentionPolicy[];
+extern const char kAutofillAndroidEnabled[];
+extern const char kAutofillAndroidIncognitoEnabled[];
@@ -84,6 +84,11 @@ inline constexpr char kAutofillUploadEventsLastResetTimestamp[] =
// retention policy was run.
inline constexpr char kAutocompleteLastVersionRetentionPolicy[] =
"autocomplete.retention_policy_last_version";
+// Boolean that is true to enable native Android Autofill
+inline constexpr char kAutofillAndroidEnabled[] =
+ "autofill.android_autofill_enabled";
+inline constexpr char kAutofillAndroidIncognitoEnabled[] =
+ "autofill.android_autofill_incognito_enabled";
#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || \
BUILDFLAG(IS_IOS)
extern const char kAutofillPaymentMethodsMandatoryReauth[];
// Boolean that is set when payment methods mandatory re-auth is enabled by the
diff --git a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java
--- a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java
+++ b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java
@@ -16,7 +16,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
chrome/browser/resources/settings/BUILD.gn | 2 +-
.../resources/settings/page_visibility.ts | 30 +-
.../search_engine_edit_dialog.html | 6 +
.../search_engine_edit_dialog.ts | 5 +-
.../search_engine_edit_dialog.ts | 6 +-
.../search_engines_browser_proxy.ts | 8 +-
.../search_engines_page.html | 9 +-
.../settings/search_page/search_page.html | 6 +-
@@ -35,7 +35,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../template_url_table_model.cc | 9 +-
.../search_engines/template_url_table_model.h | 6 +-
.../webui/chrome_web_ui_controller_factory.cc | 6 +
chrome/browser/ui/webui/favicon_source.cc | 20 ++
chrome/browser/ui/webui/favicon_source.cc | 18 ++
chrome/browser/ui/webui/favicon_source.h | 2 +
.../webui/settings/search_engines_handler.cc | 28 +-
.../webui/settings/search_engines_handler.h | 3 +-
@@ -68,7 +68,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
ui/webui/resources/include_polymer.gni | 2 +-
ui/webui/resources/js/BUILD.gn | 2 +-
ui/webui/resources/js/load_time_data.ts | 17 +-
61 files changed, 1091 insertions(+), 60 deletions(-)
61 files changed, 1089 insertions(+), 61 deletions(-)
create mode 100644 chrome/app/settings_strings_android.grdp
create mode 100644 chrome/browser/search_engines/android/java/res/layout/search_engine_layout.xml
create mode 100644 chrome/browser/ui/webui/settings/settings_localized_strings_provider_android.cc
@@ -131,7 +131,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources
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
@@ -2427,6 +2427,9 @@
@@ -2425,6 +2425,9 @@
<message name="IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL_EXPLANATION" desc="Label for explaining the format of the URL that should be entered by the user in the add/edit search engine dialog.">
URL with <ph name="SPECIAL_SYMBOL">%s</ph> in place of query
</message>
@@ -406,7 +406,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
@@ -3668,6 +3668,9 @@ static_library("browser") {
@@ -3634,6 +3634,9 @@ static_library("browser") {
"//components/user_scripts/android",
]
}
@@ -419,7 +419,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD.gn
--- a/chrome/browser/resources/BUILD.gn
+++ b/chrome/browser/resources/BUILD.gn
@@ -19,6 +19,12 @@ assert(!is_ios, "Chromium/iOS shouldn't use anything in //chrome")
@@ -17,6 +17,12 @@ assert(!is_ios, "Chromium/iOS shouldn't use anything in //chrome")
group("resources") {
public_deps = [ "segmentation_internals:resources" ]
@@ -487,9 +487,9 @@ diff --git a/chrome/browser/resources/settings/page_visibility.ts b/chrome/brows
diff --git a/chrome/browser/resources/settings/search_engines_page/search_engine_edit_dialog.html b/chrome/browser/resources/settings/search_engines_page/search_engine_edit_dialog.html
--- a/chrome/browser/resources/settings/search_engines_page/search_engine_edit_dialog.html
+++ b/chrome/browser/resources/settings/search_engines_page/search_engine_edit_dialog.html
@@ -20,6 +20,12 @@
value="{{queryUrl_}}" on-focus="validate_" on-input="validate_"
disabled$="[[model.urlLocked]]">
@@ -22,6 +22,12 @@
error-message="$i18n{notValid}"
value="{{queryUrl_}}" on-focus="validate_" on-input="validate_">
</cr-input>
+ <cr-input id="suggestionUrl"
+ label="$i18n{searchEnginesSuggestionURLExplanation}"
@@ -499,7 +499,7 @@ diff --git a/chrome/browser/resources/settings/search_engines_page/search_engine
+ </cr-input>
</div>
<div slot="button-container">
<cr-button class="cancel-button" on-click="cancel_" id="cancel">
<cr-button class="cancel-button" on-click="cancel_" id="cancel"
diff --git a/chrome/browser/resources/settings/search_engines_page/search_engine_edit_dialog.ts b/chrome/browser/resources/settings/search_engines_page/search_engine_edit_dialog.ts
--- a/chrome/browser/resources/settings/search_engines_page/search_engine_edit_dialog.ts
+++ b/chrome/browser/resources/settings/search_engines_page/search_engine_edit_dialog.ts
@@ -510,24 +510,25 @@ diff --git a/chrome/browser/resources/settings/search_engines_page/search_engine
+ suggestionUrl_: String,
dialogTitle_: String,
actionButtonText_: String,
};
@@ -72,6 +73,7 @@ export class SettingsSearchEngineEditDialogElement extends
cancelButtonHidden_: Boolean,
@@ -78,6 +79,7 @@ export class SettingsSearchEngineEditDialogElement extends
private searchEngine_: string;
private keyword_: string;
private queryUrl_: string;
+ private suggestionUrl_: string;
private dialogTitle_: string;
private actionButtonText_: string;
private browserProxy_: SearchEnginesBrowserProxy =
@@ -89,6 +91,7 @@ export class SettingsSearchEngineEditDialogElement extends
private cancelButtonHidden_: boolean;
@@ -101,7 +103,7 @@ export class SettingsSearchEngineEditDialogElement extends
this.searchEngine_ = this.model.name;
this.keyword_ = this.model.keyword;
this.queryUrl_ = this.model.url;
- this.readonly_ = this.model.isManaged;
+ this.suggestionUrl_ = this.model.suggestionurl;
} else {
this.dialogTitle_ =
loadTimeData.getString('searchEnginesAddSearchEngine');
@@ -134,7 +137,7 @@ export class SettingsSearchEngineEditDialogElement extends
@@ -148,7 +150,7 @@ export class SettingsSearchEngineEditDialogElement extends
private onActionButtonClick_() {
this.browserProxy_.searchEngineEditCompleted(
@@ -539,7 +540,7 @@ diff --git a/chrome/browser/resources/settings/search_engines_page/search_engine
diff --git a/chrome/browser/resources/settings/search_engines_page/search_engines_browser_proxy.ts b/chrome/browser/resources/settings/search_engines_page/search_engines_browser_proxy.ts
--- a/chrome/browser/resources/settings/search_engines_page/search_engines_browser_proxy.ts
+++ b/chrome/browser/resources/settings/search_engines_page/search_engines_browser_proxy.ts
@@ -32,6 +32,7 @@ export interface SearchEngine {
@@ -33,6 +33,7 @@ export interface SearchEngine {
name: string;
shouldConfirmDeletion: boolean;
url: string;
@@ -547,7 +548,7 @@ diff --git a/chrome/browser/resources/settings/search_engines_page/search_engine
urlLocked: boolean;
}
@@ -94,7 +95,7 @@ export interface SearchEnginesBrowserProxy {
@@ -97,7 +98,7 @@ export interface SearchEnginesBrowserProxy {
searchEngineEditCancelled(): void;
searchEngineEditCompleted(
@@ -556,7 +557,7 @@ diff --git a/chrome/browser/resources/settings/search_engines_page/search_engine
getSearchEnginesList(): Promise<SearchEnginesInfo>;
@@ -136,11 +137,12 @@ export class SearchEnginesBrowserProxyImpl implements
@@ -139,11 +140,12 @@ export class SearchEnginesBrowserProxyImpl implements
}
searchEngineEditCompleted(
@@ -570,7 +571,7 @@ diff --git a/chrome/browser/resources/settings/search_engines_page/search_engine
]);
}
@@ -153,7 +155,7 @@ export class SearchEnginesBrowserProxyImpl implements
@@ -156,7 +158,7 @@ export class SearchEnginesBrowserProxyImpl implements
}
recordSearchEnginesPageHistogram(interaction: SearchEnginesInteractions) {
@@ -693,7 +694,7 @@ diff --git a/chrome/browser/resources/settings_shared/BUILD.gn b/chrome/browser/
diff --git a/chrome/browser/search_engines/android/BUILD.gn b/chrome/browser/search_engines/android/BUILD.gn
--- a/chrome/browser/search_engines/android/BUILD.gn
+++ b/chrome/browser/search_engines/android/BUILD.gn
@@ -79,6 +79,7 @@ android_resources("java_resources") {
@@ -76,6 +76,7 @@ android_resources("java_resources") {
"java/res/drawable/search_sogou.xml",
"java/res/layout/search_engine.xml",
"java/res/layout/search_engine_choice_header.xml",
@@ -744,8 +745,8 @@ diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/
+
import androidx.fragment.app.ListFragment;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
@@ -27,6 +31,7 @@ import org.chromium.components.browser_ui.settings.SettingsLauncher;
import org.chromium.chrome.browser.profiles.Profile;
@@ -27,6 +31,7 @@ import org.chromium.components.search_engines.TemplateUrlService;
public class SearchEngineSettings extends ListFragment implements ProfileDependentSetting {
private SearchEngineAdapter mSearchEngineAdapter;
private Profile mProfile;
@@ -773,7 +774,7 @@ diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
@@ -90,6 +108,7 @@ public class SearchEngineSettings extends ListFragment implements ProfileDepende
@@ -92,6 +110,7 @@ public class SearchEngineSettings extends ListFragment implements ProfileDepende
* @param settingsLauncher The SettingsLauncher that is injected.
*/
public void setSettingsLauncher(SettingsLauncher settingsLauncher) {
@@ -784,7 +785,7 @@ diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/
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
@@ -1022,6 +1022,18 @@ static_library("ui") {
@@ -1032,6 +1032,18 @@ static_library("ui") {
"//ui/android",
"//url",
]
@@ -860,7 +861,7 @@ diff --git a/chrome/browser/ui/search_engines/edit_search_engine_controller.h b/
diff --git a/chrome/browser/ui/search_engines/keyword_editor_controller.cc b/chrome/browser/ui/search_engines/keyword_editor_controller.cc
--- a/chrome/browser/ui/search_engines/keyword_editor_controller.cc
+++ b/chrome/browser/ui/search_engines/keyword_editor_controller.cc
@@ -23,13 +23,14 @@ KeywordEditorController::~KeywordEditorController() {
@@ -26,13 +26,14 @@ KeywordEditorController::~KeywordEditorController() {
int KeywordEditorController::AddTemplateURL(const std::u16string& title,
const std::u16string& keyword,
@@ -877,7 +878,7 @@ diff --git a/chrome/browser/ui/search_engines/keyword_editor_controller.cc b/chr
return new_index;
}
@@ -37,7 +38,8 @@ int KeywordEditorController::AddTemplateURL(const std::u16string& title,
@@ -40,7 +41,8 @@ int KeywordEditorController::AddTemplateURL(const std::u16string& title,
void KeywordEditorController::ModifyTemplateURL(TemplateURL* template_url,
const std::u16string& title,
const std::u16string& keyword,
@@ -885,9 +886,9 @@ diff --git a/chrome/browser/ui/search_engines/keyword_editor_controller.cc b/chr
+ const std::string& url,
+ const std::string& suggestion_url) {
DCHECK(!url.empty());
const absl::optional<size_t> index =
const std::optional<size_t> index =
table_model_->IndexOfTemplateURL(template_url);
@@ -49,10 +51,11 @@ void KeywordEditorController::ModifyTemplateURL(TemplateURL* template_url,
@@ -52,10 +54,11 @@ void KeywordEditorController::ModifyTemplateURL(TemplateURL* template_url,
// Don't do anything if the entry didn't change.
if ((template_url->short_name() == title) &&
@@ -904,7 +905,7 @@ diff --git a/chrome/browser/ui/search_engines/keyword_editor_controller.cc b/chr
diff --git a/chrome/browser/ui/search_engines/keyword_editor_controller.h b/chrome/browser/ui/search_engines/keyword_editor_controller.h
--- a/chrome/browser/ui/search_engines/keyword_editor_controller.h
+++ b/chrome/browser/ui/search_engines/keyword_editor_controller.h
@@ -29,14 +29,16 @@ class KeywordEditorController {
@@ -33,14 +33,16 @@ class KeywordEditorController {
// model. Returns the index of the added URL.
int AddTemplateURL(const std::u16string& title,
const std::u16string& keyword,
@@ -926,7 +927,7 @@ diff --git a/chrome/browser/ui/search_engines/keyword_editor_controller.h b/chro
diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chrome/browser/ui/search_engines/template_url_table_model.cc
--- a/chrome/browser/ui/search_engines/template_url_table_model.cc
+++ b/chrome/browser/ui/search_engines/template_url_table_model.cc
@@ -105,7 +105,8 @@ void TemplateURLTableModel::Remove(size_t index) {
@@ -183,7 +183,8 @@ void TemplateURLTableModel::Remove(size_t index) {
void TemplateURLTableModel::Add(size_t index,
const std::u16string& short_name,
const std::u16string& keyword,
@@ -936,7 +937,7 @@ diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chro
DCHECK(index <= RowCount());
DCHECK(!url.empty());
TemplateURLData data;
@@ -113,13 +114,15 @@ void TemplateURLTableModel::Add(size_t index,
@@ -191,13 +192,15 @@ void TemplateURLTableModel::Add(size_t index,
data.SetKeyword(keyword);
data.SetURL(url);
data.is_active = TemplateURLData::ActiveStatus::kTrue;
@@ -953,7 +954,7 @@ diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chro
DCHECK(index <= RowCount());
DCHECK(!url.empty());
TemplateURL* template_url = GetTemplateURL(index);
@@ -128,7 +131,7 @@ void TemplateURLTableModel::ModifyTemplateURL(size_t index,
@@ -206,7 +209,7 @@ void TemplateURLTableModel::ModifyTemplateURL(size_t index,
DCHECK(template_url_service_->GetDefaultSearchProvider() != template_url ||
template_url->SupportsReplacement(
template_url_service_->search_terms_data()));
@@ -965,7 +966,7 @@ diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chro
diff --git a/chrome/browser/ui/search_engines/template_url_table_model.h b/chrome/browser/ui/search_engines/template_url_table_model.h
--- a/chrome/browser/ui/search_engines/template_url_table_model.h
+++ b/chrome/browser/ui/search_engines/template_url_table_model.h
@@ -54,13 +54,15 @@ class TemplateURLTableModel : public ui::TableModel,
@@ -58,13 +58,15 @@ class TemplateURLTableModel : public ui::TableModel,
void Add(size_t index,
const std::u16string& short_name,
const std::u16string& keyword,
@@ -995,7 +996,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom
#else // BUILDFLAG(IS_ANDROID)
#include "chrome/browser/media/router/discovery/access_code/access_code_cast_feature.h"
#include "chrome/browser/media/router/media_router_feature.h"
@@ -649,6 +651,10 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
@@ -651,6 +653,10 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
return &NewWebUI<WebAppInternalsUI>;
}
#endif // !BUILDFLAG(IS_ANDROID)
@@ -1031,23 +1032,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui
#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/base/resource/resource_scale_factor.h"
@@ -122,6 +126,7 @@ void FaviconSource::StartDataRequest(
return;
}
+#if !BUILDFLAG(IS_ANDROID)
if (url_format_ == chrome::FaviconUrlFormat::kFaviconLegacy) {
const extensions::Extension* extension =
extensions::ExtensionRegistry::Get(profile_)
@@ -133,6 +138,7 @@ void FaviconSource::StartDataRequest(
extensions::Manifest::NUM_LOAD_TYPES);
}
}
+#endif
if (parsed.page_url.empty()) {
// Request by icon url.
@@ -220,18 +226,22 @@ bool FaviconSource::ShouldServiceRequest(
@@ -208,18 +212,22 @@ bool FaviconSource::ShouldServiceRequest(
const GURL& url,
content::BrowserContext* browser_context,
int render_process_id) {
@@ -1070,7 +1055,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui
void FaviconSource::OnFaviconDataAvailable(
content::URLDataSource::GotDataCallback callback,
@@ -255,7 +265,11 @@ void FaviconSource::SendDefaultResponse(
@@ -243,7 +251,11 @@ void FaviconSource::SendDefaultResponse(
parsed.device_scale_factor,
parsed.force_light_mode
? false
@@ -1082,7 +1067,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui
return;
}
int icon_size = std::ceil(parsed.size_in_dip * parsed.device_scale_factor);
@@ -274,7 +288,11 @@ void FaviconSource::SendDefaultResponse(
@@ -262,7 +274,11 @@ void FaviconSource::SendDefaultResponse(
SendDefaultResponse(std::move(callback), 16, 1.0f,
force_light_mode
? false
@@ -1094,7 +1079,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui
}
void FaviconSource::SendDefaultResponse(
@@ -284,6 +302,7 @@ void FaviconSource::SendDefaultResponse(
@@ -272,6 +288,7 @@ void FaviconSource::SendDefaultResponse(
bool dark_mode) {
int resource_id;
switch (size_in_dip) {
@@ -1102,7 +1087,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui
case 64:
resource_id =
dark_mode ? IDR_DEFAULT_FAVICON_DARK_64 : IDR_DEFAULT_FAVICON_64;
@@ -292,6 +311,7 @@ void FaviconSource::SendDefaultResponse(
@@ -280,6 +297,7 @@ void FaviconSource::SendDefaultResponse(
resource_id =
dark_mode ? IDR_DEFAULT_FAVICON_DARK_32 : IDR_DEFAULT_FAVICON_32;
break;
@@ -1128,7 +1113,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.h b/chrome/browser/ui/webui/
diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome/browser/ui/webui/settings/search_engines_handler.cc
--- a/chrome/browser/ui/webui/settings/search_engines_handler.cc
+++ b/chrome/browser/ui/webui/settings/search_engines_handler.cc
@@ -30,10 +30,12 @@
@@ -33,10 +33,12 @@
#include "components/search_engines/template_url.h"
#include "components/search_engines/template_url_service.h"
#include "content/public/browser/web_ui.h"
@@ -1141,7 +1126,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "ash/public/cpp/new_window_delegate.h"
@@ -45,6 +47,7 @@ namespace {
@@ -48,6 +50,7 @@ namespace {
const char kSearchEngineField[] = "searchEngine";
const char kKeywordField[] = "keyword";
const char kQueryUrlField[] = "queryUrl";
@@ -1149,7 +1134,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
// Dummy number used for indicating that a new search engine is added.
const int kNewSearchEngineIndex = -1;
@@ -217,15 +220,17 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
@@ -220,15 +223,17 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
IDS_SEARCH_ENGINES_EDITOR_DESCRIPTION_COLUMN));
dict.Set("keyword", table_model->GetText(
index, IDS_SEARCH_ENGINES_EDITOR_KEYWORD_COLUMN));
@@ -1168,16 +1153,16 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
const bool is_search_engine_choice_settings_ui =
search_engines::IsChoiceScreenFlagEnabled(
search_engines::ChoicePromo::kAny);
@@ -241,6 +246,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
template_url->keyword(), /*parent_directory_path=*/u"images/");
dict.Set("iconPath", icon_path);
@@ -252,6 +257,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
dict.Set("iconPath", base::StrCat({icon_path, "@2x"}));
}
}
+#endif
dict.Set("modelIndex", base::checked_cast<int>(index));
@@ -254,8 +260,10 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
list_controller_.ShouldConfirmDeletion(template_url));
@@ -266,8 +272,10 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
dict.Set("isManaged", list_controller_.IsManaged(template_url));
TemplateURL::Type type = template_url->type();
dict.Set("isOmniboxExtension", type == TemplateURL::OMNIBOX_API_EXTENSION);
+#if !BUILDFLAG(IS_ANDROID)
@@ -1187,7 +1172,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
const extensions::Extension* extension =
extensions::ExtensionRegistry::Get(profile)->GetExtensionById(
template_url->GetExtensionId(),
@@ -270,6 +278,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
@@ -282,6 +290,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
dict.Set("extension", std::move(ext_info));
}
}
@@ -1195,7 +1180,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
return dict;
}
@@ -361,12 +370,13 @@ void SearchEnginesHandler::HandleSearchEngineEditStarted(
@@ -362,12 +371,13 @@ void SearchEnginesHandler::HandleSearchEngineEditStarted(
void SearchEnginesHandler::OnEditedKeyword(TemplateURL* template_url,
const std::u16string& title,
const std::u16string& keyword,
@@ -1212,7 +1197,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
edit_controller_.reset();
}
@@ -394,6 +404,8 @@ bool SearchEnginesHandler::CheckFieldValidity(const std::string& field_name,
@@ -395,6 +405,8 @@ bool SearchEnginesHandler::CheckFieldValidity(const std::string& field_name,
is_valid = edit_controller_->IsKeywordValid(base::UTF8ToUTF16(field_value));
else if (field_name.compare(kQueryUrlField) == 0)
is_valid = edit_controller_->IsURLValid(field_value);
@@ -1221,7 +1206,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
else
NOTREACHED();
@@ -413,18 +425,20 @@ void SearchEnginesHandler::HandleSearchEngineEditCompleted(
@@ -414,18 +426,20 @@ void SearchEnginesHandler::HandleSearchEngineEditCompleted(
if (!edit_controller_.get())
return;
@@ -1261,7 +1246,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.h b/chrome/
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
@@ -2475,6 +2475,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) {
@@ -2521,6 +2521,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) {
{"searchEnginesQueryURL", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL},
{"searchEnginesQueryURLExplanation",
IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL_EXPLANATION},
@@ -1770,7 +1755,7 @@ new file mode 100644
diff --git a/chrome/browser/ui/webui/webui_util.cc b/chrome/browser/ui/webui/webui_util.cc
--- a/chrome/browser/ui/webui/webui_util.cc
+++ b/chrome/browser/ui/webui/webui_util.cc
@@ -91,6 +91,11 @@ void SetupChromeRefresh2023(content::WebUIDataSource* source) {
@@ -93,6 +93,11 @@ void SetupChromeRefresh2023(content::WebUIDataSource* source) {
source->AddString(
"chromeRefresh2023Attribute",
features::IsChromeWebuiRefresh2023() ? "chrome-refresh-2023" : "");
@@ -1785,7 +1770,7 @@ diff --git a/chrome/browser/ui/webui/webui_util.cc b/chrome/browser/ui/webui/web
diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni
--- a/chrome/chrome_paks.gni
+++ b/chrome/chrome_paks.gni
@@ -148,6 +148,17 @@ template("chrome_extra_paks") {
@@ -146,6 +146,17 @@ template("chrome_extra_paks") {
sources += invoker.additional_paks
}
@@ -1829,7 +1814,7 @@ new file mode 100644
diff --git a/components/search_engines/android/template_url_service_android.cc b/components/search_engines/android/template_url_service_android.cc
--- a/components/search_engines/android/template_url_service_android.cc
+++ b/components/search_engines/android/template_url_service_android.cc
@@ -336,7 +336,7 @@ jboolean TemplateUrlServiceAndroid::SetPlayAPISearchEngine(
@@ -342,7 +342,7 @@ jboolean TemplateUrlServiceAndroid::SetPlayAPISearchEngine(
TemplateURL* turl = *existing_play_api_turl;
if (turl->safe_for_autoreplace()) {
template_url_service_->ResetTemplateURL(turl, turl->short_name(),
@@ -1841,7 +1826,7 @@ diff --git a/components/search_engines/android/template_url_service_android.cc b
diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc
--- a/components/search_engines/template_url_service.cc
+++ b/components/search_engines/template_url_service.cc
@@ -466,13 +466,15 @@ TemplateURL* TemplateURLService::AddWithOverrides(
@@ -646,13 +646,15 @@ TemplateURL* TemplateURLService::AddWithOverrides(
std::unique_ptr<TemplateURL> template_url,
const std::u16string& short_name,
const std::u16string& keyword,
@@ -1858,7 +1843,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear
return Add(std::move(template_url));
}
@@ -650,7 +652,8 @@ void TemplateURLService::IncrementUsageCount(TemplateURL* url) {
@@ -840,7 +842,8 @@ void TemplateURLService::IncrementUsageCount(TemplateURL* url) {
void TemplateURLService::ResetTemplateURL(TemplateURL* url,
const std::u16string& title,
const std::u16string& keyword,
@@ -1868,7 +1853,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear
DCHECK(!IsCreatedByExtension(url));
DCHECK(!keyword.empty());
DCHECK(!search_url.empty());
@@ -662,6 +665,7 @@ void TemplateURLService::ResetTemplateURL(TemplateURL* url,
@@ -852,6 +855,7 @@ void TemplateURLService::ResetTemplateURL(TemplateURL* url,
// The urls have changed, reset the favicon url.
data.favicon_url = GURL();
}
@@ -1879,7 +1864,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear
diff --git a/components/search_engines/template_url_service.h b/components/search_engines/template_url_service.h
--- a/components/search_engines/template_url_service.h
+++ b/components/search_engines/template_url_service.h
@@ -203,7 +203,8 @@ class TemplateURLService : public WebDataServiceConsumer,
@@ -246,7 +246,8 @@ class TemplateURLService final : public WebDataServiceConsumer,
TemplateURL* AddWithOverrides(std::unique_ptr<TemplateURL> template_url,
const std::u16string& short_name,
const std::u16string& keyword,
@@ -1889,7 +1874,7 @@ diff --git a/components/search_engines/template_url_service.h b/components/searc
// Removes the keyword from the model. This deletes the supplied TemplateURL.
// This fails if the supplied template_url is the default search provider.
@@ -256,7 +257,8 @@ class TemplateURLService : public WebDataServiceConsumer,
@@ -308,7 +309,8 @@ class TemplateURLService final : public WebDataServiceConsumer,
void ResetTemplateURL(TemplateURL* url,
const std::u16string& title,
const std::u16string& keyword,
@@ -2024,7 +2009,7 @@ diff --git a/ui/webui/BUILD.gn b/ui/webui/BUILD.gn
diff --git a/ui/webui/resources/BUILD.gn b/ui/webui/resources/BUILD.gn
--- a/ui/webui/resources/BUILD.gn
+++ b/ui/webui/resources/BUILD.gn
@@ -74,6 +74,16 @@ generate_grd("build_grd") {
@@ -75,6 +75,16 @@ generate_grd("build_grd") {
"$target_gen_dir/cr_components/most_visited/resources.grdp",
"$target_gen_dir/cr_components/settings_prefs/resources.grdp",
]
@@ -2039,8 +2024,8 @@ diff --git a/ui/webui/resources/BUILD.gn b/ui/webui/resources/BUILD.gn
+ ]
+ }
if (!optimize_webui) {
public_deps += [ "//third_party/lit/v3_0:build_grdp" ]
if (use_nss_certs) {
public_deps += [ "cr_components/certificate_manager:build_grdp" ]
diff --git a/ui/webui/resources/cr_components/customize_color_scheme_mode/BUILD.gn b/ui/webui/resources/cr_components/customize_color_scheme_mode/BUILD.gn
--- a/ui/webui/resources/cr_components/customize_color_scheme_mode/BUILD.gn
+++ b/ui/webui/resources/cr_components/customize_color_scheme_mode/BUILD.gn

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