diff --git a/build/RELEASE b/build/RELEASE index 21d7b8463..5b53af9a3 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -122.0.6261.128 \ No newline at end of file +123.0.6312.46 \ No newline at end of file diff --git a/build/cromite_patches_list.txt b/build/cromite_patches_list.txt index dc740073c..76515b430 100644 --- a/build/cromite_patches_list.txt +++ b/build/cromite_patches_list.txt @@ -296,5 +296,3 @@ eyeo-beta-118.0.5993.48-android_api.patch eyeo-beta-118.0.5993.48-android_settings.patch 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 diff --git a/build/patches/AImageReader-CFI-crash-mitigations.patch b/build/patches/AImageReader-CFI-crash-mitigations.patch index 80b4d605d..47d66c343 100644 --- a/build/patches/AImageReader-CFI-crash-mitigations.patch +++ b/build/patches/AImageReader-CFI-crash-mitigations.patch @@ -90,7 +90,7 @@ diff --git a/base/android/android_image_reader_compat.h b/base/android/android_i diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -2980,9 +2980,9 @@ +@@ -3046,9 +3046,9 @@ "expiry_milestone": 125 }, { @@ -147,8 +147,8 @@ diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_lis diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc --- a/gpu/config/gpu_finch_features.cc +++ b/gpu/config/gpu_finch_features.cc -@@ -71,6 +71,11 @@ BASE_FEATURE(kUseGles2ForOopR, - ); +@@ -65,6 +65,11 @@ BASE_FEATURE(kUseGles2ForOopR, + base::FEATURE_DISABLED_BY_DEFAULT); #if BUILDFLAG(IS_ANDROID) +// Use android AImageReader when playing videos with MediaPlayer. @@ -217,7 +217,7 @@ diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc #endif #if BUILDFLAG(ENABLE_VULKAN) -@@ -672,6 +673,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, +@@ -662,6 +663,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, } #endif // BUILDFLAG(IS_WIN) diff --git a/build/patches/AdblockPlus-add-blocking-in-service-workers.patch b/build/patches/AdblockPlus-add-blocking-in-service-workers.patch deleted file mode 100644 index 64cfad2c7..000000000 --- a/build/patches/AdblockPlus-add-blocking-in-service-workers.patch +++ /dev/null @@ -1,729 +0,0 @@ -From: uazo -Date: Thu, 7 Sep 2023 07:25:25 +0000 -Subject: AdblockPlus add blocking in service workers - -License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ---- - .../adblock/adblock_content_browser_client.cc | 184 ++++++++++++------ - .../adblock/adblock_content_browser_client.h | 27 ++- - .../browser/chrome_content_browser_client.cc | 6 +- - .../browser/chrome_content_browser_client.h | 6 +- - .../browser/adblock_url_loader_factory.cc | 10 +- - .../browser/adblock_url_loader_factory.h | 3 + - .../browser/frame_hierarchy_builder.cc | 3 +- - .../browser/resource_classification_runner.h | 8 + - .../resource_classification_runner_impl.cc | 30 ++- - .../resource_classification_runner_impl.h | 8 + - .../websockets/websocket_connector_impl.cc | 6 +- - .../public/browser/content_browser_client.cc | 4 +- - .../public/browser/content_browser_client.h | 4 +- - 13 files changed, 216 insertions(+), 83 deletions(-) - -diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/browser/adblock/adblock_content_browser_client.cc ---- a/chrome/browser/adblock/adblock_content_browser_client.cc -+++ b/chrome/browser/adblock/adblock_content_browser_client.cc -@@ -43,6 +43,7 @@ - #include "content/public/browser/web_contents.h" - #include "mojo/public/cpp/bindings/self_owned_receiver.h" - #include "services/network/public/mojom/websocket.mojom.h" -+#include "services/network/public/mojom/web_transport.mojom.h" - #include "services/service_manager/public/cpp/binder_registry.h" - #include "third_party/blink/public/common/loader/url_loader_throttle.h" - -@@ -56,6 +57,29 @@ - - namespace { - -+bool IsFilteringNeeded(Profile* profile, const GURL& embedder_url) { -+ DCHECK(profile); -+ -+ if(embedder_url.is_empty()) { -+ // in android can be empty because it was created by -+ // RenderFrameHostImpl::CreateSubresourceLoaderFactoriesForInitialEmptyDocument -+ return true; -+ } -+ -+ HostContentSettingsMap* settings_map = HostContentSettingsMapFactory::GetForProfile(profile); -+ if (settings_map && settings_map->GetContentSetting(embedder_url, GURL(), ContentSettingsType::ADS) -+ == CONTENT_SETTING_ALLOW) { -+ return false; -+ } -+ // Filtering may be needed if there's at least one enabled -+ // FilteringConfiguration. -+ bool ret = base::ranges::any_of( -+ adblock::SubscriptionServiceFactory::GetForBrowserContext(profile) -+ ->GetInstalledFilteringConfigurations(), -+ &adblock::FilteringConfiguration::IsEnabled); -+ return ret; -+} -+ - bool IsFilteringNeeded(content::RenderFrameHost* frame) { - if (frame) { - auto* profile = -@@ -63,17 +87,7 @@ bool IsFilteringNeeded(content::RenderFrameHost* frame) { - if (profile) { - content::RenderFrameHost* embedder = frame->GetOutermostMainFrameOrEmbedder(); - const auto& embedder_url = embedder->GetLastCommittedURL(); -- HostContentSettingsMap* settings_map = HostContentSettingsMapFactory::GetForProfile(profile); -- if (settings_map && settings_map->GetContentSetting(embedder_url, GURL(), ContentSettingsType::ADS) -- == CONTENT_SETTING_ALLOW) { -- return false; -- } -- // Filtering may be needed if there's at least one enabled -- // FilteringConfiguration. -- return base::ranges::any_of( -- adblock::SubscriptionServiceFactory::GetForBrowserContext(profile) -- ->GetInstalledFilteringConfigurations(), -- &adblock::FilteringConfiguration::IsEnabled); -+ return IsFilteringNeeded(profile, embedder_url); - } - } - return false; -@@ -88,6 +102,8 @@ class AdblockContextData : public base::SupportsUserData::Data { - - static void StartProxying( - Profile* profile, -+ content::BrowserContext* browser_context, -+ const url::Origin& request_initiator, - content::RenderFrameHost* frame, - int render_process_id, - mojo::PendingReceiver receiver, -@@ -100,8 +116,6 @@ class AdblockContextData : public base::SupportsUserData::Data { - self = new AdblockContextData(); - profile->SetUserData(kAdblockContextUserDataKey, base::WrapUnique(self)); - } -- auto* browser_context = -- content::WebContents::FromRenderFrameHost(frame)->GetBrowserContext(); - adblock::AdblockURLLoaderFactoryConfig config{ - adblock::SubscriptionServiceFactory::GetForBrowserContext( - browser_context), -@@ -113,8 +127,9 @@ class AdblockContextData : public base::SupportsUserData::Data { - browser_context)}; - auto proxy = std::make_unique( - std::move(config), -+ request_initiator.GetURL(), - content::GlobalRenderFrameHostId(render_process_id, -- frame->GetRoutingID()), -+ frame ? frame->GetRoutingID() : MSG_ROUTING_NONE), - std::move(receiver), std::move(target_factory), - embedder_support::GetUserAgent(), - base::BindOnce(&AdblockContextData::RemoveProxy, -@@ -155,47 +170,50 @@ void AdblockContentBrowserClient::ForceAdblockProxyForTesting() { - #endif - - bool AdblockContentBrowserClient::WillInterceptWebSocket( -- content::RenderFrameHost* frame) { -+ content::RenderFrameHost* frame, -+ content::RenderProcessHost* process, -+ const url::Origin& origin) { - if (IsFilteringNeeded(frame)) { - return true; -+ } else { -+ auto* browser_context = process->GetBrowserContext(); -+ auto* profile = Profile::FromBrowserContext(browser_context); -+ if (IsFilteringNeeded(profile, origin.GetURL().GetAsReferrer())) { -+ return true; -+ } - } - -- return ChromeContentBrowserClient::WillInterceptWebSocket(frame); -+ return ChromeContentBrowserClient::WillInterceptWebSocket(frame, process, origin); - } - - void AdblockContentBrowserClient::CreateWebSocket( -+ content::RenderProcessHost* process, - content::RenderFrameHost* frame, - WebSocketFactory factory, - const GURL& url, -+ const url::Origin& initiator_origin, - const net::SiteForCookies& site_for_cookies, - const absl::optional& user_agent, - mojo::PendingRemote - handshake_client) { -- if (IsFilteringNeeded(frame)) { -- CreateWebSocketInternal(frame->GetGlobalId(), std::move(factory), url, -- site_for_cookies, user_agent, -- std::move(handshake_client)); -- } else { -- DCHECK(ChromeContentBrowserClient::WillInterceptWebSocket(frame)); -- ChromeContentBrowserClient::CreateWebSocket(frame, std::move(factory), url, -- site_for_cookies, user_agent, -- std::move(handshake_client)); -- } -+ CreateWebSocketInternal(process, -+ frame ? frame->GetGlobalId() : content::GlobalRenderFrameHostId(), -+ std::move(factory), url, initiator_origin, -+ site_for_cookies, user_agent, -+ std::move(handshake_client)); - } - - void AdblockContentBrowserClient::CreateWebSocketInternal( -+ content::RenderProcessHost* process, - content::GlobalRenderFrameHostId render_frame_host_id, - WebSocketFactory factory, - const GURL& url, -+ const url::Origin& initiator_origin, - const net::SiteForCookies& site_for_cookies, - const absl::optional& user_agent, - mojo::PendingRemote - handshake_client) { -- auto* frame = content::RenderFrameHost::FromID(render_frame_host_id); -- if (!frame) { -- return; -- } -- auto* browser_context = frame->GetProcess()->GetBrowserContext(); -+ auto* browser_context = process->GetBrowserContext(); - auto* subscription_service = - adblock::SubscriptionServiceFactory::GetForBrowserContext( - browser_context); -@@ -203,33 +221,33 @@ void AdblockContentBrowserClient::CreateWebSocketInternal( - adblock::ResourceClassificationRunnerFactory::GetForBrowserContext( - browser_context); - classification_runner->CheckRequestFilterMatchForWebSocket( -- subscription_service->GetCurrentSnapshot(), url, render_frame_host_id, -+ subscription_service->GetCurrentSnapshot(), url, -+ std::move(initiator_origin.GetURL().GetAsReferrer()), render_frame_host_id, - base::BindOnce( - &AdblockContentBrowserClient::OnWebSocketFilterCheckCompleted, -- weak_factory_.GetWeakPtr(), render_frame_host_id, std::move(factory), -- url, site_for_cookies, user_agent, std::move(handshake_client))); -+ weak_factory_.GetWeakPtr(), process, render_frame_host_id, std::move(factory), -+ url, initiator_origin, site_for_cookies, user_agent, std::move(handshake_client))); - } - - void AdblockContentBrowserClient::OnWebSocketFilterCheckCompleted( -+ content::RenderProcessHost* process, - content::GlobalRenderFrameHostId render_frame_host_id, - ChromeContentBrowserClient::WebSocketFactory factory, - const GURL& url, -+ const url::Origin& initiator_origin, - const net::SiteForCookies& site_for_cookies, - const absl::optional& user_agent, - mojo::PendingRemote - handshake_client, - adblock::FilterMatchResult result) { - auto* frame = content::RenderFrameHost::FromID(render_frame_host_id); -- if (!frame) { -- return; -- } - const bool has_blocking_filter = - result == adblock::FilterMatchResult::kBlockRule; - if (!has_blocking_filter) { - VLOG(1) << "[eyeo] Web socket allowed for " << url; -- if (ChromeContentBrowserClient::WillInterceptWebSocket(frame)) { -+ if (ChromeContentBrowserClient::WillInterceptWebSocket(frame, process, initiator_origin)) { - ChromeContentBrowserClient::CreateWebSocket( -- frame, std::move(factory), url, site_for_cookies, user_agent, -+ process, frame, std::move(factory), url, initiator_origin, site_for_cookies, user_agent, - std::move(handshake_client)); - return; - } -@@ -246,6 +264,72 @@ void AdblockContentBrowserClient::OnWebSocketFilterCheckCompleted( - VLOG(1) << "[eyeo] Web socket blocked for " << url; - } - -+void AdblockContentBrowserClient::WillCreateWebTransport( -+ int process_id, -+ int frame_routing_id, -+ const GURL& url, -+ const url::Origin& initiator_origin, -+ mojo::PendingRemote -+ handshake_client, -+ WillCreateWebTransportCallback callback) { -+ auto* process = content::RenderProcessHost::FromID(process_id); -+ DCHECK(process); -+ -+ auto* browser_context = process->GetBrowserContext(); -+ auto* profile = Profile::FromBrowserContext(browser_context); -+ if (IsFilteringNeeded(profile, initiator_origin.GetURL().GetAsReferrer())) { -+ auto* subscription_service = -+ adblock::SubscriptionServiceFactory::GetForBrowserContext( -+ browser_context); -+ auto* classification_runner = -+ adblock::ResourceClassificationRunnerFactory::GetForBrowserContext( -+ browser_context); -+ -+ classification_runner->CheckRequestFilterMatchForWebTransport( -+ subscription_service->GetCurrentSnapshot(), url, -+ std::move(initiator_origin.GetURL().GetAsReferrer()), -+ content::GlobalRenderFrameHostId(), -+ base::BindOnce( -+ &AdblockContentBrowserClient::OnWebTransportFilterCheckCompleted, -+ weak_factory_.GetWeakPtr(), -+ process_id, frame_routing_id, url, -+ std::move(initiator_origin), std::move(handshake_client), -+ std::move(callback))); -+ return; -+ } -+ -+ ChromeContentBrowserClient::WillCreateWebTransport( -+ process_id, frame_routing_id, -+ url, std::move(initiator_origin), -+ std::move(handshake_client), std::move(callback)); -+} -+ -+void AdblockContentBrowserClient::OnWebTransportFilterCheckCompleted( -+ int process_id, -+ int frame_routing_id, -+ const GURL& url, -+ const url::Origin& initiator_origin, -+ mojo::PendingRemote -+ handshake_client, -+ WillCreateWebTransportCallback callback, -+ adblock::FilterMatchResult result) { -+ const bool has_blocking_filter = -+ result == adblock::FilterMatchResult::kBlockRule; -+ if (!has_blocking_filter) { -+ VLOG(1) << "[eyeo] Web transport allowed for " << url; -+ ChromeContentBrowserClient::WillCreateWebTransport( -+ process_id, frame_routing_id, -+ url, std::move(initiator_origin), -+ std::move(handshake_client), std::move(callback)); -+ return; -+ } -+ VLOG(1) << "[eyeo] Web transport blocked for " << url; -+ std::move(callback).Run(std::move(handshake_client), -+ network::mojom::WebTransportError::New( -+ net::ERR_BLOCKED_BY_ADMINISTRATOR, quic::QUIC_INTERNAL_ERROR, -+ "Blocked", false)); -+} -+ - bool AdblockContentBrowserClient::WillCreateURLLoaderFactory( - content::BrowserContext* browser_context, - content::RenderFrameHost* frame, -@@ -269,24 +353,12 @@ bool AdblockContentBrowserClient::WillCreateURLLoaderFactory( - navigation_id, ukm_source_id, factory_receiver, header_client, - bypass_redirect_checks, disable_secure_dns, factory_override, - navigation_response_task_runner); -- auto* profile = frame ? Profile::FromBrowserContext( -- frame->GetProcess()->GetBrowserContext()) -- : nullptr; -- --#if BUILDFLAG(ENABLE_EXTENSIONS) -- if (!force_adblock_proxy_for_testing_ && -- request_initiator.scheme() == extensions::kExtensionScheme) { -- VLOG(1) << "[eyeo] Do not use adblock proxy for extensions requests " -- "[extension id:" -- << request_initiator.host() << "]."; -- return use_chrome_proxy; -- } --#endif -+ auto* profile = Profile::FromBrowserContext(browser_context); - - bool use_adblock_proxy = -- (type == URLLoaderFactoryType::kDocumentSubResource || -- type == URLLoaderFactoryType::kNavigation) && -- IsFilteringNeeded(frame); -+ type != URLLoaderFactoryType::kDownload && -+ (frame ? IsFilteringNeeded(frame) -+ : IsFilteringNeeded(profile, request_initiator.GetURL().GetAsReferrer())); - - bool use_test_loader = false; - #ifdef EYEO_INTERCEPT_DEBUG_URL -@@ -305,7 +377,7 @@ bool AdblockContentBrowserClient::WillCreateURLLoaderFactory( - mojo::PendingRemote target_factory_remote; - *factory_receiver = target_factory_remote.InitWithNewPipeAndPassReceiver(); - AdblockContextData::StartProxying( -- profile, frame, render_process_id, std::move(proxied_receiver), -+ profile, browser_context, request_initiator, frame, render_process_id, std::move(proxied_receiver), - std::move(target_factory_remote), use_test_loader); - } - return use_adblock_proxy || use_chrome_proxy; -diff --git a/chrome/browser/adblock/adblock_content_browser_client.h b/chrome/browser/adblock/adblock_content_browser_client.h ---- a/chrome/browser/adblock/adblock_content_browser_client.h -+++ b/chrome/browser/adblock/adblock_content_browser_client.h -@@ -44,16 +44,27 @@ class AdblockContentBrowserClient : public ChromeContentBrowserClient { - static void ForceAdblockProxyForTesting(); - #endif - -- bool WillInterceptWebSocket(content::RenderFrameHost* frame) override; -+ bool WillInterceptWebSocket(content::RenderFrameHost* frame, content::RenderProcessHost* process, const url::Origin& origin) override; - void CreateWebSocket( -+ content::RenderProcessHost* process, - content::RenderFrameHost* frame, - WebSocketFactory factory, - const GURL& url, -+ const url::Origin& initiator_origin, - const net::SiteForCookies& site_for_cookies, - const absl::optional& user_agent, - mojo::PendingRemote - handshake_client) override; - -+ void WillCreateWebTransport( -+ int process_id, -+ int frame_routing_id, -+ const GURL& url, -+ const url::Origin& initiator_origin, -+ mojo::PendingRemote -+ handshake_client, -+ WillCreateWebTransportCallback callback) override; -+ - bool WillCreateURLLoaderFactory( - content::BrowserContext* browser_context, - content::RenderFrameHost* frame, -@@ -73,23 +84,35 @@ class AdblockContentBrowserClient : public ChromeContentBrowserClient { - - private: - void CreateWebSocketInternal( -+ content::RenderProcessHost* process, - content::GlobalRenderFrameHostId render_frame_host_id, - WebSocketFactory factory, - const GURL& url, -+ const url::Origin& initiator_origin, - const net::SiteForCookies& site_for_cookies, - const absl::optional& user_agent, - mojo::PendingRemote - handshake_client); - void OnWebSocketFilterCheckCompleted( -+ content::RenderProcessHost* process, - content::GlobalRenderFrameHostId render_frame_host_id, - ChromeContentBrowserClient::WebSocketFactory factory, - const GURL& url, -+ const url::Origin& initiator_origin, - const net::SiteForCookies& site_for_cookies, - const absl::optional& user_agent, - mojo::PendingRemote - handshake_client, - adblock::FilterMatchResult result); -- -+ void OnWebTransportFilterCheckCompleted( -+ int process_id, -+ int frame_routing_id, -+ const GURL& url, -+ const url::Origin& initiator_origin, -+ mojo::PendingRemote -+ handshake_client, -+ WillCreateWebTransportCallback callback, -+ adblock::FilterMatchResult result); - base::WeakPtrFactory weak_factory_{this}; - - #if BUILDFLAG(ENABLE_EXTENSIONS) -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 -@@ -6132,7 +6132,9 @@ ChromeContentBrowserClient:: - } - - bool ChromeContentBrowserClient::WillInterceptWebSocket( -- content::RenderFrameHost* frame) { -+ content::RenderFrameHost* frame, -+ content::RenderProcessHost* process, -+ const url::Origin& origin) { - #if BUILDFLAG(ENABLE_EXTENSIONS) - if (!frame) { - return false; -@@ -6155,9 +6157,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket( - } - - void ChromeContentBrowserClient::CreateWebSocket( -+ content::RenderProcessHost* process, - content::RenderFrameHost* frame, - WebSocketFactory factory, - const GURL& url, -+ const url::Origin& initiator_origin, - const net::SiteForCookies& site_for_cookies, - const std::optional& user_agent, - mojo::PendingRemote -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 -@@ -637,11 +637,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { - CreateURLLoaderHandlerForServiceWorkerNavigationPreload( - int frame_tree_node_id, - const network::ResourceRequest& resource_request) override; -- bool WillInterceptWebSocket(content::RenderFrameHost* frame) override; -+ bool WillInterceptWebSocket(content::RenderFrameHost* frame, -+ content::RenderProcessHost* process, -+ const url::Origin& origin) override; - void CreateWebSocket( -+ content::RenderProcessHost* process, - content::RenderFrameHost* frame, - WebSocketFactory factory, - const GURL& url, -+ const url::Origin& initiator_origin, - const net::SiteForCookies& site_for_cookies, - const std::optional& user_agent, - mojo::PendingRemote -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 -+++ b/components/adblock/content/browser/adblock_url_loader_factory.cc -@@ -344,12 +344,6 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestError( - - void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch( - CheckFilterMatchCallback callback) { -- if (!factory_->CheckHostValid()) { -- PostFilterMatchCallbackToUI(std::move(callback), -- FilterMatchResult::kNoRule); -- return; -- } -- - auto subscription_service = factory_->config_.subscription_service; - if (is_document_request_) { - auto* host = content::RenderFrameHost::FromID(factory_->host_id_); -@@ -388,7 +382,7 @@ void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch( - } else { - factory_->config_.resource_classifier->CheckRequestFilterMatch( - subscription_service->GetCurrentSnapshot(), request_url_, -- adblock_resource_type_, factory_->host_id_, -+ factory_->request_initiator_, adblock_resource_type_, factory_->host_id_, - base::BindOnce( - &AdblockURLLoaderFactory::InProgressRequest::OnRequestUrlClassified, - weak_factory_.GetWeakPtr(), -@@ -677,12 +671,14 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestFilterMatchResult( - - AdblockURLLoaderFactory::AdblockURLLoaderFactory( - AdblockURLLoaderFactoryConfig config, -+ GURL request_initiator, - content::GlobalRenderFrameHostId host_id, - mojo::PendingReceiver receiver, - mojo::PendingRemote target_factory, - std::string user_agent_string, - DisconnectCallback on_disconnect) - : config_(std::move(config)), -+ request_initiator_(std::move(request_initiator)), - host_id_(host_id), - user_agent_string_(std::move(user_agent_string)), - on_disconnect_(std::move(on_disconnect)) { -diff --git a/components/adblock/content/browser/adblock_url_loader_factory.h b/components/adblock/content/browser/adblock_url_loader_factory.h ---- a/components/adblock/content/browser/adblock_url_loader_factory.h -+++ b/components/adblock/content/browser/adblock_url_loader_factory.h -@@ -25,6 +25,7 @@ - #include "mojo/public/cpp/bindings/receiver_set.h" - #include "mojo/public/cpp/bindings/remote.h" - #include "services/network/public/mojom/url_loader_factory.mojom.h" -+#include "url/gurl.h" - - namespace adblock { - -@@ -57,6 +58,7 @@ class AdblockURLLoaderFactory : public network::mojom::URLLoaderFactory { - - AdblockURLLoaderFactory( - AdblockURLLoaderFactoryConfig config, -+ GURL request_initiator, - content::GlobalRenderFrameHostId host_id, - mojo::PendingReceiver receiver, - mojo::PendingRemote target_factory, -@@ -86,6 +88,7 @@ class AdblockURLLoaderFactory : public network::mojom::URLLoaderFactory { - void MaybeDestroySelf(); - - AdblockURLLoaderFactoryConfig config_; -+ const GURL request_initiator_; - content::GlobalRenderFrameHostId host_id_; - mojo::ReceiverSet proxy_receivers_; - std::set, base::UniquePtrComparator> -diff --git a/components/adblock/content/browser/frame_hierarchy_builder.cc b/components/adblock/content/browser/frame_hierarchy_builder.cc ---- a/components/adblock/content/browser/frame_hierarchy_builder.cc -+++ b/components/adblock/content/browser/frame_hierarchy_builder.cc -@@ -76,9 +76,8 @@ std::vector FrameHierarchyBuilder::BuildFrameHierarchy( - content::RenderFrameHost* host) const { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - -- DCHECK(host) << "RenderFrameHost is needed to build frame hierarchy"; -- - std::vector referrers_chain; -+ if (!host) return referrers_chain; - for (auto* iter = host; iter; iter = iter->GetParent()) { - auto last_commited_referrer = GetUrlAsReferrer(iter); - if (IsValidForFrameHierarchy(last_commited_referrer)) { -diff --git a/components/adblock/content/browser/resource_classification_runner.h b/components/adblock/content/browser/resource_classification_runner.h ---- a/components/adblock/content/browser/resource_classification_runner.h -+++ b/components/adblock/content/browser/resource_classification_runner.h -@@ -81,12 +81,20 @@ class ResourceClassificationRunner : public KeyedService { - virtual void CheckRequestFilterMatch( - SubscriptionService::Snapshot subscription_collections, - const GURL& request_url, -+ const GURL& request_initiator, - ContentType adblock_resource_type, - content::GlobalRenderFrameHostId render_frame_host_id, - CheckFilterMatchCallback callback) = 0; - virtual void CheckRequestFilterMatchForWebSocket( - SubscriptionService::Snapshot subscription_collections, - const GURL& request_url, -+ const GURL& request_initiator, -+ content::GlobalRenderFrameHostId render_frame_host_id, -+ CheckFilterMatchCallback callback) = 0; -+ virtual void CheckRequestFilterMatchForWebTransport( -+ SubscriptionService::Snapshot subscription_collections, -+ const GURL& request_url, -+ const GURL& request_initiator, - content::GlobalRenderFrameHostId render_frame_host_id, - CheckFilterMatchCallback callback) = 0; - // No callback, just notify observers -diff --git a/components/adblock/content/browser/resource_classification_runner_impl.cc b/components/adblock/content/browser/resource_classification_runner_impl.cc ---- a/components/adblock/content/browser/resource_classification_runner_impl.cc -+++ b/components/adblock/content/browser/resource_classification_runner_impl.cc -@@ -169,15 +169,28 @@ void ResourceClassificationRunnerImpl::CheckPopupFilterMatch( - void ResourceClassificationRunnerImpl::CheckRequestFilterMatchForWebSocket( - SubscriptionService::Snapshot subscription_collections, - const GURL& request_url, -+ const GURL& request_initiator, - content::GlobalRenderFrameHostId render_frame_host_id, - CheckFilterMatchCallback callback) { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - DCHECK(request_url.SchemeIsWSOrWSS()); -- CheckRequestFilterMatch(std::move(subscription_collections), request_url, -+ CheckRequestFilterMatch(std::move(subscription_collections), request_url, request_initiator, - ContentType::Websocket, render_frame_host_id, - std::move(callback)); - } - -+void ResourceClassificationRunnerImpl::CheckRequestFilterMatchForWebTransport( -+ SubscriptionService::Snapshot subscription_collections, -+ const GURL& request_url, -+ const GURL& request_initiator, -+ content::GlobalRenderFrameHostId render_frame_host_id, -+ CheckFilterMatchCallback callback) { -+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ CheckRequestFilterMatch(std::move(subscription_collections), request_url, request_initiator, -+ ContentType::Other, render_frame_host_id, -+ std::move(callback)); -+} -+ - void ResourceClassificationRunnerImpl::CheckDocumentAllowlisted( - SubscriptionService::Snapshot subscription_collections, - const GURL& request_url, -@@ -212,6 +225,7 @@ void ResourceClassificationRunnerImpl::ProcessDocumentAllowlistedResponse( - void ResourceClassificationRunnerImpl::CheckRequestFilterMatch( - SubscriptionService::Snapshot subscription_collections, - const GURL& request_url, -+ const GURL& request_initiator, - ContentType adblock_resource_type, - content::GlobalRenderFrameHostId frame_host_id, - CheckFilterMatchCallback callback) { -@@ -220,14 +234,10 @@ void ResourceClassificationRunnerImpl::CheckRequestFilterMatch( - DVLOG(1) << "[eyeo] CheckRequestFilterMatchImpl for " << request_url.spec(); - - auto* host = content::RenderFrameHost::FromID(frame_host_id); -- if (!host) { -- // Host has died, likely because this is a deferred execution. It does not -- // matter anymore whether the resource is blocked, the page is gone. -- std::move(callback).Run(FilterMatchResult::kNoRule); -- return; -- } -- const std::vector frame_hierarchy_chain = -+ std::vector frame_hierarchy_chain = - frame_hierarchy_builder_->BuildFrameHierarchy(host); -+ if (!host && frame_hierarchy_chain.size() == 0) -+ frame_hierarchy_chain.emplace_back(request_initiator.GetAsReferrer()); - - DVLOG(1) << "[eyeo] Got " << frame_hierarchy_chain.size() - << " frame_hierarchy for " << request_url.spec(); -@@ -275,7 +285,8 @@ ResourceClassificationRunnerImpl::CheckRequestFilterMatchInternal( - adblock_resource_type, sitekey); - - if (classification_result.decision == ClassificationDecision::Allowed) { -- VLOG(1) << "[eyeo] Document allowed due to allowing filter " << request_url; -+ VLOG(1) << "[eyeo] Document allowed due to allowing filter " << request_url -+ << " " << classification_result.decisive_subscription.spec(); - return CheckResourceFilterMatchResult{ - FilterMatchResult::kAllowRule, - classification_result.decisive_subscription, -@@ -290,6 +301,7 @@ ResourceClassificationRunnerImpl::CheckRequestFilterMatchInternal( - classification_result.decisive_configuration_name}; - } - -+ VLOG(1) << "[eyeo] No Rule for " << request_url; - return CheckResourceFilterMatchResult{FilterMatchResult::kNoRule, {}, {}}; - } - -diff --git a/components/adblock/content/browser/resource_classification_runner_impl.h b/components/adblock/content/browser/resource_classification_runner_impl.h ---- a/components/adblock/content/browser/resource_classification_runner_impl.h -+++ b/components/adblock/content/browser/resource_classification_runner_impl.h -@@ -55,12 +55,14 @@ class ResourceClassificationRunnerImpl final - void CheckRequestFilterMatch( - SubscriptionService::Snapshot subscription_collections, - const GURL& request_url, -+ const GURL& request_initiator, - ContentType adblock_resource_type, - content::GlobalRenderFrameHostId render_frame_host_id, - CheckFilterMatchCallback callback) final; - void CheckRequestFilterMatchForWebSocket( - SubscriptionService::Snapshot subscription_collections, - const GURL& request_url, -+ const GURL& request_initiator, - content::GlobalRenderFrameHostId render_frame_host_id, - CheckFilterMatchCallback callback) final; - // No callback, just notify observers -@@ -68,6 +70,12 @@ class ResourceClassificationRunnerImpl final - SubscriptionService::Snapshot subscription_collections, - const GURL& request_url, - content::GlobalRenderFrameHostId render_frame_host_id) final; -+ void CheckRequestFilterMatchForWebTransport( -+ SubscriptionService::Snapshot subscription_collections, -+ const GURL& request_url, -+ const GURL& request_initiator, -+ content::GlobalRenderFrameHostId render_frame_host_id, -+ CheckFilterMatchCallback callback) final; - void CheckResponseFilterMatch( - SubscriptionService::Snapshot subscription_collections, - const GURL& response_url, -diff --git a/content/browser/websockets/websocket_connector_impl.cc b/content/browser/websockets/websocket_connector_impl.cc ---- a/content/browser/websockets/websocket_connector_impl.cc -+++ b/content/browser/websockets/websocket_connector_impl.cc -@@ -88,14 +88,14 @@ void WebSocketConnectorImpl::Connect( - const uint32_t options = - GetContentClient()->browser()->GetWebSocketOptions(frame); - -- if (GetContentClient()->browser()->WillInterceptWebSocket(frame)) { -+ if (GetContentClient()->browser()->WillInterceptWebSocket(frame, process, origin_)) { - GetContentClient()->browser()->CreateWebSocket( -- frame, -+ process, frame, - base::BindOnce(ConnectCalledByContentBrowserClient, requested_protocols, - site_for_cookies, has_storage_access, isolation_info_, - process_id_, frame_id_, origin_, options, - std::move(throttling_profile_id)), -- url, site_for_cookies, user_agent, std::move(handshake_client)); -+ url, origin_, site_for_cookies, user_agent, std::move(handshake_client)); - return; - } - std::vector headers; -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 -@@ -1009,7 +1009,7 @@ bool ContentBrowserClient::WillCreateURLLoaderFactory( - return false; - } - --bool ContentBrowserClient::WillInterceptWebSocket(RenderFrameHost*) { -+bool ContentBrowserClient::WillInterceptWebSocket(RenderFrameHost*, RenderProcessHost*, const url::Origin& origin) { - return false; - } - -@@ -1018,9 +1018,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) { - } - - void ContentBrowserClient::CreateWebSocket( -+ RenderProcessHost* process, - RenderFrameHost* frame, - WebSocketFactory factory, - const GURL& url, -+ const url::Origin& initiator_origin, - const net::SiteForCookies& site_for_cookies, - const std::optional& user_agent, - mojo::PendingRemote -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 -@@ -1840,7 +1840,7 @@ class CONTENT_EXPORT ContentBrowserClient { - scoped_refptr navigation_response_task_runner); - - // Returns true when the embedder wants to intercept a websocket connection. -- virtual bool WillInterceptWebSocket(RenderFrameHost* frame); -+ virtual bool WillInterceptWebSocket(RenderFrameHost* frame, RenderProcessHost* process, const url::Origin& origin); - - // Returns the WebSocket creation options. - virtual uint32_t GetWebSocketOptions(RenderFrameHost* frame); -@@ -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( -+ RenderProcessHost* process, - RenderFrameHost* frame, - WebSocketFactory factory, - const GURL& url, -+ const url::Origin& initiator_origin, - const net::SiteForCookies& site_for_cookies, - const std::optional& user_agent, - mojo::PendingRemote --- diff --git a/build/patches/AdblockPlus-connect-popup-blocker.patch b/build/patches/AdblockPlus-connect-popup-blocker.patch deleted file mode 100644 index 9449fe264..000000000 --- a/build/patches/AdblockPlus-connect-popup-blocker.patch +++ /dev/null @@ -1,169 +0,0 @@ -From: uazo -Date: Tue, 9 Jan 2024 13:37:05 +0000 -Subject: AdblockPlus connect popup blocker - -activates the pop-up blocking management present in adblockplus -but not active in upstream. -added "enable-stricter-popup-blocker" flag for the global -deactivation of all pop-ups (default disabled) ---- - .../adblock/adblock_content_browser_client.cc | 52 +++++++++++++++++++ - .../adblock/adblock_content_browser_client.h | 14 +++++ - components/blocked_content/popup_blocker.cc | 9 +++- - components/blocked_content/popup_blocker.h | 3 ++ - .../about_flags_cc/Stricter-popup-blocker.inc | 14 +++++ - 5 files changed, 91 insertions(+), 1 deletion(-) - create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Stricter-popup-blocker.inc - -diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/browser/adblock/adblock_content_browser_client.cc ---- a/chrome/browser/adblock/adblock_content_browser_client.cc -+++ b/chrome/browser/adblock/adblock_content_browser_client.cc -@@ -330,6 +330,58 @@ void AdblockContentBrowserClient::OnWebTransportFilterCheckCompleted( - "Blocked", false)); - } - -+bool AdblockContentBrowserClient::CanCreateWindow( -+ content::RenderFrameHost* opener, -+ const GURL& opener_url, -+ const GURL& opener_top_level_frame_url, -+ const url::Origin& source_origin, -+ content::mojom::WindowContainerType container_type, -+ const GURL& target_url, -+ const content::Referrer& referrer, -+ const std::string& frame_name, -+ WindowOpenDisposition disposition, -+ const blink::mojom::WindowFeatures& features, -+ bool user_gesture, -+ bool opener_suppressed, -+ bool* no_javascript_access) { -+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); -+ DCHECK(opener); -+ -+ if (IsFilteringNeeded(opener)) { -+ content::WebContents* web_contents = -+ content::WebContents::FromRenderFrameHost(opener); -+ auto* subscription_service = -+ adblock::SubscriptionServiceFactory::GetForBrowserContext( -+ web_contents->GetBrowserContext()); -+ -+ GURL popup_url(target_url); -+ web_contents->GetPrimaryMainFrame()->GetProcess()->FilterURL(false, -+ &popup_url); -+ auto* classification_runner = -+ adblock::ResourceClassificationRunnerFactory::GetForBrowserContext( -+ web_contents->GetBrowserContext()); -+ const auto popup_blocking_decision = -+ classification_runner->ShouldBlockPopup( -+ subscription_service->GetCurrentSnapshot(), popup_url, opener); -+ if (popup_blocking_decision == adblock::FilterMatchResult::kAllowRule) { -+ return true; -+ } -+ if (popup_blocking_decision == adblock::FilterMatchResult::kBlockRule) { -+ return false; -+ } -+ // Otherwise, if eyeo adblocking is disabled or there is no rule that -+ // explicitly allows or blocks a popup, fall back on Chromium's built-in -+ // popup blocker. -+ DCHECK(popup_blocking_decision == adblock::FilterMatchResult::kDisabled || -+ popup_blocking_decision == adblock::FilterMatchResult::kNoRule); -+ } -+ -+ return ChromeContentBrowserClient::CanCreateWindow( -+ opener, opener_url, opener_top_level_frame_url, source_origin, -+ container_type, target_url, referrer, frame_name, disposition, features, -+ user_gesture, opener_suppressed, no_javascript_access); -+} -+ - bool AdblockContentBrowserClient::WillCreateURLLoaderFactory( - content::BrowserContext* browser_context, - content::RenderFrameHost* frame, -diff --git a/chrome/browser/adblock/adblock_content_browser_client.h b/chrome/browser/adblock/adblock_content_browser_client.h ---- a/chrome/browser/adblock/adblock_content_browser_client.h -+++ b/chrome/browser/adblock/adblock_content_browser_client.h -@@ -82,6 +82,20 @@ class AdblockContentBrowserClient : public ChromeContentBrowserClient { - scoped_refptr navigation_response_task_runner) - override; - -+ bool CanCreateWindow(content::RenderFrameHost* opener, -+ const GURL& opener_url, -+ const GURL& opener_top_level_frame_url, -+ const url::Origin& source_origin, -+ content::mojom::WindowContainerType container_type, -+ const GURL& target_url, -+ const content::Referrer& referrer, -+ const std::string& frame_name, -+ WindowOpenDisposition disposition, -+ const blink::mojom::WindowFeatures& features, -+ bool user_gesture, -+ bool opener_suppressed, -+ bool* no_javascript_access) override; -+ - private: - void CreateWebSocketInternal( - content::RenderProcessHost* process, -diff --git a/components/blocked_content/popup_blocker.cc b/components/blocked_content/popup_blocker.cc ---- a/components/blocked_content/popup_blocker.cc -+++ b/components/blocked_content/popup_blocker.cc -@@ -20,6 +20,11 @@ - #include "third_party/blink/public/mojom/frame/frame.mojom-shared.h" - - namespace blocked_content { -+ -+CROMITE_FEATURE(kStrictPopupBlocker, -+ "StrictPopupBlocker", -+ base::FEATURE_DISABLED_BY_DEFAULT); -+ - namespace { - - content::Page& GetSourcePageForPopup( -@@ -91,7 +96,9 @@ PopupBlockType ShouldBlockPopup(content::WebContents* web_contents, - GetSourcePageForPopup(open_url_params, web_contents))) { - return PopupBlockType::kAbusive; - } -- return PopupBlockType::kNotBlocked; -+ return base::FeatureList::IsEnabled(kStrictPopupBlocker) -+ ? PopupBlockType::kAbusive -+ : PopupBlockType::kNotBlocked; - } - - } // namespace -diff --git a/components/blocked_content/popup_blocker.h b/components/blocked_content/popup_blocker.h ---- a/components/blocked_content/popup_blocker.h -+++ b/components/blocked_content/popup_blocker.h -@@ -5,6 +5,7 @@ - #ifndef COMPONENTS_BLOCKED_CONTENT_POPUP_BLOCKER_H_ - #define COMPONENTS_BLOCKED_CONTENT_POPUP_BLOCKER_H_ - -+#include "base/feature_list.h" - #include "components/content_settings/core/browser/host_content_settings_map.h" - #include "third_party/blink/public/mojom/window_features/window_features.mojom-forward.h" - #include "ui/base/window_open_disposition.h" -@@ -18,6 +19,8 @@ struct OpenURLParams; - } // namespace content - - namespace blocked_content { -+BASE_DECLARE_FEATURE(kStrictPopupBlocker); -+ - class PopupNavigationDelegate; - - // Classifies what caused a popup to be blocked. -diff --git a/cromite_flags/chrome/browser/about_flags_cc/Stricter-popup-blocker.inc b/cromite_flags/chrome/browser/about_flags_cc/Stricter-popup-blocker.inc -new file mode 100644 ---- /dev/null -+++ b/cromite_flags/chrome/browser/about_flags_cc/Stricter-popup-blocker.inc -@@ -0,0 +1,14 @@ -+#ifdef ABOUT_FLAG_INCLUDE_SECTION -+ -+#include "components/blocked_content/popup_blocker.h" -+ -+#endif -+ -+#ifdef FLAG_SECTION -+ -+ {"enable-stricter-popup-blocker", -+ "Enable Stricter popup blocker", -+ "Blocks all pop-ups, even those with user gestures.", kOsAll, -+ FEATURE_VALUE_TYPE(blocked_content::kStrictPopupBlocker)}, -+ -+#endif // ifdef FLAG_SECTION --- diff --git a/build/patches/Add-AllowUserCertificates-flag.patch b/build/patches/Add-AllowUserCertificates-flag.patch index e653523e6..de341491a 100644 --- a/build/patches/Add-AllowUserCertificates-flag.patch +++ b/build/patches/Add-AllowUserCertificates-flag.patch @@ -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 -@@ -227,6 +227,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider; +@@ -230,6 +230,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; -@@ -1105,6 +1106,8 @@ public abstract class ChromeActivity +@@ -1064,6 +1065,8 @@ public abstract class ChromeActivity super.onStartWithNative(); ChromeActivitySessionTracker.getInstance().onStartWithNative(); ChromeCachedFlags.getInstance().cacheNativeFlags(); @@ -59,16 +59,16 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_TRANSLATE = "AdaptiveButtonInTopToolbarTranslate"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_ADD_TO_BOOKMARKS = -@@ -522,6 +523,8 @@ public abstract class ChromeFeatureList { - newCachedFlag(ANDROID_ELEGANT_TEXT_HEIGHT, false); - +@@ -533,6 +534,8 @@ public abstract class ChromeFeatureList { public static final CachedFlag sAndroidHub = newCachedFlag(ANDROID_HUB, false); + public static final CachedFlag sAndroidTabGroupStableIds = + newCachedFlag(ANDROID_TAB_GROUP_STABLE_IDS, false); + public static final CachedFlag sAllowUserCertificates = + newCachedFlag(ALLOW_USER_CERTIFICATES, false); public static final CachedFlag sArchiveTabService = newCachedFlag(ARCHIVE_TAB_SERVICE, false); public static final CachedFlag sBackGestureActivityTabProvider = newCachedFlag(BACK_GESTURE_ACTIVITY_TAB_PROVIDER, false); -@@ -656,6 +659,7 @@ public abstract class ChromeFeatureList { +@@ -679,6 +682,7 @@ public abstract class ChromeFeatureList { public static final List sFlagsCachedFullBrowser = List.of( diff --git a/build/patches/Add-IsCleartextPermitted-flag.patch b/build/patches/Add-IsCleartextPermitted-flag.patch index 0ec0167c6..4af1a40e4 100644 --- a/build/patches/Add-IsCleartextPermitted-flag.patch +++ b/build/patches/Add-IsCleartextPermitted-flag.patch @@ -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 -@@ -301,6 +301,11 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { +@@ -300,6 +300,11 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { } } diff --git a/build/patches/Add-a-flag-to-disable-GamePad-API.patch b/build/patches/Add-a-flag-to-disable-GamePad-API.patch index 121925dc7..ea9f0cb3c 100644 --- a/build/patches/Add-a-flag-to-disable-GamePad-API.patch +++ b/build/patches/Add-a-flag-to-disable-GamePad-API.patch @@ -14,8 +14,8 @@ 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 -@@ -7156,9 +7156,9 @@ - "expiry_milestone": 123 +@@ -7190,9 +7190,9 @@ + "expiry_milestone": 125 }, { - "name": "restrict-gamepad-access", @@ -29,7 +29,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js 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 -@@ -3040,7 +3040,7 @@ const char kResetShortcutCustomizationsDescription[] = +@@ -3084,7 +3084,7 @@ const char kResetShortcutCustomizationsDescription[] = const char kRestrictGamepadAccessName[] = "Restrict gamepad access"; const char kRestrictGamepadAccessDescription[] = diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index ee1fb24f0..20c241c27 100644 --- a/build/patches/Add-a-proxy-configuration-page.patch +++ b/build/patches/Add-a-proxy-configuration-page.patch @@ -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 -@@ -302,6 +302,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { +@@ -308,6 +308,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { builtins_to_provide.push_back( base::ASCIIToUTF16(chrome::kChromeUISettingsURL)); #endif @@ -101,7 +101,7 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou --- a/chrome/browser/browser_resources.grd +++ b/chrome/browser/browser_resources.grd @@ -237,6 +237,9 @@ - + + @@ -197,7 +197,7 @@ diff --git a/chrome/browser/net/proxy_service_factory.h b/chrome/browser/net/pro diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -190,6 +190,8 @@ +@@ -191,6 +191,8 @@ #include "printing/buildflags/buildflags.h" #include "rlz/buildflags/buildflags.h" @@ -206,7 +206,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #if BUILDFLAG(ENABLE_BACKGROUND_MODE) #include "chrome/browser/background/background_mode_manager.h" #endif -@@ -1412,6 +1414,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { +@@ -1447,6 +1449,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 -@@ -310,6 +310,8 @@ static_library("ui") { +@@ -301,6 +301,8 @@ static_library("ui") { "webui/metrics_internals/metrics_internals_ui.h", "webui/net_export_ui.cc", "webui/net_export_ui.h", @@ -673,7 +673,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc -@@ -55,6 +55,7 @@ +@@ -52,6 +52,7 @@ #include "chrome/browser/ui/webui/ntp_tiles_internals_ui.h" #include "chrome/browser/ui/webui/omnibox/omnibox_ui.h" #include "chrome/browser/ui/webui/policy/policy_ui.h" @@ -681,7 +681,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #include "chrome/browser/ui/webui/predictors/predictors_ui.h" #include "chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_internals_ui.h" #include "chrome/browser/ui/webui/segmentation_internals/segmentation_internals_ui.h" -@@ -494,6 +495,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, +@@ -469,6 +470,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; if (url.host_piece() == chrome::kChromeUINetExportHost) return &NewWebUI; @@ -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"; -@@ -455,6 +457,7 @@ bool IsSystemWebUIHost(base::StringPiece host) { +@@ -460,6 +462,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, -@@ -757,6 +760,7 @@ const char* const kChromeHostURLs[] = { +@@ -760,6 +763,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 -@@ -135,6 +135,8 @@ extern const char kChromeUINTPTilesInternalsHost[]; +@@ -134,6 +134,8 @@ extern const char kChromeUINTPTilesInternalsHost[]; extern const char kChromeUINaClHost[]; extern const char kChromeUINetExportHost[]; extern const char kChromeUINetExportURL[]; diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 76cdd9520..d2987d6d0 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -33,7 +33,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../CustomTabIntentDataProvider.java | 5 +- .../browser/download/DownloadUtils.java | 16 +- .../history/HistoryContentManager.java | 7 +- - .../browser/history/HistoryManager.java | 28 ++- + .../browser/history/HistoryManager.java | 26 ++- .../chrome/browser/history/HistoryPage.java | 15 ++ .../native_page/NativePageFactory.java | 4 +- .../chrome/browser/ntp/RecentTabsManager.java | 28 ++- @@ -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, 771 insertions(+), 103 deletions(-) + 66 files changed, 770 insertions(+), 102 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 -@@ -642,6 +642,7 @@ chrome_java_resources = [ +@@ -644,6 +644,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", -@@ -971,6 +972,7 @@ chrome_java_sources = [ +@@ -979,6 +980,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", @@ -243,7 +243,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -63,6 +63,10 @@ import org.chromium.base.task.TaskTraits; +@@ -66,6 +66,10 @@ import org.chromium.base.task.TaskTraits; import org.chromium.build.annotations.UsedByReflection; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; @@ -254,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; -@@ -662,9 +666,14 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -1996,6 +1997,9 @@ public abstract class ChromeActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } @@ -316,7 +316,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App import org.chromium.chrome.browser.bookmarks.BookmarkFeatures; import org.chromium.chrome.browser.bookmarks.BookmarkModel; import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils; -@@ -100,6 +101,10 @@ import java.lang.annotation.RetentionPolicy; +@@ -103,6 +104,10 @@ import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.List; @@ -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. -@@ -599,6 +604,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -604,6 +609,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; -@@ -661,7 +673,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -667,7 +679,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); -@@ -870,8 +890,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -876,8 +896,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate && !isChromeScheme && !isFileScheme && !isContentScheme @@ -460,7 +460,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import org.chromium.chrome.browser.DefaultBrowserInfo; import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl; import org.chromium.chrome.browser.app.appmenu.DividerLineMenuItemViewBinder; -@@ -203,6 +204,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -218,6 +219,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat openInChromeItemVisible = false; tryAddingReadAloud = false; } @@ -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"; -@@ -285,7 +290,16 @@ public class DownloadUtils { +@@ -286,7 +291,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 -@@ -244,7 +244,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver +@@ -239,7 +239,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(); -@@ -287,7 +289,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver +@@ -275,7 +277,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver mHistoryAdapter.onDestroyed(); mLargeIconBridge.destroy(); mLargeIconBridge = null; @@ -559,7 +559,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java -@@ -35,6 +35,7 @@ import com.google.android.material.tabs.TabLayout.OnTabSelectedListener; +@@ -23,6 +23,7 @@ import com.google.android.material.tabs.TabLayout; import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.supplier.ObservableSupplier; @@ -567,9 +567,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History import org.chromium.base.supplier.ObservableSupplierImpl; import org.chromium.base.supplier.Supplier; import org.chromium.chrome.R; -@@ -75,6 +76,12 @@ import java.io.Serializable; +@@ -49,6 +50,12 @@ import org.chromium.ui.base.Clipboard; + import java.util.List; - import java.util.concurrent.atomic.AtomicReference; +import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.base.ContextUtils; @@ -580,7 +580,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History /** Combines and manages the different UI components of browsing history. */ public class HistoryManager implements OnMenuItemClickListener, -@@ -164,7 +171,7 @@ public class HistoryManager +@@ -133,7 +140,7 @@ public class HistoryManager recordUserAction("Show"); // If incognito placeholder is shown, we don't need to create History UI elements. @@ -589,17 +589,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History mSelectableListLayout = null; mRootView = getIncognitoHistoryPlaceholderView(); return; -@@ -673,7 +680,7 @@ public class HistoryManager - - private void swapContentView() { - boolean toHistoryClusters; -- if (mIsIncognito) { -+ if (shouldShowIncognitoPlaceholder()) { - return; - } else if (isHistoryClustersUIShowing()) { - toHistoryClusters = false; -@@ -737,9 +744,22 @@ public class HistoryManager - && mContentView == mHistoryClustersCoordinator.getActivityContentView(); +@@ -339,9 +346,22 @@ public class HistoryManager + onBackPressStateChanged(); } + public boolean isIncognito() { return mIsIncognito; } @@ -622,7 +613,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History // If Incognito placeholder is shown no need to call any destroy method. return; } -@@ -809,7 +829,7 @@ public class HistoryManager +@@ -397,7 +417,7 @@ public class HistoryManager * @return True if manager handles this event, false if it decides to ignore. */ private boolean onBackPressed() { @@ -630,7 +621,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History + if (shouldShowIncognitoPlaceholder() || mSelectableListLayout == null) { // If Incognito placeholder is shown, the back press should handled by HistoryActivity. return false; - } else if (isHistoryClustersUIShowing()) { + } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java @@ -639,10 +630,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History import org.chromium.base.supplier.Supplier; import org.chromium.chrome.R; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; - import org.chromium.chrome.browser.history_clusters.HistoryClustersConstants; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.tab.Tab; -@@ -17,6 +18,12 @@ import org.chromium.chrome.browser.ui.native_page.BasicNativePage; + import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; +@@ -16,6 +17,12 @@ import org.chromium.chrome.browser.ui.native_page.BasicNativePage; import org.chromium.chrome.browser.ui.native_page.NativePageHost; import org.chromium.components.embedder_support.util.UrlConstants; @@ -655,7 +646,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History /** Native page for managing browsing history. */ public class HistoryPage extends BasicNativePage { private HistoryManager mHistoryManager; -@@ -42,6 +49,14 @@ public class HistoryPage extends BasicNativePage { +@@ -41,6 +48,14 @@ public class HistoryPage extends BasicNativePage { String url) { super(host); @@ -673,15 +664,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java -@@ -16,6 +16,7 @@ import org.chromium.base.jank_tracker.JankTracker; - import org.chromium.base.supplier.DestroyableObservableSupplier; +@@ -17,6 +17,7 @@ import org.chromium.base.supplier.DestroyableObservableSupplier; import org.chromium.base.supplier.ObservableSupplier; + import org.chromium.base.supplier.OneshotSupplier; import org.chromium.base.supplier.Supplier; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.download.home.DownloadPage; import org.chromium.chrome.browser.bookmarks.BookmarkPage; -@@ -287,7 +288,8 @@ public class NativePageFactory { +@@ -297,7 +298,8 @@ public class NativePageFactory { String url, NativePage candidatePage, Tab tab, boolean isIncognito) { NativePage page; @@ -720,7 +711,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM mActiveTab = tab; mTabModelSelector = tabModelSelector; mShowHistoryManager = showHistoryManager; -@@ -258,6 +268,22 @@ public class RecentTabsManager +@@ -263,6 +273,22 @@ public class RecentTabsManager */ public void openRecentlyClosedTab(RecentlyClosedTab tab, int windowDisposition) { if (mIsDestroyed) return; @@ -911,7 +902,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 -@@ -72,6 +72,7 @@ import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl; +@@ -75,6 +75,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 +910,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; -@@ -358,6 +359,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -362,6 +363,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity ((PrivacySandboxSettingsBaseFragment) fragment) .setSnackbarManager(getSnackbarManager()); } @@ -1044,7 +1035,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -135,6 +135,8 @@ import org.chromium.components.webapps.bottomsheet.PwaBottomSheetController; +@@ -139,6 +139,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; @@ -1053,7 +1044,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab import org.chromium.ui.base.IntentRequestTracker; import org.chromium.ui.dragdrop.DragDropGlobalState; import org.chromium.ui.modaldialog.ModalDialogManager; -@@ -985,7 +987,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1011,7 +1013,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { () -> { mTabCreatorManagerSupplier .get() @@ -1107,9 +1098,9 @@ 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 -@@ -50,6 +50,8 @@ import org.chromium.components.embedder_support.util.UrlUtilities; +@@ -50,6 +50,8 @@ import org.chromium.chrome.features.start_surface.StartSurfaceUserData; + import org.chromium.components.embedder_support.util.UrlUtilities; import org.chromium.content_public.browser.LoadUrlParams; - import org.chromium.url.GURL; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + @@ -1141,15 +1132,15 @@ 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; -@@ -603,7 +604,7 @@ public class ToolbarManager +@@ -615,7 +616,7 @@ public class ToolbarManager TraceEvent.end("isOfflinePage"); return ret; } - }); + }, AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()); mControlContainer = controlContainer; + mToolbarHairline = mControlContainer.findViewById(R.id.toolbar_hairline); assert mControlContainer != null; - diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java @@ -1264,7 +1255,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 -@@ -351,6 +351,15 @@ ChromeAutocompleteProviderClient::GetProviderStateService() const { +@@ -357,6 +357,15 @@ ChromeAutocompleteProviderClient::GetProviderStateService() const { return ProviderStateServiceFactory::GetForProfile(profile_); } @@ -1738,7 +1729,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 -@@ -248,6 +248,7 @@ +@@ -249,6 +249,7 @@ #if BUILDFLAG(IS_ANDROID) #include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h" @@ -1746,7 +1737,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" -@@ -1813,6 +1814,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -1856,6 +1857,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); variations::VariationsService::RegisterProfilePrefs(registry); webapps::InstallPromptPrefs::RegisterProfilePrefs(registry); @@ -1885,7 +1876,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 -@@ -1222,6 +1222,37 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1228,6 +1228,37 @@ Your Google account may have other forms of browsing history like searches and a Clears history from all synced devices @@ -1991,7 +1982,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 -@@ -3952,6 +3952,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = +@@ -3957,6 +3957,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = "net.out_of_process_system_dns_resolution_enabled"; #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) @@ -2007,7 +1998,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 -@@ -97,10 +97,12 @@ void PrefProvider::RegisterProfilePrefs( +@@ -96,10 +96,12 @@ void PrefProvider::RegisterProfilePrefs( PrefProvider::PrefProvider(PrefService* prefs, bool off_the_record, @@ -2020,20 +2011,20 @@ 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"); -@@ -124,11 +126,13 @@ PrefProvider::PrefProvider(PrefService* prefs, +@@ -122,11 +124,13 @@ PrefProvider::PrefProvider(PrefService* prefs, WebsiteSettingsRegistry* website_settings = WebsiteSettingsRegistry::GetInstance(); for (const WebsiteSettingsInfo* info : *website_settings) { + bool save_site_settings = force_save_site_settings_ && + info->incognito_behavior() == WebsiteSettingsInfo::INHERIT_IN_INCOGNITO; content_settings_prefs_.insert(std::make_pair( - info->type(), std::make_unique( - 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))))); + info->type(), + std::make_unique( + info->type(), prefs_, &pref_change_registrar_, info->pref_name(), +- info->partitioned_pref_name(), off_the_record_, restore_session, ++ info->partitioned_pref_name(), 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 @@ -2105,7 +2096,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. diff --git a/components/omnibox/browser/autocomplete_provider_client.cc b/components/omnibox/browser/autocomplete_provider_client.cc --- a/components/omnibox/browser/autocomplete_provider_client.cc +++ b/components/omnibox/browser/autocomplete_provider_client.cc -@@ -29,3 +29,7 @@ base::WeakPtr +@@ -33,3 +33,7 @@ base::WeakPtr AutocompleteProviderClient::GetWeakPtr() { return nullptr; } @@ -2127,7 +2118,7 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/compone diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omnibox/browser/base_search_provider.cc --- a/components/omnibox/browser/base_search_provider.cc +++ b/components/omnibox/browser/base_search_provider.cc -@@ -349,7 +349,7 @@ bool BaseSearchProvider::CanSendZeroSuggestRequest( +@@ -350,7 +350,7 @@ bool BaseSearchProvider::CanSendSuggestRequestWithoutPageURL( } // Don't make a suggest request if in incognito mode. @@ -2139,7 +2130,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 -@@ -774,7 +774,9 @@ bool SearchProvider::IsQuerySuitableForSuggest(bool* query_is_private) const { +@@ -775,7 +775,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(); diff --git a/build/patches/Add-autoplay-site-setting.patch b/build/patches/Add-autoplay-site-setting.patch index 6d9cd11b8..3c6d45a5c 100644 --- a/build/patches/Add-autoplay-site-setting.patch +++ b/build/patches/Add-autoplay-site-setting.patch @@ -299,7 +299,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi #include "third_party/blink/public/platform/web_media_player.h" #include "third_party/blink/public/web/web_local_frame.h" #include "third_party/blink/public/web/web_local_frame_client.h" -@@ -332,6 +333,8 @@ void AutoplayPolicy::TryUnlockingUserGesture() { +@@ -330,6 +331,8 @@ void AutoplayPolicy::TryUnlockingUserGesture() { } bool AutoplayPolicy::IsGestureNeededForPlayback() const { @@ -308,7 +308,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi if (!IsLockedPendingUserGesture()) return false; -@@ -430,6 +433,17 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() { +@@ -428,6 +431,17 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() { } } @@ -329,7 +329,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.h b/third_party/blink/renderer/core/html/media/autoplay_policy.h --- a/third_party/blink/renderer/core/html/media/autoplay_policy.h +++ b/third_party/blink/renderer/core/html/media/autoplay_policy.h -@@ -137,6 +137,10 @@ class CORE_EXPORT AutoplayPolicy final +@@ -138,6 +138,10 @@ class CORE_EXPORT AutoplayPolicy final // should use, if checking to see if an action is allowed. bool IsLockedPendingUserGesture() const; diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index f41ce1db2..33ab53ef1 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../menu/bookmark_toolbar_menu_improved.xml | 14 + .../browser/TabbedModeTabDelegateFactory.java | 5 +- .../app/bookmarks/BookmarkActivity.java | 32 ++ - .../browser/bookmarks/BookmarkBridge.java | 280 +++++++++++++++++ + .../browser/bookmarks/BookmarkBridge.java | 285 +++++++++++++++++ .../browser/bookmarks/BookmarkDelegate.java | 10 + .../bookmarks/BookmarkManagerCoordinator.java | 9 + .../bookmarks/BookmarkManagerMediator.java | 23 ++ @@ -30,7 +30,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../bookmarks/android/bookmark_bridge.h | 30 +- .../browser/bookmarks/bookmark_html_writer.cc | 11 + .../dialogs/DownloadLocationCustomView.java | 8 +- - .../DownloadLocationDialogCoordinator.java | 8 +- + .../DownloadLocationDialogCoordinator.java | 10 +- .../flags/android/chrome_feature_list.cc | 1 + .../browser/flags/ChromeFeatureList.java | 1 + chrome/browser/importer/profile_writer.cc | 10 + @@ -53,7 +53,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ui/shell_dialogs/select_file_dialog_linux.cc | 4 + ui/shell_dialogs/select_file_dialog_linux.h | 2 + ui/shell_dialogs/select_file_dialog_win.cc | 5 + - 43 files changed, 922 insertions(+), 29 deletions(-) + 43 files changed, 928 insertions(+), 30 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/add-bookmark-import-export-actions.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-bookmark-import-export-actions.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/add-bookmark-import-export-actions.inc @@ -120,15 +120,15 @@ 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 -@@ -12,6 +12,7 @@ import androidx.annotation.Nullable; - import org.chromium.base.jank_tracker.JankTracker; +@@ -13,6 +13,7 @@ import org.chromium.base.jank_tracker.JankTracker; import org.chromium.base.supplier.ObservableSupplier; + import org.chromium.base.supplier.OneshotSupplier; import org.chromium.base.supplier.Supplier; +import org.chromium.chrome.browser.app.ChromeActivity; 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; -@@ -51,7 +52,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager; +@@ -53,7 +54,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 mShareDelegateSupplier; private final Supplier mEphemeralTabCoordinatorSupplier; -@@ -79,7 +80,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { +@@ -82,7 +83,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { private NativePageFactory mNativePageFactory; public TabbedModeTabDelegateFactory( @@ -149,8 +149,8 @@ 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 -@@ -20,6 +20,11 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; - import org.chromium.chrome.browser.profiles.Profile; +@@ -21,6 +21,11 @@ import org.chromium.chrome.browser.profiles.Profile; + import org.chromium.chrome.browser.profiles.ProfileProvider; import org.chromium.components.bookmarks.BookmarkId; import org.chromium.components.embedder_support.util.UrlConstants; +import org.chromium.ui.base.ActivityWindowAndroid; @@ -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 -@@ -32,6 +37,9 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -33,6 +38,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,7 +171,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); -@@ -62,8 +70,23 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -58,8 +66,23 @@ public class BookmarkActivity extends SnackbarActivity { getOnBackPressedDispatcher(), mBookmarkManagerCoordinator, SecondaryActivity.BOOKMARK); @@ -195,7 +195,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B @Override protected void onDestroy() { super.onDestroy(); -@@ -73,6 +96,7 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -69,6 +92,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( -@@ -81,6 +105,14 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -77,6 +101,14 @@ public class BookmarkActivity extends SnackbarActivity { } } @@ -221,7 +221,7 @@ 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 -@@ -33,6 +33,46 @@ import org.chromium.url.GURL; +@@ -33,6 +33,48 @@ import org.chromium.url.GURL; import java.util.ArrayList; import java.util.List; @@ -252,10 +252,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm +import org.chromium.chrome.browser.IntentHandler; +import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; +import org.chromium.chrome.browser.download.DownloadLocationDialogType; ++import org.chromium.chrome.browser.download.settings.DownloadLocationHelperImpl; +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 org.chromium.chrome.browser.profiles.ProfileManager; +import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +import org.chromium.chrome.browser.flags.ChromeFeatureList; +import org.chromium.ui.base.PageTransition; @@ -268,7 +270,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Provides the communication channel for Android to fetch and manipulate the bookmark model stored * in native. -@@ -483,6 +523,209 @@ class BookmarkBridge { +@@ -483,6 +525,212 @@ class BookmarkBridge { .getTotalBookmarkCount(mNativeBookmarkBridge, id.getId(), id.getType()); } @@ -422,7 +424,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm + // Actually show the dialog. + mCustomView = (DownloadLocationCustomView) LayoutInflater.from(context).inflate( + R.layout.download_location_dialog, null); -+ mCustomView.initialize(DownloadLocationDialogType.DEFAULT, /*totalBytes*/ 0); ++ mCustomView.initialize(DownloadLocationDialogType.DEFAULT, /*totalBytes*/ 0, ++ (isChecked) -> {}, ++ new DownloadLocationHelperImpl(mProfile)); + mCustomView.setTitle(context.getString(R.string.export_bookmarks_alert_title)); + mCustomView.setFileName(standardBoorkmarkName); + mCustomView.mDontShowAgain.setVisibility(View.GONE); @@ -472,13 +476,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm + }; + dialog.initialize(controller); + dialog.showDialog(context, modalDialogManager, /*totalBytes*/ 0, -+ DownloadLocationDialogType.DEFAULT, /*suggestedPath*/ "", /*isIncognito*/ false); ++ DownloadLocationDialogType.DEFAULT, /*suggestedPath*/ "", ++ ProfileManager.getLastUsedRegularProfile()); + } + /** * Synchronously gets a list of bookmarks that match the specified search query. * -@@ -1032,6 +1275,39 @@ class BookmarkBridge { +@@ -1036,6 +1284,39 @@ class BookmarkBridge { depthList.add(depth); } @@ -518,7 +523,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm private static List> createPairsList(int[] left, int[] right) { List> pairList = new ArrayList<>(); for (int i = 0; i < left.length; i++) { -@@ -1090,6 +1366,10 @@ class BookmarkBridge { +@@ -1094,6 +1375,10 @@ class BookmarkBridge { void getChildIds( long nativeBookmarkBridge, long id, int type, List bookmarksList); @@ -552,7 +557,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java -@@ -47,6 +47,8 @@ import org.chromium.components.image_fetcher.ImageFetcher; +@@ -48,6 +48,8 @@ import org.chromium.components.image_fetcher.ImageFetcher; import org.chromium.components.image_fetcher.ImageFetcherConfig; import org.chromium.components.image_fetcher.ImageFetcherFactory; import org.chromium.ui.KeyboardVisibilityDelegate; @@ -561,7 +566,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; -@@ -317,6 +319,13 @@ public class BookmarkManagerCoordinator +@@ -326,6 +328,13 @@ public class BookmarkManagerCoordinator // Public API implementation. @@ -597,7 +602,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** Keeps track of whether drag is enabled / active for bookmark lists. */ private class BookmarkDragStateDelegate implements DragStateDelegate { private BookmarkDelegate mBookmarkDelegate; -@@ -550,6 +555,14 @@ class BookmarkManagerMediator +@@ -554,6 +559,14 @@ class BookmarkManagerMediator mNativePage = nativePage; } @@ -612,7 +617,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** See BookmarkManager(Coordinator)#updateForUrl */ void updateForUrl(String url) { // Bookmark model is null if the manager has been destroyed. -@@ -726,6 +739,16 @@ class BookmarkManagerMediator +@@ -734,6 +747,16 @@ class BookmarkManagerMediator } } @@ -718,7 +723,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java -@@ -129,6 +129,10 @@ class BookmarkToolbarMediator +@@ -132,6 +132,10 @@ class BookmarkToolbarMediator mBookmarkDelegate = bookmarkDelegate; mModel.set( BookmarkToolbarProperties.NAVIGATE_BACK_RUNNABLE, this::onNavigateBack); @@ -772,15 +777,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java -@@ -16,6 +16,7 @@ import org.chromium.base.jank_tracker.JankTracker; - import org.chromium.base.supplier.DestroyableObservableSupplier; +@@ -17,6 +17,7 @@ import org.chromium.base.supplier.DestroyableObservableSupplier; import org.chromium.base.supplier.ObservableSupplier; + import org.chromium.base.supplier.OneshotSupplier; import org.chromium.base.supplier.Supplier; +import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.download.home.DownloadPage; import org.chromium.chrome.browser.bookmarks.BookmarkPage; import org.chromium.chrome.browser.browser_controls.BrowserControlsMarginSupplier; -@@ -52,7 +53,7 @@ import org.chromium.ui.util.ColorUtils; +@@ -54,7 +55,7 @@ import org.chromium.ui.util.ColorUtils; * Creates NativePage objects to show chrome-native:// URLs using the native Android view system. */ public class NativePageFactory { @@ -789,7 +794,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat private final BottomSheetController mBottomSheetController; private final BrowserControlsManager mBrowserControlsManager; private final Supplier mCurrentTabSupplier; -@@ -71,7 +72,7 @@ public class NativePageFactory { +@@ -74,7 +75,7 @@ public class NativePageFactory { private NativePageBuilder mNativePageBuilder; public NativePageFactory( @@ -798,7 +803,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat @NonNull BottomSheetController sheetController, @NonNull BrowserControlsManager browserControlsManager, @NonNull Supplier currentTabSupplier, -@@ -134,7 +135,7 @@ public class NativePageFactory { +@@ -140,7 +141,7 @@ public class NativePageFactory { @VisibleForTesting static class NativePageBuilder { @@ -807,8 +812,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat private final BottomSheetController mBottomSheetController; private final Supplier mUma; private final BrowserControlsManager mBrowserControlsManager; -@@ -151,7 +152,7 @@ public class NativePageFactory { - private final ObservableSupplier mTabStripHeightSupplier; +@@ -158,7 +159,7 @@ public class NativePageFactory { + private final OneshotSupplier mModuleRegistrySupplier; public NativePageBuilder( - Activity activity, @@ -816,7 +821,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat Supplier uma, BottomSheetController sheetController, BrowserControlsManager browserControlsManager, -@@ -218,7 +219,7 @@ public class NativePageFactory { +@@ -228,7 +229,7 @@ public class NativePageFactory { mActivity.getComponentName(), mSnackbarManagerSupplier.get(), tab.getProfile(), @@ -828,7 +833,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 -@@ -197,6 +197,8 @@ static_library("browser") { +@@ -201,6 +201,8 @@ static_library("browser") { "bluetooth/chrome_bluetooth_delegate_impl_client.h", "bookmarks/bookmark_model_factory.cc", "bookmarks/bookmark_model_factory.h", @@ -837,7 +842,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "bookmarks/chrome_bookmark_client.cc", "bookmarks/chrome_bookmark_client.h", "bookmarks/managed_bookmark_service_factory.cc", -@@ -1923,6 +1925,13 @@ static_library("browser") { +@@ -1935,6 +1937,13 @@ static_library("browser") { ] } @@ -851,7 +856,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn configs += [ "//build/config/compiler:wexit_time_destructors", "//build/config:precompiled_headers", -@@ -3630,8 +3639,6 @@ static_library("browser") { +@@ -3649,8 +3658,6 @@ static_library("browser") { "badging/badge_manager_factory.h", "banners/app_banner_manager_desktop.cc", "banners/app_banner_manager_desktop.h", @@ -863,7 +868,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 -@@ -58,6 +58,28 @@ +@@ -59,6 +59,28 @@ #include "content/public/browser/browser_thread.h" #include "content/public/browser/web_contents.h" @@ -892,7 +897,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse using base::android::AttachCurrentThread; using base::android::ConvertUTF16ToJavaString; using base::android::ConvertUTF8ToJavaString; -@@ -75,12 +97,96 @@ using bookmarks::android::JavaBookmarkIdGetType; +@@ -76,12 +98,96 @@ using bookmarks::android::JavaBookmarkIdGetType; using content::BrowserThread; using power_bookmarks::PowerBookmarkMeta; @@ -989,7 +994,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse class BookmarkTitleComparer { public: explicit BookmarkTitleComparer(BookmarkBridge* bookmark_bridge, -@@ -221,6 +327,10 @@ BookmarkBridge::~BookmarkBridge() { +@@ -232,6 +338,10 @@ BookmarkBridge::~BookmarkBridge() { partner_bookmarks_shim_observation_.Reset(); bookmark_model_observation_.Reset(); profile_observation_.Reset(); @@ -1000,7 +1005,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse } void BookmarkBridge::Destroy(JNIEnv*) { -@@ -638,6 +748,183 @@ jint BookmarkBridge::GetTotalBookmarkCount( +@@ -668,6 +778,183 @@ jint BookmarkBridge::GetTotalBookmarkCount( return count; } @@ -1244,7 +1249,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser void GetAllFoldersWithDepths( JNIEnv* env, const base::android::JavaParamRef& j_folders_obj, -@@ -340,12 +360,16 @@ class BookmarkBridge : public ProfileObserver, +@@ -356,12 +376,16 @@ class BookmarkBridge : public ProfileObserver, void DestroyJavaObject(); raw_ptr profile_; // weak @@ -1261,9 +1266,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. -@@ -371,6 +395,10 @@ class BookmarkBridge : public ProfileObserver, - ReadingListManager::Observer> - reading_list_manager_observations_{this}; +@@ -389,6 +413,10 @@ class BookmarkBridge : public ProfileObserver, + + bool suppress_observer_notifications_ = false; + const std::string FileSelectedImpl(const base::FilePath& path); + void FileSelectedImplOnUIThread(const base::FilePath& path, @@ -1285,7 +1290,7 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b #include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/favicon/favicon_service_factory.h" #include "chrome/browser/profiles/profile.h" -@@ -229,7 +232,15 @@ class Writer : public base::RefCountedThreadSafe { +@@ -234,7 +237,15 @@ class Writer : public base::RefCountedThreadSafe { // Opens the file, returning true on success. bool OpenFile() { int flags = base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE; @@ -1312,17 +1317,17 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse + public CheckBox mDontShowAgain; private @DownloadLocationDialogType int mDialogType; private long mTotalBytes; - -@@ -70,7 +70,7 @@ public class DownloadLocationCustomView extends ScrollView + private Callback mOnClickedCallback; +@@ -72,7 +72,7 @@ public class DownloadLocationCustomView extends ScrollView mDontShowAgain = findViewById(R.id.show_again_checkbox); } -- void initialize(@DownloadLocationDialogType int dialogType, long totalBytes) { -+ public void initialize(@DownloadLocationDialogType int dialogType, long totalBytes) { - // TODO(xingliu): Remove this function, currently used by smart suggestion. - mDialogType = dialogType; - mTotalBytes = totalBytes; -@@ -123,7 +123,7 @@ public class DownloadLocationCustomView extends ScrollView +- void initialize( ++ public void initialize( + @DownloadLocationDialogType int dialogType, + long totalBytes, + Callback onClickedCallback, +@@ -130,7 +130,7 @@ public class DownloadLocationCustomView extends ScrollView * @return The text that the user inputted as the name of the file. */ @Nullable @@ -1331,7 +1336,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse if (mFileName == null || mFileName.getText() == null) return null; return mFileName.getText().toString(); } -@@ -132,7 +132,7 @@ public class DownloadLocationCustomView extends ScrollView +@@ -139,7 +139,7 @@ public class DownloadLocationCustomView extends ScrollView * @return The file path based on what the user selected as the location of the file. */ @Nullable @@ -1343,7 +1348,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java --- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java +++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java -@@ -35,12 +35,12 @@ import java.util.ArrayList; +@@ -37,18 +37,18 @@ import java.util.ArrayList; */ public class DownloadLocationDialogCoordinator implements ModalDialogProperties.Controller { @NonNull private DownloadLocationDialogController mController; @@ -1359,7 +1364,14 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse private long mTotalBytes; private @DownloadLocationDialogType int mDialogType; private String mSuggestedPath; -@@ -137,7 +137,7 @@ public class DownloadLocationDialogCoordinator implements ModalDialogProperties. + private Context mContext; + private boolean mHasMultipleDownloadLocations; +- private Profile mProfile; ++ protected Profile mProfile; + private boolean mLocationDialogManaged; + + /** +@@ -140,7 +140,7 @@ public class DownloadLocationDialogCoordinator implements ModalDialogProperties. * Called after retrieved the download directory options. * @param dirs An list of available download directories. */ @@ -1382,7 +1394,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -493,6 +493,7 @@ public abstract class ChromeFeatureList { +@@ -502,6 +502,7 @@ public abstract class ChromeFeatureList { public static final String USER_BYPASS_UI = "UserBypassUI"; public static final String VERTICAL_AUTOMOTIVE_BACK_BUTTON_TOOLBAR = "VerticalAutomotiveBackButtonToolbar"; @@ -1445,7 +1457,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro /** * Whether Chrome is set as the default browser. -@@ -911,6 +913,7 @@ public final class ChromePreferenceKeys { +@@ -894,6 +896,7 @@ public final class ChromePreferenceKeys { AUTOFILL_ASSISTANT_PROACTIVE_HELP_ENABLED, APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE, APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO, @@ -1484,7 +1496,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 -@@ -407,6 +407,9 @@ static_library("common_lib") { +@@ -404,6 +404,9 @@ static_library("common_lib") { sources += [ "media/chrome_media_drm_bridge_client.cc", "media/chrome_media_drm_bridge_client.h", @@ -1497,7 +1509,7 @@ diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn --- a/chrome/utility/BUILD.gn +++ b/chrome/utility/BUILD.gn -@@ -85,8 +85,6 @@ static_library("utility") { +@@ -84,8 +84,6 @@ static_library("utility") { if (!is_android) { sources += [ @@ -1506,7 +1518,7 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn "importer/bookmarks_file_importer.cc", "importer/bookmarks_file_importer.h", "importer/external_process_importer_bridge.cc", -@@ -218,6 +216,11 @@ static_library("utility") { +@@ -220,6 +218,11 @@ static_library("utility") { ] } @@ -1731,7 +1743,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui return mimeTypes; } -@@ -1032,6 +1040,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -1034,6 +1042,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick return countAcceptTypesFor(superType) == mFileTypes.size(); } diff --git a/build/patches/Add-cromite-flags-support.patch b/build/patches/Add-cromite-flags-support.patch index 0b03ad905..d2cf5fcdd 100644 --- a/build/patches/Add-cromite-flags-support.patch +++ b/build/patches/Add-cromite-flags-support.patch @@ -120,7 +120,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/base/BUILD.gn b/base/BUILD.gn --- a/base/BUILD.gn +++ b/base/BUILD.gn -@@ -207,6 +207,8 @@ buildflag_header("message_pump_buildflags") { +@@ -212,6 +212,8 @@ buildflag_header("message_pump_buildflags") { # This does not include test code (test support and anything in the test # directory) which should use source_set as is recommended for GN targets). component("base") { @@ -129,7 +129,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn sources = [ "allocator/allocator_check.cc", "allocator/allocator_check.h", -@@ -1049,7 +1051,7 @@ component("base") { +@@ -1055,7 +1057,7 @@ component("base") { "//build/config/compiler:wglobal_constructors", ] @@ -161,16 +161,16 @@ diff --git a/base/android/feature_map.cc b/base/android/feature_map.cc 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 -@@ -124,7 +124,7 @@ public class CachedFlag extends Flag { +@@ -125,7 +125,7 @@ public class CachedFlag extends Flag { .writeBoolean(getSharedPreferenceKey(), isEnabledInNative); } - String getSharedPreferenceKey() { + public String getSharedPreferenceKey() { - return CachedFlagsSharedPreferences.FLAGS_CACHED.createKey(mFeatureName); - } - -@@ -152,6 +152,12 @@ public class CachedFlag extends Flag { + // Create the key only once to avoid String concatenation every flag check. + if (mPreferenceKey == null) { + mPreferenceKey = CachedFlagsSharedPreferences.FLAGS_CACHED.createKey(mFeatureName); +@@ -157,6 +157,12 @@ public class CachedFlag extends Flag { .removeKeysWithPrefix(CachedFlagsSharedPreferences.FLAGS_CACHED); } @@ -218,7 +218,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc namespace { // Pointer to the FeatureList instance singleton that was set via -@@ -451,6 +476,48 @@ bool FeatureList::IsEnabled(const Feature& feature) { +@@ -464,6 +489,48 @@ bool FeatureList::IsEnabled(const Feature& feature) { return g_feature_list_instance->IsFeatureEnabled(feature); } @@ -267,7 +267,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; -@@ -693,6 +760,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor) { +@@ -710,6 +777,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor) { void FeatureList::FinalizeInitialization() { DCHECK(!initialized_); @@ -479,7 +479,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; -@@ -72,6 +73,7 @@ import org.chromium.chrome.browser.ui.device_lock.MissingDeviceLockLauncher; +@@ -74,6 +75,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; @@ -487,7 +487,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; -@@ -112,6 +114,36 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -114,6 +116,36 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback, SnackbarManageable, DisplayStyleObserver { @@ -524,7 +524,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE) public static final String EXTRA_SHOW_FRAGMENT = "show_fragment"; -@@ -364,6 +396,10 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -367,6 +399,10 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity ((AccessibilitySettings) fragment) .getDelegate()).setSnackbarManager(mSnackbarManager); } @@ -538,7 +538,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -372,6 +372,10 @@ using flags_ui::kOsLinux; +@@ -371,6 +371,10 @@ using flags_ui::kOsLinux; using flags_ui::kOsMac; using flags_ui::kOsWin; @@ -549,9 +549,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc namespace about_flags { namespace { -@@ -3776,6 +3780,10 @@ const FeatureEntry::FeatureVariation - {"experimental V2", kCompressionDictionaryTransportBackendVersionV2, - std::size(kCompressionDictionaryTransportBackendVersionV2), nullptr}}; +@@ -3710,6 +3714,10 @@ const FeatureEntry::Choice kAccountBookmarksAndReadingListBehindOptInChoices[] = + }; + #endif // BUILDFLAG(IS_ANDROID) +#define FEATURE_PARAM_SECTION +#include "cromite_flags/chrome_browser_about_flags_cc.inc" @@ -560,7 +560,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc // RECORDING USER METRICS FOR FLAGS: // ----------------------------------------------------------------------------- // The first line of the entry is the internal name. -@@ -3802,6 +3810,9 @@ const FeatureEntry::FeatureVariation +@@ -3736,6 +3744,9 @@ const FeatureEntry::Choice kAccountBookmarksAndReadingListBehindOptInChoices[] = const FeatureEntry kFeatureEntries[] = { // Include generated flags for flag unexpiry; see //docs/flag_expiry.md and // //tools/flags/generate_unexpire_flags.py. @@ -573,8 +573,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 -@@ -335,4 +335,5 @@ BASE_FEATURE(kOmniboxTriggerForNoStatePrefetch, - "OmniboxTriggerForNoStatePrefetch", +@@ -368,4 +368,5 @@ BASE_FEATURE(kNetworkAnnotationMonitoring, + "NetworkAnnotationMonitoring", base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/chrome_browser_browser_features_cc.inc" @@ -621,8 +621,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 -@@ -1013,5 +1013,6 @@ BASE_FEATURE(kWebApkBackupAndRestoreBackend, - "WebApkBackupAndRestoreBackend", +@@ -978,5 +978,6 @@ BASE_FEATURE(kWebApkIconUpdateThreshold, + "WebApkIconUpdateThreshold", base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/chrome_browser_flags_android_chrome_feature_list_cc.inc" @@ -631,7 +631,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -195,6 +195,7 @@ constexpr base::FeatureParam kAuxiliarySearchMaxTabsCountParam( +@@ -188,6 +188,7 @@ constexpr base::FeatureParam kAuxiliarySearchMaxTabsCountParam( "auxiliary_search_max_donation_tab", 100); @@ -653,16 +653,16 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f import java.util.List; import java.util.Map; -@@ -668,7 +672,7 @@ public abstract class ChromeFeatureList { +@@ -691,7 +695,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sVerticalAutomotiveBackButtonToolbar = - newCachedFlag(VERTICAL_AUTOMOTIVE_BACK_BUTTON_TOOLBAR, false); + newCachedFlag(VERTICAL_AUTOMOTIVE_BACK_BUTTON_TOOLBAR, true); - public static final List sFlagsCachedFullBrowser = + public static final List sFlagsCachedFullBrowserChromium = List.of( sAllowUserCertificates, sAndroidAppIntegration, -@@ -749,6 +753,13 @@ public abstract class ChromeFeatureList { +@@ -779,6 +783,13 @@ public abstract class ChromeFeatureList { sUseLibunwindstackNativeUnwinderAndroid, sVerticalAutomotiveBackButtonToolbar); @@ -829,7 +829,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc --- a/chrome/browser/ui/ui_features.cc +++ b/chrome/browser/ui/ui_features.cc -@@ -435,4 +435,5 @@ BASE_FEATURE(kStopLoadingAnimationForHiddenWindow, +@@ -450,4 +450,5 @@ BASE_FEATURE(kStopLoadingAnimationForHiddenWindow, "StopLoadingAnimationForHiddenWindow", base::FEATURE_ENABLED_BY_DEFAULT); @@ -838,7 +838,7 @@ diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -1708,4 +1708,5 @@ BASE_FEATURE(kSupportsRtcWakeOver24Hours, +@@ -1735,4 +1735,5 @@ BASE_FEATURE(kSupportsRtcWakeOver24Hours, base::FEATURE_ENABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_CHROMEOS_ASH) @@ -916,7 +916,7 @@ 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 -@@ -111,5 +111,6 @@ BASE_FEATURE(kIndexedHostContentSettingsMap, +@@ -112,5 +112,6 @@ BASE_FEATURE(kIndexedHostContentSettingsMap, "IndexedHostContentSettingsMap", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1091,7 +1091,7 @@ diff --git a/components/flags_ui/resources/app.html b/components/flags_ui/resour diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resources/app.ts --- a/components/flags_ui/resources/app.ts +++ b/components/flags_ui/resources/app.ts -@@ -193,6 +193,7 @@ export class FlagsAppElement extends CustomElement { +@@ -194,6 +194,7 @@ export class FlagsAppElement extends CustomElement { return getTemplate(); } @@ -1099,7 +1099,7 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource private announceStatusDelayMs: number = 100; private featuresResolver: PromiseResolver = new PromiseResolver(); private flagSearch: FlagSearch = new FlagSearch(this); -@@ -204,6 +205,10 @@ export class FlagsAppElement extends CustomElement { +@@ -205,6 +206,10 @@ export class FlagsAppElement extends CustomElement { // tabs: Tab[] = [ @@ -1110,7 +1110,7 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource { tabEl: this.getRequiredElement('#tab-available'), panelEl: this.getRequiredElement('#tab-content-available'), -@@ -217,6 +222,11 @@ export class FlagsAppElement extends CustomElement { +@@ -218,6 +223,11 @@ export class FlagsAppElement extends CustomElement { ]; connectedCallback() { @@ -1122,7 +1122,7 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource // Get and display the data upon loading. this.requestExperimentalFeaturesData(); // There is no restart button on iOS. -@@ -277,20 +287,29 @@ export class FlagsAppElement extends CustomElement { +@@ -278,20 +288,29 @@ export class FlagsAppElement extends CustomElement { const defaultFeatures: Feature[] = []; const nonDefaultFeatures: Feature[] = []; @@ -1155,7 +1155,7 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource // this.showRestartToast(experimentalFeaturesData.needsRestart); -@@ -401,16 +420,23 @@ export class FlagsAppElement extends CustomElement { +@@ -402,16 +421,23 @@ export class FlagsAppElement extends CustomElement { } private renderExperiments( @@ -1180,7 +1180,7 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource if (select) { experiment.addEventListener('select-change', e => { e.preventDefault(); -@@ -434,9 +460,14 @@ export class FlagsAppElement extends CustomElement { +@@ -435,9 +461,14 @@ export class FlagsAppElement extends CustomElement { this.showRestartToast(true); }); } @@ -1230,7 +1230,7 @@ diff --git a/components/flags_ui/resources/experiment.html b/components/flags_ui diff --git a/components/flags_ui/resources/experiment.ts b/components/flags_ui/resources/experiment.ts --- a/components/flags_ui/resources/experiment.ts +++ b/components/flags_ui/resources/experiment.ts -@@ -60,11 +60,16 @@ function resetHighlights(element: HTMLElement) { +@@ -61,11 +61,16 @@ function resetHighlights(element: HTMLElement) { export class FlagsExperimentElement extends CustomElement { private feature_: Feature|null = null; @@ -1247,7 +1247,7 @@ diff --git a/components/flags_ui/resources/experiment.ts b/components/flags_ui/r set data(feature: Feature) { this.feature_ = feature; -@@ -76,12 +81,18 @@ export class FlagsExperimentElement extends CustomElement { +@@ -77,12 +82,18 @@ export class FlagsExperimentElement extends CustomElement { 'experiment-default', feature.is_default); experimentDefault.classList.toggle( 'experiment-switched', !feature.is_default); @@ -1266,7 +1266,7 @@ diff --git a/components/flags_ui/resources/experiment.ts b/components/flags_ui/r const description = this.getRequiredElement('.description'); description.textContent = feature.description; -@@ -124,6 +135,7 @@ export class FlagsExperimentElement extends CustomElement { +@@ -125,6 +136,7 @@ export class FlagsExperimentElement extends CustomElement { const permalink = this.getRequiredElement('.permalink'); permalink.href = `#${feature.internal_name}`; permalink.textContent = `#${feature.internal_name}`; @@ -1274,7 +1274,7 @@ diff --git a/components/flags_ui/resources/experiment.ts b/components/flags_ui/r const smallScreenCheck = window.matchMedia('(max-width: 480px)'); // Toggling of experiment description overflow content on smaller screens. -@@ -152,6 +164,10 @@ export class FlagsExperimentElement extends CustomElement { +@@ -153,6 +165,10 @@ export class FlagsExperimentElement extends CustomElement { const optionEl = document.createElement('option'); optionEl.selected = option.selected; optionEl.textContent = option.description; @@ -1323,8 +1323,8 @@ 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 -@@ -142,6 +142,7 @@ BASE_FEATURE(kShowRelatedWebsiteSetsPermissionGrants, - "ShowRelatedWebsiteSetsPermissionGrants", +@@ -139,6 +139,7 @@ BASE_FEATURE(kCpssQuietChipTextUpdate, + "CpssQuietChipTextUpdate", base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/components_permissions_features_cc.inc" @@ -1346,7 +1346,7 @@ diff --git a/components/version_ui/version_handler_helper.cc b/components/versio diff --git a/content/common/features.cc b/content/common/features.cc --- a/content/common/features.cc +++ b/content/common/features.cc -@@ -581,4 +581,5 @@ BASE_FEATURE(kWindowOpenFileSelectFix, +@@ -596,4 +596,5 @@ BASE_FEATURE(kWindowOpenFileSelectFix, // Please keep features in alphabetical order. @@ -1355,7 +1355,7 @@ diff --git a/content/common/features.cc b/content/common/features.cc diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -1418,4 +1418,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() { +@@ -1389,4 +1389,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() { VideoCaptureServiceConfiguration::kEnabledForBrowserProcess; } @@ -1364,7 +1364,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h --- a/content/public/common/content_features.h +++ b/content/public/common/content_features.h -@@ -341,6 +341,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kWebRtcPipeWireCapturer); +@@ -332,6 +332,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kWebRtcPipeWireCapturer); CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess(); CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess(); @@ -1662,7 +1662,7 @@ new file mode 100755 diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc -@@ -1821,5 +1821,5 @@ uint32_t GetPassthroughAudioFormats() { +@@ -1866,5 +1866,5 @@ uint32_t GetPassthroughAudioFormats() { return 0; #endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) } @@ -1672,7 +1672,7 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc diff --git a/media/base/media_switches.h b/media/base/media_switches.h --- a/media/base/media_switches.h +++ b/media/base/media_switches.h -@@ -530,5 +530,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled(); +@@ -547,5 +547,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled(); MEDIA_EXPORT uint32_t GetPassthroughAudioFormats(); } // namespace media @@ -1682,8 +1682,8 @@ 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 -@@ -521,4 +521,5 @@ BASE_FEATURE(kTreatHTTPExpiresHeaderValueZeroAsExpired, - "TreatHTTPExpiresHeaderValueZeroAsExpired", +@@ -535,4 +535,5 @@ BASE_FEATURE(kTruncateBodyToContentLength, + "TruncateBodyToContentLength", base::FEATURE_ENABLED_BY_DEFAULT); +#include "cromite_flags/net_base_features_cc.inc" @@ -1691,9 +1691,9 @@ 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 -@@ -512,6 +512,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kUseNewAlpsCodepointQUIC); - // while on stable channels. - NET_EXPORT BASE_DECLARE_FEATURE(kTreatHTTPExpiresHeaderValueZeroAsExpired); +@@ -523,6 +523,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kTreatHTTPExpiresHeaderValueZeroAsExpired); + // Enables truncating the response body to the content length. + NET_EXPORT BASE_DECLARE_FEATURE(kTruncateBodyToContentLength); +#include "cromite_flags/net_base_features_h.inc" } // namespace net::features @@ -1702,7 +1702,7 @@ diff --git a/net/base/features.h b/net/base/features.h diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc --- a/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc -@@ -477,4 +477,5 @@ const base::FeatureParam kSkipTpcdMitigationsForAdsTopLevelTrial{ +@@ -467,4 +467,5 @@ const base::FeatureParam kSkipTpcdMitigationsForAdsTopLevelTrial{ /*name=*/"SkipTpcdMitigationsForAdsTopLevelTrial", /*default_value=*/false}; @@ -1711,7 +1711,7 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h --- a/services/network/public/cpp/features.h +++ b/services/network/public/cpp/features.h -@@ -196,6 +196,7 @@ extern const base::FeatureParam kSkipTpcdMitigationsForAdsTrial; +@@ -187,6 +187,7 @@ extern const base::FeatureParam kSkipTpcdMitigationsForAdsTrial; COMPONENT_EXPORT(NETWORK_CPP) extern const base::FeatureParam kSkipTpcdMitigationsForAdsTopLevelTrial; @@ -1722,9 +1722,9 @@ 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 -@@ -2404,5 +2404,6 @@ BASE_FEATURE(kTreatHTTPExpiresHeaderValueZeroAsExpiredInBlink, - "TreatHTTPExpiresHeaderValueZeroAsExpiredInBlink", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -2546,5 +2546,6 @@ BASE_FEATURE(kSimplifyLoadingTransparentPlaceholderImage, + "SimplifyLoadingTransparentPlaceholderImage", + base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/third_party_blink_common_features_cc.inc" } // namespace features @@ -1732,9 +1732,9 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h --- a/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h -@@ -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); +@@ -1638,6 +1638,7 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kInteractiveDetectorIgnoreFcp); + BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE( + kSimplifyLoadingTransparentPlaceholderImage); +#include "cromite_flags/third_party_blink_common_features_h.inc" } // namespace features diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index 517ffe100..4aaca446b 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -98,7 +98,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java -@@ -849,6 +849,7 @@ public class CustomTabsConnection { +@@ -850,6 +850,7 @@ public class CustomTabsConnection { PostTask.postTask( TaskTraits.UI_DEFAULT, () -> { @@ -187,7 +187,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java --- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java +++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java -@@ -85,7 +85,11 @@ public final class TabAssociatedApp extends TabWebContentsUserData implements Im +@@ -87,7 +87,11 @@ public final class TabAssociatedApp extends TabWebContentsUserData implements Im public static boolean isOpenedFromExternalApp(Tab tab) { TabAssociatedApp app = get(tab); if (app == null) return false; @@ -203,7 +203,7 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAsso diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -5071,6 +5071,20 @@ To change this setting, <resetlink>reset sync

BEGIN_LINKclear the Chrome da Resume diff --git a/build/patches/Add-exit-menu-item.patch b/build/patches/Add-exit-menu-item.patch index da86befa7..c270af0b8 100644 --- a/build/patches/Add-exit-menu-item.patch +++ b/build/patches/Add-exit-menu-item.patch @@ -17,7 +17,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml -@@ -163,6 +163,9 @@ found in the LICENSE file. +@@ -166,6 +166,9 @@ found in the LICENSE file. @@ -27,7 +27,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re -@@ -189,6 +192,9 @@ found in the LICENSE file. +@@ -192,6 +195,9 @@ found in the LICENSE file. @@ -59,16 +59,16 @@ 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 -@@ -258,6 +258,8 @@ import java.util.Map; - import java.util.Set; - import java.util.concurrent.atomic.AtomicBoolean; +@@ -267,6 +267,8 @@ import java.util.concurrent.atomic.AtomicBoolean; + import java.util.function.BooleanSupplier; + import java.util.function.DoubleConsumer; +import org.chromium.chrome.browser.ApplicationLifetime; + /** - * 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. -@@ -2909,6 +2911,8 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -2576,6 +2577,11 @@ public abstract class ChromeActivity return true; } @@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -3676,6 +3676,9 @@ To change this setting, <resetlink>reset sync

BEGIN_LINKclear the Chrome da Dark theme diff --git a/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch b/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch index 6ce796ddd..be3279b58 100644 --- a/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch +++ b/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch @@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc --- a/components/omnibox/browser/autocomplete_controller.cc +++ b/components/omnibox/browser/autocomplete_controller.cc -@@ -20,6 +20,7 @@ +@@ -22,6 +22,7 @@ #include "base/check_op.h" #include "base/containers/contains.h" @@ -58,7 +58,7 @@ diff --git a/components/omnibox/browser/history_url_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 -@@ -12,6 +12,7 @@ +@@ -14,6 +14,7 @@ #include "base/base64.h" #include "base/feature_list.h" #include "base/functional/bind.h" @@ -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" -@@ -643,6 +644,9 @@ void SearchProvider::Run(bool query_is_private) { +@@ -644,6 +645,9 @@ void SearchProvider::Run(bool query_is_private) { } void SearchProvider::DoHistoryQuery(bool minimal_changes) { diff --git a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch index 4a91a3147..ad440cc8e 100644 --- a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch +++ b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch @@ -92,7 +92,7 @@ new file mode 100644 diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket_pool_manager.cc --- a/net/socket/client_socket_pool_manager.cc +++ b/net/socket/client_socket_pool_manager.cc -@@ -21,6 +21,10 @@ +@@ -22,6 +22,10 @@ #include "net/socket/client_socket_handle.h" #include "net/socket/client_socket_pool.h" #include "net/socket/connect_job.h" @@ -101,8 +101,8 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket +#include "base/command_line.h" +#include "base/strings/string_number_conversions.h" #include "net/ssl/ssl_config.h" - #include "third_party/abseil-cpp/absl/types/optional.h" #include "url/gurl.h" + #include "url/scheme_host_port.h" @@ -168,6 +172,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool( int ClientSocketPoolManager::max_sockets_per_group( HttpNetworkSession::SocketPoolType pool_type) { diff --git a/build/patches/Add-flag-to-disable-IPv6-probes.patch b/build/patches/Add-flag-to-disable-IPv6-probes.patch index 1c19d3e0b..7b1266f82 100644 --- a/build/patches/Add-flag-to-disable-IPv6-probes.patch +++ b/build/patches/Add-flag-to-disable-IPv6-probes.patch @@ -45,7 +45,7 @@ new file mode 100644 diff --git a/net/BUILD.gn b/net/BUILD.gn --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -1028,6 +1028,7 @@ component("net") { +@@ -1030,6 +1030,7 @@ component("net") { "//build:chromeos_buildflags", "//components/miracle_parameter/common", "//net/http:transport_security_state_generated_files", diff --git a/build/patches/Add-flag-to-disable-vibration.patch b/build/patches/Add-flag-to-disable-vibration.patch index a2f1be627..2d34235a3 100644 --- a/build/patches/Add-flag-to-disable-vibration.patch +++ b/build/patches/Add-flag-to-disable-vibration.patch @@ -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 -@@ -2669,6 +2669,10 @@ +@@ -635,6 +635,10 @@ status: {"Android": "stable"}, base_feature: "none", }, @@ -113,6 +113,6 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 + status: "stable", + }, { - name: "OriginIsolationHeader", - status: "stable", + name: "CompositionForegroundMarkers", + status: { -- diff --git a/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch b/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch index 3a9f09bf3..0a717b352 100644 --- a/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch +++ b/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch @@ -14,7 +14,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 -@@ -1884,7 +1884,12 @@ config("default_warnings") { +@@ -1889,7 +1889,12 @@ config("default_warnings") { # TODO(https://crbug.com/1490607): Fix and re-enable. "-Wno-thread-safety-reference-return", ] @@ -31,7 +31,7 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn diff --git a/build_overrides/build.gni b/build_overrides/build.gni --- a/build_overrides/build.gni +++ b/build_overrides/build.gni -@@ -58,6 +58,9 @@ declare_args() { +@@ -62,6 +62,9 @@ declare_args() { # to lack of toolchain support. gtest_enable_absl_printers = !is_nacl diff --git a/build/patches/Add-lifetime-options-for-permissions.patch b/build/patches/Add-lifetime-options-for-permissions.patch index e23a35ffa..bf0c088d8 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -240,15 +240,15 @@ 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 -@@ -270,7 +270,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) { +@@ -267,7 +267,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) { + delegate_->Accept(); return; case PermissionDialogButton::kAcceptOnce: - RecordDecision(permissions::PermissionAction::GRANTED_ONCE); - delegate_->AcceptThisTime(); + delegate_->AcceptThisTime(content_settings::LifetimeMode::OnlyThisTime); return; case PermissionDialogButton::kDeny: - RecordDecision(permissions::PermissionAction::DENIED); + delegate_->Deny(); 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 @@ -263,7 +263,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 -@@ -570,6 +570,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -559,6 +559,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment } } @@ -275,7 +275,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(); -@@ -1081,6 +1086,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1070,6 +1075,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment if (contentType == mHighlightedPermission) { switchPreference.setBackgroundColor(mHighlightColor); } @@ -301,7 +301,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 -@@ -676,6 +676,11 @@ +@@ -673,6 +673,11 @@ URL truncated @@ -496,7 +496,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 -@@ -1174,6 +1174,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1163,6 +1163,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, permission_info.source = info.source; permission_info.is_one_time = (info.metadata.session_model() == content_settings::SessionModel::OneTime); @@ -515,7 +515,7 @@ diff --git a/components/page_info/page_info.h b/components/page_info/page_info.h + bool is_user_session = false; // Only set for settings that can have multiple permissions for different // embedded origins. - absl::optional requesting_origin; + std::optional requesting_origin; 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 @@ -575,7 +575,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per /** This class creates the model for the permission dialog. */ class PermissionDialogModelFactory { public static PropertyModel getModel( -@@ -59,6 +71,74 @@ class PermissionDialogModelFactory { +@@ -60,6 +72,74 @@ class PermissionDialogModelFactory { ModalDialogProperties.NEGATIVE_BUTTON_TEXT, delegate.getNegativeButtonText()); } @@ -1094,7 +1094,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio PermissionRequest::~PermissionRequest() { DCHECK(delete_callback_.is_null()); } -@@ -363,19 +371,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { +@@ -357,19 +365,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { permissions::features::kPermissionStorageAccessAPI); } @@ -1204,7 +1204,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } request->RequestFinished(); return; -@@ -578,7 +578,8 @@ void PermissionRequestManager::Accept() { +@@ -593,7 +593,8 @@ void PermissionRequestManager::Accept() { (*requests_iter)->request_type(), PermissionAction::GRANTED); PermissionGrantedIncludingDuplicates(*requests_iter, @@ -1213,8 +1213,8 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p + content_settings::LifetimeMode::Always); #if !BUILDFLAG(IS_ANDROID) - absl::optional content_settings_type = -@@ -596,7 +597,7 @@ void PermissionRequestManager::Accept() { + std::optional content_settings_type = +@@ -611,7 +612,7 @@ void PermissionRequestManager::Accept() { CurrentRequestsDecided(PermissionAction::GRANTED); } @@ -1223,7 +1223,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p if (ignore_callbacks_from_prompt_) return; DCHECK(view_); -@@ -608,7 +609,8 @@ void PermissionRequestManager::AcceptThisTime() { +@@ -623,7 +624,8 @@ void PermissionRequestManager::AcceptThisTime() { (*requests_iter)->request_type(), PermissionAction::GRANTED_ONCE); PermissionGrantedIncludingDuplicates(*requests_iter, @@ -1233,7 +1233,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } NotifyRequestDecided(PermissionAction::GRANTED_ONCE); -@@ -616,6 +618,15 @@ void PermissionRequestManager::AcceptThisTime() { +@@ -631,6 +633,15 @@ void PermissionRequestManager::AcceptThisTime() { } void PermissionRequestManager::Deny() { @@ -1249,7 +1249,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p if (ignore_callbacks_from_prompt_) return; DCHECK(view_); -@@ -639,7 +650,7 @@ void PermissionRequestManager::Deny() { +@@ -654,7 +665,7 @@ void PermissionRequestManager::Deny() { StorePermissionActionForUMA((*requests_iter)->requesting_origin(), (*requests_iter)->request_type(), PermissionAction::DENIED); @@ -1258,7 +1258,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } NotifyRequestDecided(PermissionAction::DENIED); -@@ -1180,32 +1191,32 @@ PermissionRequestManager::VisitDuplicateRequests( +@@ -1213,32 +1224,32 @@ PermissionRequestManager::VisitDuplicateRequests( void PermissionRequestManager::PermissionGrantedIncludingDuplicates( PermissionRequest* request, @@ -1301,8 +1301,8 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p request); } -@@ -1457,7 +1468,7 @@ void PermissionRequestManager::LogWarningToConsole(const char* message) { - void PermissionRequestManager::DoAutoResponseForTesting() { +@@ -1495,7 +1506,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() { + } switch (auto_response_for_test_) { case ACCEPT_ONCE: - AcceptThisTime(); @@ -1313,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 -@@ -161,8 +161,10 @@ class PermissionRequestManager +@@ -162,8 +162,10 @@ class PermissionRequestManager GURL GetRequestingOrigin() const override; GURL GetEmbeddingOrigin() const override; void Accept() override; @@ -1325,7 +1325,7 @@ diff --git a/components/permissions/permission_request_manager.h b/components/pe void Dismiss() override; void Ignore() override; void FinalizeCurrentRequests() override; -@@ -367,9 +369,12 @@ class PermissionRequestManager +@@ -368,9 +370,12 @@ class PermissionRequestManager // Calls PermissionGranted on a request and all its duplicates. void PermissionGrantedIncludingDuplicates(PermissionRequest* request, diff --git a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch index 5a60750cd..25d8f6146 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -9,23 +9,24 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/bookmarks/BookmarkBridge.java | 67 +++++++++++++++++++ .../bookmarks/android/bookmark_bridge.cc | 44 ++++++++++++ .../bookmarks/android/bookmark_bridge.h | 8 +++ - .../browser/bookmarks/bookmark_html_writer.cc | 8 ++- + .../browser/bookmarks/bookmark_html_writer.cc | 11 ++- .../dialogs/DownloadLocationCustomView.java | 4 +- .../strings/android_chrome_strings.grd | 3 + components/bookmark_bar_strings.grdp | 6 ++ - .../bookmarks/browser/bookmark_codec.cc | 22 ++++-- + .../bookmarks/browser/bookmark_codec.cc | 20 +++++- components/bookmarks/browser/bookmark_codec.h | 7 +- - .../browser/bookmark_load_details.cc | 2 + - .../bookmarks/browser/bookmark_load_details.h | 3 + + .../browser/bookmark_load_details.cc | 8 ++- + .../bookmarks/browser/bookmark_load_details.h | 2 + .../bookmarks/browser/bookmark_model.cc | 3 +- components/bookmarks/browser/bookmark_model.h | 7 ++ components/bookmarks/browser/bookmark_node.cc | 11 +++ components/bookmarks/browser/bookmark_node.h | 3 + + .../bookmarks/browser/bookmark_storage.cc | 2 + .../bookmarks/browser/bookmark_uuids.cc | 3 + components/bookmarks/browser/bookmark_uuids.h | 1 + - components/bookmarks/browser/model_loader.cc | 3 +- + components/bookmarks/browser/model_loader.cc | 8 ++- .../bookmark_specifics_conversions.cc | 1 + - 21 files changed, 227 insertions(+), 10 deletions(-) + 22 files changed, 236 insertions(+), 14 deletions(-) diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml @@ -41,7 +42,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re -@@ -183,6 +187,9 @@ found in the LICENSE file. +@@ -186,6 +190,9 @@ found in the LICENSE file. @@ -54,7 +55,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -86,6 +86,7 @@ import org.chromium.chrome.browser.base.ColdStartTracker; +@@ -89,6 +89,7 @@ import org.chromium.chrome.browser.base.ColdStartTracker; import org.chromium.chrome.browser.bookmarks.BookmarkUtils; import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.compositor.CompositorViewHolder; @@ -62,7 +63,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.compositor.layouts.Layout; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone; -@@ -2934,6 +2935,8 @@ public class ChromeTabbedActivity extends ChromeActivity getTabModelSelector().closeAllTabs()); RecordUserAction.record("MobileMenuCloseAllTabs"); @@ -71,7 +72,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct } else if (id == R.id.close_all_incognito_tabs_menu_id) { // Close only incognito tabs CloseAllTabsDialog.show( -@@ -3005,6 +3008,27 @@ public class ChromeTabbedActivity extends ChromeActivity mObservers = new ObserverList<>(); @@ -129,7 +130,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm private long mNativeBookmarkBridge; private boolean mIsDestroyed; private boolean mIsDoingExtensiveChanges; -@@ -400,6 +408,16 @@ class BookmarkBridge { +@@ -402,6 +410,16 @@ class BookmarkBridge { return mMobileFolderId; } @@ -146,7 +147,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** Returns Id representing the special "other" folder from bookmark model. */ public BookmarkId getOtherFolderId() { ThreadUtils.assertOnUiThread(); -@@ -1084,6 +1102,50 @@ class BookmarkBridge { +@@ -1092,6 +1110,50 @@ class BookmarkBridge { .addToReadingList(mNativeBookmarkBridge, parentId, title, url); } @@ -197,7 +198,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Helper method to mark an item as read. * -@@ -1325,6 +1387,9 @@ class BookmarkBridge { +@@ -1334,6 +1396,9 @@ class BookmarkBridge { BookmarkId getMostRecentlyAddedUserBookmarkIdForUrl(long nativeBookmarkBridge, GURL url); @@ -207,7 +208,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm BookmarkItem getBookmarkById(long nativeBookmarkBridge, long id, int type); void getTopLevelFolderIds( -@@ -1344,6 +1409,8 @@ class BookmarkBridge { +@@ -1353,6 +1418,8 @@ class BookmarkBridge { BookmarkId getRootFolderId(long nativeBookmarkBridge); @@ -219,7 +220,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 -@@ -356,6 +356,33 @@ void BookmarkBridge::GetImageUrlForBookmark( +@@ -367,6 +367,33 @@ void BookmarkBridge::GetImageUrlForBookmark( base::BindOnce(&HandleImageUrlResponse, callback)); } @@ -253,7 +254,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse base::android::ScopedJavaLocalRef BookmarkBridge::GetMostRecentlyAddedUserBookmarkIdForUrl( JNIEnv* env, -@@ -464,6 +491,7 @@ void BookmarkBridge::GetAllFoldersWithDepths( +@@ -482,6 +509,7 @@ void BookmarkBridge::GetAllFoldersWithDepths( // Vector to temporarily contain all child bookmarks at same level for sorting std::vector bookmarks = { bookmark_model_->mobile_node(), @@ -261,7 +262,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse bookmark_model_->bookmark_bar_node(), bookmark_model_->other_node(), }; -@@ -521,6 +549,11 @@ std::vector BookmarkBridge::GetTopLevelFolderIdsImpl( +@@ -539,6 +567,11 @@ std::vector BookmarkBridge::GetTopLevelFolderIdsImpl( top_level_folders.push_back(root_child.get()); } @@ -273,7 +274,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse if (account_reading_list_manager_ && account_reading_list_manager_->GetRoot()) { top_level_folders.push_back(account_reading_list_manager_->GetRoot()); -@@ -1147,6 +1180,17 @@ void BookmarkBridge::GetBookmarksOfType( +@@ -1176,6 +1209,17 @@ void BookmarkBridge::GetBookmarksOfType( AddBookmarkNodesToBookmarkIdList(env, j_list, results); } @@ -319,7 +320,17 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/bookmarks/bookmark_html_writer.cc --- a/chrome/browser/bookmarks/bookmark_html_writer.cc +++ b/chrome/browser/bookmarks/bookmark_html_writer.cc -@@ -190,15 +190,19 @@ class Writer : public base::RefCountedThreadSafe { +@@ -168,7 +168,8 @@ class Writer : public base::RefCountedThreadSafe { + BookmarkCodec codec; + bookmarks_ = + codec.Encode(model->bookmark_bar_node(), model->other_node(), +- model->mobile_node(), /*sync_metadata_str=*/std::string()); ++ model->mobile_node(), model->tabs_collection_node(), ++ /*sync_metadata_str=*/std::string()); + } + + Writer(const Writer&) = delete; +@@ -195,15 +196,19 @@ class Writer : public base::RefCountedThreadSafe { roots->FindDict(BookmarkCodec::kOtherBookmarkFolderNameKey); base::Value::Dict* mobile_folder_value = roots->FindDict(BookmarkCodec::kMobileBookmarkFolderNameKey); @@ -340,7 +351,7 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b NotifyOnFinish(BookmarksExportObserver::Result::kCouldNotWriteNodes); return; } -@@ -465,6 +469,8 @@ void BookmarkFaviconFetcher::ExportBookmarks() { +@@ -467,6 +472,8 @@ void BookmarkFaviconFetcher::ExportBookmarks() { BookmarkModelFactory::GetForBrowserContext(profile_)->other_node()); ExtractUrls( BookmarkModelFactory::GetForBrowserContext(profile_)->mobile_node()); @@ -352,7 +363,7 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java --- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java +++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java -@@ -77,7 +77,7 @@ public class DownloadLocationCustomView extends ScrollView +@@ -85,7 +85,7 @@ public class DownloadLocationCustomView extends ScrollView mDirectoryAdapter.update(); } @@ -361,7 +372,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse mTitle.setText(title); } -@@ -85,7 +85,7 @@ public class DownloadLocationCustomView extends ScrollView +@@ -93,7 +93,7 @@ public class DownloadLocationCustomView extends ScrollView mSubtitleView.setText(subtitle); } @@ -373,7 +384,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 -@@ -3806,6 +3806,9 @@ To change this setting, <resetlink>reset sync

BEGIN_LINKclear the Chrome da Select tabs @@ -409,7 +420,7 @@ diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_stri 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 -@@ -36,6 +36,7 @@ const char BookmarkCodec::kBookmarkBarFolderNameKey[] = "bookmark_bar"; +@@ -35,6 +35,7 @@ const char BookmarkCodec::kBookmarkBarFolderNameKey[] = "bookmark_bar"; const char BookmarkCodec::kOtherBookmarkFolderNameKey[] = "other"; // The value is left as 'synced' for historical reasons. const char BookmarkCodec::kMobileBookmarkFolderNameKey[] = "synced"; @@ -417,41 +428,32 @@ 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"; -@@ -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(), -- model->mobile_node(), model->root_node()->GetMetaInfoMap(), -+ model->mobile_node(), model->tabs_collection_node(), -+ model->root_node()->GetMetaInfoMap(), - std::move(sync_metadata_str)); - } - -@@ -80,6 +82,7 @@ base::Value::Dict BookmarkCodec::Encode( +@@ -72,6 +73,7 @@ base::Value::Dict BookmarkCodec::Encode( const BookmarkNode* bookmark_bar_node, const BookmarkNode* other_folder_node, const BookmarkNode* mobile_folder_node, + const BookmarkNode* tabs_folder_node, - const BookmarkNode::MetaInfoMap* model_meta_info_map, std::string sync_metadata_str) { ids_reassigned_ = false; -@@ -100,6 +103,7 @@ base::Value::Dict BookmarkCodec::Encode( + uuids_reassigned_ = false; +@@ -91,6 +93,8 @@ 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)); -+ roots.Set(kTabsBookmarkFolderNameKey, EncodeNode(tabs_folder_node)); - if (model_meta_info_map) - roots.Set(kMetaInfo, EncodeMetaInfo(*model_meta_info_map)); ++ if (tabs_folder_node) ++ roots.Set(kTabsBookmarkFolderNameKey, EncodeNode(tabs_folder_node)); -@@ -117,6 +121,7 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, + FinalizeChecksum(); + // We are going to store the computed checksum. So set stored checksum to be +@@ -107,6 +111,7 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, BookmarkNode* bb_node, BookmarkNode* other_folder_node, BookmarkNode* mobile_folder_node, + BookmarkNode* tabs_folder_node, int64_t* max_id, std::string* sync_metadata_str) { - ids_.clear(); -@@ -124,7 +129,8 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, + const int64_t max_already_assigned_id = +@@ -117,7 +122,8 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, base::Uuid::ParseLowercase(kBookmarkBarNodeUuid), base::Uuid::ParseLowercase(kOtherBookmarksNodeUuid), base::Uuid::ParseLowercase(kMobileBookmarksNodeUuid), @@ -461,7 +463,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar ids_reassigned_ = false; uuids_reassigned_ = false; ids_valid_ = true; -@@ -132,12 +138,13 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, +@@ -125,13 +131,14 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, stored_checksum_.clear(); InitializeChecksum(); bool success = DecodeHelper(bb_node, other_folder_node, mobile_folder_node, @@ -470,12 +472,13 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar FinalizeChecksum(); // If either the checksums differ or some IDs were missing/not unique, // reassign IDs. - if (!ids_valid_ || computed_checksum() != stored_checksum()) + if (!ids_valid_ || computed_checksum_ != stored_checksum_) { + maximum_id_ = max_already_assigned_id; - ReassignIDs(bb_node, other_folder_node, mobile_folder_node); + ReassignIDs(bb_node, other_folder_node, mobile_folder_node, tabs_folder_node); + } *max_id = maximum_id_ + 1; return success; - } @@ -189,6 +196,7 @@ base::Value::Dict BookmarkCodec::EncodeMetaInfo( bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, BookmarkNode* other_folder_node, @@ -483,7 +486,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar + BookmarkNode* tabs_folder_node, const base::Value::Dict& value, std::string* sync_metadata_str) { - absl::optional version = value.FindInt(kVersionKey); + std::optional version = value.FindInt(kVersionKey); @@ -213,6 +221,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, roots->FindDict(kOtherBookmarkFolderNameKey); const base::Value::Dict* mobile_folder_value = @@ -500,16 +503,16 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar + if (tabs_folder_value) + DecodeNode(*tabs_folder_value, nullptr, tabs_folder_node); - if (!DecodeMetaInfo(*roots, &model_meta_info_map_)) - return false; -@@ -461,11 +473,13 @@ void BookmarkCodec::DecodeMetaInfoHelper( + if (sync_metadata_str) { + const std::string* sync_metadata_str_base64 = +@@ -459,11 +471,13 @@ void BookmarkCodec::DecodeMetaInfoHelper( void BookmarkCodec::ReassignIDs(BookmarkNode* bb_node, BookmarkNode* other_node, - BookmarkNode* mobile_node) { + BookmarkNode* mobile_node, + BookmarkNode* tabs_folder_node) { - maximum_id_ = 0; + ids_.clear(); ReassignIDsHelper(bb_node); ReassignIDsHelper(other_node); ReassignIDsHelper(mobile_node); @@ -520,15 +523,15 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmarks/browser/bookmark_codec.h --- a/components/bookmarks/browser/bookmark_codec.h +++ b/components/bookmarks/browser/bookmark_codec.h -@@ -46,6 +46,7 @@ class BookmarkCodec { +@@ -39,6 +39,7 @@ class BookmarkCodec { const BookmarkNode* bookmark_bar_node, const BookmarkNode* other_folder_node, const BookmarkNode* mobile_folder_node, + const BookmarkNode* tabs_folder_node, - const BookmarkNode::MetaInfoMap* model_meta_info_map, std::string sync_metadata_str); -@@ -58,6 +59,7 @@ class BookmarkCodec { + // Decodes the previously encoded value to the specified nodes as well as +@@ -57,6 +58,7 @@ class BookmarkCodec { BookmarkNode* bb_node, BookmarkNode* other_folder_node, BookmarkNode* mobile_folder_node, @@ -536,15 +539,15 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark int64_t* max_node_id, std::string* sync_metadata_str); -@@ -103,6 +105,7 @@ class BookmarkCodec { - // Allows the BookmarkClient to read and a write a string blob from the JSON - // file. That string captures the bookmarks sync metadata. - static const char kSyncMetadata[]; +@@ -82,6 +84,7 @@ class BookmarkCodec { + static const char kBookmarkBarFolderNameKey[]; + static const char kOtherBookmarkFolderNameKey[]; + static const char kMobileBookmarkFolderNameKey[]; + static const char kTabsBookmarkFolderNameKey[]; - static const char kDateLastUsed[]; - - // Possible values for kTypeKey. -@@ -121,6 +124,7 @@ class BookmarkCodec { + static const char kVersionKey[]; + static const char kChecksumKey[]; + static const char kIdKey[]; +@@ -114,6 +117,7 @@ class BookmarkCodec { bool DecodeHelper(BookmarkNode* bb_node, BookmarkNode* other_folder_node, BookmarkNode* mobile_folder_node, @@ -552,7 +555,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark const base::Value::Dict& value, std::string* sync_metadata_str); -@@ -132,7 +136,8 @@ class BookmarkCodec { +@@ -124,7 +128,8 @@ class BookmarkCodec { // Reassigns bookmark IDs for all nodes. void ReassignIDs(BookmarkNode* bb_node, BookmarkNode* other_node, @@ -565,39 +568,58 @@ 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 -@@ -31,6 +31,8 @@ BookmarkLoadDetails::BookmarkLoadDetails(BookmarkClient* client) - root_node_->Add(BookmarkPermanentNode::CreateOtherBookmarks(max_id_++))); +@@ -15,7 +15,7 @@ namespace { + + // Number of top-level permanent folders excluding the managed node and account + // bookmarks. +-constexpr size_t kNumDefaultTopLevelPermanentFolders = 3u; ++constexpr size_t kNumDefaultTopLevelPermanentFolders = 4u; + + } // namespace + +@@ -40,6 +40,8 @@ BookmarkLoadDetails::BookmarkLoadDetails() + root_node_->Add(BookmarkPermanentNode::CreateOtherBookmarks(/*id=*/0))); mobile_folder_node_ = static_cast( - root_node_->Add(BookmarkPermanentNode::CreateMobileBookmarks(max_id_++))); + root_node_->Add(BookmarkPermanentNode::CreateMobileBookmarks(/*id=*/0))); + tabs_collection_folder_node_ = static_cast( -+ root_node_->Add(BookmarkPermanentNode::CreateTabsCollectionBookmarks(max_id_++))); - } ++ root_node_->Add(BookmarkPermanentNode::CreateTabsCollectionBookmarks(/*id=*/0))); - BookmarkLoadDetails::~BookmarkLoadDetails() = default; + CHECK_EQ(kNumDefaultTopLevelPermanentFolders, root_node_->children().size()); + } +@@ -105,8 +107,8 @@ void BookmarkLoadDetails::AddManagedNode( + + void BookmarkLoadDetails::CreateIndices() { + local_or_syncable_uuid_index_.insert(root_node_.get()); +- static_assert(kNumDefaultTopLevelPermanentFolders == 3u, +- "The code below assumes three permanent nodes"); ++ static_assert(kNumDefaultTopLevelPermanentFolders == 4u, ++ "The code below assumes 4 permanent nodes"); + for (const auto& child : root_node_->children()) { + if (child.get() == account_bb_node_ || + child.get() == account_other_folder_node_ || diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/bookmarks/browser/bookmark_load_details.h --- a/components/bookmarks/browser/bookmark_load_details.h +++ b/components/bookmarks/browser/bookmark_load_details.h -@@ -47,6 +47,7 @@ class BookmarkLoadDetails { +@@ -39,6 +39,7 @@ class BookmarkLoadDetails { BookmarkPermanentNode* bb_node() { return bb_node_; } BookmarkPermanentNode* mobile_folder_node() { return mobile_folder_node_; } BookmarkPermanentNode* other_folder_node() { return other_folder_node_; } + BookmarkPermanentNode* tabs_collection_folder_node() { return tabs_collection_folder_node_; } - std::unique_ptr owned_titled_url_index() { - return std::move(titled_url_index_); -@@ -112,6 +113,8 @@ class BookmarkLoadDetails { - nullptr; - raw_ptr mobile_folder_node_ = - nullptr; -+ raw_ptr tabs_collection_folder_node_ = -+ nullptr; - LoadManagedNodeCallback load_managed_node_callback_; - std::unique_ptr titled_url_index_; - UuidIndex uuid_index_; + // Account permanent nodes (null unless `AddAccountPermanentNodes()` is + // called). +@@ -138,6 +139,7 @@ class BookmarkLoadDetails { + raw_ptr bb_node_; + raw_ptr other_folder_node_; + raw_ptr mobile_folder_node_; ++ raw_ptr tabs_collection_folder_node_; + raw_ptr account_bb_node_; + raw_ptr account_other_folder_node_; + raw_ptr account_mobile_folder_node_; 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 -@@ -838,7 +838,7 @@ bool BookmarkModel::HasBookmarks() const { +@@ -846,7 +846,7 @@ bool BookmarkModel::HasBookmarks() const { bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return bookmark_bar_node_->children().empty() && @@ -606,18 +628,18 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar } bool BookmarkModel::IsBookmarked(const GURL& url) const { -@@ -1149,6 +1149,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr details) { +@@ -1191,6 +1191,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr 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/1520418): Load nodes for account storage as well and load - // UUIDs onto `uuid_index_`. + account_bookmark_bar_node_ = details->account_bb_node(); + account_other_node_ = details->account_other_folder_node(); 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 -@@ -160,6 +160,12 @@ class BookmarkModel final : public BookmarkUndoProvider, +@@ -159,6 +159,12 @@ class BookmarkModel final : public BookmarkUndoProvider, // bookmarks in the account storage). const BookmarkNode* account_mobile_node() const; @@ -630,7 +652,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_; -@@ -585,6 +591,7 @@ class BookmarkModel final : public BookmarkUndoProvider, +@@ -619,6 +625,7 @@ class BookmarkModel final : public BookmarkUndoProvider, raw_ptr account_bookmark_bar_node_ = nullptr; raw_ptr account_other_node_ = nullptr; raw_ptr account_mobile_node_ = nullptr; @@ -677,15 +699,34 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks MOBILE }; -@@ -247,6 +248,8 @@ class BookmarkPermanentNode : public BookmarkNode { +@@ -231,6 +232,8 @@ class BookmarkPermanentNode : public BookmarkNode { int64_t id); static std::unique_ptr CreateMobileBookmarks( int64_t id); + static std::unique_ptr CreateTabsCollectionBookmarks( + int64_t id); - // Constructor is private to disallow the construction of permanent nodes - // other than the well-known ones, see factory methods. + // Returns whether the permanent node of type `type` should be visible even + // when it is empty (i.e. no children). +diff --git a/components/bookmarks/browser/bookmark_storage.cc b/components/bookmarks/browser/bookmark_storage.cc +--- a/components/bookmarks/browser/bookmark_storage.cc ++++ b/components/bookmarks/browser/bookmark_storage.cc +@@ -45,6 +45,7 @@ base::Value::Dict EncodeModelToDict( + case BookmarkStorage::kSelectLocalOrSyncableNodes: + return codec.Encode( + model->bookmark_bar_node(), model->other_node(), model->mobile_node(), ++ model->tabs_collection_node(), + model->client()->EncodeLocalOrSyncableBookmarkSyncMetadata()); + case BookmarkStorage::kSelectAccountNodes: + if (!model->account_bookmark_bar_node()) { +@@ -59,6 +60,7 @@ base::Value::Dict EncodeModelToDict( + return codec.Encode(model->account_bookmark_bar_node(), + model->account_other_node(), + model->account_mobile_node(), ++ nullptr, + model->client()->EncodeAccountBookmarkSyncMetadata()); + } + diff --git a/components/bookmarks/browser/bookmark_uuids.cc b/components/bookmarks/browser/bookmark_uuids.cc --- a/components/bookmarks/browser/bookmark_uuids.cc +++ b/components/bookmarks/browser/bookmark_uuids.cc @@ -713,16 +754,35 @@ diff --git a/components/bookmarks/browser/bookmark_uuids.h b/components/bookmark diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks/browser/model_loader.cc --- a/components/bookmarks/browser/model_loader.cc +++ b/components/bookmarks/browser/model_loader.cc -@@ -45,7 +45,8 @@ void LoadBookmarks(const base::FilePath& path, - std::string sync_metadata_str; - BookmarkCodec codec; - codec.Decode(*root_dict, details->bb_node(), details->other_folder_node(), -- details->mobile_folder_node(), &max_node_id, -+ details->mobile_folder_node(), -+ details->tabs_collection_folder_node(), &max_node_id, - &sync_metadata_str); - details->set_sync_metadata_str(std::move(sync_metadata_str)); - details->set_max_id(std::max(max_node_id, details->max_id())); +@@ -71,6 +71,8 @@ std::unique_ptr LoadBookmarks( + BookmarkPermanentNode::CreateOtherBookmarks(0); + std::unique_ptr account_mobile_folder_node = + BookmarkPermanentNode::CreateMobileBookmarks(0); ++ std::unique_ptr tabs_collection_folder_node = ++ BookmarkPermanentNode::CreateTabsCollectionBookmarks(0); + + std::optional root_dict = + LoadFileToDict(account_file_path); +@@ -78,7 +80,8 @@ std::unique_ptr LoadBookmarks( + if (root_dict.has_value() && + codec.Decode(*root_dict, /*already_assigned_ids=*/{}, + account_bb_node.get(), account_other_folder_node.get(), +- account_mobile_folder_node.get(), &max_node_id, ++ account_mobile_folder_node.get(), ++ tabs_collection_folder_node.get(), &max_node_id, + &sync_metadata_str)) { + ids_assigned_to_account_nodes = codec.release_assigned_ids(); + +@@ -110,7 +113,8 @@ std::unique_ptr LoadBookmarks( + if (root_dict.has_value() && + codec.Decode(*root_dict, std::move(ids_assigned_to_account_nodes), + details->bb_node(), details->other_folder_node(), +- details->mobile_folder_node(), &max_node_id, ++ details->mobile_folder_node(), ++ details->tabs_collection_folder_node(), &max_node_id, + &sync_metadata_str)) { + details->set_local_or_syncable_sync_metadata_str( + std::move(sync_metadata_str)); diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/components/sync_bookmarks/bookmark_specifics_conversions.cc --- a/components/sync_bookmarks/bookmark_specifics_conversions.cc +++ b/components/sync_bookmarks/bookmark_specifics_conversions.cc diff --git a/build/patches/Add-menu-item-to-view-source.patch b/build/patches/Add-menu-item-to-view-source.patch index 95fa03e74..ccc2db86a 100644 --- a/build/patches/Add-menu-item-to-view-source.patch +++ b/build/patches/Add-menu-item-to-view-source.patch @@ -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 -@@ -59,6 +59,9 @@ found in the LICENSE file. +@@ -62,6 +62,9 @@ found in the LICENSE file. @@ -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 -@@ -2960,6 +2960,8 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -2729,6 +2729,11 @@ public abstract class ChromeActivity 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 -@@ -580,6 +580,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -585,6 +585,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); -@@ -1189,6 +1190,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -1236,6 +1237,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 -@@ -276,6 +276,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -295,6 +295,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat updateRequestDesktopSiteMenuItem( menu, currentTab, requestDesktopSiteVisible, isChromeScheme); diff --git a/build/patches/Add-option-to-disable-snapshots.patch b/build/patches/Add-option-to-disable-snapshots.patch index b79a0e2d8..4dc4b0f59 100644 --- a/build/patches/Add-option-to-disable-snapshots.patch +++ b/build/patches/Add-option-to-disable-snapshots.patch @@ -16,7 +16,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java -@@ -323,9 +323,12 @@ class TabGridViewBinder { +@@ -327,9 +327,12 @@ class TabGridViewBinder { // Adjust bitmap to thumbnail. TabUtils.setBitmapAndUpdateImageMatrix(thumbnail, result, thumbnailSize); } else if (isMostRecentRequest) { @@ -32,7 +32,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } }; if (sThumbnailFetcherForTesting != null) { -@@ -364,6 +367,7 @@ class TabGridViewBinder { +@@ -368,6 +371,7 @@ class TabGridViewBinder { ViewLookupCachingFrameLayout rootView, PropertyModel model, TabListFaviconProvider.TabFavicon favicon) { @@ -53,15 +53,15 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** Property for lazily fetching favicons when required by an item in a UI. */ public static final WritableObjectPropertyKey FAVICON_FETCHER = new WritableObjectPropertyKey<>(); -@@ -157,6 +160,7 @@ public class TabProperties { +@@ -160,6 +163,7 @@ public class TabProperties { CARD_TYPE, CONTENT_DESCRIPTION_STRING, CLOSE_BUTTON_DESCRIPTION_STRING, + FAVICON, SHOPPING_PERSISTED_TAB_DATA_FETCHER, - SHOULD_SHOW_PRICE_DROP_TOOLTIP - }; -@@ -168,6 +172,7 @@ public class TabProperties { + SHOULD_SHOW_PRICE_DROP_TOOLTIP, + QUICK_DELETE_ANIMATION_STATUS +@@ -172,6 +176,7 @@ public class TabProperties { TAB_CLOSED_LISTENER, FAVICON_FETCHED, FAVICON_FETCHER, @@ -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 -@@ -144,6 +144,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; +@@ -145,6 +145,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; -@@ -743,7 +744,7 @@ public abstract class ChromeActivity +@@ -704,7 +705,7 @@ public abstract class ChromeActivity new TabContentManager( this, mBrowserControlsManagerSupplier.get(), @@ -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 -@@ -5290,6 +5290,14 @@ To change this setting, <resetlink>reset sync

BEGIN_LINKclear the Chrome da Your %1$swww.amazon.com timer ran out. It'll start again tomorrow. diff --git a/build/patches/Add-option-to-force-tablet-UI.patch b/build/patches/Add-option-to-force-tablet-UI.patch index b1dab30ae..d53407aa7 100644 --- a/build/patches/Add-option-to-force-tablet-UI.patch +++ b/build/patches/Add-option-to-force-tablet-UI.patch @@ -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 -@@ -975,7 +975,9 @@ public final class ReturnToChromeUtil { +@@ -979,7 +979,9 @@ public final class ReturnToChromeUtil { public static boolean isScrollableMvtEnabled(Context context) { boolean isSurfacePolishEnabled = ChromeFeatureList.sSurfacePolish.isEnabled(); @@ -66,15 +66,15 @@ 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 -@@ -100,6 +100,7 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; +@@ -98,6 +98,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; +import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.price_tracking.PriceTrackingButtonController; import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.quick_delete.QuickDeleteController; -@@ -1634,7 +1635,9 @@ public class RootUiCoordinator + import org.chromium.chrome.browser.profiles.ProfileManager; +@@ -1595,7 +1596,9 @@ public class RootUiCoordinator if (!mSupportsFindInPageSupplier.getAsBoolean()) return; int stubId = R.id.find_toolbar_stub; @@ -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 -@@ -294,6 +294,7 @@ public final class ChromePreferenceKeys { +@@ -270,6 +270,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 -@@ -760,7 +760,7 @@ public class LocationBarCoordinator +@@ -771,7 +771,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 -@@ -1558,6 +1558,13 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1564,6 +1564,13 @@ Your Google account may have other forms of browsing history like searches and a Manage third-party cookies and tracking protections @@ -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 -@@ -829,7 +829,7 @@ test("components_unittests") { +@@ -831,7 +831,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_ } -@@ -1120,7 +1120,7 @@ if (use_blink) { +@@ -1113,7 +1113,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. diff --git a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch index a88246da9..961e31e66 100644 --- a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch +++ b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -40,6 +40,7 @@ import org.chromium.base.BuildInfo; +@@ -41,6 +41,7 @@ import org.chromium.base.BuildInfo; import org.chromium.base.Callback; import org.chromium.base.CallbackController; import org.chromium.base.CommandLine; @@ -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; -@@ -1582,8 +1583,10 @@ public class ChromeTabbedActivity extends ChromeActivity<resetlink>reset sync

BEGIN_LINKclear the Chrome da IMAGE diff --git a/build/patches/Add-option-to-use-home-page-as-NTP.patch b/build/patches/Add-option-to-use-home-page-as-NTP.patch index 06cc33e8a..052f298b0 100644 --- a/build/patches/Add-option-to-use-home-page-as-NTP.patch +++ b/build/patches/Add-option-to-use-home-page-as-NTP.patch @@ -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; -@@ -634,11 +636,16 @@ public class TabGridDialogMediator +@@ -636,11 +638,16 @@ public class TabGridDialogMediator assert relatedTabs.size() > 0; @@ -68,7 +68,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import org.chromium.chrome.browser.layouts.LayoutStateProvider; import org.chromium.chrome.browser.layouts.LayoutStateProvider.LayoutStateObserver; import org.chromium.chrome.browser.layouts.LayoutType; -@@ -371,10 +372,15 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -375,10 +376,15 @@ public class TabGroupUiMediator implements BackPressHandler { assert relatedTabs.size() > 0; parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1); @@ -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 -@@ -307,6 +307,7 @@ public final class ChromePreferenceKeys { +@@ -283,6 +283,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 -@@ -1331,6 +1331,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1337,6 +1337,9 @@ Your Google account may have other forms of browsing history like searches and a Last hour @@ -236,7 +236,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -70,6 +70,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -73,6 +73,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { GetHomeButtonAndHomePageIsNewTabPageFlags()); registry->RegisterBooleanPref(prefs::kShowHomeButton, false, GetHomeButtonAndHomePageIsNewTabPageFlags()); @@ -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 -@@ -1304,6 +1304,10 @@ inline constexpr char kUsedPolicyCertificates[] = +@@ -1285,6 +1285,10 @@ inline constexpr char kUsedPolicyCertificates[] = // visible on the toolbar. inline constexpr char kShowHomeButton[] = "browser.show_home_button"; diff --git a/build/patches/Add-search-engine.patch b/build/patches/Add-search-engine.patch index 328f61fcb..456a50f31 100644 --- a/build/patches/Add-search-engine.patch +++ b/build/patches/Add-search-engine.patch @@ -9,9 +9,9 @@ Add DuckDuckGo Lite License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- .../search_engines/prepopulated_engines.json | 31 +++++++++++++++++++ - .../search_engines/search_engine_type.h | 2 ++ + .../search_engines/search_engine_type.h | 5 +++ .../template_url_prepopulate_data.cc | 3 ++ - 3 files changed, 36 insertions(+) + 3 files changed, 39 insertions(+) diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json --- a/components/search_engines/prepopulated_engines.json @@ -33,7 +33,7 @@ diff --git a/components/search_engines/prepopulated_engines.json b/components/se "ecosia": { "name": "Ecosia", "keyword": "ecosia.org", -@@ -172,6 +182,27 @@ +@@ -171,6 +181,27 @@ "id": 111 }, @@ -64,15 +64,22 @@ 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 -@@ -89,6 +89,8 @@ enum SearchEngineType { - SEARCH_ENGINE_BRAVE = 70, +@@ -90,10 +90,15 @@ enum SearchEngineType { SEARCH_ENGINE_KARMA = 71, SEARCH_ENGINE_YOU = 72, -+ SEARCH_ENGINE_GOOGLE_EN = 73, -+ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 74, + SEARCH_ENGINE_STARTER_PACK_ASK_GOOGLE = 73, ++ SEARCH_ENGINE_GOOGLE_EN = 74, ++ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 75, SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro. }; + ++static_assert(SEARCH_ENGINE_DUCKDUCKGOLIGHT == (SEARCH_ENGINE_MAX - 1), ++ "Please check this patch"); ++ + // Enum to record the type of search engine a user used in keyword mode. This + // should be kept aligned with the `OmniboxBuiltinEngineType` enum in enums.xml. + // Entries should not be renumbered and numeric values should never be reused. diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc --- a/components/search_engines/template_url_prepopulate_data.cc +++ b/components/search_engines/template_url_prepopulate_data.cc diff --git a/build/patches/Add-setting-to-clear-data-on-exit.patch b/build/patches/Add-setting-to-clear-data-on-exit.patch index 5d59a6bf8..dd97b3939 100644 --- a/build/patches/Add-setting-to-clear-data-on-exit.patch +++ b/build/patches/Add-setting-to-clear-data-on-exit.patch @@ -35,7 +35,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html 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 -@@ -305,6 +305,7 @@ chrome_java_sources = [ +@@ -307,6 +307,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,15 +46,15 @@ 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 -@@ -164,6 +164,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; +@@ -169,6 +169,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; +import org.chromium.chrome.browser.profiles.ProfileManagerUtils; import org.chromium.chrome.browser.read_later.ReadingListBackPressHandler; - import org.chromium.chrome.browser.read_later.ReadingListUtils; import org.chromium.chrome.browser.reengagement.ReengagementNotificationController; -@@ -1582,7 +1583,11 @@ public class ChromeTabbedActivity extends ChromeActivity Clear browsing data @@ -230,14 +230,14 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chrome/browser/android/browsing_data/browsing_data_bridge.cc --- a/chrome/browser/android/browsing_data/browsing_data_bridge.cc +++ b/chrome/browser/android/browsing_data/browsing_data_bridge.cc -@@ -326,7 +326,7 @@ static void JNI_BrowsingDataBridge_SetLastClearBrowsingDataTab( - const JavaParamRef& obj, +@@ -331,7 +331,7 @@ static void JNI_BrowsingDataBridge_SetLastClearBrowsingDataTab( + const JavaParamRef& jprofile, jint tab_index) { DCHECK_GE(tab_index, 0); - DCHECK_LT(tab_index, 2); + DCHECK_LT(tab_index, 3); - GetPrefService()->SetInteger(browsing_data::prefs::kLastClearBrowsingDataTab, - tab_index); + GetPrefService(jprofile)->SetInteger( + browsing_data::prefs::kLastClearBrowsingDataTab, tab_index); } diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc --- a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc @@ -281,8 +281,8 @@ 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 -@@ -434,6 +434,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( - delete_end_, CreateTaskCompletionClosure(TracingDataType::kHistory), +@@ -436,6 +436,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( + CreateTaskCompletionClosure(TracingDataType::kHistory), &history_task_tracker_); } + } @@ -291,7 +291,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. if (ClipboardRecentContent::GetInstance()) ClipboardRecentContent::GetInstance()->SuppressClipboardContent(); -@@ -484,7 +487,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -486,7 +489,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. -@@ -505,7 +510,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -507,7 +512,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( -@@ -580,9 +587,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -582,9 +589,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 -@@ -502,6 +502,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -513,6 +513,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 -@@ -1496,6 +1496,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, +@@ -1488,6 +1488,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, } } @@ -406,7 +406,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile void ProfileManager::DoFinalInitForServices(Profile* profile, bool go_off_the_record) { if (!do_final_services_init_ || -@@ -2171,7 +2184,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { +@@ -2155,7 +2168,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { Profile* original_profile = profile->GetOriginalProfile(); // Do nothing if the closed window is not the last window of the same profile. for (Browser* browser_iter : *BrowserList::GetInstance()) { @@ -430,7 +430,7 @@ diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html --- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html +++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html -@@ -306,6 +306,50 @@ +@@ -305,6 +305,50 @@ disabled="[[clearingInProgress_]]" no-set-pref> @@ -484,7 +484,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts --- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts +++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts -@@ -297,6 +297,7 @@ export class SettingsClearBrowsingDataDialogElement extends +@@ -302,6 +302,7 @@ export class SettingsClearBrowsingDataDialogElement extends value: () => [loadTimeData.getString('basicPageTitle'), loadTimeData.getString('advancedPageTitle'), @@ -492,7 +492,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_ ], }, -@@ -417,6 +418,7 @@ export class SettingsClearBrowsingDataDialogElement extends +@@ -425,6 +426,7 @@ export class SettingsClearBrowsingDataDialogElement extends } this.clearButtonDisabled_ = this.getSelectedDataTypes_(tab as HTMLElement).length === 0; @@ -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 -@@ -1426,6 +1426,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1432,6 +1432,9 @@ Your Google account may have other forms of browsing history like searches and a Basic @@ -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 -@@ -1661,6 +1661,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -1674,6 +1674,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"clearedData", IDS_SETTINGS_CLEARED_DATA}, {"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA}, {"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION}, @@ -686,7 +686,7 @@ diff --git a/components/browsing_data/core/pref_names.h b/components/browsing_da diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc --- a/content/browser/storage_partition_impl.cc +++ b/content/browser/storage_partition_impl.cc -@@ -1553,6 +1553,7 @@ void StoragePartitionImpl::Initialize( +@@ -1488,6 +1488,7 @@ void StoragePartitionImpl::Initialize( .AppendASCII("Code Cache"); } DCHECK_GE(settings.size_in_bytes(), 0); diff --git a/build/patches/Add-setting-to-invert-tap-and-long-tap.patch b/build/patches/Add-setting-to-invert-tap-and-long-tap.patch index b76cbec6a..9f7757ca1 100644 --- a/build/patches/Add-setting-to-invert-tap-and-long-tap.patch +++ b/build/patches/Add-setting-to-invert-tap-and-long-tap.patch @@ -128,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java -@@ -266,6 +266,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -273,6 +273,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { mTab.loadUrl(loadUrlParams); } @@ -158,7 +158,7 @@ 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 -@@ -288,6 +288,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -280,6 +280,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kTabGroupParityAndroid, &kTabletTabSwitcherLongPressMenu, &kTabletToolbarIncognitoStatus, @@ -169,8 +169,8 @@ 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 -@@ -338,6 +338,8 @@ public abstract class ChromeFeatureList { - public static final String NEW_TAB_SEARCH_ENGINE_URL_ANDROID = "NewTabSearchEngineUrlAndroid"; +@@ -342,6 +342,8 @@ public abstract class ChromeFeatureList { + public static final String NOTIFICATION_ONE_TAP_UNSUBSCRIBE = "NotificationOneTapUnsubscribe"; public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM = "MoveTopToolbarToBottom"; + public static final String SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS = @@ -178,7 +178,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET = "NotificationPermissionBottomSheet"; -@@ -606,6 +608,8 @@ public abstract class ChromeFeatureList { +@@ -619,6 +621,8 @@ public abstract class ChromeFeatureList { newCachedFlag(OMNIBOX_MATCH_TOOLBAR_AND_STATUS_BAR_COLOR, false); public static final CachedFlag sMoveTopToolbarToBottom = newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false); @@ -187,7 +187,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sOmniboxModernizeVisualUpdate = newCachedFlag(OMNIBOX_MODERNIZE_VISUAL_UPDATE, true); public static final CachedFlag sOptimizationGuidePushNotifications = -@@ -741,6 +745,7 @@ public abstract class ChromeFeatureList { +@@ -771,6 +775,7 @@ public abstract class ChromeFeatureList { sTabWindowManagerReportIndicesMismatch, sToolbarUseHardwareBitmapDraw, sUseChimeAndroidSdk, @@ -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 -@@ -1632,6 +1632,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1638,6 +1638,12 @@ Your Google account may have other forms of browsing history like searches and a Move toolbar to bottom @@ -211,7 +211,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -2701,6 +2707,9 @@ To change this setting, <resetlink>reset sync

BEGIN_LINKclear the Chrome da Open in new Chrome tab @@ -371,7 +371,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third event.SetDefaultHandled(); LocalDOMWindow* window = GetDocument().domWindow(); -@@ -659,13 +680,12 @@ void HTMLAnchorElement::HandleClick(Event& event) { +@@ -656,13 +677,12 @@ void HTMLAnchorElement::HandleClick(Event& event) { return; } @@ -389,7 +389,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third // We distinguish single/double click with some modifiers. // See the comment of `EventHandler.delayed_navigation_task_handle_`. auto task_handle = PostDelayedCancellableTask( -@@ -675,7 +695,9 @@ void HTMLAnchorElement::HandleClick(Event& event) { +@@ -672,7 +692,9 @@ void HTMLAnchorElement::HandleClick(Event& event) { frame->GetEventHandler().SetDelayedNavigationTaskHandle( std::move(task_handle)); } else { @@ -433,7 +433,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.h b/third_ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_party/blink/renderer/core/html/html_image_element.cc --- a/third_party/blink/renderer/core/html/html_image_element.cc +++ b/third_party/blink/renderer/core/html/html_image_element.cc -@@ -36,6 +36,7 @@ +@@ -37,6 +37,7 @@ #include "third_party/blink/renderer/core/dom/events/event_dispatch_forbidden_scope.h" #include "third_party/blink/renderer/core/dom/node_traversal.h" #include "third_party/blink/renderer/core/dom/shadow_root.h" @@ -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" -@@ -64,6 +65,7 @@ +@@ -65,6 +66,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" -@@ -802,6 +804,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate( +@@ -803,6 +805,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate( } } @@ -486,7 +486,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.h b/third_p diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/third_party/blink/renderer/core/page/context_menu_controller.cc --- a/third_party/blink/renderer/core/page/context_menu_controller.cc +++ b/third_party/blink/renderer/core/page/context_menu_controller.cc -@@ -234,14 +234,16 @@ void ContextMenuController::DocumentDetached(Document* document) { +@@ -225,14 +225,16 @@ void ContextMenuController::DocumentDetached(Document* document) { } } @@ -506,7 +506,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t mouse_event->SetDefaultHandled(); } -@@ -459,7 +461,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch( +@@ -450,7 +452,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch( bool ContextMenuController::ShowContextMenu(LocalFrame* frame, const PhysicalOffset& point, WebMenuSourceType source_type, @@ -516,7 +516,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t // Displaying the context menu in this function is a big hack as we don't // have context, i.e. whether this is being invoked via a script or in // response to user input (Mouse event WM_RBUTTONDOWN, -@@ -482,6 +485,15 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, +@@ -473,6 +476,15 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, if (!result.InnerNodeOrImageMapImage()) return false; @@ -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; -@@ -840,11 +852,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, +@@ -831,11 +843,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, SetAutofillData(result.InnerNode(), data); SetPasswordManagerData(result.InnerElement(), data); diff --git a/build/patches/Add-site-engagement-flag.patch b/build/patches/Add-site-engagement-flag.patch index 99b433231..c64a17c01 100644 --- a/build/patches/Add-site-engagement-flag.patch +++ b/build/patches/Add-site-engagement-flag.patch @@ -68,7 +68,7 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/ diff --git a/components/feature_engagement/internal/tracker_impl.cc b/components/feature_engagement/internal/tracker_impl.cc --- a/components/feature_engagement/internal/tracker_impl.cc +++ b/components/feature_engagement/internal/tracker_impl.cc -@@ -22,6 +22,7 @@ +@@ -23,6 +23,7 @@ #include "base/task/single_thread_task_runner.h" #include "base/time/clock.h" #include "build/build_config.h" @@ -76,7 +76,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" -@@ -207,6 +208,8 @@ TrackerImpl::TrackerImpl( +@@ -211,6 +212,8 @@ TrackerImpl::TrackerImpl( TrackerImpl::~TrackerImpl() = default; void TrackerImpl::NotifyEvent(const std::string& event) { @@ -96,7 +96,7 @@ diff --git a/components/feature_engagement/public/feature_configurations.cc b/co #include "components/feature_engagement/public/configuration.h" #include "components/feature_engagement/public/event_constants.h" #include "components/feature_engagement/public/feature_constants.h" -@@ -66,6 +67,12 @@ absl::optional GetClientSideFeatureConfig( +@@ -111,6 +112,12 @@ std::optional GetClientSideFeatureConfig( } #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) diff --git a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch index 5a7066b6b..51ce2fb6e 100644 --- a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch +++ b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch @@ -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 -@@ -83,6 +83,7 @@ import org.chromium.components.browser_ui.settings.CustomDividerFragment; +@@ -86,6 +86,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; -@@ -453,8 +454,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -457,8 +458,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity finish(); return true; } else if (item.getItemId() == R.id.menu_id_general_help) { diff --git a/build/patches/Add-support-to-jxl.patch b/build/patches/Add-support-to-jxl.patch index d8ebb84f7..e08c9b177 100644 --- a/build/patches/Add-support-to-jxl.patch +++ b/build/patches/Add-support-to-jxl.patch @@ -84,7 +84,7 @@ Enabled by default diff --git a/DEPS b/DEPS --- a/DEPS +++ b/DEPS -@@ -487,6 +487,10 @@ vars = { +@@ -489,6 +489,10 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -95,7 +95,7 @@ diff --git a/DEPS b/DEPS 'highway_revision': '8f20644eca693cfb74aa795b0006b6779c370e7a', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ffmpeg -@@ -1105,6 +1109,9 @@ deps = { +@@ -1107,6 +1111,9 @@ deps = { 'src/third_party/dawn': Var('dawn_git') + '/dawn.git' + '@' + Var('dawn_revision'), @@ -375,7 +375,7 @@ diff --git a/net/base/mime_util_unittest.cc b/net/base/mime_util_unittest.cc diff --git a/third_party/.gitignore b/third_party/.gitignore --- a/third_party/.gitignore +++ b/third_party/.gitignore -@@ -91,6 +91,7 @@ +@@ -90,6 +90,7 @@ /libgifcodec /libjingle/source /libupnp @@ -467,7 +467,7 @@ diff --git a/third_party/blink/common/mime_util/mime_util_unittest.cc b/third_pa diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/third_party/blink/public/devtools_protocol/browser_protocol.pdl --- a/third_party/blink/public/devtools_protocol/browser_protocol.pdl +++ b/third_party/blink/public/devtools_protocol/browser_protocol.pdl -@@ -4258,6 +4258,7 @@ domain Emulation +@@ -4294,6 +4294,7 @@ domain Emulation experimental type DisabledImageType extends string enum avif @@ -608,7 +608,7 @@ diff --git a/third_party/blink/renderer/modules/webcodecs/image_decoder_fuzzer.c diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn -@@ -2277,6 +2277,10 @@ source_set("blink_platform_unittests_sources") { +@@ -2280,6 +2280,10 @@ source_set("blink_platform_unittests_sources") { sources += [ "text/locale_icu_test.cc" ] } @@ -619,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 += [ -@@ -2320,6 +2324,7 @@ source_set("blink_platform_unittests_sources") { +@@ -2323,6 +2327,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", @@ -677,7 +677,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h diff --git a/third_party/blink/renderer/platform/image-decoders/BUILD.gn b/third_party/blink/renderer/platform/image-decoders/BUILD.gn --- a/third_party/blink/renderer/platform/image-decoders/BUILD.gn +++ b/third_party/blink/renderer/platform/image-decoders/BUILD.gn -@@ -70,6 +70,15 @@ component("image_decoders") { +@@ -72,6 +72,15 @@ component("image_decoders") { "//third_party/libyuv", ] @@ -2211,18 +2211,18 @@ new file mode 100644 diff --git a/third_party/blink/tools/commit_stats/git-dirs.txt b/third_party/blink/tools/commit_stats/git-dirs.txt --- a/third_party/blink/tools/commit_stats/git-dirs.txt +++ b/third_party/blink/tools/commit_stats/git-dirs.txt -@@ -75,6 +75,7 @@ +@@ -34,6 +34,7 @@ + ./third_party/angle/third_party/rapidjson/src,ANGLE + ./third_party/angle/third_party/VK-GL-CTS/src,ANGLE ./third_party/angle/third_party/glmark2/src,ANGLE - ./third_party/openh264/src,OpenH264 - ./third_party/googletest/src,GoogleTest +./third_party/libjxl/src,libjxl ./third_party/highway/src,highway - ./third_party/wuffs/src,wuffs ./third_party/catapult,catapult + ./third_party/libwebm/source,libwebm 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 -@@ -4569,6 +4569,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai +@@ -4559,6 +4559,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 ] @@ -2238,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 -@@ -102,6 +102,15 @@ +@@ -103,6 +103,15 @@ "--disable-threaded-compositing", "--disable-threaded-animation"], "expires": "Jul 1, 2023" }, @@ -2653,7 +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 -@@ -23861,6 +23861,7 @@ from previous Chrome versions. +@@ -21104,6 +21104,7 @@ from previous Chrome versions. diff --git a/build/patches/Add-webGL-site-setting.patch b/build/patches/Add-webGL-site-setting.patch index 7d91453fb..f51d1e5d0 100644 --- a/build/patches/Add-webGL-site-setting.patch +++ b/build/patches/Add-webGL-site-setting.patch @@ -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 -@@ -310,6 +310,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( +@@ -311,6 +311,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_); -@@ -583,25 +590,6 @@ static String ExtractWebGLContextCreationError( +@@ -584,25 +591,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('.'); -@@ -661,6 +649,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( +@@ -662,6 +650,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 -@@ -1959,6 +1959,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext, +@@ -1960,6 +1960,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext, DOMArrayBufferView* pixels, int64_t offset); diff --git a/build/patches/Add-webRTC-site-settings.patch b/build/patches/Add-webRTC-site-settings.patch index c363af11e..69e8daa82 100644 --- a/build/patches/Add-webRTC-site-settings.patch +++ b/build/patches/Add-webRTC-site-settings.patch @@ -187,15 +187,15 @@ new file mode 100644 diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc --- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc +++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc -@@ -37,6 +37,7 @@ - #include "third_party/blink/public/common/peerconnection/webrtc_ip_handling_policy.h" +@@ -41,6 +41,7 @@ #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" #include "third_party/blink/public/platform/platform.h" + #include "third_party/blink/public/platform/task_type.h" +#include "third_party/blink/public/platform/web_content_settings_client.h" #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" -@@ -807,6 +808,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( +@@ -847,6 +848,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( // origin. WebRTCIPHandlingPolicy policy = GetWebRTCIPHandlingPolicy(webrtc_ip_handling_policy); diff --git a/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch b/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch index 6e1db858f..955d57770 100644 --- a/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch +++ b/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch @@ -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 -@@ -367,6 +367,13 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow( +@@ -368,6 +368,13 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow( return; } diff --git a/build/patches/Allow-building-without-enable_reporting.patch b/build/patches/Allow-building-without-enable_reporting.patch index 1024f7150..6090081c9 100644 --- a/build/patches/Allow-building-without-enable_reporting.patch +++ b/build/patches/Allow-building-without-enable_reporting.patch @@ -41,7 +41,7 @@ diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chr diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc --- a/content/browser/devtools/protocol/network_handler.cc +++ b/content/browser/devtools/protocol/network_handler.cc -@@ -1326,6 +1326,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { +@@ -1400,6 +1400,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { } } @@ -49,7 +49,7 @@ diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/brow std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { std::vector urls; frame_host->ForEachRenderFrameHostWithAction( -@@ -1339,6 +1340,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { +@@ -1413,6 +1414,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { }); return urls; } @@ -201,7 +201,7 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -13726,12 +13726,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( +@@ -13787,12 +13787,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( base::Value::Dict body; if (!reason.empty()) body.Set("reason", reason); @@ -254,7 +254,7 @@ new file mode 100644 diff --git a/net/base/features.cc b/net/base/features.cc --- a/net/base/features.cc +++ b/net/base/features.cc -@@ -215,6 +215,7 @@ extern const base::FeatureParam kTimeoutTcpConnectAttemptMax( +@@ -229,6 +229,7 @@ extern const base::FeatureParam kTimeoutTcpConnectAttemptMax( base::Seconds(30)); #if BUILDFLAG(ENABLE_REPORTING) @@ -282,9 +282,9 @@ diff --git a/services/network/network_context.h b/services/network/network_conte --- a/services/network/network_context.h +++ b/services/network/network_context.h @@ -464,10 +464,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext - const absl::optional& reporting_source, + const std::optional& reporting_source, const net::NetworkAnonymizationKey& network_anonymization_key, - const absl::optional& user_agent, + const std::optional& user_agent, - base::Value::Dict body) override; + base::Value::Dict body); void QueueSignedExchangeReport( @@ -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 -@@ -1439,7 +1439,6 @@ mojom("mojom") { +@@ -1443,7 +1443,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 -@@ -1223,6 +1223,7 @@ interface NetworkContext { +@@ -1206,6 +1206,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, -@@ -1236,6 +1237,7 @@ interface NetworkContext { +@@ -1219,6 +1220,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|. @@ -327,15 +327,15 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.cc b/third_party/blink/renderer/core/frame/csp/content_security_policy.cc --- a/third_party/blink/renderer/core/frame/csp/content_security_policy.cc +++ b/third_party/blink/renderer/core/frame/csp/content_security_policy.cc -@@ -28,6 +28,7 @@ - #include +@@ -29,6 +29,7 @@ + #include #include +#include "net/net_buildflags.h" #include "base/containers/contains.h" #include "base/debug/dump_without_crashing.h" - #include "services/network/public/cpp/web_sandbox_flags.h" -@@ -1166,6 +1167,7 @@ void ContentSecurityPolicy::ReportViolation( + #include "base/ranges/algorithm.h" +@@ -1167,6 +1168,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); -@@ -1173,6 +1175,7 @@ void ContentSecurityPolicy::ReportViolation( +@@ -1174,6 +1176,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" -@@ -2601,9 +2602,11 @@ void LocalFrame::MainFrameInteractive() { +@@ -2619,9 +2620,11 @@ void LocalFrame::MainFrameInteractive() { v8_local_compile_hints_producer_->GenerateData(); } @@ -372,20 +372,20 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ } +#endif - device::mojom::blink::DevicePostureProvider* - LocalFrame::GetDevicePostureProvider() { + mojom::blink::DevicePostureProvider* LocalFrame::GetDevicePostureProvider() { + return mojo_handler_->DevicePostureProvider(); diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h -@@ -38,6 +38,7 @@ +@@ -36,6 +36,7 @@ + #include "base/time/time.h" + #include "base/unguessable_token.h" #include "build/build_config.h" ++#include "net/net_buildflags.h" #include "mojo/public/cpp/bindings/pending_associated_receiver.h" #include "mojo/public/cpp/bindings/pending_receiver.h" -+#include "net/net_buildflags.h" - #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" -@@ -655,8 +656,9 @@ class CORE_EXPORT LocalFrame final +@@ -657,8 +658,9 @@ class CORE_EXPORT LocalFrame final void FinishedScrollSequence(); SmoothScrollSequencer* GetSmoothScrollSequencer() const; @@ -393,7 +393,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b +#if BUILDFLAG(ENABLE_REPORTING) mojom::blink::ReportingServiceProxy* GetReportingService(); +#endif - device::mojom::blink::DevicePostureProvider* GetDevicePostureProvider(); + mojom::blink::DevicePostureProvider* GetDevicePostureProvider(); // Returns the frame host ptr. The interface returned is backed by an diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_party/blink/renderer/core/frame/reporting_context.cc diff --git a/build/patches/Allow-building-without-supervised-users.patch b/build/patches/Allow-building-without-supervised-users.patch index 03a7bf3f7..f90233350 100644 --- a/build/patches/Allow-building-without-supervised-users.patch +++ b/build/patches/Allow-building-without-supervised-users.patch @@ -4,27 +4,27 @@ Subject: Allow building without supervised users License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - chrome/android/BUILD.gn | 1 - - chrome/android/chrome_java_sources.gni | 1 - - .../chrome/browser/feed/FeedSurfaceCoordinator.java | 5 +---- - chrome/browser/BUILD.gn | 6 ------ - .../extensions/api/settings_private/prefs_util.cc | 2 ++ - chrome/browser/profiles/profile_impl.cc | 4 ++++ - chrome/browser/profiles/profile_manager.cc | 4 ++++ - chrome/browser/ui/webui/managed_ui_handler.cc | 2 ++ - .../browser/ui/webui/management/management_ui_handler.cc | 2 ++ - components/supervised_user/buildflags.gni | 6 +----- - .../core/browser/supervised_user_preferences.cc | 2 +- - components/supervised_user/core/common/features.cc | 1 + - components/supervised_user/core/common/pref_names.h | 4 ++++ - .../core/common/supervised_user_constants.cc | 2 ++ - .../supervised_user/core/common/supervised_user_utils.cc | 9 ++++++--- - 15 files changed, 30 insertions(+), 21 deletions(-) + chrome/android/BUILD.gn | 1 - + chrome/android/chrome_java_sources.gni | 1 - + .../chrome/browser/feed/FeedSurfaceCoordinator.java | 5 +---- + chrome/browser/BUILD.gn | 6 ------ + .../browser/extensions/api/settings_private/prefs_util.cc | 2 ++ + chrome/browser/profiles/profile_impl.cc | 4 ++++ + chrome/browser/profiles/profile_manager.cc | 4 ++++ + chrome/browser/ui/webui/managed_ui_handler.cc | 2 ++ + chrome/browser/ui/webui/management/management_ui_handler.cc | 2 ++ + components/supervised_user/buildflags.gni | 6 +----- + .../core/browser/supervised_user_preferences.cc | 2 +- + .../supervised_user/core/browser/supervised_user_utils.cc | 4 ++++ + components/supervised_user/core/common/features.cc | 1 + + components/supervised_user/core/common/pref_names.h | 4 ++++ + .../core/common/supervised_user_constants.cc | 2 ++ + 15 files changed, 28 insertions(+), 18 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -3691,7 +3691,6 @@ generate_jni("chrome_jni_headers") { +@@ -3697,7 +3697,6 @@ generate_jni("chrome_jni_headers") { "java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer.java", "java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSites.java", "java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java", @@ -35,7 +35,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -1075,7 +1075,6 @@ chrome_java_sources = [ +@@ -1085,7 +1085,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/suggestions/tile/TileGroupDelegateImpl.java", "java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java", "java/src/org/chromium/chrome/browser/suggestions/tile/TopSitesTileView.java", @@ -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 -@@ -3147,8 +3147,6 @@ static_library("browser") { +@@ -3165,8 +3165,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", -@@ -3354,10 +3352,6 @@ static_library("browser") { +@@ -3371,10 +3369,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 -@@ -999,9 +999,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -1024,9 +1024,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 -@@ -683,10 +683,12 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) { +@@ -689,10 +689,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( -@@ -1614,11 +1616,13 @@ GURL ProfileImpl::GetHomePage() { +@@ -1627,11 +1629,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 -@@ -1223,6 +1223,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { +@@ -1215,6 +1215,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) -@@ -1244,6 +1245,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { +@@ -1236,6 +1237,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); -@@ -2051,8 +2053,10 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { +@@ -2035,8 +2037,10 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { init_params.icon_index = profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex); @@ -220,10 +220,29 @@ diff --git a/components/supervised_user/core/browser/supervised_user_preferences } bool IsSafeSitesEnabled(const PrefService& pref_service) { +diff --git a/components/supervised_user/core/browser/supervised_user_utils.cc b/components/supervised_user/core/browser/supervised_user_utils.cc +--- a/components/supervised_user/core/browser/supervised_user_utils.cc ++++ b/components/supervised_user/core/browser/supervised_user_utils.cc +@@ -81,11 +81,15 @@ GURL NormalizeUrl(const GURL& url) { + } + + bool AreWebFilterPrefsDefault(const PrefService& pref_service) { ++#if BUILDFLAG(ENABLE_SUPERVISED_USERS) + return pref_service + .FindPreference(prefs::kDefaultSupervisedUserFilteringBehavior) + ->IsDefaultValue() || + pref_service.FindPreference(prefs::kSupervisedUserSafeSites) + ->IsDefaultValue(); ++#else ++ return true; ++#endif + } + + bool EmitLogRecordHistograms( diff --git a/components/supervised_user/core/common/features.cc b/components/supervised_user/core/common/features.cc --- a/components/supervised_user/core/common/features.cc +++ b/components/supervised_user/core/common/features.cc -@@ -174,4 +174,5 @@ bool IsShadowKidsApiWithSafeSitesEnabled() { +@@ -163,4 +163,5 @@ bool IsShadowKidsApiWithSafeSitesEnabled() { return base::FeatureList::IsEnabled(kShadowKidsApiWithSafeSites); } @@ -243,7 +262,7 @@ diff --git a/components/supervised_user/core/common/pref_names.h b/components/su namespace prefs { // A bool pref that keeps whether the child status for this profile was already -@@ -124,4 +126,6 @@ inline constexpr char kFirstTimeInterstitialBannerState[] = +@@ -132,4 +134,6 @@ inline constexpr char kFirstTimeInterstitialBannerState[] = } // namespace prefs @@ -253,7 +272,7 @@ diff --git a/components/supervised_user/core/common/pref_names.h b/components/su diff --git a/components/supervised_user/core/common/supervised_user_constants.cc b/components/supervised_user/core/common/supervised_user_constants.cc --- a/components/supervised_user/core/common/supervised_user_constants.cc +++ b/components/supervised_user/core/common/supervised_user_constants.cc -@@ -68,6 +68,7 @@ const char kChromeOSAvatarIndex[] = "chromeos-avatar-index"; +@@ -70,6 +70,7 @@ const char kChromeOSAvatarIndex[] = "chromeos-avatar-index"; const char kChromeOSPasswordData[] = "chromeos-password-data"; @@ -261,7 +280,7 @@ diff --git a/components/supervised_user/core/common/supervised_user_constants.cc const char* const kCustodianInfoPrefs[] = { prefs::kSupervisedUserCustodianName, prefs::kSupervisedUserCustodianEmail, -@@ -80,6 +81,7 @@ const char* const kCustodianInfoPrefs[] = { +@@ -82,6 +83,7 @@ const char* const kCustodianInfoPrefs[] = { prefs::kSupervisedUserSecondCustodianProfileURL, prefs::kSupervisedUserSecondCustodianProfileImageURL, }; @@ -269,25 +288,4 @@ diff --git a/components/supervised_user/core/common/supervised_user_constants.cc const base::FilePath::CharType kSupervisedUserSettingsFilename[] = FILE_PATH_LITERAL("Managed Mode Settings"); -diff --git a/components/supervised_user/core/common/supervised_user_utils.cc b/components/supervised_user/core/common/supervised_user_utils.cc ---- a/components/supervised_user/core/common/supervised_user_utils.cc -+++ b/components/supervised_user/core/common/supervised_user_utils.cc -@@ -52,11 +52,14 @@ GURL NormalizeUrl(const GURL& url) { - } - - bool AreWebFilterPrefsDefault(const PrefService& pref_service) { -+#if BUILDFLAG(ENABLE_SUPERVISED_USERS) - return pref_service - .FindPreference(prefs::kDefaultSupervisedUserFilteringBehavior) -- ->IsDefaultValue() || -- pref_service.FindPreference(prefs::kSupervisedUserSafeSites) -- ->IsDefaultValue(); -+ kChildAccountSUID && -+ IsChildAccountSupervisionEnabled(); -+#else -+ return false; -+#endif - } - - absl::optional SupervisionStatusForUser( -- diff --git a/build/patches/Always-open-browser-controls-in-new-tab.patch b/build/patches/Always-open-browser-controls-in-new-tab.patch index d1a125435..aaa2f3761 100644 --- a/build/patches/Always-open-browser-controls-in-new-tab.patch +++ b/build/patches/Always-open-browser-controls-in-new-tab.patch @@ -25,7 +25,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tabmodel.document.ChromeAsyncTabLauncher; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; -@@ -212,6 +214,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -219,6 +221,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { Referrer referrer, boolean navigateToTab, @Nullable AdditionalNavigationParams additionalNavigationParams) { @@ -33,7 +33,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM RecordUserAction.record("MobileNewTabOpened"); RecordUserAction.record("LinkOpenedInNewTab"); LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec()); -@@ -228,6 +231,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -235,6 +238,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { @Override public void onOpenInNewTabInGroup(GURL url, Referrer referrer) { diff --git a/build/patches/Battery-API-return-nothing.patch b/build/patches/Battery-API-return-nothing.patch index 4e54e96aa..9364c23e8 100644 --- a/build/patches/Battery-API-return-nothing.patch +++ b/build/patches/Battery-API-return-nothing.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/third_party/blink/renderer/modules/battery/battery_manager.cc --- a/third_party/blink/renderer/modules/battery/battery_manager.cc +++ b/third_party/blink/renderer/modules/battery/battery_manager.cc -@@ -78,46 +78,28 @@ ScriptPromise BatteryManager::StartRequest(ScriptState* script_state) { +@@ -80,46 +80,28 @@ ScriptPromiseTyped BatteryManager::StartRequest( } bool BatteryManager::charging() { diff --git a/build/patches/Block-gateway-attacks-via-websockets.patch b/build/patches/Block-gateway-attacks-via-websockets.patch index 80191aa68..dbc463736 100644 --- a/build/patches/Block-gateway-attacks-via-websockets.patch +++ b/build/patches/Block-gateway-attacks-via-websockets.patch @@ -61,7 +61,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third_party/blink/renderer/core/loader/base_fetch_context.h --- a/third_party/blink/renderer/core/loader/base_fetch_context.h +++ b/third_party/blink/renderer/core/loader/base_fetch_context.h -@@ -85,6 +85,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext { +@@ -86,6 +86,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext { virtual SubresourceFilter* GetSubresourceFilter() const = 0; virtual bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const = 0; @@ -102,7 +102,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/third_party/blink/renderer/core/loader/frame_fetch_context.h --- a/third_party/blink/renderer/core/loader/frame_fetch_context.h +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.h -@@ -176,6 +176,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, +@@ -177,6 +177,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override; std::unique_ptr CreateWebSocketHandshakeThrottle() override; @@ -277,22 +277,22 @@ diff --git a/third_party/blink/renderer/modules/websockets/websocket_common.cc b + return false; +} + - void WebSocketCommon::CloseInternal(int code, + void WebSocketCommon::CloseInternal(std::optional code, const String& reason, WebSocketChannel* channel, diff --git a/third_party/blink/renderer/modules/websockets/websocket_common.h b/third_party/blink/renderer/modules/websockets/websocket_common.h --- a/third_party/blink/renderer/modules/websockets/websocket_common.h +++ b/third_party/blink/renderer/modules/websockets/websocket_common.h -@@ -7,6 +7,8 @@ - #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WEBSOCKETS_WEBSOCKET_COMMON_H_ - #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBSOCKETS_WEBSOCKET_COMMON_H_ +@@ -11,6 +11,8 @@ + + #include +#include "services/network/public/mojom/ip_address_space.mojom.h" +#include "third_party/blink/renderer/platform/network/network_utils.h" #include "third_party/blink/renderer/modules/modules_export.h" #include "third_party/blink/renderer/platform/weborigin/kurl.h" #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" -@@ -54,6 +56,8 @@ class MODULES_EXPORT WebSocketCommon { +@@ -58,6 +60,8 @@ class MODULES_EXPORT WebSocketCommon { void SetState(State state) { state_ = state; } const KURL& Url() const { return url_; } diff --git a/build/patches/Block-qjz9zk-or-trk-requests.patch b/build/patches/Block-qjz9zk-or-trk-requests.patch index 29d9a5436..0461642ea 100644 --- a/build/patches/Block-qjz9zk-or-trk-requests.patch +++ b/build/patches/Block-qjz9zk-or-trk-requests.patch @@ -108,7 +108,7 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc --- a/content/browser/child_process_security_policy_impl.cc +++ b/content/browser/child_process_security_policy_impl.cc -@@ -841,6 +841,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() +@@ -849,6 +849,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() RegisterPseudoScheme(url::kJavaScriptScheme); RegisterPseudoScheme(kViewSourceScheme); RegisterPseudoScheme(kGoogleChromeScheme); @@ -119,7 +119,7 @@ diff --git a/content/browser/child_process_security_policy_impl.cc b/content/bro diff --git a/net/BUILD.gn b/net/BUILD.gn --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -990,6 +990,8 @@ component("net") { +@@ -997,6 +997,8 @@ component("net") { "url_request/url_request_http_job.cc", "url_request/url_request_http_job.h", "url_request/url_request_interceptor.cc", @@ -228,15 +228,15 @@ 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 -@@ -47,6 +47,7 @@ +@@ -48,6 +48,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" +#include "net/url_request/trk_protocol_handler.h" #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" -@@ -565,6 +566,8 @@ std::unique_ptr URLRequestContextBuilder::Build() { + #include "url/url_constants.h" +@@ -559,6 +560,8 @@ std::unique_ptr URLRequestContextBuilder::Build() { job_factory->SetProtocolHandler(scheme_handler.first, std::move(scheme_handler.second)); } diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch index bd8c2f58b..5cf4824ab 100644 --- a/build/patches/Bromite-auto-updater.patch +++ b/build/patches/Bromite-auto-updater.patch @@ -25,18 +25,18 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 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_android.cc | 184 ++++++++++++ .../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 +- - .../endpoint_fetcher/endpoint_fetcher.cc | 103 ++++++- + .../endpoint_fetcher/endpoint_fetcher.cc | 101 ++++++- .../endpoint_fetcher/endpoint_fetcher.h | 23 +- .../Bromite-auto-updater.inc | 3 + .../Bromite-auto-updater.inc | 1 + - 28 files changed, 1269 insertions(+), 52 deletions(-) + 28 files changed, 1268 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 @@ -65,7 +65,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 -@@ -1910,6 +1910,9 @@ if (enable_java_templates && is_android) { +@@ -1905,6 +1905,9 @@ if (enable_java_templates && is_android) { sources = [ "//build/android/java/templates/BuildConfig.template" ] defines = [] @@ -78,7 +78,7 @@ diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -875,6 +875,9 @@ chrome_java_sources = [ +@@ -883,6 +883,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", @@ -1113,7 +1113,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 -@@ -3094,6 +3094,7 @@ static_library("browser") { +@@ -3112,6 +3112,7 @@ static_library("browser") { "download/android/service/download_task_scheduler.h", "download/android/string_utils.cc", "download/download_crx_util_android.cc", @@ -1121,8 +1121,8 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "enterprise/reporting/browser_report_generator_android.cc", "enterprise/reporting/browser_report_generator_android.h", "enterprise/reporting/profile_report_generator_android.cc", -@@ -3431,6 +3432,7 @@ static_library("browser") { - "//chrome/browser/consent_auditor/android:jni_headers", +@@ -3451,6 +3452,7 @@ static_library("browser") { + "//chrome/browser/content_extraction/android:jni_headers", "//chrome/browser/device_reauth/android:jni_headers", "//chrome/browser/download/internal/android", + "//chrome/browser/endpoint_fetcher:jni_headers", @@ -1184,7 +1184,7 @@ diff --git a/chrome/browser/endpoint_fetcher/endpoint_fetcher_android.cc b/chrom new file mode 100644 --- /dev/null +++ b/chrome/browser/endpoint_fetcher/endpoint_fetcher_android.cc -@@ -0,0 +1,183 @@ +@@ -0,0 +1,184 @@ +// 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. @@ -1264,7 +1264,7 @@ new file mode 100644 + 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), ++ base::Milliseconds(jtimeout), base::android::ConvertJavaStringToUTF8(env, jpost_data), + net::NetworkTrafficAnnotationTag::FromJavaAnnotation( + jannotation_hash_code), + IdentityManagerFactory::GetForProfile( @@ -1300,7 +1300,8 @@ new file mode 100644 + ->GetURLLoaderFactoryForBrowserProcess(), + GURL(base::android::ConvertJavaStringToUTF8(env, jurl)), + base::android::ConvertJavaStringToUTF8(env, jhttps_method), -+ base::android::ConvertJavaStringToUTF8(env, jcontent_type), jtimeout, ++ base::android::ConvertJavaStringToUTF8(env, jcontent_type), ++ base::Milliseconds(jtimeout), + base::android::ConvertJavaStringToUTF8(env, jpost_data), headers, + net::NetworkTrafficAnnotationTag::FromJavaAnnotation( + jannotation_hash_code), @@ -1612,7 +1613,7 @@ new file mode 100644 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -234,6 +234,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -235,6 +235,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kPreconnectOnTabCreation, &kPriceChangeModule, &kPwaRestoreUi, @@ -1623,7 +1624,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -314,6 +314,7 @@ public abstract class ChromeFeatureList { +@@ -315,6 +315,7 @@ public abstract class ChromeFeatureList { "IncognitoReauthenticationForAndroid"; public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot"; public static final String INSTANT_START = "InstantStart"; @@ -1634,7 +1635,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 -@@ -2038,6 +2038,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2050,6 +2050,12 @@ Your Google account may have other forms of browsing history like searches and a Chrome updates are no longer supported for this version of Android @@ -1647,7 +1648,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -3663,7 +3669,10 @@ To change this setting, <resetlink>reset sync

BEGIN_LINKclear the Chrome da @@ -1659,7 +1660,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Newer version is available -@@ -3674,6 +3683,18 @@ To change this setting, <resetlink>reset sync

BEGIN_LINKclear the Chrome da Android version is unsupported @@ -1681,7 +1682,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoint_fetcher/endpoint_fetcher.cc --- a/components/endpoint_fetcher/endpoint_fetcher.cc +++ b/components/endpoint_fetcher/endpoint_fetcher.cc -@@ -18,6 +18,11 @@ +@@ -19,6 +19,11 @@ #include "services/network/public/cpp/simple_url_loader.h" #include "services/network/public/mojom/url_response_head.mojom.h" @@ -1693,46 +1694,46 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi namespace { const char kContentTypeKey[] = "Content-Type"; const char kDeveloperKey[] = "X-Developer-Key"; -@@ -64,6 +69,7 @@ EndpointFetcher::EndpointFetcher( +@@ -65,6 +70,7 @@ EndpointFetcher::EndpointFetcher( http_method_(http_method), content_type_(content_type), - timeout_ms_(timeout_ms), + timeout_(timeout), + intercept_redirect_(false), post_data_(post_data), headers_(headers), annotation_tag_(annotation_tag), -@@ -82,6 +88,7 @@ EndpointFetcher::EndpointFetcher( +@@ -83,6 +89,7 @@ EndpointFetcher::EndpointFetcher( http_method_("GET"), content_type_(std::string()), - timeout_ms_(0), + timeout_(base::Milliseconds(0)), + intercept_redirect_(false), post_data_(std::string()), annotation_tag_(annotation_tag), url_loader_factory_(url_loader_factory), -@@ -107,6 +114,7 @@ EndpointFetcher::EndpointFetcher( +@@ -108,6 +115,7 @@ EndpointFetcher::EndpointFetcher( http_method_(http_method), content_type_(content_type), - timeout_ms_(timeout_ms), + timeout_(timeout), + intercept_redirect_(false), post_data_(post_data), annotation_tag_(annotation_tag), url_loader_factory_(url_loader_factory), -@@ -134,6 +142,7 @@ EndpointFetcher::EndpointFetcher( +@@ -135,6 +143,7 @@ EndpointFetcher::EndpointFetcher( http_method_(http_method), content_type_(content_type), - timeout_ms_(timeout_ms), + timeout_(timeout), + intercept_redirect_(false), post_data_(post_data), headers_(headers), cors_exempt_headers_(cors_exempt_headers), -@@ -146,11 +155,29 @@ EndpointFetcher::EndpointFetcher( +@@ -147,11 +156,29 @@ EndpointFetcher::EndpointFetcher( EndpointFetcher::EndpointFetcher( const net::NetworkTrafficAnnotationTag& annotation_tag) - : timeout_ms_(kDefaultTimeOutMs), + : timeout_(kDefaultTimeOut), + intercept_redirect_(false), annotation_tag_(annotation_tag), identity_manager_(nullptr), - consent_level_(absl::nullopt), + consent_level_(std::nullopt), sanitize_response_(true) {} +// constructor used by Bromite @@ -1745,7 +1746,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi + const net::NetworkTrafficAnnotationTag& annotation_tag) + : url_(url), + http_method_(http_method), -+ timeout_ms_(timeout_ms), ++ timeout_(base::Milliseconds(timeout_ms)), + intercept_redirect_(intercept_redirect), + annotation_tag_(annotation_tag), + url_loader_factory_(url_loader_factory), @@ -1755,7 +1756,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi EndpointFetcher::~EndpointFetcher() = default; void EndpointFetcher::Fetch(EndpointFetcherCallback endpoint_fetcher_callback) { -@@ -209,6 +236,8 @@ void EndpointFetcher::PerformRequest( +@@ -210,6 +237,8 @@ void EndpointFetcher::PerformRequest( resource_request->method = http_method_; resource_request->url = url_; resource_request->credentials_mode = network::mojom::CredentialsMode::kOmit; @@ -1764,7 +1765,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi if (base::EqualsCaseInsensitiveASCII(http_method_, "POST")) { resource_request->headers.SetHeader(kContentTypeKey, content_type_); } -@@ -239,25 +268,52 @@ void EndpointFetcher::PerformRequest( +@@ -240,25 +269,50 @@ void EndpointFetcher::PerformRequest( default: break; } @@ -1778,13 +1779,12 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi // callback simple_url_loader_ = network::SimpleURLLoader::Create( std::move(resource_request), annotation_tag_); -+ simple_url_loader_->SetTimeoutDuration(base::Milliseconds(timeout_ms_)); ++ simple_url_loader_->SetTimeoutDuration(timeout_); + simple_url_loader_->SetAllowHttpErrorResults(true); + -+ if (!response_) { -+ //RFC: what is this for? ++ if (!response_) + response_ = std::make_unique(); -+ } ++ + if (intercept_redirect_ == true) { + // use a callback to capture landing page URL + simple_url_loader_->SetOnRedirectCallback(base::BindRepeating( @@ -1796,10 +1796,9 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi } simple_url_loader_->SetRetryOptions(kNumRetries, network::SimpleURLLoader::RETRY_ON_5XX); -- simple_url_loader_->SetTimeoutDuration(base::Milliseconds(timeout_ms_)); +- simple_url_loader_->SetTimeoutDuration(timeout_); - simple_url_loader_->SetAllowHttpErrorResults(true); - network::SimpleURLLoader::BodyAsStringCallbackDeprecated -+ + LOG(INFO) << "performing " << http_method_ << " request to " << url_; + if (base::EqualsCaseInsensitiveASCII(http_method_, "HEAD")) { + endpoint_fetcher_callback_ = std::move(endpoint_fetcher_callback); @@ -1823,7 +1822,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi } void EndpointFetcher::OnResponseFetched( -@@ -338,3 +394,38 @@ void EndpointFetcher::OnSanitizationResult( +@@ -339,3 +393,38 @@ void EndpointFetcher::OnSanitizationResult( std::string EndpointFetcher::GetUrlForTesting() { return url_.spec(); } @@ -1834,7 +1833,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi + const network::mojom::URLResponseHead& response_head, + std::vector* removed_headers) { + url_ = redirect_info.new_url; -+ if (response_->redirect_url.empty()) { ++ if (response_ && response_->redirect_url.empty()) { + response_->redirect_url = url_.spec(); + response_->response = std::to_string(redirect_info.status_code); + } else { @@ -1859,31 +1858,31 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi + } + + std::string net_error = net::ErrorToString(simple_url_loader_->NetError()); -+ response_->response = net_error; ++ response_->response = net_error; + std::move(endpoint_fetcher_callback_).Run(std::move(response_)); +} diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoint_fetcher/endpoint_fetcher.h --- a/components/endpoint_fetcher/endpoint_fetcher.h +++ b/components/endpoint_fetcher/endpoint_fetcher.h -@@ -17,6 +17,8 @@ - #include "net/traffic_annotation/network_traffic_annotation.h" - #include "services/data_decoder/public/cpp/json_sanitizer.h" - #include "third_party/abseil-cpp/absl/types/optional.h" +@@ -21,6 +21,8 @@ + namespace base { + class TimeDelta; + } // namespace base +#include "services/network/public/cpp/resource_request.h" +#include "services/network/public/mojom/url_response_head.mojom.h" namespace network { struct ResourceRequest; -@@ -39,6 +41,8 @@ enum class FetchErrorType { +@@ -43,6 +45,8 @@ enum class FetchErrorType { struct EndpointResponse { std::string response; + long last_modified; + std::string redirect_url; int http_status_code{-1}; - absl::optional error_type; + std::optional error_type; }; -@@ -92,6 +96,14 @@ class EndpointFetcher { +@@ -96,6 +100,14 @@ class EndpointFetcher { const GURL& url, const net::NetworkTrafficAnnotationTag& annotation_tag); @@ -1898,7 +1897,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin // Used for tests. Can be used if caller constructs their own // url_loader_factory and identity_manager. EndpointFetcher( -@@ -147,6 +159,11 @@ class EndpointFetcher { +@@ -151,6 +163,11 @@ class EndpointFetcher { void OnSanitizationResult(std::unique_ptr response, EndpointFetcherCallback endpoint_fetcher_callback, data_decoder::JsonSanitizer::Result result); @@ -1910,7 +1909,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin enum AuthType { CHROME_API_KEY, OAUTH, NO_AUTH }; AuthType auth_type_; -@@ -154,10 +171,11 @@ class EndpointFetcher { +@@ -158,10 +175,11 @@ class EndpointFetcher { // Members set in constructor to be passed to network::ResourceRequest or // network::SimpleURLLoader. const std::string oauth_consumer_name_; @@ -1918,12 +1917,12 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin + GURL url_; const std::string http_method_; const std::string content_type_; - int64_t timeout_ms_; + base::TimeDelta timeout_; + const bool intercept_redirect_; const std::string post_data_; const std::vector headers_; const std::vector cors_exempt_headers_; -@@ -181,6 +199,9 @@ class EndpointFetcher { +@@ -185,6 +203,9 @@ class EndpointFetcher { access_token_fetcher_; std::unique_ptr simple_url_loader_; diff --git a/build/patches/Bromite-package-name.patch b/build/patches/Bromite-package-name.patch index 139e2d540..7f7d6e53a 100644 --- a/build/patches/Bromite-package-name.patch +++ b/build/patches/Bromite-package-name.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni --- a/chrome/android/chrome_public_apk_tmpl.gni +++ b/chrome/android/chrome_public_apk_tmpl.gni -@@ -26,7 +26,7 @@ declare_args() { +@@ -25,7 +25,7 @@ declare_args() { # WebView providers which declare one of a handful of package names. See # https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview/docs/build-instructions.md#Changing-package-name # for details. diff --git a/build/patches/Bromite-subresource-adblocker.patch b/build/patches/Bromite-subresource-adblocker.patch index a3a6ffa89..1e8066d8c 100644 --- a/build/patches/Bromite-subresource-adblocker.patch +++ b/build/patches/Bromite-subresource-adblocker.patch @@ -68,7 +68,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -302,6 +302,7 @@ if (current_toolchain == default_toolchain) { +@@ -303,6 +303,7 @@ if (current_toolchain == default_toolchain) { "//chrome/android/modules/cablev2_authenticator/public:java", "//chrome/android/modules/stack_unwinder/provider:java", "//chrome/android/webapk/libs/client:client_java", @@ -79,7 +79,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -429,6 +429,7 @@ chrome_java_resources = [ +@@ -430,6 +430,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", -@@ -631,6 +632,7 @@ chrome_java_resources = [ +@@ -633,6 +634,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 -@@ -964,6 +964,8 @@ chrome_java_sources = [ +@@ -972,6 +972,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", @@ -182,7 +182,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res/values/styles.xml --- a/chrome/android/java/res/values/styles.xml +++ b/chrome/android/java/res/values/styles.xml -@@ -232,6 +232,24 @@ found in the LICENSE file. +@@ -245,6 +245,24 @@ found in the LICENSE file. @@ -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 -@@ -15005,6 +15005,16 @@ Please help our engineers fix this problem. Tell us what happened right before y +@@ -15030,6 +15030,16 @@ Please help our engineers fix this problem. Tell us what happened right before y Never show this again. @@ -460,7 +460,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_startup_task_utils.cc --- a/chrome/browser/after_startup_task_utils.cc +++ b/chrome/browser/after_startup_task_utils.cc -@@ -28,6 +28,8 @@ +@@ -29,6 +29,8 @@ #include "chromeos/startup/browser_params_proxy.h" #endif // BUILDFLAG(IS_CHROMEOS_LACROS) @@ -469,10 +469,10 @@ diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_s using content::BrowserThread; namespace { -@@ -123,6 +125,8 @@ void SetBrowserStartupIsComplete() { - ScheduleTask(base::WrapUnique(queued_task)); - g_after_startup_tasks.Get().clear(); - g_after_startup_tasks.Get().shrink_to_fit(); +@@ -132,6 +134,8 @@ void SetBrowserStartupIsComplete() { + } + GetAfterStartupTasks().clear(); + GetAfterStartupTasks().shrink_to_fit(); + // initialize AdBlock engine scheduled updates + g_browser_process->adblock_updater()->Start(); } @@ -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 -@@ -1147,6 +1147,27 @@ BrowserProcessImpl::component_updater() { +@@ -1168,6 +1168,27 @@ BrowserProcessImpl::component_updater() { return component_updater_.get(); } @@ -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 -@@ -445,6 +445,9 @@ StartupProfileInfo CreateInitialProfile( +@@ -446,6 +446,9 @@ StartupProfileInfo CreateInitialProfile( // missing code in the above test. CHECK(profile_info.profile) << "Cannot get default profile."; @@ -680,7 +680,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 -@@ -638,6 +638,14 @@ SystemNetworkContextManager::~SystemNetworkContextManager() { +@@ -640,6 +640,14 @@ SystemNetworkContextManager::~SystemNetworkContextManager() { void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { StubResolverConfigReader::RegisterPrefs(registry); @@ -738,7 +738,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -2657,6 +2657,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; +@@ -2653,6 +2653,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; inline constexpr char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls"; @@ -753,7 +753,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 -@@ -362,6 +362,9 @@ +@@ -359,6 +359,9 @@ This site shows intrusive or misleading ads diff --git a/build/patches/Chrome-web-store-protection.patch b/build/patches/Chrome-web-store-protection.patch index 7847d5922..b1f985bac 100644 --- a/build/patches/Chrome-web-store-protection.patch +++ b/build/patches/Chrome-web-store-protection.patch @@ -31,7 +31,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../browser/resources/extensions/toolbar.ts | 20 +++++++ .../resources/webstore_app/manifest.json | 7 +-- .../ui/webui/extensions/extensions_ui.cc | 8 +++ - .../chrome_update_query_params_delegate.cc | 8 +-- + .../chrome_update_query_params_delegate.cc | 13 ++--- .../extensions/api/developer_private.idl | 2 + .../update_client/update_query_params.cc | 7 ++- .../about_flags_cc/Webstore-protection.inc | 19 +++++++ @@ -43,7 +43,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html extensions/common/extension_features.cc | 15 ++++++ extensions/common/extension_features.h | 4 ++ .../definitions/developer_private.d.ts | 4 +- - 30 files changed, 252 insertions(+), 93 deletions(-) + 30 files changed, 252 insertions(+), 98 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Webstore-protection.inc diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.grdp @@ -65,7 +65,7 @@ diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings. diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.cc b/chrome/browser/extensions/api/developer_private/developer_private_api.cc --- a/chrome/browser/extensions/api/developer_private/developer_private_api.cc +++ b/chrome/browser/extensions/api/developer_private/developer_private_api.cc -@@ -126,6 +126,12 @@ +@@ -127,6 +127,12 @@ #include "url/gurl.h" #include "url/origin.h" @@ -78,7 +78,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a #if BUILDFLAG(ENABLE_SUPERVISED_USERS) #include "components/supervised_user/core/browser/supervised_user_preferences.h" #endif // BUILDFLAG(ENABLE_SUPERVISED_USERS) -@@ -521,9 +527,32 @@ std::unique_ptr DeveloperPrivateAPI::CreateProfileInfo( +@@ -476,9 +482,32 @@ std::unique_ptr DeveloperPrivateAPI::CreateProfileInfo( info->can_load_unpacked = ExtensionManagementFactory::GetForBrowserContext(profile) ->HasAllowlistedExtension(); @@ -111,7 +111,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a template <> void BrowserContextKeyedAPIFactory< DeveloperPrivateAPI>::DeclareFactoryDependencies() { -@@ -952,6 +981,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() { +@@ -908,6 +937,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() { ExtensionUpdater::CheckParams params; params.fetch_priority = DownloadFetchPriority::kForeground; params.install_immediately = true; @@ -119,7 +119,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a params.callback = base::BindOnce(&DeveloperPrivateAutoUpdateFunction::OnComplete, this); updater->CheckNow(std::move(params)); -@@ -1092,7 +1122,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { +@@ -1048,7 +1078,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { const developer::ProfileConfigurationUpdate& update = params->update; @@ -128,7 +128,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a Profile* profile = Profile::FromBrowserContext(browser_context()); CHECK(profile); #if BUILDFLAG(ENABLE_SUPERVISED_USERS) -@@ -1104,6 +1134,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { +@@ -1060,6 +1090,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { util::SetDeveloperModeForProfile(profile, *update.in_developer_mode); } @@ -219,7 +219,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api diff --git a/chrome/browser/extensions/cws_info_service.cc b/chrome/browser/extensions/cws_info_service.cc --- a/chrome/browser/extensions/cws_info_service.cc +++ b/chrome/browser/extensions/cws_info_service.cc -@@ -156,6 +156,7 @@ namespace extensions { +@@ -160,6 +160,7 @@ namespace extensions { BASE_FEATURE(kCWSInfoService, "CWSInfoService", base::FEATURE_ENABLED_BY_DEFAULT); @@ -441,7 +441,7 @@ diff --git a/chrome/browser/extensions/webstore_install_helper.cc b/chrome/brows diff --git a/chrome/browser/extensions/webstore_installer.cc b/chrome/browser/extensions/webstore_installer.cc --- a/chrome/browser/extensions/webstore_installer.cc +++ b/chrome/browser/extensions/webstore_installer.cc -@@ -624,7 +624,7 @@ void WebstoreInstaller::StartDownload(const std::string& extension_id, +@@ -624,7 +624,7 @@ void WebstoreInstaller::StartDownload( download_url_, render_process_host_id, render_frame_host->GetRoutingID(), traffic_annotation)); params->set_file_path(file); @@ -631,7 +631,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse {"toolbarLoadUnpacked", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED}, {"toolbarLoadUnpackedDone", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED_DONE}, {"toolbarPack", IDS_EXTENSIONS_TOOLBAR_PACK}, -@@ -417,6 +421,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, +@@ -420,6 +424,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, source->AddString("hostPermissionsLearnMoreLink", chrome_extension_constants::kRuntimeHostPermissionsHelpURL); source->AddBoolean(kInDevModeKey, in_dev_mode); @@ -645,14 +645,19 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse diff --git a/chrome/browser/update_client/chrome_update_query_params_delegate.cc b/chrome/browser/update_client/chrome_update_query_params_delegate.cc --- a/chrome/browser/update_client/chrome_update_query_params_delegate.cc +++ b/chrome/browser/update_client/chrome_update_query_params_delegate.cc -@@ -30,10 +30,10 @@ ChromeUpdateQueryParamsDelegate::GetInstance() { +@@ -35,15 +35,10 @@ ChromeUpdateQueryParamsDelegate::GetInstance() { } std::string ChromeUpdateQueryParamsDelegate::GetExtraParams() { -- return base::StrCat({"&prodchannel=", -- chrome::GetChannelName(chrome::WithExtendedStable(true)), -- "&prodversion=", version_info::GetVersionNumber(), -- "&lang=", GetLang()}); +- std::string channel_name; +-#if BUILDFLAG(ENABLE_EXTENSIONS) +- channel_name = extensions::GetChannelForExtensionUpdates(); +-#else +- channel_name = chrome::GetChannelName(chrome::WithExtendedStable(true)); +-#endif +- +- return base::StrCat({"&prodchannel=", channel_name, "&prodversion=", +- version_info::GetVersionNumber(), "&lang=", GetLang()}); + return base::StrCat({ + "&prodversion=", + version_info::GetMajorVersionNumber().c_str(), @@ -746,9 +751,9 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br #include "extensions/common/extension.h" +#include "extensions/common/extension_features.h" #include "extensions/common/extension_icon_set.h" + #include "extensions/common/extension_id.h" #include "extensions/common/extension_urls.h" - #include "extensions/common/manifest.h" -@@ -89,6 +93,27 @@ std::vector CreateWarningsList(const Extension* extension) { +@@ -90,6 +94,27 @@ std::vector CreateWarningsList(const Extension* extension) { return warnings_list; } @@ -776,7 +781,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br std::vector GetAvailableLaunchTypes( const Extension& extension, const ManagementAPIDelegate* delegate) { -@@ -262,6 +287,8 @@ void AddExtensionInfo(const Extension* source_extension, +@@ -263,6 +288,8 @@ void AddExtensionInfo(const Extension* source_extension, const ExtensionSet& extensions, ExtensionInfoList* extension_list, content::BrowserContext* context) { @@ -785,7 +790,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br for (ExtensionSet::const_iterator iter = extensions.begin(); iter != extensions.end(); ++iter) { const Extension& extension = **iter; -@@ -307,10 +334,9 @@ ExtensionFunction::ResponseAction ManagementGetFunction::Run() { +@@ -308,10 +335,9 @@ ExtensionFunction::ResponseAction ManagementGetFunction::Run() { std::optional params = management::Get::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); @@ -797,7 +802,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!target_extension) return RespondNow(Error(keys::kNoExtensionError, params->id)); -@@ -330,8 +356,7 @@ ManagementGetPermissionWarningsByIdFunction::Run() { +@@ -331,8 +357,7 @@ ManagementGetPermissionWarningsByIdFunction::Run() { EXTENSION_FUNCTION_VALIDATE(params); const Extension* extension = @@ -807,7 +812,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!extension) return RespondNow(Error(keys::kNoExtensionError, params->id)); -@@ -397,8 +422,7 @@ ExtensionFunction::ResponseAction ManagementLaunchAppFunction::Run() { +@@ -398,8 +423,7 @@ ExtensionFunction::ResponseAction ManagementLaunchAppFunction::Run() { return RespondNow(Error(keys::kNotAllowedInKioskError)); const Extension* extension = @@ -817,7 +822,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!extension) return RespondNow(Error(keys::kNoExtensionError, params->id)); if (!extension->is_app()) -@@ -433,7 +457,7 @@ ExtensionFunction::ResponseAction ManagementSetEnabledFunction::Run() { +@@ -434,7 +458,7 @@ ExtensionFunction::ResponseAction ManagementSetEnabledFunction::Run() { ->GetDelegate(); const Extension* target_extension = @@ -826,7 +831,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!target_extension || !ShouldExposeViaManagementAPI(*target_extension)) { return RespondNow(Error(keys::kNoExtensionError, extension_id_)); } -@@ -628,8 +652,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall( +@@ -629,8 +653,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall( ->GetDelegate(); target_extension_id_ = target_extension_id; const Extension* target_extension = @@ -836,7 +841,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br ExtensionRegistry::EVERYTHING); if (!target_extension || !ShouldExposeViaManagementAPI(*target_extension)) { return RespondNow(Error(keys::kNoExtensionError, target_extension_id_)); -@@ -693,8 +716,7 @@ void ManagementUninstallFunctionBase::UninstallExtension() { +@@ -694,8 +717,7 @@ void ManagementUninstallFunctionBase::UninstallExtension() { // The extension can be uninstalled in another window while the UI was // showing. Do nothing in that case. const Extension* target_extension = @@ -846,7 +851,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br ExtensionRegistry::EVERYTHING); std::string error; bool success = false; -@@ -775,8 +797,7 @@ ExtensionFunction::ResponseAction ManagementCreateAppShortcutFunction::Run() { +@@ -776,8 +798,7 @@ ExtensionFunction::ResponseAction ManagementCreateAppShortcutFunction::Run() { management::CreateAppShortcut::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); const Extension* extension = @@ -856,7 +861,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!extension) { return RespondNow(Error( ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id))); -@@ -826,8 +847,7 @@ ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() { +@@ -827,8 +848,7 @@ ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() { management::SetLaunchType::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); const Extension* extension = @@ -869,7 +874,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/browser/updater/extension_downloader.cc --- a/extensions/browser/updater/extension_downloader.cc +++ b/extensions/browser/updater/extension_downloader.cc -@@ -493,8 +493,8 @@ void ExtensionDownloader::CreateManifestLoader() { +@@ -494,8 +494,8 @@ void ExtensionDownloader::CreateManifestLoader() { std::vector id_vector(extension_ids.begin(), extension_ids.end()); std::string id_list = base::JoinString(id_vector, ","); @@ -880,7 +885,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro << (active_request->foreground_check() ? kUpdateInteractivityForeground : kUpdateInteractivityBackground); -@@ -519,7 +519,7 @@ void ExtensionDownloader::CreateManifestLoader() { +@@ -520,7 +520,7 @@ void ExtensionDownloader::CreateManifestLoader() { destination: WEBSITE } policy { @@ -889,7 +894,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro cookies_store: "user" setting: "This feature cannot be disabled. It is only enabled when the user " -@@ -536,6 +536,7 @@ void ExtensionDownloader::CreateManifestLoader() { +@@ -537,6 +537,7 @@ void ExtensionDownloader::CreateManifestLoader() { auto resource_request = std::make_unique(); resource_request->url = active_request->full_url(), resource_request->load_flags = net::LOAD_DISABLE_CACHE; @@ -897,7 +902,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro if (active_request->fetch_priority() == DownloadFetchPriority::kForeground) { resource_request->priority = net::MEDIUM; -@@ -544,10 +545,6 @@ void ExtensionDownloader::CreateManifestLoader() { +@@ -545,10 +546,6 @@ void ExtensionDownloader::CreateManifestLoader() { // Send traffic-management headers to the webstore, and omit credentials. // https://bugs.chromium.org/p/chromium/issues/detail?id=647516 if (extension_urls::IsWebstoreUpdateUrl(active_request->full_url())) { @@ -908,7 +913,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro resource_request->headers.SetHeader(kUpdateAppIdHeader, id_list); resource_request->headers.SetHeader( kUpdateUpdaterHeader, -@@ -832,20 +829,6 @@ void ExtensionDownloader::HandleManifestResults( +@@ -833,20 +830,6 @@ void ExtensionDownloader::HandleManifestResults( update.second->info); } @@ -929,7 +934,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro ExtensionIdSet extension_ids_with_errors; for (const auto& failure : failures) extension_ids_with_errors.insert(failure.first.id); -@@ -867,7 +850,7 @@ ExtensionDownloader::GetUpdateAvailability( +@@ -868,7 +851,7 @@ ExtensionDownloader::GetUpdateAvailability( // extensions that have already existed in the system. if (!delegate_->GetExtensionExistingVersion(extension_id, &extension_version)) { @@ -938,7 +943,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro return UpdateAvailability::kBadUpdateSpecification; } VLOG(2) << extension_id << " is at '" << extension_version << "'"; -@@ -878,11 +861,11 @@ ExtensionDownloader::GetUpdateAvailability( +@@ -879,11 +862,11 @@ ExtensionDownloader::GetUpdateAvailability( const std::string& update_version_str = update->version; if (VLOG_IS_ON(2)) { if (update_version_str.empty()) @@ -952,7 +957,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro << " latest version is '" << update_version_str << "'"; } -@@ -892,21 +875,21 @@ ExtensionDownloader::GetUpdateAvailability( +@@ -893,21 +876,21 @@ ExtensionDownloader::GetUpdateAvailability( // we don't want it. if (update_version_str.empty()) { // If update manifest doesn't have version number => no update. @@ -977,7 +982,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro << update_version_str << "'"; bool can_rollback = update_version.CompareTo(existing_version) < 0 && -@@ -933,7 +916,9 @@ ExtensionDownloader::GetUpdateAvailability( +@@ -934,7 +917,9 @@ ExtensionDownloader::GetUpdateAvailability( } // Stop checking as soon as an update for |extension_id| is found. @@ -988,7 +993,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro *update_result_out = const_cast(update); return UpdateAvailability::kAvailable; } -@@ -1178,7 +1163,7 @@ void ExtensionDownloader::CreateExtensionLoader() { +@@ -1179,7 +1164,7 @@ void ExtensionDownloader::CreateExtensionLoader() { int load_flags = net::LOAD_DISABLE_CACHE; bool is_secure = fetch->url.SchemeIsCryptographic(); extension_loader_resource_request_->load_flags = load_flags; @@ -997,7 +1002,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro extension_loader_resource_request_->credentials_mode = network::mojom::CredentialsMode::kOmit; } else { -@@ -1186,7 +1171,7 @@ void ExtensionDownloader::CreateExtensionLoader() { +@@ -1187,7 +1172,7 @@ void ExtensionDownloader::CreateExtensionLoader() { net::SiteForCookies::FromUrl(fetch->url); } @@ -1006,7 +1011,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro is_secure) { if (access_token_.empty()) { // We should try OAuth2, but we have no token cached. This -@@ -1211,7 +1196,7 @@ void ExtensionDownloader::CreateExtensionLoader() { +@@ -1212,7 +1197,7 @@ void ExtensionDownloader::CreateExtensionLoader() { base::StringPrintf("Bearer %s", access_token_.c_str())); } @@ -1015,7 +1020,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro StartExtensionLoader(); } -@@ -1233,7 +1218,7 @@ void ExtensionDownloader::StartExtensionLoader() { +@@ -1234,7 +1219,7 @@ void ExtensionDownloader::StartExtensionLoader() { destination: WEBSITE } policy { @@ -1024,7 +1029,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro cookies_store: "user" setting: "This feature cannot be disabled. It is only enabled when the user " -@@ -1304,6 +1289,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) { +@@ -1305,6 +1290,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) { RETRY_HISTOGRAM("CrxFetchSuccess", extensions_queue_.active_request_failure_count(), url); @@ -1032,7 +1037,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro std::unique_ptr fetch_data = std::move(extensions_queue_.reset_active_request().fetch); delegate_->OnExtensionDownloadStageChanged( -@@ -1324,7 +1310,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) { +@@ -1325,7 +1311,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) { } else { const std::set request_ids = active_request.GetRequestIds(); const ExtensionDownloaderDelegate::PingResult& ping = ping_results_[id]; @@ -1041,7 +1046,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro << "' response code:" << response_code; if (ShouldRetryRequest(extension_loader_.get()) && extensions_queue_.active_request_failure_count() < kMaxRetries) { -@@ -1418,6 +1404,7 @@ void ExtensionDownloader::NotifyExtensionsDownloadFailedWithList( +@@ -1419,6 +1405,7 @@ void ExtensionDownloader::NotifyExtensionsDownloadFailedWithList( bool ExtensionDownloader::IterateFetchCredentialsAfterFailure( ExtensionFetch* fetch, int response_code) { @@ -1063,7 +1068,7 @@ diff --git a/extensions/browser/updater/extension_downloader.h b/extensions/brow diff --git a/extensions/browser/updater/manifest_fetch_data.cc b/extensions/browser/updater/manifest_fetch_data.cc --- a/extensions/browser/updater/manifest_fetch_data.cc +++ b/extensions/browser/updater/manifest_fetch_data.cc -@@ -106,7 +106,7 @@ ManifestFetchData::ManifestFetchData(const GURL& update_url, +@@ -107,7 +107,7 @@ ManifestFetchData::ManifestFetchData(const GURL& update_url, : base_url_(update_url), full_url_(update_url), brand_code_(brand_code), @@ -1072,7 +1077,7 @@ diff --git a/extensions/browser/updater/manifest_fetch_data.cc b/extensions/brow fetch_priority_(fetch_priority) { UpdateFullUrl(base_query_params); request_ids_.insert(request_id); -@@ -160,18 +160,12 @@ bool ManifestFetchData::AddExtension(const std::string& id, +@@ -161,18 +161,12 @@ bool ManifestFetchData::AddExtension(const std::string& id, // Compute the string we'd append onto the full_url_, and see if it fits. std::vector parts; parts.push_back("id=" + id); diff --git a/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch b/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch index 7f73e785f..280c3040f 100644 --- a/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch +++ b/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch @@ -41,7 +41,7 @@ diff --git a/services/network/cors/preflight_cache.h b/services/network/cors/pre diff --git a/services/network/cors/preflight_controller.cc b/services/network/cors/preflight_controller.cc --- a/services/network/cors/preflight_controller.cc +++ b/services/network/cors/preflight_controller.cc -@@ -789,6 +789,10 @@ void PreflightController::ClearCorsPreflightCache( +@@ -811,6 +811,10 @@ void PreflightController::ClearCorsPreflightCache( cache_.ClearCache(std::move(url_filter)); } @@ -55,9 +55,9 @@ diff --git a/services/network/cors/preflight_controller.cc b/services/network/co diff --git a/services/network/cors/preflight_controller.h b/services/network/cors/preflight_controller.h --- a/services/network/cors/preflight_controller.h +++ b/services/network/cors/preflight_controller.h -@@ -141,6 +141,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) PreflightController final { - mojo::PendingRemote - url_loader_network_service_observer); +@@ -157,6 +157,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) PreflightController final { + url_loader_network_service_observer, + const PreflightMode& preflight_mode); + void ClearCache(); + diff --git a/build/patches/Client-hints-overrides.patch b/build/patches/Client-hints-overrides.patch index 5f63b4cfa..f70656618 100644 --- a/build/patches/Client-hints-overrides.patch +++ b/build/patches/Client-hints-overrides.patch @@ -30,12 +30,12 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd @@ -187,9 +187,7 @@ const blink::UserAgentBrandList GetUserAgentBrandList( bool parse_result = base::StringToInt(major_version, &major_version_number); DCHECK(parse_result); - absl::optional brand; + std::optional brand; -#if !BUILDFLAG(CHROMIUM_BRANDING) - brand = version_info::GetProductName(); -#endif + brand = "Google Chrome"; - absl::optional maybe_brand_override = + std::optional maybe_brand_override = base::GetFieldTrialParamValueByFeature(features::kGreaseUACH, "brand_override"); diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/client_hints/client_hints.cc @@ -89,7 +89,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc --- a/content/browser/loader/navigation_url_loader_impl.cc +++ b/content/browser/loader/navigation_url_loader_impl.cc -@@ -1070,6 +1070,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( +@@ -1091,6 +1091,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( return; } @@ -129,12 +129,12 @@ diff --git a/services/network/public/cpp/client_hints.cc b/services/network/publ +++ b/services/network/public/cpp/client_hints.cc @@ -120,6 +120,7 @@ const DecodeMap& GetDecodeMap() { - absl::optional> + std::optional> ParseClientHintsHeader(const std::string& header) { + if ((true)) return absl::nullopt; // Accept-CH is an sh-list of tokens; see: // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-header-structure-19#section-3.1 - absl::optional maybe_list = + std::optional maybe_list = diff --git a/third_party/blink/common/client_hints/client_hints.cc b/third_party/blink/common/client_hints/client_hints.cc --- a/third_party/blink/common/client_hints/client_hints.cc +++ b/third_party/blink/common/client_hints/client_hints.cc @@ -235,7 +235,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.cc b/thir diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -536,6 +536,10 @@ +@@ -499,6 +499,10 @@ name: "ByobFetch", status: "stable", }, diff --git a/build/patches/Compress-libchrome-to-free-up-some-space.patch b/build/patches/Compress-libchrome-to-free-up-some-space.patch index 5f215ba45..e97e85563 100644 --- a/build/patches/Compress-libchrome-to-free-up-some-space.patch +++ b/build/patches/Compress-libchrome-to-free-up-some-space.patch @@ -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 -@@ -641,6 +641,7 @@ template("chrome_common_apk_or_module_tmpl") { +@@ -642,6 +642,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" ] diff --git a/build/patches/Content-settings-infrastructure.patch b/build/patches/Content-settings-infrastructure.patch index 0d0a622d5..c49add3ee 100644 --- a/build/patches/Content-settings-infrastructure.patch +++ b/build/patches/Content-settings-infrastructure.patch @@ -32,6 +32,7 @@ Require: bromite-build-utils.patch .../views/page_info/page_info_view_factory.h | 3 + .../page_info/permission_toggle_row_view.cc | 163 ++++++- .../page_info/permission_toggle_row_view.h | 18 +- + .../privacy_sandbox_internals_handler.cc | 2 +- .../settings_localized_strings_provider.cc | 54 +++ .../ui/webui/settings/site_settings_helper.cc | 34 +- .../browser_ui/settings/android/BUILD.gn | 1 + @@ -84,7 +85,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, 1832 insertions(+), 85 deletions(-) + 74 files changed, 1833 insertions(+), 86 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 @@ -151,7 +152,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 -@@ -1390,4 +1390,5 @@ +@@ -1369,4 +1369,5 @@ @@ -160,7 +161,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/chrome/browser/resources/settings/privacy_page/privacy_page.ts --- a/chrome/browser/resources/settings/privacy_page/privacy_page.ts +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.ts -@@ -47,6 +47,7 @@ import {SiteSettingsPrefsBrowserProxy, SiteSettingsPrefsBrowserProxyImpl} from ' +@@ -51,6 +51,7 @@ import {SiteSettingsPrefsBrowserProxyImpl} from '../site_settings/site_settings_ import {PrivacyGuideAvailabilityMixin} from './privacy_guide/privacy_guide_availability_mixin.js'; import {getTemplate} from './privacy_page.html.js'; @@ -168,7 +169,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch interface BlockAutoplayStatus { enabled: boolean; -@@ -70,8 +71,82 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { +@@ -74,8 +75,82 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { return 'settings-privacy-page'; } @@ -255,15 +256,15 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts --- a/chrome/browser/resources/settings/route.ts +++ b/chrome/browser/resources/settings/route.ts -@@ -7,6 +7,7 @@ import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; - +@@ -8,6 +8,7 @@ import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {pageVisibility} from './page_visibility.js'; - import {Route, Router, SettingsRoutes} from './router.js'; + import type {SettingsRoutes} from './router.js'; + import {Route, Router} from './router.js'; +import {setupContentSettingsRoutes} from './site_settings_page/site_settings_page_util.js' /** * Add all of the child routes that originate from the privacy route, -@@ -140,6 +141,7 @@ function addPrivacyChildRoutes(r: Partial) { +@@ -141,6 +142,7 @@ function addPrivacyChildRoutes(r: Partial) { r.SITE_SETTINGS_STORAGE_ACCESS = r.SITE_SETTINGS.createChild('storageAccess'); } @@ -295,7 +296,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d diff --git a/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts b/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts --- a/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts +++ b/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts -@@ -29,6 +29,7 @@ import {ContentSettingProvider, DefaultContentSetting} from './site_settings_pre +@@ -30,6 +30,7 @@ import {ContentSettingProvider} from './site_settings_prefs_browser_proxy.js'; export enum SiteContentRadioSetting { DISABLED = 0, ENABLED = 1, @@ -303,7 +304,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d } export interface SettingsCategoryDefaultRadioGroupElement { -@@ -76,6 +77,10 @@ export class SettingsCategoryDefaultRadioGroupElement extends +@@ -77,6 +78,10 @@ export class SettingsCategoryDefaultRadioGroupElement extends blockOptionSubLabel: String, blockOptionIcon: String, @@ -314,7 +315,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d siteContentRadioSettingEnum_: { type: Object, value: SiteContentRadioSetting, -@@ -111,6 +116,9 @@ export class SettingsCategoryDefaultRadioGroupElement extends +@@ -112,6 +117,9 @@ export class SettingsCategoryDefaultRadioGroupElement extends blockOptionLabel: string; blockOptionSubLabel: string; blockOptionIcon: string; @@ -324,7 +325,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d private pref_: chrome.settingsPrivate.PrefObject; override ready() { -@@ -121,6 +129,13 @@ export class SettingsCategoryDefaultRadioGroupElement extends +@@ -122,6 +130,13 @@ export class SettingsCategoryDefaultRadioGroupElement extends (category: ContentSettingsTypes) => this.onCategoryChanged_(category)); } @@ -369,7 +370,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 -@@ -289,4 +289,5 @@ +@@ -282,4 +282,5 @@ label="$i18n{siteSettingsAutoPictureInPicture}"> @@ -378,7 +379,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b diff --git a/chrome/browser/resources/settings/site_settings/site_details.ts b/chrome/browser/resources/settings/site_settings/site_details.ts --- a/chrome/browser/resources/settings/site_settings/site_details.ts +++ b/chrome/browser/resources/settings/site_settings/site_details.ts -@@ -60,8 +60,39 @@ export class SiteDetailsElement extends SiteDetailsElementBase { +@@ -62,8 +62,39 @@ export class SiteDetailsElement extends SiteDetailsElementBase { return 'site-details'; } @@ -537,15 +538,15 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_details_permis diff --git a/chrome/browser/resources/settings/site_settings/site_settings_mixin.ts b/chrome/browser/resources/settings/site_settings/site_settings_mixin.ts --- a/chrome/browser/resources/settings/site_settings/site_settings_mixin.ts +++ b/chrome/browser/resources/settings/site_settings/site_settings_mixin.ts -@@ -11,6 +11,7 @@ import {dedupingMixin, PolymerElement} from 'chrome://resources/polymer/v3_0/pol - - import {ContentSetting,ContentSettingsTypes, SiteSettingSource} from './constants.js'; - import {RawSiteException,SiteException,SiteSettingsPrefsBrowserProxy,SiteSettingsPrefsBrowserProxyImpl} from './site_settings_prefs_browser_proxy.js'; +@@ -14,6 +14,7 @@ import type {ContentSettingsTypes} from './constants.js'; + import {ContentSetting, SiteSettingSource} from './constants.js'; + import type {RawSiteException,SiteException,SiteSettingsPrefsBrowserProxy} from './site_settings_prefs_browser_proxy.js'; + import {SiteSettingsPrefsBrowserProxyImpl} from './site_settings_prefs_browser_proxy.js'; +import {loadTimeData} from '../i18n_setup.js'; // clang-format on type Constructor = new (...args: any[]) => T; -@@ -91,6 +92,21 @@ export const SiteSettingsMixin = dedupingMixin( +@@ -94,6 +95,21 @@ export const SiteSettingsMixin = dedupingMixin( return setting !== ContentSetting.BLOCK; } @@ -567,7 +568,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_settings_mixin /** * Converts a string origin/pattern to a URL. * @param originOrPattern The origin/pattern to convert to URL. -@@ -171,6 +187,8 @@ export interface SiteSettingsMixinInterface { +@@ -174,6 +190,8 @@ export interface SiteSettingsMixinInterface { browserProxy: SiteSettingsPrefsBrowserProxy; category: ContentSettingsTypes; computeIsSettingEnabled(setting: string): boolean; @@ -579,7 +580,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_settings_mixin diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts --- a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts +++ b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts -@@ -45,7 +45,7 @@ function getCategoryItemMap(): Map { +@@ -47,7 +47,7 @@ function getCategoryItemMap(): Map { } // The following list is ordered alphabetically by |id|. The order in which // these appear in the UI is determined elsewhere in this file. @@ -588,7 +589,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_ { route: routes.SITE_SETTINGS_ADS, id: Id.ADS, -@@ -389,10 +389,36 @@ function getCategoryItemMap(): Map { +@@ -391,10 +391,36 @@ function getCategoryItemMap(): Map { disabledLabel: 'trackingProtectionLinkRowSubLabel', }); } @@ -625,7 +626,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_ function buildItemListFromIds(orderedIdList: ContentSettingsTypes[]): CategoryListItem[] { const map = getCategoryItemMap(); -@@ -484,7 +510,7 @@ export class SettingsSiteSettingsPageElement extends +@@ -486,7 +512,7 @@ export class SettingsSiteSettingsPageElement extends Id.IMAGES, Id.POPUPS, ]), @@ -692,7 +693,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|. -@@ -93,6 +141,13 @@ export function getLocalizationStringForContentType( +@@ -92,6 +140,13 @@ export function getLocalizationStringForContentType( case ContentSettingsTypes.SITE_DATA: return null; default: @@ -709,8 +710,8 @@ 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 -@@ -2068,6 +2068,7 @@ static_library("ui") { - "//components/commerce/core/mojom:mojo_bindings", +@@ -2043,6 +2043,7 @@ static_library("ui") { + "//components/commerce/core:shopping_service", "//components/commerce/core/webui", "//components/endpoint_fetcher:endpoint_fetcher", + "//components/content_settings/core/browser:browser", @@ -830,8 +831,8 @@ 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 = -@@ -508,6 +516,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( - icon = &vector_icons::kPictureInPictureIcon; +@@ -509,6 +517,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( + icon = &kFullscreenIcon; break; default: + bool found = false; @@ -1129,6 +1130,18 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.h b/ch raw_ptr delegate_ = nullptr; raw_ptr navigation_handler_ = nullptr; +diff --git a/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_internals_handler.cc b/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_internals_handler.cc +--- a/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_internals_handler.cc ++++ b/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_internals_handler.cc +@@ -41,7 +41,7 @@ void PrivacySandboxInternalsHandler::ReadPref(const std::string& pref_name, + void PrivacySandboxInternalsHandler::ReadContentSettings( + const ContentSettingsType type, + ReadContentSettingsCallback callback) { +- if (!IsKnownEnumValue(type) || type == ContentSettingsType::NUM_TYPES) { ++ if (!IsKnownEnumValue(type) || type == ContentSettingsType::NUM_TYPES_BROMITE) { + mojo::ReportBadMessage( + "ReadContentSettings received invalid ContentSettingsType"); + return; diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc @@ -1150,7 +1163,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" -@@ -3738,6 +3742,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -3789,6 +3793,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, policy_indicator::AddLocalizedStrings(html_source); AddSecurityKeysStrings(html_source); @@ -1219,7 +1232,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" -@@ -215,7 +217,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { +@@ -219,7 +221,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { static_assert(std::size(kContentSettingsTypeGroupNames) == // ContentSettingsType starts at -1, so add 1 here. @@ -1228,7 +1241,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b "kContentSettingsTypeGroupNames should have " "CONTENT_SETTINGS_NUM_TYPES elements"); -@@ -468,6 +470,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { +@@ -471,6 +473,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { return true; } } @@ -1242,7 +1255,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b return false; } -@@ -481,11 +490,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(base::StringPiece name) { +@@ -484,11 +493,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(base::StringPiece name) { return entry.type; } } @@ -1268,7 +1281,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 -@@ -500,7 +522,6 @@ base::StringPiece ContentSettingsTypeToGroupName(ContentSettingsType type) { +@@ -503,7 +525,6 @@ base::StringPiece ContentSettingsTypeToGroupName(ContentSettingsType type) { return entry.name ? entry.name : base::StringPiece(); } } @@ -1276,8 +1289,8 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b NOTREACHED() << static_cast(type) << " is not a recognized content settings type."; return base::StringPiece(); -@@ -585,6 +606,13 @@ const std::vector& GetVisiblePermissionCategories() { - base_types->push_back(ContentSettingsType::WEB_PRINTING); +@@ -587,6 +608,13 @@ const std::vector& GetVisiblePermissionCategories() { + base_types->push_back(ContentSettingsType::SPEAKER_SELECTION); } + content_settings::WebsiteSettingsRegistry* website_settings = @@ -2134,7 +2147,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c int icon, int title, @ContentSettingValues @Nullable Integer defaultEnabledValue, -@@ -437,6 +437,8 @@ public class ContentSettingsResources { +@@ -427,6 +427,8 @@ public class ContentSettingsResources { R.string.website_settings_category_vr_blocked, R.string.website_settings_category_vr_a11y); } @@ -2143,7 +2156,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c assert false; // NOTREACHED return null; } -@@ -600,6 +602,14 @@ public class ContentSettingsResources { +@@ -590,6 +592,14 @@ public class ContentSettingsResources { return getResourceItem(contentType, null).getDefaultDisabledValue(); } @@ -2158,7 +2171,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c /** * Returns the string resource id for a given ContentSetting to show with a permission category. * -@@ -762,6 +772,8 @@ public class ContentSettingsResources { +@@ -752,6 +762,8 @@ public class ContentSettingsResources { * Blocked states, in that order. */ public static int[] getTriStateSettingDescriptionIDs(int contentType) { @@ -2241,7 +2254,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c assert resource > 0; return getString(resource); } -@@ -921,6 +942,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -919,6 +940,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment default: break; } @@ -2250,7 +2263,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (allowSpecifyingExceptions) { getPreferenceScreen() .addPreference( -@@ -1109,8 +1132,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1107,8 +1130,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment private boolean isBlocked() { switch (mGlobalToggleLayout) { case GlobalToggleLayout.TRI_STATE_TOGGLE: @@ -2267,7 +2280,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 = -@@ -1175,7 +1206,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1173,7 +1204,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else if (mCategory.getType() == SiteSettingsCategory.Type.STORAGE_ACCESS) { infoText.setSummary(getStorageAccessSummary()); } else { @@ -2280,7 +2293,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // Hide the anti-abuse text preferences, as needed. -@@ -1199,6 +1234,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1197,6 +1232,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment screen.removePreference(antiAbuseThingsToConsiderHeader); screen.removePreference(antiAbuseThingsToConsiderSectionOne); } @@ -2288,7 +2301,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (permissionBlockedByOs) { maybeShowOsWarning(screen); -@@ -1350,7 +1386,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1348,7 +1384,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment getSiteSettingsDelegate().getBrowserContextHandle(), contentType); int[] descriptionIds = ContentSettingsResources.getTriStateSettingDescriptionIDs(contentType); @@ -2297,7 +2310,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } private void configureBinaryToggle(ChromeSwitchPreference binaryToggle, int contentType) { -@@ -1461,6 +1497,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1459,6 +1495,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment @ContentSettingValues Integer value = site.getContentSetting(browserContextHandle, contentSettingsType); @@ -2315,7 +2328,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 -@@ -48,6 +48,7 @@ import java.util.Collection; +@@ -46,6 +46,7 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -2323,7 +2336,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 -@@ -168,7 +169,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -164,7 +165,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment case ContentSettingsType.CLIPBOARD_READ_WRITE: return "clipboard_permission_list"; default: @@ -2332,7 +2345,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } } -@@ -545,8 +546,21 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -534,8 +535,21 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment private void setupContentSettingsPreferences() { mMaxPermissionOrder = findPreference(PREF_PERMISSIONS_HEADER).getOrder(); @@ -2356,7 +2369,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c preference.setKey(getPreferenceKey(type)); if (type == ContentSettingsType.ADS) { -@@ -1071,20 +1085,32 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1060,20 +1074,32 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment @ContentSettingValues @Nullable Integer value, boolean isEmbargoed, boolean isOneTime) { @@ -2395,7 +2408,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } if (isSessionPermission(contentType)) { switchPreference.setSummary(switchPreference.getSummary() + " " + -@@ -1261,7 +1287,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1250,7 +1276,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment if (mPreferenceMap == null) { mPreferenceMap = new HashMap<>(); for (@ContentSettingsType.EnumType int type = 0; @@ -2404,7 +2417,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c type++) { String key = getPreferenceKey(type); if (key != null) { -@@ -1299,14 +1325,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1288,14 +1314,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment permission = (Boolean) newValue ? ContentSettingValues.ALLOW : ContentSettingValues.BLOCK; } else { @@ -2427,7 +2440,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c preference.setIcon(getContentSettingsIcon(type, permission)); if (mWebsiteSettingsObserver != null) { -@@ -1335,7 +1367,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1324,7 +1356,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment // for its logic. This class should maintain its own data model, and only update the screen // after a change is made. for (@ContentSettingsType.EnumType int type = 0; @@ -2646,16 +2659,16 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java -@@ -114,7 +114,7 @@ public class WebsitePermissionsFetcher { - } - return null; +@@ -108,7 +108,7 @@ public class WebsitePermissionsFetcher { + case ContentSettingsType.USB_GUARD: + return WebsitePermissionsType.CHOSEN_OBJECT_INFO; default: - return null; + return BromiteCustomContentSettingImpl.getPermissionsType(contentSettingsType); } } -@@ -226,7 +226,7 @@ public class WebsitePermissionsFetcher { +@@ -220,7 +220,7 @@ public class WebsitePermissionsFetcher { addFetcherForStorage(queue); queue.add(new CookiesInfoFetcher()); for (@ContentSettingsType.EnumType int type = 0; @@ -2794,8 +2807,8 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. namespace content_settings { -@@ -711,6 +712,7 @@ void ContentSettingsRegistry::Init() { - WebsiteSettingsRegistry::PLATFORM_CHROMEOS, +@@ -730,6 +731,7 @@ void ContentSettingsRegistry::Init() { + WebsiteSettingsRegistry::ALL_PLATFORMS, ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE, ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); +#include "components/content_settings/core/browser/bromite_content_settings.inc" @@ -2805,7 +2818,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 -@@ -184,8 +184,9 @@ void RecordContentSettingsHistogram(const std::string& name, +@@ -187,8 +187,9 @@ void RecordContentSettingsHistogram(const std::string& name, } int ContentSettingTypeToHistogramValue(ContentSettingsType content_setting) { @@ -2930,7 +2943,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 -@@ -56,6 +56,13 @@ static_library("common") { +@@ -57,6 +57,13 @@ static_library("common") { "//net", "//url", ] @@ -2999,9 +3012,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 -@@ -74,10 +74,20 @@ typedef std::vector ContentSettingsForOneType; - typedef std::map - HostIndexedContentSettings; +@@ -71,10 +71,20 @@ std::ostream& operator<<(std::ostream& os, + + typedef std::vector ContentSettingsForOneType; +struct ContentSettingRuleSource { + int type; @@ -3023,8 +3036,8 @@ 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 -@@ -76,6 +76,11 @@ struct RuleMetaData { - mojo_base.mojom.TimeDelta lifetime; +@@ -78,6 +78,11 @@ struct RuleMetaData { + TpcdMetadataRuleSource tpcd_metadata_rule_source; }; +struct ContentSettingRuleSource { @@ -3035,7 +3048,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; -@@ -89,6 +94,7 @@ struct ContentSettingPatternSource { +@@ -91,6 +96,7 @@ struct ContentSettingPatternSource { // This mirrors the C++ type in content_settings.h. // TODO(https://crbug.com/1485360): This should be removed. struct RendererContentSettingRules { @@ -3046,7 +3059,7 @@ diff --git a/components/content_settings/core/common/content_settings.mojom b/co diff --git a/components/content_settings/core/common/content_settings_mojom_traits.cc b/components/content_settings/core/common/content_settings_mojom_traits.cc --- a/components/content_settings/core/common/content_settings_mojom_traits.cc +++ b/components/content_settings/core/common/content_settings_mojom_traits.cc -@@ -154,12 +154,22 @@ bool StructTraitsmetadata) && data.ReadSource(&out->source); } @@ -3073,7 +3086,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai diff --git a/components/content_settings/core/common/content_settings_mojom_traits.h b/components/content_settings/core/common/content_settings_mojom_traits.h --- a/components/content_settings/core/common/content_settings_mojom_traits.h +++ b/components/content_settings/core/common/content_settings_mojom_traits.h -@@ -169,10 +169,34 @@ struct StructTraits< +@@ -174,10 +174,34 @@ struct StructTraits< ContentSettingPatternSource* out); }; @@ -3123,16 +3136,15 @@ diff --git a/components/content_settings/core/common/content_settings_param_trai 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, +@@ -399,5 +399,7 @@ enum ContentSettingsType { + SPEAKER_SELECTION, + - NUM_TYPES, + NUM_TYPES_CHROMIUM, +#include "components/content_settings/core/common/bromite_content_settings.inc" + NUM_TYPES_BROMITE, }; - diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc b/components/content_settings/renderer/content_settings_agent_impl.cc --- a/components/content_settings/renderer/content_settings_agent_impl.cc +++ b/components/content_settings/renderer/content_settings_agent_impl.cc @@ -3248,7 +3260,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp std::map user_specified_settings_to_display; std::map -@@ -211,6 +221,14 @@ absl::optional PageInfoControllerAndroid::GetSettingToDisplay( +@@ -211,6 +221,14 @@ std::optional PageInfoControllerAndroid::GetSettingToDisplay( return permission.setting; } @@ -3267,14 +3279,14 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info. --- a/components/page_info/page_info.cc +++ b/components/page_info/page_info.cc @@ -24,6 +24,7 @@ + #include "build/chromeos_buildflags.h" #include "components/browsing_data/content/browsing_data_helper.h" - #include "components/browsing_data/core/features.h" #include "components/content_settings/browser/page_specific_content_settings.h" +#include "components/content_settings/core/browser/website_settings_registry.h" #include "components/content_settings/browser/ui/cookie_controls_controller.h" #include "components/content_settings/core/browser/content_settings_registry.h" #include "components/content_settings/core/browser/content_settings_uma_util.h" -@@ -1236,6 +1237,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1225,6 +1226,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, // applies to permissions listed in |kPermissionType|. bool PageInfo::ShouldShowPermission( const PageInfo::PermissionInfo& info) const { @@ -3289,7 +3301,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) { -@@ -1362,7 +1371,19 @@ void PageInfo::PresentSitePermissions() { +@@ -1331,7 +1340,19 @@ void PageInfo::PresentSitePermissions() { HostContentSettingsMap* content_settings = GetContentSettings(); DCHECK(web_contents_); @@ -3321,7 +3333,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" -@@ -624,6 +625,12 @@ PageInfoUI::~PageInfoUI() = default; +@@ -615,6 +616,12 @@ PageInfoUI::~PageInfoUI() = default; // static std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { @@ -3334,7 +3346,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); -@@ -635,6 +642,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { +@@ -626,6 +633,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { // static std::u16string PageInfoUI::PermissionTypeToUIStringMidSentence( ContentSettingsType type) { @@ -3347,7 +3359,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); -@@ -1069,6 +1082,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) { +@@ -1060,6 +1073,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) { if (info.type == type) return true; } diff --git a/build/patches/Cromite-Branding.patch b/build/patches/Cromite-Branding.patch index 3755b73b7..00bd6fcae 100644 --- a/build/patches/Cromite-Branding.patch +++ b/build/patches/Cromite-Branding.patch @@ -53,7 +53,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/build/BUILD.gn b/build/BUILD.gn --- a/build/BUILD.gn +++ b/build/BUILD.gn -@@ -51,6 +51,14 @@ buildflag_header("branding_buildflags") { +@@ -55,6 +55,14 @@ buildflag_header("branding_buildflags") { } } @@ -13147,7 +13147,7 @@ e)fqMZZ`3a)Ds&5H @@ -13221,7 +13221,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h --- a/chrome/common/url_constants.h +++ b/chrome/common/url_constants.h -@@ -114,7 +114,7 @@ inline constexpr char kChromeHelpViaMenuURL[] = +@@ -126,7 +126,7 @@ inline constexpr char kChromeHelpViaMenuURL[] = #endif // BUILDFLAG(IS_CHROMEOS_ASH) inline constexpr char kChromeHelpViaWebUIURL[] = @@ -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) -@@ -177,7 +177,7 @@ inline constexpr char kChromeUIUntrustedNewTabPageUrl[] = +@@ -189,7 +189,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 -@@ -997,7 +997,7 @@ +@@ -994,7 +994,7 @@ @@ -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 -@@ -625,4 +625,6 @@ BASE_FEATURE(kUseGammaContrastRegistrySettings, +@@ -643,4 +643,6 @@ BASE_FEATURE(kUseGammaContrastRegistrySettings, base::FEATURE_DISABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_WIN) diff --git a/build/patches/Customize-selection-popup.patch b/build/patches/Customize-selection-popup.patch index d9dbb147c..d789beb02 100644 --- a/build/patches/Customize-selection-popup.patch +++ b/build/patches/Customize-selection-popup.patch @@ -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 -@@ -723,10 +723,17 @@ public class ChromeTabbedActivity extends ChromeActivity ComponentUpdateServiceFactory( +@@ -539,7 +539,7 @@ std::unique_ptr 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. diff --git a/build/patches/Disable-Compose-feature.patch b/build/patches/Disable-Compose-feature.patch index 07d349416..a1d5b7415 100644 --- a/build/patches/Disable-Compose-feature.patch +++ b/build/patches/Disable-Compose-feature.patch @@ -10,9 +10,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/components/compose/core/browser/compose_features.cc b/components/compose/core/browser/compose_features.cc --- a/components/compose/core/browser/compose_features.cc +++ b/components/compose/core/browser/compose_features.cc -@@ -48,4 +48,7 @@ BASE_FEATURE(kEnableComposeSavedStateNotification, - BASE_FEATURE(kComposeUiParams, - "ComposeUiParams", +@@ -56,4 +56,7 @@ BASE_FEATURE(kComposeTextOutputAnimation, + BASE_FEATURE(kComposeTextSelection, + "ComposeTextSelection", base::FEATURE_DISABLED_BY_DEFAULT); + +SET_CROMITE_FEATURE_DISABLED(kEnableCompose); diff --git a/build/patches/Disable-Compression-Dictionary-Transport.patch b/build/patches/Disable-Compression-Dictionary-Transport.patch index 5b0b882e2..2fcba1aeb 100644 --- a/build/patches/Disable-Compression-Dictionary-Transport.patch +++ b/build/patches/Disable-Compression-Dictionary-Transport.patch @@ -10,14 +10,14 @@ 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 -@@ -705,16 +705,18 @@ +@@ -651,16 +651,18 @@ } }, { - name: "CompressionDictionaryTransport", + name: "CompressionDictionaryTransport", // need to be disabled base_feature: "none", - origin_trial_feature_name: "CompressionDictionaryTransport", + origin_trial_feature_name: "CompressionDictionaryTransportV2", origin_trial_allows_third_party: true, public: true, + status: "experimental", diff --git a/build/patches/Disable-FLoC-and-privacy-sandbox.patch b/build/patches/Disable-FLoC-and-privacy-sandbox.patch index 97f2a48f3..e24f71854 100644 --- a/build/patches/Disable-FLoC-and-privacy-sandbox.patch +++ b/build/patches/Disable-FLoC-and-privacy-sandbox.patch @@ -25,7 +25,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 -@@ -3240,6 +3240,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed( +@@ -3239,6 +3239,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed( const url::Origin* destination_origin, const url::Origin* reporting_origin, bool* can_bypass) { @@ -59,7 +59,7 @@ diff --git a/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt.cc b/chrom diff --git a/components/history/core/browser/history_backend.cc b/components/history/core/browser/history_backend.cc --- a/components/history/core/browser/history_backend.cc +++ b/components/history/core/browser/history_backend.cc -@@ -655,18 +655,7 @@ void HistoryBackend::SetBrowsingTopicsAllowed(ContextID context_id, +@@ -656,18 +656,7 @@ void HistoryBackend::SetBrowsingTopicsAllowed(ContextID context_id, if (!visit_id) return; @@ -94,7 +94,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_san diff --git a/components/privacy_sandbox/privacy_sandbox_features.cc b/components/privacy_sandbox/privacy_sandbox_features.cc --- a/components/privacy_sandbox/privacy_sandbox_features.cc +++ b/components/privacy_sandbox/privacy_sandbox_features.cc -@@ -164,4 +164,8 @@ BASE_FEATURE(kTrackingProtectionNoticeRequestTracking, +@@ -167,4 +167,8 @@ BASE_FEATURE(kTrackingProtectionNoticeRequestTracking, base::FEATURE_DISABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_ANDROID) @@ -127,7 +127,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/pr diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/components/privacy_sandbox/privacy_sandbox_settings_impl.cc --- a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc +++ b/components/privacy_sandbox/privacy_sandbox_settings_impl.cc -@@ -121,7 +121,7 @@ std::set GetTopicsSetFromString( +@@ -123,7 +123,7 @@ std::set GetTopicsSetFromString( // static bool PrivacySandboxSettingsImpl::IsAllowed(Status status) { @@ -136,7 +136,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo } // static -@@ -230,7 +230,8 @@ PrivacySandboxSettingsImpl::GetFinchPrioritizedTopics() { +@@ -232,7 +232,8 @@ PrivacySandboxSettingsImpl::GetFinchPrioritizedTopics() { return finch_prioritized_topics_; } @@ -146,7 +146,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo Status status = GetM1TopicAllowedStatus(); JoinHistogram(kIsTopicsAllowedHistogram, status); return IsAllowed(status); -@@ -262,7 +263,8 @@ bool PrivacySandboxSettingsImpl::IsTopicsAllowedForContext( +@@ -264,7 +265,8 @@ bool PrivacySandboxSettingsImpl::IsTopicsAllowedForContext( return IsAllowed(status); } @@ -156,7 +156,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo const auto& blocked_topics = pref_service_->GetList(prefs::kPrivacySandboxBlockedTopics); -@@ -464,6 +466,7 @@ bool PrivacySandboxSettingsImpl:: +@@ -466,6 +468,7 @@ bool PrivacySandboxSettingsImpl:: void PrivacySandboxSettingsImpl::SetFledgeJoiningAllowed( const std::string& top_frame_etld_plus1, bool allowed) { @@ -164,7 +164,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo ScopedDictPrefUpdate scoped_pref_update( pref_service_, prefs::kPrivacySandboxFledgeJoinBlocked); -@@ -534,7 +537,8 @@ void PrivacySandboxSettingsImpl::ClearFledgeJoiningAllowedSettings( +@@ -536,7 +539,8 @@ void PrivacySandboxSettingsImpl::ClearFledgeJoiningAllowedSettings( } bool PrivacySandboxSettingsImpl::IsFledgeJoiningAllowed( @@ -174,7 +174,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo ScopedDictPrefUpdate scoped_pref_update( pref_service_, prefs::kPrivacySandboxFledgeJoinBlocked); auto& pref_data = scoped_pref_update.Get(); -@@ -742,7 +746,10 @@ void PrivacySandboxSettingsImpl::SetDelegateForTesting( +@@ -782,7 +786,10 @@ void PrivacySandboxSettingsImpl::SetDelegateForTesting( delegate_ = std::move(delegate); } @@ -186,7 +186,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo pref_service_->SetTime(prefs::kPrivacySandboxTopicsDataAccessibleSince, base::Time::Now()); -@@ -755,6 +762,7 @@ PrivacySandboxSettingsImpl::Status +@@ -795,6 +802,7 @@ PrivacySandboxSettingsImpl::Status PrivacySandboxSettingsImpl::GetSiteAccessAllowedStatus( const url::Origin& top_frame_origin, const GURL& url) const { @@ -194,7 +194,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo // Relying on |host_content_settings_map_| instead of |cookie_settings_| // allows to query whether the site associated with the |url| is allowed to // access Site data (aka ContentSettingsType::COOKIES) without considering any -@@ -769,6 +777,7 @@ PrivacySandboxSettingsImpl::GetSiteAccessAllowedStatus( +@@ -809,6 +817,7 @@ PrivacySandboxSettingsImpl::GetSiteAccessAllowedStatus( PrivacySandboxSettingsImpl::Status PrivacySandboxSettingsImpl::GetPrivacySandboxAllowedStatus( bool should_ignore_restriction /*=false*/) const { @@ -211,7 +211,7 @@ new file mode 100644 diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -2329,6 +2329,7 @@ bool IsAllowPageWithIDBConnectionAndTransactionInBFCacheEnabled() { +@@ -2462,6 +2462,7 @@ bool IsAllowPageWithIDBConnectionAndTransactionInBFCacheEnabled() { } bool IsAllowURNsInIframeEnabled() { diff --git a/build/patches/Disable-FedCm.patch b/build/patches/Disable-FedCm.patch index d0eacd470..69c210313 100644 --- a/build/patches/Disable-FedCm.patch +++ b/build/patches/Disable-FedCm.patch @@ -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 -@@ -1600,7 +1600,7 @@ +@@ -1570,7 +1570,7 @@ { name: "FedCm", public: true, diff --git a/build/patches/Disable-GSA-by-default.patch b/build/patches/Disable-GSA-by-default.patch index 57323e99c..bd1b1ff5e 100644 --- a/build/patches/Disable-GSA-by-default.patch +++ b/build/patches/Disable-GSA-by-default.patch @@ -21,8 +21,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j -import org.chromium.chrome.browser.gsa.GSAState; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteControllerProvider; import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.renderer_host.ChromeNavigationUIData; -@@ -243,8 +242,6 @@ public class IntentHandler { + import org.chromium.chrome.browser.profiles.ProfileManager; +@@ -244,8 +243,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"; -@@ -460,8 +457,6 @@ public class IntentHandler { +@@ -461,8 +458,6 @@ public class IntentHandler { return ExternalAppId.LINE; } else if (packageName.equals(PACKAGE_WHATSAPP)) { return ExternalAppId.WHATSAPP; @@ -85,7 +85,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAState.java b/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAState.java --- a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAState.java +++ b/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAState.java -@@ -32,8 +32,6 @@ import java.util.regex.Pattern; +@@ -31,8 +31,6 @@ import java.util.regex.Pattern; /** A class responsible for representing the current state of Chrome's integration with GSA. */ public class GSAState { @@ -94,7 +94,7 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAStat /** Used to observe state changes in the class. */ public interface Observer { /** Called when the GSA account name is set. */ -@@ -71,7 +69,7 @@ public class GSAState { +@@ -70,7 +68,7 @@ public class GSAState { private final ObserverList mObserverList = new ObserverList<>(); /** Caches the result of a computation on whether GSA is available. */ @@ -103,7 +103,7 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAStat /** * The Google account email address being used by GSA according to the latest update we have -@@ -153,7 +151,7 @@ public class GSAState { +@@ -152,7 +150,7 @@ public class GSAState { /** Returns whether the GSA package is installed on device. */ public boolean isGsaInstalled() { @@ -112,7 +112,7 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAStat } /** -@@ -176,6 +174,7 @@ public class GSAState { +@@ -175,6 +173,7 @@ public class GSAState { */ public boolean isAgsaVersionBelowMinimum( String installedVersionName, String minimumVersionName) { @@ -120,7 +120,7 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAStat if (TextUtils.isEmpty(installedVersionName) || TextUtils.isEmpty(minimumVersionName)) { return true; } -@@ -207,7 +206,7 @@ public class GSAState { +@@ -206,7 +205,7 @@ public class GSAState { * @return Whether the given intent can be handled by Agsa. */ public boolean canAgsaHandleIntent(@NonNull Intent intent) { @@ -129,7 +129,7 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAStat ComponentName activity = intent.resolveActivity(ContextUtils.getApplicationContext().getPackageManager()); -@@ -221,7 +220,7 @@ public class GSAState { +@@ -220,7 +219,7 @@ public class GSAState { * @return The version name of the Agsa package or null if it can't be found. */ public @Nullable String getAgsaVersionName() { diff --git a/build/patches/Disable-GetInstalledRelatedApps-API.patch b/build/patches/Disable-GetInstalledRelatedApps-API.patch index 29dd61cbd..009fa9f62 100644 --- a/build/patches/Disable-GetInstalledRelatedApps-API.patch +++ b/build/patches/Disable-GetInstalledRelatedApps-API.patch @@ -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 -@@ -2160,9 +2160,9 @@ +@@ -2114,9 +2114,9 @@ status: {"Android": "test", "default": "stable"}, }, { diff --git a/build/patches/Disable-Real-Box.patch b/build/patches/Disable-Real-Box.patch index 56754cc05..b2fe002a9 100644 --- a/build/patches/Disable-Real-Box.patch +++ b/build/patches/Disable-Real-Box.patch @@ -13,7 +13,7 @@ Real-box is search box in ntp 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, +@@ -2072,7 +2072,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, registry->RegisterBooleanPref( prefs::kLensRegionSearchEnabled, true, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); @@ -25,7 +25,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse 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 -@@ -403,11 +403,6 @@ +@@ -498,11 +498,6 @@ hidden$="[[!logoEnabled_]]">

@@ -40,7 +40,7 @@ diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/res 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, +@@ -672,7 +672,7 @@ void RealboxHandler::SetupWebUIDataSource(content::WebUIDataSource* source, source->AddBoolean( "realboxLensSearch", @@ -52,7 +52,7 @@ diff --git a/chrome/browser/ui/webui/realbox/realbox_handler.cc b/chrome/browser 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 -@@ -165,7 +165,7 @@ BASE_FEATURE(kNtpHandleMostVisitedNavigationExplicitly, +@@ -171,7 +171,7 @@ BASE_FEATURE(kNtpHandleMostVisitedNavigationExplicitly, base::FEATURE_ENABLED_BY_DEFAULT); // If enabled, logo will be shown. @@ -61,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, -@@ -242,8 +242,8 @@ BASE_FEATURE(kNtpMostVisitedReflowOnOverflow, +@@ -248,8 +248,8 @@ BASE_FEATURE(kNtpMostVisitedReflowOnOverflow, // If enabled, OneGoogleBar will be shown. BASE_FEATURE(kNtpOneGoogleBar, diff --git a/build/patches/Disable-Service-and-Shared-workers-on-3P-iframe.patch b/build/patches/Disable-Service-and-Shared-workers-on-3P-iframe.patch index 8e55d40e8..6d7bb5b6e 100644 --- a/build/patches/Disable-Service-and-Shared-workers-on-3P-iframe.patch +++ b/build/patches/Disable-Service-and-Shared-workers-on-3P-iframe.patch @@ -75,7 +75,7 @@ diff --git a/components/embedder_support/content_settings_utils.cc b/components/ return content::AllowServiceWorkerResult::FromPolicy(!allow_javascript, !allow_cookies); -@@ -142,17 +124,16 @@ bool AllowSharedWorker( +@@ -143,17 +125,16 @@ bool AllowSharedWorker( worker_url, site_for_cookies, top_frame_origin, cookie_settings->SettingOverridesForStorage(), &cookie_settings_metadata); diff --git a/build/patches/Disable-StartSurface-feature.patch b/build/patches/Disable-StartSurface-feature.patch index 23137db77..4b730709b 100644 --- a/build/patches/Disable-StartSurface-feature.patch +++ b/build/patches/Disable-StartSurface-feature.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -621,7 +621,7 @@ public abstract class ChromeFeatureList { +@@ -634,7 +634,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sSmallerTabStripTitleLimit = newCachedFlag(SMALLER_TAB_STRIP_TITLE_LIMIT, false); public static final CachedFlag sStartSurfaceAndroid = diff --git a/build/patches/Disable-TLS-resumption.patch b/build/patches/Disable-TLS-resumption.patch index b3e88ed7b..3fb174e00 100644 --- a/build/patches/Disable-TLS-resumption.patch +++ b/build/patches/Disable-TLS-resumption.patch @@ -91,14 +91,14 @@ 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" + #include "net/traffic_annotation/network_traffic_annotation.h" #include "third_party/boringssl/src/include/openssl/aead.h" +#include "third_party/boringssl/src/include/openssl/ssl.h" #include "url/gurl.h" #include "url/scheme_host_port.h" #include "url/url_constants.h" -@@ -196,6 +197,38 @@ std::set HostsFromOrigins(std::set origins) { +@@ -156,6 +157,38 @@ std::set HostsFromOrigins(std::set origins) { } // namespace @@ -134,10 +134,10 @@ diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.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 QuicSessionPool, moves it -@@ -2409,7 +2442,7 @@ QuicSessionPool::CreateCryptoConfigHandle( + QuicSessionRequest::QuicSessionRequest(QuicSessionPool* pool) : pool_(pool) {} + + QuicSessionRequest::~QuicSessionRequest() { +@@ -1716,7 +1749,7 @@ QuicSessionPool::CreateCryptoConfigHandle( cert_verifier_, transport_security_state_, sct_auditing_delegate_, HostsFromOrigins(params_.origins_to_force_quic_on), actual_network_anonymization_key), diff --git a/build/patches/Disable-WebGPU.patch b/build/patches/Disable-WebGPU.patch index a2dfb7bc6..bed818211 100644 --- a/build/patches/Disable-WebGPU.patch +++ b/build/patches/Disable-WebGPU.patch @@ -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 -@@ -295,7 +295,7 @@ BASE_FEATURE(kForceGpuMainThreadToNormalPriorityDrDc, +@@ -266,7 +266,7 @@ BASE_FEATURE(kEnableDrDc, // 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 -@@ -368,6 +368,7 @@ ScriptPromise GPU::requestAdapter(ScriptState* script_state, +@@ -376,6 +376,7 @@ ScriptPromise GPU::requestAdapter(ScriptState* script_state, "WebGPU is experimental on this platform. See " "https://github.com/gpuweb/gpuweb/wiki/" "Implementation-Status#implementation-status")); diff --git a/build/patches/Disable-all-predictors-code.patch b/build/patches/Disable-all-predictors-code.patch index 8c1bfd18a..df28baa10 100644 --- a/build/patches/Disable-all-predictors-code.patch +++ b/build/patches/Disable-all-predictors-code.patch @@ -9,7 +9,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../preloading_model_keyed_service.cc | 1 + .../preloading_model_keyed_service_factory.cc | 4 +-- .../chrome_hints_manager.cc | 1 + - .../model_validator_keyed_service.cc | 4 ++- + .../model_validator_keyed_service.cc | 7 +++++- .../optimization_guide_keyed_service.cc | 1 - .../predictors/loading_predictor_config.cc | 4 +-- .../browser/predictors/predictors_features.cc | 11 ++------ @@ -32,7 +32,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../Disable-all-predictors-code.inc | 2 ++ .../document_speculation_rules.cc | 1 + .../platform/runtime_enabled_features.json5 | 2 +- - 27 files changed, 80 insertions(+), 38 deletions(-) + 27 files changed, 83 insertions(+), 38 deletions(-) create mode 100644 cromite_flags/chrome/browser/browser_features_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/components/permissions/features_cc/Disable-all-predictors-code.inc @@ -41,7 +41,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -845,8 +845,6 @@ static_library("browser") { +@@ -851,8 +851,6 @@ static_library("browser") { "navigation_predictor/navigation_predictor_keyed_service_factory.h", "navigation_predictor/navigation_predictor_metrics_document_data.cc", "navigation_predictor/navigation_predictor_metrics_document_data.h", @@ -87,7 +87,15 @@ diff --git a/chrome/browser/optimization_guide/chrome_hints_manager.cc b/chrome/ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc b/chrome/browser/optimization_guide/model_validator_keyed_service.cc --- a/chrome/browser/optimization_guide/model_validator_keyed_service.cc +++ b/chrome/browser/optimization_guide/model_validator_keyed_service.cc -@@ -34,13 +34,13 @@ namespace optimization_guide { +@@ -8,6 +8,7 @@ + #include "base/files/file_util.h" + #include "base/task/sequenced_task_runner.h" + #include "base/task/task_traits.h" ++#include "base/task/thread_pool.h" + #include "build/build_config.h" + #include "chrome/browser/profiles/profile.h" + #include "chrome/browser/signin/identity_manager_factory.h" +@@ -55,13 +56,13 @@ namespace optimization_guide { ModelValidatorKeyedService::ModelValidatorKeyedService(Profile* profile) : profile_(profile) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -102,7 +110,7 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc if (switches::ShouldValidateModel()) { // Create the validator object which will get destroyed when the model // load is complete. -@@ -93,6 +93,7 @@ void ModelValidatorKeyedService::OnPrimaryAccountChanged( +@@ -122,6 +123,7 @@ void ModelValidatorKeyedService::OnPrimaryAccountChanged( void ModelValidatorKeyedService::StartModelExecutionValidation() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -110,18 +118,34 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc auto* opt_guide_service = OptimizationGuideKeyedServiceFactory::GetForProfile(profile_); if (!opt_guide_service) { -@@ -110,6 +111,7 @@ void ModelValidatorKeyedService::StartModelExecutionValidation() { +@@ -139,6 +141,7 @@ void ModelValidatorKeyedService::StartModelExecutionValidation() { proto::ModelExecutionFeature::MODEL_EXECUTION_FEATURE_TEST, request, base::BindOnce(&ModelValidatorKeyedService::OnModelExecuteResponse, weak_ptr_factory_.GetWeakPtr())); +#endif } - void ModelValidatorKeyedService::OnModelExecuteResponse( + void ModelValidatorKeyedService::StartOnDeviceModelExecutionValidation( +@@ -156,6 +159,7 @@ void ModelValidatorKeyedService::StartOnDeviceModelExecutionValidation( + + void ModelValidatorKeyedService::PerformOnDeviceModelExecutionValidation( + std::unique_ptr request) { ++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + auto* opt_guide_service = + OptimizationGuideKeyedServiceFactory::GetForProfile(profile_); +@@ -168,6 +172,7 @@ void ModelValidatorKeyedService::PerformOnDeviceModelExecutionValidation( + *request, base::RepeatingCallback(base::BindRepeating( + &ModelValidatorKeyedService::OnDeviceModelExecuteResponse, + weak_ptr_factory_.GetWeakPtr()))); ++#endif + } + + void ModelValidatorKeyedService::OnDeviceModelExecuteResponse( diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc --- a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc +++ b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc -@@ -560,7 +560,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel( +@@ -528,7 +528,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel( void OptimizationGuideKeyedService::RegisterOptimizationTypes( const std::vector& optimization_types) { @@ -180,7 +204,7 @@ diff --git a/chrome/browser/predictors/predictors_features.cc b/chrome/browser/p diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc -@@ -410,7 +410,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -414,7 +414,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { } MixedContentSettingsTabHelper::CreateForWebContents(web_contents); NavigationMetricsRecorder::CreateForWebContents(web_contents); @@ -201,7 +225,7 @@ diff --git a/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc b/chrome/br #include "components/omnibox/browser/omnibox_field_trial.h" #include "components/search_engines/template_url.h" #include "content/public/browser/web_ui.h" -@@ -500,6 +502,7 @@ void OmniboxPageHandler::StartOmniboxQuery(const std::string& input_string, +@@ -498,6 +500,7 @@ void OmniboxPageHandler::StartOmniboxQuery(const std::string& input_string, } void OmniboxPageHandler::GetMlModelVersion(GetMlModelVersionCallback callback) { @@ -209,7 +233,7 @@ diff --git a/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc b/chrome/br if (auto* service = GetMlService()) { auto version = service->GetModelVersion(); if (version == -1) { -@@ -512,10 +515,14 @@ void OmniboxPageHandler::GetMlModelVersion(GetMlModelVersionCallback callback) { +@@ -510,10 +513,14 @@ void OmniboxPageHandler::GetMlModelVersion(GetMlModelVersionCallback callback) { } else { std::move(callback).Run(-1); } @@ -224,7 +248,7 @@ diff --git a/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc b/chrome/br if (auto* service = GetMlService()) { AutocompleteMatch::ScoringSignals signals = mojo::ConvertTo(mojom_signals); -@@ -525,6 +532,9 @@ void OmniboxPageHandler::StartMl(mojom::SignalsPtr mojom_signals, +@@ -523,6 +530,9 @@ void OmniboxPageHandler::StartMl(mojom::SignalsPtr mojom_signals, } else { std::move(callback).Run(-1); } @@ -234,7 +258,7 @@ diff --git a/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc b/chrome/br } std::unique_ptr OmniboxPageHandler::CreateController( -@@ -549,8 +559,12 @@ OmniboxPageHandler::GetAutocompleteControllerType( +@@ -547,8 +557,12 @@ OmniboxPageHandler::GetAutocompleteControllerType( } AutocompleteScoringModelService* OmniboxPageHandler::GetMlService() { @@ -250,7 +274,7 @@ diff --git a/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc b/chrome/br diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/components/autofill/core/browser/autofill_optimization_guide.cc --- a/components/autofill/core/browser/autofill_optimization_guide.cc +++ b/components/autofill/core/browser/autofill_optimization_guide.cc -@@ -137,6 +137,7 @@ void AutofillOptimizationGuide::OnDidParseForm( +@@ -163,6 +163,7 @@ void AutofillOptimizationGuide::OnDidParseForm( // If we do not have any optimization types to register, do not do anything. if (!optimization_types.empty()) { // Register all optimization types that we need based on `form_structure`. @@ -258,7 +282,7 @@ diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/c decider_->RegisterOptimizationTypes( std::vector( std::move(optimization_types).extract())); -@@ -148,7 +149,7 @@ bool AutofillOptimizationGuide::ShouldBlockSingleFieldSuggestions( +@@ -214,7 +215,7 @@ bool AutofillOptimizationGuide::ShouldBlockSingleFieldSuggestions( AutofillField* field) const { // If the field's storable type is `IBAN_VALUE`, check whether IBAN // suggestions should be blocked based on `url`. @@ -267,7 +291,7 @@ diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/c optimization_guide::OptimizationGuideDecision decision = decider_->CanApplyOptimization( url, optimization_guide::proto::IBAN_AUTOFILL_BLOCKED, -@@ -174,7 +175,7 @@ bool AutofillOptimizationGuide::ShouldBlockFormFieldSuggestion( +@@ -240,7 +241,7 @@ bool AutofillOptimizationGuide::ShouldBlockFormFieldSuggestion( const CreditCard* card) const { if (auto optimization_type = GetVcnMerchantOptOutOptimizationTypeForCard(*card); @@ -291,10 +315,10 @@ diff --git a/components/autofill/core/browser/metrics/shadow_prediction_metrics. diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc --- a/components/omnibox/browser/autocomplete_controller.cc +++ b/components/omnibox/browser/autocomplete_controller.cc -@@ -44,7 +44,9 @@ - #include "components/omnibox/browser/autocomplete_input.h" +@@ -47,7 +47,9 @@ #include "components/omnibox/browser/autocomplete_match_type.h" #include "components/omnibox/browser/autocomplete_provider.h" + #include "components/omnibox/browser/autocomplete_provider_client.h" +#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) #include "components/omnibox/browser/autocomplete_scoring_model_service.h" +#endif @@ -315,7 +339,7 @@ diff --git a/components/optimization_guide/core/hints_fetcher.cc b/components/op diff --git a/components/optimization_guide/core/hints_manager.cc b/components/optimization_guide/core/hints_manager.cc --- a/components/optimization_guide/core/hints_manager.cc +++ b/components/optimization_guide/core/hints_manager.cc -@@ -388,6 +388,7 @@ void HintsManager::Shutdown() { +@@ -390,6 +390,7 @@ void HintsManager::Shutdown() { OptimizationGuideDecision HintsManager::GetOptimizationGuideDecisionFromOptimizationTypeDecision( OptimizationTypeDecision optimization_type_decision) { @@ -323,7 +347,7 @@ diff --git a/components/optimization_guide/core/hints_manager.cc b/components/op switch (optimization_type_decision) { case OptimizationTypeDecision::kAllowedByOptimizationFilter: case OptimizationTypeDecision::kAllowedByHint: -@@ -1108,6 +1109,7 @@ void HintsManager::CanApplyOptimizationOnDemand( +@@ -1110,6 +1111,7 @@ void HintsManager::CanApplyOptimizationOnDemand( OnDemandOptimizationGuideDecisionRepeatingCallback callback, proto::RequestContextMetadata* request_context_metadata) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -331,7 +355,7 @@ diff --git a/components/optimization_guide/core/hints_manager.cc b/components/op InsertionOrderedSet urls_to_fetch; InsertionOrderedSet hosts_to_fetch; -@@ -1414,6 +1416,9 @@ OptimizationTypeDecision HintsManager::CanApplyOptimization( +@@ -1416,6 +1418,9 @@ OptimizationTypeDecision HintsManager::CanApplyOptimization( bool skip_cache, OptimizationMetadata* optimization_metadata) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -363,7 +387,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b // Returns whether |locale| is a supported locale for |feature|. // -@@ -587,8 +579,7 @@ size_t MaxURLKeyedHintCacheSize() { +@@ -575,8 +567,7 @@ size_t MaxURLKeyedHintCacheSize() { } bool ShouldPersistHintsToDisk() { @@ -372,8 +396,8 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b + return false; } - bool ShouldEnablePersonalizedMetadata(proto::RequestContext request_context) { -@@ -1101,5 +1092,19 @@ bool GetOnDeviceModelRetractRepeats() { + RequestContextSet GetAllowedContextsForPersonalizedMetadata() { +@@ -1080,5 +1071,19 @@ bool GetOnDeviceModelRetractRepeats() { return kOnDeviceModelRetractRepeats.Get(); } @@ -469,7 +493,7 @@ diff --git a/components/safe_browsing/content/renderer/phishing_classifier/phish 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 -@@ -511,4 +511,7 @@ std::vector GetModulesOrder() { +@@ -544,4 +544,7 @@ std::vector GetModulesOrder() { base::SplitResult::SPLIT_WANT_NONEMPTY); } @@ -517,7 +541,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc b/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc --- a/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc +++ b/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc -@@ -584,6 +584,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() { +@@ -599,6 +599,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() { return; } @@ -528,9 +552,9 @@ diff --git a/third_party/blink/renderer/core/speculation_rules/document_speculat 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 -@@ -3027,7 +3027,7 @@ - { - // https://crbug.com/1126305 +@@ -2961,7 +2961,7 @@ + // + // It also has some feature params defined throughout the codebase. name: "Prerender2", - status: "stable", + status: "test", diff --git a/build/patches/Disable-all-promo-dialogs.patch b/build/patches/Disable-all-promo-dialogs.patch index 1f9b40a6f..9481c1073 100644 --- a/build/patches/Disable-all-promo-dialogs.patch +++ b/build/patches/Disable-all-promo-dialogs.patch @@ -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 -@@ -1210,6 +1210,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1243,6 +1243,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 -@@ -135,7 +135,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -138,7 +138,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kEnterpriseHardwarePlatformAPIEnabled, false); @@ -51,7 +51,7 @@ diff --git a/chrome/browser/ui/views/user_education/browser_feature_promo_contro diff --git a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java b/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java --- a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java +++ b/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java -@@ -73,6 +73,7 @@ public class UserEducationHelper { +@@ -74,6 +74,7 @@ public class UserEducationHelper { } private void showIPH(Tracker tracker, IPHCommand iphCommand) { @@ -62,7 +62,7 @@ diff --git a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/ diff --git a/components/user_education/common/feature_promo_controller.cc b/components/user_education/common/feature_promo_controller.cc --- a/components/user_education/common/feature_promo_controller.cc +++ b/components/user_education/common/feature_promo_controller.cc -@@ -446,6 +446,7 @@ FeaturePromoResult FeaturePromoControllerCommon::CanShowPromoCommon( +@@ -589,6 +589,7 @@ FeaturePromoResult FeaturePromoControllerCommon::CanShowPromoCommon( const FeaturePromoSpecification** spec_out, std::unique_ptr* lifecycle_out, ui::TrackedElement** anchor_element_out) const { diff --git a/build/patches/Disable-conversion-measurement-api.patch b/build/patches/Disable-conversion-measurement-api.patch index da255c101..5bf57fd03 100644 --- a/build/patches/Disable-conversion-measurement-api.patch +++ b/build/patches/Disable-conversion-measurement-api.patch @@ -11,7 +11,8 @@ being sent and being saved to disk, although it is currently in uncalled code. Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../browser/aw_content_browser_client.cc | 1 + + .../browser/aw_content_browser_client.cc | 3 + + .../chromium/android_webview/AwSettings.java | 4 +- chrome/android/java/AndroidManifest.xml | 4 - components/attribution_reporting/features.cc | 2 + .../origin_trials/features.cc | 2 + @@ -25,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../attribution_storage_sql.cc | 8 +- content/browser/storage_partition_impl.cc | 9 - content/public/android/BUILD.gn | 2 - - .../browser/AttributionOsLevelManager.java | 297 +----------------- + .../browser/AttributionOsLevelManager.java | 312 +----------------- .../public/browser/content_browser_client.cc | 7 +- .../public/browser/navigation_controller.cc | 1 - .../Disable-conversion-measurement-api.inc | 1 + @@ -36,7 +37,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../network/public/cpp/attribution_utils.cc | 2 + third_party/blink/renderer/core/page/page.cc | 2 +- ui/events/android/motion_event_android.cc | 6 +- - 25 files changed, 65 insertions(+), 324 deletions(-) + 26 files changed, 72 insertions(+), 338 deletions(-) create mode 100644 cromite_flags/content/common/features_cc/Disable-conversion-measurement-api.inc create mode 100644 cromite_flags/content/public/common/content_features_cc/Disable-conversion-measurement-api.inc create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Disable-conversion-measurement-api.inc @@ -45,7 +46,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 -@@ -1157,6 +1157,7 @@ network::mojom::AttributionSupport +@@ -1163,6 +1163,7 @@ network::mojom::AttributionSupport AwContentBrowserClient::GetAttributionSupport( AttributionReportingOsApiState state, content::WebContents* web_contents) { @@ -53,6 +54,36 @@ diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webv AwSettings* aw_settings = AwSettings::FromWebContents(web_contents); if (aw_settings && aw_settings->GetAttributionBehavior() == AwSettings::AttributionBehavior::DISABLED) { +@@ -1187,6 +1188,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( + const url::Origin* destination_origin, + const url::Origin* reporting_origin, + bool* can_bypass) { ++ if ((true)) ++ return false; + // Check if attribution reporting has been disabled. + // This method should not be called at all if the configured behavior is + // DISABLED. +diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.java b/android_webview/java/src/org/chromium/android_webview/AwSettings.java +--- a/android_webview/java/src/org/chromium/android_webview/AwSettings.java ++++ b/android_webview/java/src/org/chromium/android_webview/AwSettings.java +@@ -162,7 +162,7 @@ public class AwSettings { + private boolean mSpatialNavigationEnabled; // Default depends on device features. + private boolean mEnableSupportedHardwareAcceleratedFeatures; + private int mMixedContentMode = WebSettings.MIXED_CONTENT_NEVER_ALLOW; +- private int mAttributionBehavior = AttributionBehavior.APP_SOURCE_AND_WEB_TRIGGER; ++ private int mAttributionBehavior = AttributionBehavior.DISABLED; + private boolean mCSSHexAlphaColorEnabled; + private boolean mScrollTopLeftInteropEnabled; + private boolean mWillSuppressErrorPage; +@@ -1689,7 +1689,7 @@ public class AwSettings { + public void setAttributionBehavior(@AttributionBehavior int behavior) { + synchronized (mAwSettingsLock) { + if (mAttributionBehavior != behavior) { +- mAttributionBehavior = behavior; ++ mAttributionBehavior = AttributionBehavior.DISABLED; + mEventHandler.updateWebkitPreferencesLocked(); + } + } diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml @@ -64,7 +95,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro @@ -389,7 +389,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -1040,15 +1005,6 @@ by a child template that "extends" this file. +@@ -1048,15 +1013,6 @@ by a child template that "extends" this file. @@ -405,7 +405,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -1295,12 +1251,6 @@ by a child template that "extends" this file. +@@ -1303,12 +1259,6 @@ by a child template that "extends" this file. {% endif %} @@ -897,7 +897,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/password_manager/android/BUILD.gn --- a/chrome/browser/password_manager/android/BUILD.gn +++ b/chrome/browser/password_manager/android/BUILD.gn -@@ -112,8 +112,6 @@ android_library("java") { +@@ -116,8 +116,6 @@ android_library("java") { ":android_backend_java_enums", ":java_resources", ":settings_interface_java", @@ -906,7 +906,7 @@ diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/p "//base:base_java", "//build/android:build_java", "//chrome/browser/device_reauth/android:java", -@@ -241,8 +239,6 @@ robolectric_binary("password_manager_junit_tests") { +@@ -246,8 +244,6 @@ robolectric_binary("password_manager_junit_tests") { ":settings_interface_java", ":test_support_java", ":unified_password_manager_proto_java", @@ -996,7 +996,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom import org.chromium.base.Callback; import org.chromium.base.ContextUtils; import org.chromium.base.metrics.RecordHistogram; -@@ -435,24 +432,6 @@ public class PasswordManagerHelper { +@@ -404,24 +401,6 @@ public class PasswordManagerHelper { } public static void launchGmsUpdate(Context context) { @@ -1021,7 +1021,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom } @VisibleForTesting -@@ -567,7 +546,7 @@ public class PasswordManagerHelper { +@@ -539,7 +518,7 @@ public class PasswordManagerHelper { CredentialManagerError.API_ERROR, CredentialManagerError.COUNT); @@ -1075,7 +1075,7 @@ diff --git a/chrome/browser/push_messaging/push_messaging_service_factory.cc b/c diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts --- a/chrome/browser/resources/settings/route.ts +++ b/chrome/browser/resources/settings/route.ts -@@ -59,8 +59,6 @@ function addPrivacyChildRoutes(r: Partial) { +@@ -60,8 +60,6 @@ function addPrivacyChildRoutes(r: Partial) { if (loadTimeData.getBoolean('enableSecurityKeysSubpage')) { r.SECURITY_KEYS = r.SECURITY.createChild('/securityKeys'); @@ -1087,7 +1087,7 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc 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 -@@ -284,8 +284,6 @@ static_library("ui") { +@@ -275,8 +275,6 @@ static_library("ui") { "webui/flags/flags_ui.h", "webui/flags/flags_ui_handler.cc", "webui/flags/flags_ui_handler.h", @@ -1096,7 +1096,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "webui/internals/internals_ui.cc", "webui/internals/internals_ui.h", "webui/interstitials/interstitial_ui.cc", -@@ -526,7 +524,6 @@ static_library("ui") { +@@ -518,7 +516,6 @@ static_library("ui") { "//components/feedback/redaction_tool", "//components/find_in_page", "//components/flags_ui", @@ -1107,7 +1107,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/SigninFirstRunMediator.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/SigninFirstRunMediator.java --- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/SigninFirstRunMediator.java +++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/SigninFirstRunMediator.java -@@ -219,17 +219,11 @@ public class SigninFirstRunMediator +@@ -218,17 +218,11 @@ public class SigninFirstRunMediator boolean isMetricsReportingDisabledByPolicy = false; Log.i(TAG, "#onInitialLoadCompleted() hasPolicies:" + hasPolicies); if (hasPolicies) { @@ -1148,7 +1148,7 @@ diff --git a/chrome/browser/ui/webauthn/sheet_models.cc b/chrome/browser/ui/weba 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 -@@ -40,7 +40,6 @@ +@@ -37,7 +37,6 @@ #include "chrome/browser/ui/webui/download_internals/download_internals_ui.h" #include "chrome/browser/ui/webui/engagement/site_engagement_ui.h" #include "chrome/browser/ui/webui/flags/flags_ui.h" @@ -1156,7 +1156,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #include "chrome/browser/ui/webui/internals/internals_ui.h" #include "chrome/browser/ui/webui/interstitials/interstitial_ui.h" #include "chrome/browser/ui/webui/intro/intro_ui.h" -@@ -476,8 +475,6 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, +@@ -451,8 +450,6 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; if (url.host_piece() == chrome::kChromeUIFlagsHost) return &NewWebUI; @@ -1168,7 +1168,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom diff --git a/chrome/browser/webauthn/android/BUILD.gn b/chrome/browser/webauthn/android/BUILD.gn --- a/chrome/browser/webauthn/android/BUILD.gn +++ b/chrome/browser/webauthn/android/BUILD.gn -@@ -16,7 +16,6 @@ android_library("java") { +@@ -17,7 +17,6 @@ android_library("java") { deps = [ ":java_resources", ":jni_headers", @@ -1238,7 +1238,7 @@ diff --git a/chrome/browser/webauthn/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/webauthn/authenticator_request_dialog_model.cc b/chrome/browser/webauthn/authenticator_request_dialog_model.cc --- a/chrome/browser/webauthn/authenticator_request_dialog_model.cc +++ b/chrome/browser/webauthn/authenticator_request_dialog_model.cc -@@ -2038,10 +2038,6 @@ void AuthenticatorRequestDialogModel::PopulateMechanisms() { +@@ -2137,10 +2137,6 @@ void AuthenticatorRequestDialogModel::PopulateMechanisms() { if (cable_ui_type_) { switch (*cable_ui_type_) { case AuthenticatorRequestDialogModel::CableUIType::CABLE_V2_2ND_FACTOR: @@ -1265,7 +1265,7 @@ diff --git a/chrome/browser/webauthn/cablev2_devices.cc b/chrome/browser/webauth diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn --- a/chrome/test/android/BUILD.gn +++ b/chrome/test/android/BUILD.gn -@@ -289,8 +289,6 @@ android_library("chrome_java_integration_test_support") { +@@ -299,8 +299,6 @@ android_library("chrome_java_integration_test_support") { deps = [ ":chrome_java_test_support_common", @@ -1344,15 +1344,29 @@ diff --git a/components/externalauth/android/java/src/org/chromium/components/ex } /** -@@ -187,7 +181,6 @@ public class ExternalAuthUtils { +@@ -185,21 +179,6 @@ public class ExternalAuthUtils { + * @return true if and only if Google Play Services can be used + */ public boolean canUseGooglePlayServices(final UserRecoverableErrorHandler errorHandler) { - Context context = ContextUtils.getApplicationContext(); - final int resultCode = checkGooglePlayServicesAvailable(context); +- Context context = ContextUtils.getApplicationContext(); +- final int resultCode = checkGooglePlayServicesAvailable(context); - if (resultCode == ConnectionResult.SUCCESS) return true; - // resultCode is some kind of error. - Log.v(TAG, "Unable to use Google Play Services: %s", describeError(resultCode)); - if (isUserRecoverableError(resultCode)) { -@@ -256,11 +249,7 @@ public class ExternalAuthUtils { +- // resultCode is some kind of error. +- Log.v(TAG, "Unable to use Google Play Services: %s", describeError(resultCode)); +- if (isUserRecoverableError(resultCode)) { +- Runnable errorHandlerTask = +- new Runnable() { +- @Override +- public void run() { +- errorHandler.handleError(context, resultCode); +- } +- }; +- PostTask.runOrPostTask(TaskTraits.UI_DEFAULT, errorHandlerTask); +- } + return false; + } + +@@ -256,11 +235,7 @@ public class ExternalAuthUtils { * @return The code produced by calling the external code */ protected int checkGooglePlayServicesAvailable(final Context context) { @@ -1365,7 +1379,7 @@ diff --git a/components/externalauth/android/java/src/org/chromium/components/ex } /** -@@ -271,7 +260,7 @@ public class ExternalAuthUtils { +@@ -271,7 +246,7 @@ public class ExternalAuthUtils { * @return true If the code represents a user-recoverable error */ protected boolean isUserRecoverableError(final int errorCode) { @@ -1374,7 +1388,7 @@ diff --git a/components/externalauth/android/java/src/org/chromium/components/ex } /** -@@ -281,7 +270,7 @@ public class ExternalAuthUtils { +@@ -281,7 +256,7 @@ public class ExternalAuthUtils { * @return a textual description of the error code */ protected String describeError(final int errorCode) { @@ -3143,20 +3157,20 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ "java/src/org/chromium/components/webauthn/InternalAuthenticator.java", "java/src/org/chromium/components/webauthn/WebauthnBrowserBridge.java", "java/src/org/chromium/components/webauthn/cred_man/CredManSupportProvider.java", -@@ -30,11 +28,8 @@ android_library("java") { +@@ -30,11 +28,7 @@ android_library("java") { "java/src/org/chromium/components/webauthn/AuthenticatorImpl.java", "java/src/org/chromium/components/webauthn/Barrier.java", "java/src/org/chromium/components/webauthn/CreateConfirmationUiDelegate.java", - "java/src/org/chromium/components/webauthn/Fido2Api.java", - "java/src/org/chromium/components/webauthn/Fido2ApiCall.java", - "java/src/org/chromium/components/webauthn/Fido2ApiCallHelper.java", +- "java/src/org/chromium/components/webauthn/Fido2ApiCallHelper.java", - "java/src/org/chromium/components/webauthn/Fido2CredentialRequest.java", - "java/src/org/chromium/components/webauthn/FidoErrorResponseCallback.java", + "java/src/org/chromium/components/webauthn/ConditionalUiState.java", "java/src/org/chromium/components/webauthn/FidoIntentSender.java", "java/src/org/chromium/components/webauthn/GetAssertionResponseCallback.java", "java/src/org/chromium/components/webauthn/GetMatchingCredentialIdsResponseCallback.java", -@@ -59,9 +54,6 @@ android_library("java") { +@@ -60,9 +54,6 @@ android_library("java") { jar_excluded_patterns = [ "*/cred_man/CredManUiModeRecommender.class" ] deps = [ @@ -3166,7 +3180,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ "//base:base_java", "//base/version_info/android:version_constants_java", "//build/android:build_java", -@@ -118,8 +110,6 @@ android_library("test_support_java") { +@@ -119,8 +110,6 @@ android_library("test_support_java") { source_set("android") { sources = [ "cred_man_support.h", @@ -3175,7 +3189,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ "internal_authenticator_android.cc", "internal_authenticator_android.h", "webauthn_browser_bridge.cc", -@@ -186,7 +176,6 @@ robolectric_library("junit") { +@@ -187,7 +176,6 @@ robolectric_library("junit") { ":delegate_public_java", ":java", ":test_support_java", @@ -3186,25 +3200,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java --- a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java +++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java -@@ -14,7 +14,6 @@ import android.util.Pair; - import androidx.annotation.Nullable; - - import org.chromium.base.Callback; --import org.chromium.base.PackageUtils; - import org.chromium.base.metrics.RecordHistogram; - import org.chromium.blink.mojom.Authenticator; - import org.chromium.blink.mojom.AuthenticatorStatus; -@@ -60,9 +59,6 @@ public final class AuthenticatorImpl implements Authenticator { - /** The payment information to be added to the "clientDataJson". */ - private PaymentOptions mPayment; - -- /** Caches the GMS Core package version. */ -- private int mGmsCorePackageVersion; -- - private MakeCredential_Response mMakeCredentialCallback; - private GetAssertion_Response mGetAssertionCallback; - // A queue for pending isUserVerifyingPlatformAuthenticatorAvailable request callbacks when -@@ -74,14 +70,6 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -67,14 +67,6 @@ public final class AuthenticatorImpl implements Authenticator { // Similar to the above, but for pending isConditionalMediationAvailable request callbacks. private Queue mIsConditionalMediationAvailableCallbackQueue = new LinkedList<>(); @@ -3219,12 +3215,8 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut /** * Builds the Authenticator service implementation. -@@ -110,23 +98,9 @@ public final class AuthenticatorImpl implements Authenticator { - mTopOrigin = topOrigin; +@@ -104,19 +96,6 @@ public final class AuthenticatorImpl implements Authenticator { mCreateConfirmationUiDelegate = createConfirmationUiDelegate; - -- mGmsCorePackageVersion = PackageUtils.getPackageVersion(GMSCORE_PACKAGE_NAME); - WebauthnModeProvider.getInstance().setWebauthnMode(mode); } - public static void overrideFido2CredentialRequestForTesting(Fido2CredentialRequest request) { @@ -3243,21 +3235,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut /** * Called by InternalAuthenticatorAndroid, which facilitates WebAuthn for processes that * originate from the browser process. Since the request is from the browser process, the -@@ -154,11 +128,9 @@ public final class AuthenticatorImpl implements Authenticator { - - mMakeCredentialCallback = callback; - mIsOperationPending = true; -- if (mGmsCorePackageVersion < GMSCORE_MIN_VERSION) { -- onError(AuthenticatorStatus.NOT_IMPLEMENTED); -- return; -- } - -+ // Fido2 not supported on Bromite -+ onError(AuthenticatorStatus.NOT_IMPLEMENTED); - if (mCreateConfirmationUiDelegate != null) { - if (!mCreateConfirmationUiDelegate.show( - () -> continueMakeCredential(options, callback), -@@ -172,15 +144,6 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -163,15 +142,6 @@ public final class AuthenticatorImpl implements Authenticator { private void continueMakeCredential( PublicKeyCredentialCreationOptions options, MakeCredential_Response callback) { @@ -3273,14 +3251,10 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -194,22 +157,8 @@ public final class AuthenticatorImpl implements Authenticator { - mGetAssertionCallback = callback; - mIsOperationPending = true; - -- if (mGmsCorePackageVersion < GMSCORE_MIN_VERSION) { -- onError(AuthenticatorStatus.NOT_IMPLEMENTED); -- return; -- } +@@ -190,18 +160,6 @@ public final class AuthenticatorImpl implements Authenticator { + onError(AuthenticatorStatus.NOT_IMPLEMENTED); + return; + } - - mPendingFido2CredentialRequest = getFido2CredentialRequest(); - mPendingFido2CredentialRequest.handleGetAssertionRequest( @@ -3293,19 +3267,13 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - mPayment, - (status, response) -> onSignResponse(status, response), - status -> onError(status)); -+ // Fido2 not supported on Bromite -+ onError(AuthenticatorStatus.NOT_IMPLEMENTED); } @Override -@@ -222,17 +171,8 @@ public final class AuthenticatorImpl implements Authenticator { - callback.call(isUvpaa); - }; - -- if (mGmsCorePackageVersion < GMSCORE_MIN_VERSION) { -- decoratedCallback.call(false); -- return; -- } +@@ -218,13 +176,6 @@ public final class AuthenticatorImpl implements Authenticator { + decoratedCallback.call(false); + return; + } - - mIsUserVerifyingPlatformAuthenticatorAvailableCallbackQueue.add(decoratedCallback); - getFido2CredentialRequest() @@ -3313,28 +3281,13 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - mContext, - isUvpaa -> - onIsUserVerifyingPlatformAuthenticatorAvailableResponse(isUvpaa)); -+ decoratedCallback.call(false); -+ return; } /** -@@ -241,7 +181,7 @@ public final class AuthenticatorImpl implements Authenticator { - * version. - */ - public boolean isGetMatchingCredentialIdsSupported() { -- return mGmsCorePackageVersion >= GMSCORE_MIN_VERSION_GET_MATCHING_CRED_IDS; -+ return false; - } - - /** -@@ -258,39 +198,13 @@ public final class AuthenticatorImpl implements Authenticator { - byte[][] credentialIds, - boolean requireThirdPartyPayment, - GetMatchingCredentialIdsResponseCallback callback) { -- if (mGmsCorePackageVersion < GMSCORE_MIN_VERSION_GET_MATCHING_CRED_IDS) { -- callback.onResponse(new ArrayList()); -- return; -- } +@@ -245,15 +196,6 @@ public final class AuthenticatorImpl implements Authenticator { + callback.onResponse(new ArrayList()); + return; + } - - getFido2CredentialRequest() - .handleGetMatchingCredentialIdsRequest( @@ -3344,19 +3297,13 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - requireThirdPartyPayment, - callback, - status -> onError(status)); -+ callback.onResponse(new ArrayList()); } @Override - public void isConditionalMediationAvailable( - final IsConditionalMediationAvailable_Response callback) { -- if (mGmsCorePackageVersion < GMSCORE_MIN_VERSION -- || Build.VERSION.SDK_INT < Build.VERSION_CODES.P -- || WebauthnModeProvider.getInstance().getWebauthnMode() -- != WebauthnModeProvider.WebauthnMode.CHROME) { -- callback.call(false); -- return; -- } +@@ -265,14 +207,6 @@ public final class AuthenticatorImpl implements Authenticator { + callback.call(false); + return; + } - - // If the gmscore and chromium versions are out of sync for some reason, this method will - // return true but chrome will ignore conditional requests. Android surfaces only platform @@ -3365,11 +3312,10 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - getFido2CredentialRequest() - .handleIsUserVerifyingPlatformAuthenticatorAvailableRequest( - mContext, isUvpaa -> onIsConditionalMediationAvailableResponse(isUvpaa)); -+ callback.call(false); } @Override -@@ -302,8 +216,6 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -284,8 +218,6 @@ public final class AuthenticatorImpl implements Authenticator { if (!mIsOperationPending || mGetAssertionCallback == null) { return; } @@ -3378,7 +3324,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } /** Callbacks for receiving responses from the internal handlers. */ -@@ -348,7 +260,6 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -330,7 +262,6 @@ public final class AuthenticatorImpl implements Authenticator { } else if (mGetAssertionCallback != null) { mGetAssertionCallback.call(status, null, null); } @@ -3386,7 +3332,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut cleanupRequest(); } -@@ -356,13 +267,10 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -338,13 +269,10 @@ public final class AuthenticatorImpl implements Authenticator { mIsOperationPending = false; mMakeCredentialCallback = null; mGetAssertionCallback = null; @@ -3420,97 +3366,53 @@ new file mode 100644 + CANCEL_PENDING, + CANCEL_PENDING_RP_ID_VALIDATION_COMPLETE, +} -diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/Fido2ApiCallHelper.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/Fido2ApiCallHelper.java ---- a/components/webauthn/android/java/src/org/chromium/components/webauthn/Fido2ApiCallHelper.java -+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/Fido2ApiCallHelper.java -@@ -8,16 +8,11 @@ import android.app.PendingIntent; - import android.net.Uri; - import android.os.Parcel; - --import com.google.android.gms.tasks.OnFailureListener; --import com.google.android.gms.tasks.OnSuccessListener; --import com.google.android.gms.tasks.Task; +diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreUtils.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreUtils.java +--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreUtils.java ++++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreUtils.java +@@ -7,24 +7,13 @@ package org.chromium.components.webauthn; + import org.chromium.base.PackageUtils; + + public class GmsCoreUtils { +- private static final String GMSCORE_PACKAGE_NAME = "com.google.android.gms"; +- private static final int GMSCORE_MIN_VERSION_GET_MATCHING_CRED_IDS = 223300000; +- private static final int GMSCORE_MIN_VERSION_HYBRID_API = 231206000; +- private static final int GMSCORE_MIN_VERSION_RESULT_RECEIVER = 240700000; +- static final int GMSCORE_MIN_VERSION = 16890000; - - import org.chromium.base.ContextUtils; - import org.chromium.blink.mojom.PublicKeyCredentialCreationOptions; - import org.chromium.blink.mojom.PublicKeyCredentialRequestOptions; - import org.chromium.components.externalauth.ExternalAuthUtils; - import org.chromium.components.externalauth.UserRecoverableErrorHandler; --import org.chromium.components.webauthn.Fido2ApiCall.Fido2ApiCallParams; +- private static int sGmsCorePackageVersion; +- + public static int getGmsCoreVersion() { +- if (sGmsCorePackageVersion == 0) { +- sGmsCorePackageVersion = PackageUtils.getPackageVersion(GMSCORE_PACKAGE_NAME); +- } +- return sGmsCorePackageVersion; ++ return 0; + } - import java.security.NoSuchAlgorithmException; - import java.util.List; -@@ -44,72 +39,6 @@ public class Fido2ApiCallHelper { + /** Returns whether WebAuthn APIs are supported in GMSCore. */ + public static boolean isWebauthnSupported() { +- return getGmsCoreVersion() >= GMSCORE_MIN_VERSION; ++ return false; } - public boolean arePlayServicesAvailable() { -- return ExternalAuthUtils.getInstance() -- .canUseGooglePlayServices(new UserRecoverableErrorHandler.Silent()); -- } -- -- public void invokeFido2GetCredentials( -- String relyingPartyId, -- OnSuccessListener> successCallback, -- OnFailureListener failureCallback) { -- Fido2ApiCall call = new Fido2ApiCall(ContextUtils.getApplicationContext()); -- Parcel args = call.start(); -- Fido2ApiCall.WebauthnCredentialDetailsListResult result = -- new Fido2ApiCall.WebauthnCredentialDetailsListResult(); -- args.writeStrongBinder(result); -- args.writeString(relyingPartyId); -- -- Task> task = -- call.run( -- Fido2ApiCall.METHOD_BROWSER_GETCREDENTIALS, -- Fido2ApiCall.TRANSACTION_GETCREDENTIALS, -- args, -- result); -- task.addOnSuccessListener(successCallback); -- task.addOnFailureListener(failureCallback); -- } -- -- public void invokeFido2MakeCredential( -- PublicKeyCredentialCreationOptions options, -- Uri uri, -- byte[] clientDataHash, -- OnSuccessListener successCallback, -- OnFailureListener failureCallback) -- throws NoSuchAlgorithmException { -- Fido2ApiCall call = new Fido2ApiCall(ContextUtils.getApplicationContext()); -- Parcel args = call.start(); -- Fido2ApiCall.PendingIntentResult result = new Fido2ApiCall.PendingIntentResult(); -- args.writeStrongBinder(result); -- args.writeInt(1); // This indicates that the following options are present. -- -- Fido2ApiCallParams params = WebauthnModeProvider.getInstance().getFido2ApiCallParams(); -- -- params.mMethodInterfaces.makeCredential(options, uri, clientDataHash, args); -- -- Task task = -- call.run(params.mRegisterMethodId, Fido2ApiCall.TRANSACTION_REGISTER, args, result); -- task.addOnSuccessListener(successCallback); -- task.addOnFailureListener(failureCallback); -- } -- -- public void invokeFido2GetAssertion( -- PublicKeyCredentialRequestOptions options, -- Uri uri, -- byte[] clientDataHash, -- OnSuccessListener successCallback, -- OnFailureListener failureCallback) { -- Fido2ApiCall call = new Fido2ApiCall(ContextUtils.getApplicationContext()); -- Parcel args = call.start(); -- Fido2ApiCall.PendingIntentResult result = new Fido2ApiCall.PendingIntentResult(); -- args.writeStrongBinder(result); -- args.writeInt(1); // This indicates that the following options are present. -- -- Fido2ApiCallParams params = WebauthnModeProvider.getInstance().getFido2ApiCallParams(); -- params.mMethodInterfaces.getAssertion( -- options, uri, clientDataHash, /* tunnelId= */ null, args); -- Task task = -- call.run(params.mSignMethodId, Fido2ApiCall.TRANSACTION_SIGN, args, result); -- task.addOnSuccessListener(successCallback); -- task.addOnFailureListener(failureCallback); + /** +@@ -33,16 +22,16 @@ public class GmsCoreUtils { + * version. + */ + public static boolean isGetMatchingCredentialIdsSupported() { +- return getGmsCoreVersion() >= GMSCORE_MIN_VERSION_GET_MATCHING_CRED_IDS; ++ return false; + } + + /** Returns whether the hybrid sign in API is supported. */ + public static boolean isHybridClientApiSupported() { +- return getGmsCoreVersion() >= GMSCORE_MIN_VERSION_HYBRID_API; ++ return false; + } + + /** Returns whether makeCredential / getAssertion APIs support responding via ResultReceiver. */ + static boolean isResultReceiverSupported() { +- return getGmsCoreVersion() >= GMSCORE_MIN_VERSION_RESULT_RECEIVER; + return false; } } @@ -3556,7 +3458,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut import org.chromium.components.webauthn.GetAssertionResponseCallback; import org.chromium.components.webauthn.MakeCredentialResponseCallback; import org.chromium.components.webauthn.WebauthnBrowserBridge; -@@ -96,8 +95,7 @@ public class CredManHelper { +@@ -93,8 +92,7 @@ public class CredManHelper { Callback errorCallback) { mContext = context; mFrameHost = frameHost; @@ -3566,7 +3468,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut final byte[] clientDataHash = maybeClientDataHash != null ? maybeClientDataHash -@@ -151,9 +149,7 @@ public class CredManHelper { +@@ -148,9 +146,7 @@ public class CredManHelper { String json = data.getString( CRED_MAN_PREFIX + "BUNDLE_KEY_REGISTRATION_RESPONSE_JSON"); @@ -3577,7 +3479,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut if (responseSerialized == null) { Log.e( TAG, -@@ -421,8 +417,7 @@ public class CredManHelper { +@@ -418,8 +414,7 @@ public class CredManHelper { data.getString( CRED_MAN_PREFIX + "BUNDLE_KEY_AUTHENTICATION_RESPONSE_JSON"); @@ -3587,7 +3489,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut if (responseSerialized == null) { Log.e( TAG, -@@ -587,8 +582,7 @@ public class CredManHelper { +@@ -584,8 +579,7 @@ public class CredManHelper { boolean requestPasswords, boolean preferImmediatelyAvailable, boolean ignoreGpm) { @@ -3638,7 +3540,7 @@ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn -@@ -3456,10 +3456,6 @@ if (is_android) { +@@ -3471,10 +3471,6 @@ if (is_android) { testonly = true sources = content_java_sources_needing_jni deps = [ @@ -3754,7 +3656,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. } # TODO(crbug.com/1366370) Remove this once all depencencies are updated to -@@ -777,238 +768,6 @@ if (!limit_android_deps) { +@@ -777,255 +768,6 @@ if (!limit_android_deps) { ] } @@ -3808,7 +3710,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_base_java") { -- aar_path = "libs/com_google_android_gms_play_services_base/play-services-base-18.0.1.aar" +- aar_path = "libs/com_google_android_gms_play_services_base/play-services-base-18.1.0.aar" - info_path = "libs/com_google_android_gms_play_services_base/com_google_android_gms_play_services_base.info" - enable_bytecode_checks = false - deps = [ @@ -3962,6 +3864,23 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { +- android_aar_prebuilt("google_play_services_tflite_java_java") { +- aar_path = "libs/com_google_android_gms_play_services_tflite_java/play-services-tflite-java-16.0.1.aar" +- info_path = "libs/com_google_android_gms_play_services_tflite_java/com_google_android_gms_play_services_tflite_java.info" +- enable_bytecode_checks = false +- deps = [ +- ":org_tensorflow_tensorflow_lite_api_java", +- "$google_play_services_package:google_play_services_base_java", +- "$google_play_services_package:google_play_services_basement_java", +- "$google_play_services_package:google_play_services_tasks_java", +- "$google_play_services_package:google_play_services_tflite_impl_java", +- ] +- extract_native_libraries = true +- } +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_vision_java") { - aar_path = "libs/com_google_android_gms_play_services_vision/play-services-vision-20.1.3.aar" - info_path = "libs/com_google_android_gms_play_services_vision/com_google_android_gms_play_services_vision.info" @@ -3993,7 +3912,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. if (!defined(material_design_target)) { android_aar_prebuilt("com_google_android_material_material_java") { -@@ -1057,73 +816,6 @@ if (!limit_android_deps) { +@@ -1074,73 +816,6 @@ if (!limit_android_deps) { } } @@ -4067,10 +3986,11 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. if (!defined(guava_android_target)) { java_prebuilt("com_google_guava_guava_android_java") { -@@ -1896,341 +1588,6 @@ if (!limit_android_deps) { +@@ -1941,364 +1616,6 @@ if (!limit_android_deps) { + "//third_party/androidx:*", ] } - +- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_android_datatransport_transport_api_java") { @@ -4212,6 +4132,27 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - } - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- if (google_play_services_package == "//third_party/android_deps") { +- android_aar_prebuilt("google_play_services_tflite_impl_java") { +- aar_path = "libs/com_google_android_gms_play_services_tflite_impl/play-services-tflite-impl-16.0.1.aar" +- info_path = "libs/com_google_android_gms_play_services_tflite_impl/com_google_android_gms_play_services_tflite_impl.info" +- enable_bytecode_checks = false +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ +- "$google_play_services_package:google_play_services_base_java", +- "$google_play_services_package:google_play_services_basement_java", +- "$google_play_services_package:google_play_services_tasks_java", +- ] +- } +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - android_aar_prebuilt("com_google_android_play_core_common_java") { - aar_path = "libs/com_google_android_play_core_common/core-common-2.0.2.aar" - info_path = "libs/com_google_android_play_core_common/com_google_android_play_core_common.info" @@ -4406,9 +4347,10 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - [ "$google_play_services_package:google_play_services_basement_java" ] - } - } - +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. java_prebuilt("com_squareup_javawriter_java") { + jar_path = "libs/com_squareup_javawriter/javawriter-2.1.1.jar" diff --git a/third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn b/third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn --- a/third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn +++ b/third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn diff --git a/build/patches/Remove-detection-of-captive-portals.patch b/build/patches/Remove-detection-of-captive-portals.patch index fc130b63f..35c7dc1af 100644 --- a/build/patches/Remove-detection-of-captive-portals.patch +++ b/build/patches/Remove-detection-of-captive-portals.patch @@ -4,8 +4,10 @@ Subject: Remove detection of captive portals License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - chrome/browser/net/profile_network_context_service.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + .../browser/net/profile_network_context_service.cc | 2 +- + .../ssl/chrome_security_blocking_page_factory.cc | 14 -------------- + components/captive_portal/core/features.gni | 2 +- + 3 files changed, 2 insertions(+), 16 deletions(-) diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc --- a/chrome/browser/net/profile_network_context_service.cc @@ -19,4 +21,38 @@ diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/brow registry->RegisterBooleanPref(prefs::kQuicAllowed, true); registry->RegisterBooleanPref(prefs::kGloballyScopeHTTPAuthCacheEnabled, false); +diff --git a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc b/chrome/browser/ssl/chrome_security_blocking_page_factory.cc +--- a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc ++++ b/chrome/browser/ssl/chrome_security_blocking_page_factory.cc +@@ -102,20 +102,6 @@ bool IsEnterpriseManaged() { + // CaptivePortalBlockingPage to be invoked when the user has pressed the + // connect button. + void OpenLoginPage(content::WebContents* web_contents) { +-#if !BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION) +- // OpenLoginTabForWebContents() is not available on Android (the only +- // platform on which captive portal detection is not enabled). Simply open +- // the platform's portal detection URL in a new tab. +- const std::string url = security_interstitials::GetCaptivePortalServerUrl( +- base::android::AttachCurrentThread()); +- content::OpenURLParams params(GURL(url), content::Referrer(), +- WindowOpenDisposition::NEW_FOREGROUND_TAB, +- ui::PAGE_TRANSITION_LINK, false); +- web_contents->OpenURL(params); +-#else +- ChromeSecurityBlockingPageFactory::OpenLoginTabForWebContents(web_contents, +- true); +-#endif // !BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION) + } + + std::unique_ptr CreateMetricsHelperAndStartRecording( +diff --git a/components/captive_portal/core/features.gni b/components/captive_portal/core/features.gni +--- a/components/captive_portal/core/features.gni ++++ b/components/captive_portal/core/features.gni +@@ -6,5 +6,5 @@ import("//build/config/compiler/compiler.gni") + + # Please keep features in alphabetical order. + declare_args() { +- enable_captive_portal_detection = !is_android && !is_ios && !is_castos ++ enable_captive_portal_detection = false + } -- diff --git a/build/patches/Remove-help-menu-item.patch b/build/patches/Remove-help-menu-item.patch index 896e3045b..85c1e8f92 100644 --- a/build/patches/Remove-help-menu-item.patch +++ b/build/patches/Remove-help-menu-item.patch @@ -29,7 +29,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml -@@ -155,9 +155,6 @@ found in the LICENSE file. +@@ -158,9 +158,6 @@ found in the LICENSE file. @@ -66,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcu diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -2631,15 +2631,6 @@ public abstract class ChromeActivity +@@ -2591,15 +2591,6 @@ public abstract class ChromeActivity final Tab currentTab = getActivityTab(); @@ -107,7 +107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java -@@ -889,6 +889,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat +@@ -888,6 +888,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_and_feedback, getActivity().getTheme())); help.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); @@ -118,14 +118,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java -@@ -733,7 +733,6 @@ public abstract class BaseCustomTabActivity extends ChromeActivity& transport_rtt, - const absl::optional& downlink_mbps, + const std::optional& transport_rtt, + const std::optional& downlink_mbps, bool save_data) { + if ((true)) return; DCHECK(GetExecutionContext()->IsContextThread()); @@ -81,7 +81,7 @@ diff --git a/third_party/blink/renderer/platform/network/network_state_notifier. diff --git a/third_party/blink/renderer/platform/network/network_state_notifier.h b/third_party/blink/renderer/platform/network/network_state_notifier.h --- a/third_party/blink/renderer/platform/network/network_state_notifier.h +++ b/third_party/blink/renderer/platform/network/network_state_notifier.h -@@ -124,7 +124,7 @@ class PLATFORM_EXPORT NetworkStateNotifier { +@@ -122,7 +122,7 @@ class PLATFORM_EXPORT NetworkStateNotifier { scoped_refptr task_runner_; }; diff --git a/build/patches/Remove-segmentation-platform.patch b/build/patches/Remove-segmentation-platform.patch index f80940b9e..aafc34f97 100644 --- a/build/patches/Remove-segmentation-platform.patch +++ b/build/patches/Remove-segmentation-platform.patch @@ -47,9 +47,9 @@ diff --git a/chrome/browser/segmentation_platform/chrome_browser_main_extra_part diff --git a/components/segmentation_platform/public/features.cc b/components/segmentation_platform/public/features.cc --- a/components/segmentation_platform/public/features.cc +++ b/components/segmentation_platform/public/features.cc -@@ -132,4 +132,6 @@ BASE_FEATURE(kSegmentationPlatformModelInitializationDelay, - "SegmentationPlatformModelInitializationDelay", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -146,4 +146,6 @@ BASE_FEATURE(kSegmentationPlatformSignalDbCache, + base::FEATURE_DISABLED_BY_DEFAULT); + #endif +SET_CROMITE_FEATURE_DISABLED(kSegmentationPlatformFeature); +SET_CROMITE_FEATURE_DISABLED(kSegmentationPlatformFeedSegmentFeature); diff --git a/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch b/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch index 93c6b2b4d..8f9df23d1 100644 --- a/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch +++ b/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch @@ -187,7 +187,7 @@ diff --git a/third_party/blink/renderer/core/timing/memory_info.cc b/third_party diff --git a/third_party/blink/renderer/core/timing/window_performance.cc b/third_party/blink/renderer/core/timing/window_performance.cc --- a/third_party/blink/renderer/core/timing/window_performance.cc +++ b/third_party/blink/renderer/core/timing/window_performance.cc -@@ -253,7 +253,7 @@ MemoryInfo* WindowPerformance::memory(ScriptState* script_state) const { +@@ -254,7 +254,7 @@ MemoryInfo* WindowPerformance::memory(ScriptState* script_state) const { auto* memory_info = MakeGarbageCollected( Platform::Current()->IsLockedToSite() ? MemoryInfo::Precision::kPrecise diff --git a/build/patches/Remove-voice-recognition-integration.patch b/build/patches/Remove-voice-recognition-integration.patch index fcf7c65e6..c38540d61 100644 --- a/build/patches/Remove-voice-recognition-integration.patch +++ b/build/patches/Remove-voice-recognition-integration.patch @@ -10,18 +10,18 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/ntp/NewTabPage.java | 43 +---------- .../browser/ntp/search/SearchBoxMediator.java | 1 - .../browser/searchwidget/SearchActivity.java | 6 +- - .../SearchActivityLocationBarLayout.java | 44 +----------- + .../SearchActivityLocationBarLayout.java | 44 +---------- .../browser/toolbar/ToolbarManager.java | 5 -- .../chrome/browser/ui/RootUiCoordinator.java | 23 +----- chrome/browser/ui/android/omnibox/BUILD.gn | 1 - .../chrome/browser/omnibox/LocationBar.java | 6 -- .../omnibox/LocationBarCoordinator.java | 13 ---- - .../browser/omnibox/LocationBarMediator.java | 72 +------------------ + .../browser/omnibox/LocationBarMediator.java | 77 +------------------ .../chrome/browser/omnibox/OmniboxStub.java | 9 --- - .../suggestions/AutocompleteController.java | 25 ------- - .../suggestions/AutocompleteCoordinator.java | 8 --- + .../suggestions/AutocompleteController.java | 25 ------ + .../suggestions/AutocompleteCoordinator.java | 8 -- .../suggestions/AutocompleteMediator.java | 9 --- - 17 files changed, 8 insertions(+), 305 deletions(-) + 17 files changed, 10 insertions(+), 308 deletions(-) diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java --- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java @@ -62,7 +62,7 @@ diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/ }); mPropertyModel.set( -@@ -1564,13 +1551,6 @@ class StartSurfaceMediator +@@ -1562,13 +1549,6 @@ class StartSurfaceMediator ThreadUtils.postOnUiThread( () -> { if (mOmniboxStub != null) { @@ -111,7 +111,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/UmaSess import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tabmodel.TabModel; -@@ -127,24 +126,6 @@ public class UmaSessionStats { +@@ -131,24 +130,6 @@ public class UmaSessionStats { updatePreferences(); updateMetricsServiceState(); DefaultBrowserInfo.logDefaultBrowserStats(); @@ -139,14 +139,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/UmaSess diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java -@@ -68,7 +68,6 @@ import org.chromium.chrome.browser.native_page.ContextMenuManager; +@@ -69,7 +69,6 @@ import org.chromium.chrome.browser.native_page.ContextMenuManager; import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; import org.chromium.chrome.browser.omnibox.OmniboxStub; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteControllerProvider; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.profiles.ProfileKey; + import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; @@ -128,7 +127,6 @@ public class NewTabPage TemplateUrlServiceObserver, BrowserControlsStateProvider.Observer, @@ -163,7 +163,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. // The timestamp at which the constructor was called. protected final long mConstructedTimeNs; -@@ -259,8 +256,7 @@ public class NewTabPage +@@ -260,8 +257,7 @@ public class NewTabPage @Override public boolean isVoiceSearchEnabled() { @@ -173,7 +173,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } @Override -@@ -268,24 +264,6 @@ public class NewTabPage +@@ -269,24 +265,6 @@ public class NewTabPage if (mIsDestroyed) return; FeedReliabilityLogger feedReliabilityLogger = mFeedSurfaceProvider.getReliabilityLogger(); @@ -198,7 +198,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } @Override -@@ -874,12 +852,6 @@ public class NewTabPage +@@ -869,12 +847,6 @@ public class NewTabPage mOmniboxStub.addUrlFocusChangeListener(feedReliabilityLogger); } } @@ -211,7 +211,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } @Override -@@ -890,11 +862,6 @@ public class NewTabPage +@@ -885,11 +857,6 @@ public class NewTabPage } } @@ -223,7 +223,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. /** Adds an observer to be notified on most visited tile clicks. */ public void addMostVisitedTileClickObserver(MostVisitedTileClickObserver observer) { mMostVisitedTileClickObservers.addObserver(observer); -@@ -914,10 +881,6 @@ public class NewTabPage +@@ -909,10 +876,6 @@ public class NewTabPage RecordUserAction.record("MobileNTPShown"); mJankTracker.startTrackingScenario(JankScenario.NEW_TAB_PAGE); SuggestionsMetrics.recordSurfaceVisible(); @@ -234,7 +234,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } /** Records UMA for the NTP being hidden and the time spent on it. */ -@@ -927,7 +890,6 @@ public class NewTabPage +@@ -922,7 +885,6 @@ public class NewTabPage "NewTabPage.TimeSpent", (System.nanoTime() - mLastShownTimeNs) / TimeUtils.NANOSECONDS_PER_MILLISECOND); SuggestionsMetrics.recordSurfaceHidden(); @@ -242,7 +242,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } /** -@@ -1011,9 +973,6 @@ public class NewTabPage +@@ -1006,9 +968,6 @@ public class NewTabPage } mFeedSurfaceProvider.destroy(); mTab.getWindowAndroid().removeContextMenuCloseListener(mContextMenuManager); @@ -274,7 +274,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; -@@ -485,13 +484,11 @@ public class SearchActivity extends AsyncInitializationActivity +@@ -489,13 +488,11 @@ public class SearchActivity extends AsyncInitializationActivity // will navigate to Tabbed mode. Investigate whether this can inflate // the tabbed mode layout in the background instead of CCTs. CustomTabsConnection.getInstance().warmup(0); @@ -289,7 +289,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se RecordUserAction.record("SearchWidget.WidgetSelected"); getActivityDelegate().onFinishDeferredInitialization(); -@@ -594,7 +591,6 @@ public class SearchActivity extends AsyncInitializationActivity +@@ -598,7 +595,6 @@ public class SearchActivity extends AsyncInitializationActivity mSearchBox.beginQuery( searchType, getOptionalIntentQuery(), @@ -411,7 +411,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se 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 -@@ -91,7 +91,6 @@ import org.chromium.chrome.browser.omnibox.OverrideUrlLoadingDelegate; +@@ -92,7 +92,6 @@ import org.chromium.chrome.browser.omnibox.OverrideUrlLoadingDelegate; import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; import org.chromium.chrome.browser.omnibox.suggestions.history_clusters.HistoryClustersProcessor.OpenHistoryClustersDelegate; @@ -419,7 +419,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar import org.chromium.chrome.browser.page_info.ChromePageInfo; import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; -@@ -2511,10 +2510,6 @@ public class ToolbarManager +@@ -2533,10 +2532,6 @@ public class ToolbarManager return mLocationBar.getOmniboxStub(); } @@ -433,7 +433,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar 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 -@@ -96,8 +96,6 @@ import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; +@@ -94,8 +94,6 @@ import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl; import org.chromium.chrome.browser.omnibox.suggestions.history_clusters.HistoryClustersProcessor.OpenHistoryClustersDelegate; @@ -442,7 +442,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; -@@ -294,7 +292,6 @@ public class RootUiCoordinator +@@ -292,7 +290,6 @@ public class RootUiCoordinator protected OneshotSupplier mIntentMetadataOneshotSupplier; protected OneshotSupplierImpl mPromoShownOneshotSupplier = new OneshotSupplierImpl<>(); protected Supplier mStartSurfaceParentTabSupplier; @@ -450,7 +450,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi private MediaCaptureOverlayController mCaptureController; private @Nullable ScrollCaptureManager mScrollCaptureManager; protected final ActivityLifecycleDispatcher mActivityLifecycleDispatcher; -@@ -635,9 +632,6 @@ public class RootUiCoordinator +@@ -643,9 +640,6 @@ public class RootUiCoordinator } if (mToolbarManager != null) { @@ -460,7 +460,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi mToolbarManager.destroy(); mToolbarManager = null; } -@@ -1324,19 +1318,11 @@ public class RootUiCoordinator +@@ -1286,19 +1280,11 @@ public class RootUiCoordinator new VoiceToolbarButtonController.VoiceSearchDelegate() { @Override public boolean isVoiceSearchEnabled() { @@ -481,7 +481,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi } }; TranslateToolbarButtonController translateToolbarButtonController = -@@ -1502,13 +1488,6 @@ public class RootUiCoordinator +@@ -1464,13 +1450,6 @@ public class RootUiCoordinator if (!mSupportsAppMenuSupplier.getAsBoolean()) { mToolbarManager.getToolbar().disableMenuButton(); } @@ -498,7 +498,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -142,7 +142,6 @@ android_library("java") { +@@ -143,7 +143,6 @@ android_library("java") { "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionView.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewBinder.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewProperties.java", @@ -509,15 +509,15 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java -@@ -9,7 +9,6 @@ import android.view.ViewGroup; - +@@ -10,7 +10,6 @@ import android.view.ViewGroup; import androidx.annotation.Nullable; + import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.tab.Tab; /** Container that holds the {@link UrlBar} and SSL state related with the current {@link Tab}. */ -@@ -81,11 +80,6 @@ public interface LocationBar { +@@ -82,11 +81,6 @@ public interface LocationBar { */ View getSecurityIconView(); @@ -532,7 +532,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow 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 -@@ -40,7 +40,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteDelegate; +@@ -41,7 +41,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.OmniboxLoadUrlParams; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; import org.chromium.chrome.browser.omnibox.suggestions.history_clusters.HistoryClustersProcessor.OpenHistoryClustersDelegate; @@ -540,7 +540,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManager; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; -@@ -454,13 +453,6 @@ public class LocationBarCoordinator +@@ -460,13 +459,6 @@ public class LocationBarCoordinator return mLocationBarLayout.getSecurityIconView(); } @@ -554,7 +554,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Nullable @Override public OmniboxStub getOmniboxStub() { -@@ -751,11 +743,6 @@ public class LocationBarCoordinator +@@ -762,11 +754,6 @@ public class LocationBarCoordinator // End tablet-specific methods. @@ -569,15 +569,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow 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 -@@ -51,7 +51,6 @@ import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; - import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; +@@ -52,7 +52,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; + import org.chromium.chrome.browser.omnibox.suggestions.OmniboxLoadUrlParams; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesState; import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManager; -@@ -89,8 +88,6 @@ import java.util.function.BooleanSupplier; +@@ -92,8 +91,6 @@ import java.util.function.BooleanSupplier; class LocationBarMediator implements LocationBarDataProvider.Observer, OmniboxStub, @@ -586,7 +586,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow UrlBarDelegate, OnKeyListener, ComponentCallbacks, -@@ -154,7 +151,6 @@ class LocationBarMediator +@@ -157,7 +154,6 @@ class LocationBarMediator }; private final LocationBarLayout mLocationBarLayout; @@ -594,7 +594,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow private final LocationBarDataProvider mLocationBarDataProvider; private StatusCoordinator mStatusCoordinator; private AutocompleteCoordinator mAutocompleteCoordinator; -@@ -228,8 +224,6 @@ class LocationBarMediator +@@ -231,8 +227,6 @@ class LocationBarMediator mLocationBarDataProvider.addObserver(this); mOverrideUrlLoadingDelegate = overrideUrlLoadingDelegate; mLocaleManager = localeManager; @@ -603,7 +603,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mProfileSupplier = profileSupplier; mProfileSupplier.addObserver(mCallbackController.makeCancelable(this::setProfile)); mPrivacyPreferencesManager = privacyPreferencesManager; -@@ -274,8 +268,6 @@ class LocationBarMediator +@@ -277,8 +271,6 @@ class LocationBarMediator mAutocompleteCoordinator = null; mUrlCoordinator = null; mPrivacyPreferencesManager = null; @@ -612,7 +612,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mLocationBarDataProvider.removeObserver(this); mDeferredNativeRunnables.clear(); mUrlFocusChangeListeners.clear(); -@@ -404,11 +396,6 @@ class LocationBarMediator +@@ -407,11 +399,6 @@ class LocationBarMediator mLocationBarLayout.setUnfocusedWidth(unfocusedWidth); } @@ -624,7 +624,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /* package */ void setLensControllerForTesting(LensController lensController) { mLensController = lensController; } -@@ -650,8 +637,6 @@ class LocationBarMediator +@@ -662,8 +649,6 @@ class LocationBarMediator mUrlCoordinator.setKeyboardVisibility(false, false); RecordUserAction.record("MobileOmniboxVoiceSearch"); @@ -633,7 +633,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } /** package */ -@@ -1120,9 +1105,7 @@ class LocationBarMediator +@@ -1132,9 +1117,7 @@ class LocationBarMediator private boolean shouldShowMicButton() { if (shouldShowDeleteButton()) return false; @@ -644,7 +644,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow return false; } boolean isToolbarMicEnabled = mIsToolbarMicEnabledSupplier.getAsBoolean(); -@@ -1139,6 +1122,7 @@ class LocationBarMediator +@@ -1151,6 +1134,7 @@ class LocationBarMediator } private boolean shouldShowLensButton() { @@ -652,7 +652,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow if (shouldShowDeleteButton()) return false; // When this method is called on UI inflation, return false as the native is not ready. -@@ -1146,15 +1130,6 @@ class LocationBarMediator +@@ -1158,15 +1142,6 @@ class LocationBarMediator return false; } @@ -668,7 +668,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow // When this method is called after native initialized, check omnibox conditions and Lens // eligibility. if (mIsTablet && mShouldShowButtonsWhenUnfocused) { -@@ -1356,16 +1331,6 @@ class LocationBarMediator +@@ -1371,16 +1346,6 @@ class LocationBarMediator } } @@ -685,11 +685,12 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Override public void addUrlFocusChangeListener(UrlFocusChangeListener listener) { mUrlFocusChangeListeners.addObserver(listener); -@@ -1381,30 +1346,11 @@ class LocationBarMediator +@@ -1396,33 +1361,13 @@ class LocationBarMediator return mUrlHasFocus; } - @Override ++ // @Override public void clearOmniboxFocus() { setUrlBarFocus( /* shouldBeFocused= */ false, /* pastedText= */ null, OmniboxFocusReason.UNFOCUS); @@ -704,7 +705,10 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow - - @Override - public void loadUrlFromVoice(String url) { -- loadUrl(url, PageTransition.TYPED, 0, /* openInNewTab= */ false); +- loadUrl( +- new OmniboxLoadUrlParams.Builder(url, PageTransition.TYPED) +- .setOpenInNewTab(false) +- .build()); - } - - @Override @@ -713,10 +717,11 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow - } - - @Override ++ // @Override public void setSearchQuery(String query) { if (TextUtils.isEmpty(query)) return; -@@ -1427,20 +1373,6 @@ class LocationBarMediator +@@ -1445,20 +1390,6 @@ class LocationBarMediator mUrlCoordinator.setKeyboardVisibility(true, false); } @@ -774,7 +779,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.tab.Tab; import org.chromium.components.omnibox.AutocompleteMatch; -@@ -327,25 +326,6 @@ public class AutocompleteController implements Destroyable { +@@ -345,25 +344,6 @@ public class AutocompleteController implements Destroyable { mNativeController, match.getNativeObjectRef(), matchIndex, webContents); } @@ -800,7 +805,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /** * Updates searchbox stats parameters on the selected match that we will navigate to and * returns the updated URL. -@@ -439,11 +419,6 @@ public class AutocompleteController implements Destroyable { +@@ -457,11 +437,6 @@ public class AutocompleteController implements Destroyable { Tab getMatchingTabForSuggestion( long nativeAutocompleteControllerAndroid, long nativeAutocompleteMatch); @@ -823,7 +828,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tab.Tab; -@@ -351,13 +350,6 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC +@@ -344,13 +343,6 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC mRecycledViewPool.onNativeInitialized(); } @@ -840,7 +845,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java -@@ -37,7 +37,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteController.On +@@ -38,7 +38,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteDelegate.Auto import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionFactoryImpl; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; import org.chromium.chrome.browser.omnibox.suggestions.history_clusters.HistoryClustersProcessor.OpenHistoryClustersDelegate; @@ -848,7 +853,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; import org.chromium.chrome.browser.share.ShareDelegate; -@@ -427,14 +426,6 @@ class AutocompleteMediator +@@ -430,14 +429,6 @@ class AutocompleteMediator mShouldPreventOmniboxAutocomplete = prevent; } diff --git a/build/patches/Remove-window-name-on-cross-origin-navigation.patch b/build/patches/Remove-window-name-on-cross-origin-navigation.patch index c17598238..cd71879df 100644 --- a/build/patches/Remove-window-name-on-cross-origin-navigation.patch +++ b/build/patches/Remove-window-name-on-cross-origin-navigation.patch @@ -21,7 +21,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 -@@ -2699,7 +2699,7 @@ void DocumentLoader::CommitNavigation() { +@@ -2696,7 +2696,7 @@ void DocumentLoader::CommitNavigation() { // that the name would be nulled and if the name is accessed after we will // fire a UseCounter. If we decide to move forward with this change, we'd // actually clean the name here. @@ -30,7 +30,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p frame_->Tree().ExperimentalSetNulledName(); } -@@ -2710,6 +2710,7 @@ void DocumentLoader::CommitNavigation() { +@@ -2707,6 +2707,7 @@ void DocumentLoader::CommitNavigation() { // TODO(shuuran): CrossSiteCrossBrowsingContextGroupSetNulledName will just // record the fact that the name would be nulled and if the name is accessed // after we will fire a UseCounter. diff --git a/build/patches/Restore-LastTabStandingTracker.patch b/build/patches/Restore-LastTabStandingTracker.patch index ad18c6d3c..dc0ce7d01 100644 --- a/build/patches/Restore-LastTabStandingTracker.patch +++ b/build/patches/Restore-LastTabStandingTracker.patch @@ -27,7 +27,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1923,6 +1923,16 @@ static_library("browser") { +@@ -1935,6 +1935,16 @@ static_library("browser") { ] } @@ -386,7 +386,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "chrome/browser/permissions/notifications_engagement_service_factory.h" #include "chrome/browser/permissions/one_time_permissions_tracker_factory.h" #include "chrome/browser/permissions/origin_keyed_permission_action_service_factory.h" -@@ -961,6 +962,7 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -963,6 +964,7 @@ void ChromeBrowserMainExtraPartsProfiles:: #if BUILDFLAG(BUILD_WITH_TFLITE_LIB) OnDeviceTailModelServiceFactory::GetInstance(); #endif @@ -397,15 +397,15 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc -@@ -53,6 +53,7 @@ +@@ -52,6 +52,7 @@ + #include "chrome/browser/page_info/page_info_features.h" #include "chrome/browser/page_load_metrics/page_load_metrics_initialize.h" #include "chrome/browser/password_manager/chrome_password_manager_client.h" - #include "chrome/browser/performance_manager/public/user_tuning/user_performance_tuning_manager.h" +#include "chrome/browser/permissions/last_tab_standing_tracker_tab_helper.h" #include "chrome/browser/permissions/one_time_permissions_tracker_helper.h" #include "chrome/browser/predictors/loading_predictor_factory.h" #include "chrome/browser/predictors/loading_predictor_tab_helper.h" -@@ -396,6 +397,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -400,6 +401,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { HistoryClustersTabHelper::CreateForWebContents(web_contents); HttpsOnlyModeTabHelper::CreateForWebContents(web_contents); webapps::InstallableManager::CreateForWebContents(web_contents); diff --git a/build/patches/Restore-Search-Ready-Omnibox-flag.patch b/build/patches/Restore-Search-Ready-Omnibox-flag.patch index d67e171e8..3c11602bd 100644 --- a/build/patches/Restore-Search-Ready-Omnibox-flag.patch +++ b/build/patches/Restore-Search-Ready-Omnibox-flag.patch @@ -23,25 +23,25 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 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 -@@ -247,6 +247,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -250,6 +250,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kReaderModeInCCT, &kRecordSuppressionMetrics, &kReengagementNotification, + &kSearchReadyOmniboxFeature, &kRelatedSearchesAllLanguage, &kReportParentalControlSitesChild, - &kRequestDesktopSiteDefaults, + &kSearchEnginesPromoV3, 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 -@@ -324,6 +324,7 @@ public abstract class ChromeFeatureList { +@@ -325,6 +325,7 @@ public abstract class ChromeFeatureList { public static final String MESSAGES_FOR_ANDROID_ADS_BLOCKED = "MessagesForAndroidAdsBlocked"; public static final String MESSAGES_FOR_ANDROID_INFRASTRUCTURE = "MessagesForAndroidInfrastructure"; + public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox"; public static final String MESSAGES_FOR_ANDROID_PERMISSION_UPDATE = "MessagesForAndroidPermissionUpdate"; - public static final String MUlTI_INSTANCE_APPLICATION_STATUS_CLEANUP = + public static final String MIGRATE_ACCOUNT_MANAGEMENT_SETTINGS_TO_CAPABILITIES = diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch index e21e4ff46..622313d96 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -17,11 +17,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/ntp/NewTabPageLayout.java | 31 ++++++++- .../SuggestionsNavigationDelegate.java | 17 +++++ .../flags/android/chrome_feature_list.cc | 1 + - .../browser/flags/ChromeFeatureList.java | 1 + + .../browser/flags/ChromeFeatureList.java | 3 +- .../Restore-Simplified-NTP-launch.inc | 12 ++++ - .../Restore-Simplified-NTP-launch.inc | 3 + + .../Restore-Simplified-NTP-launch.inc | 5 ++ .../Restore-Simplified-NTP-launch.inc | 1 + - 15 files changed, 183 insertions(+), 5 deletions(-) + 15 files changed, 186 insertions(+), 6 deletions(-) create mode 100644 chrome/android/java/res/layout/ntp_shortcuts.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/feedback/SimplifiedNtpFeedbackSource.java create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Restore-Simplified-NTP-launch.inc @@ -31,7 +31,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 -@@ -543,6 +543,7 @@ chrome_java_resources = [ +@@ -545,6 +545,7 @@ chrome_java_resources = [ "java/res/layout/new_tab_page_incognito.xml", "java/res/layout/new_tab_page_layout.xml", "java/res/layout/new_tab_page_tile_grid_placeholder.xml", @@ -42,7 +42,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 -@@ -620,6 +620,7 @@ chrome_java_sources = [ +@@ -626,6 +626,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/feedback/FeedFeedbackCollector.java", "java/src/org/chromium/chrome/browser/feedback/HelpAndFeedbackLauncherImpl.java", "java/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java", @@ -194,7 +194,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java b/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java -@@ -171,7 +171,10 @@ public class IdentityDiscController +@@ -175,7 +175,10 @@ public class IdentityDiscController mButtonData.setButtonSpec( buttonSpecWithDrawableAndDescription(mButtonData.getButtonSpec(), email)); @@ -240,7 +240,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL import org.chromium.chrome.browser.lens.LensMetrics; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; import org.chromium.chrome.browser.logo.LogoBridge.Logo; -@@ -107,6 +109,8 @@ public class NewTabPageLayout extends LinearLayout { +@@ -103,6 +105,8 @@ public class NewTabPageLayout extends LinearLayout { private @Nullable DisplayStyleObserver mDisplayStyleObserver; private CallbackController mCallbackController = new CallbackController(); @@ -249,7 +249,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL /** * Whether the tiles shown in the layout have finished loading. * With {@link #mHasShownView}, it's one of the 2 flags used to track initialisation progress. -@@ -314,6 +318,7 @@ public class NewTabPageLayout extends LinearLayout { +@@ -309,6 +313,7 @@ public class NewTabPageLayout extends LinearLayout { isScrollableMvtEnabled(), searchProviderIsGoogle); initializeSearchBoxBackground(); @@ -257,7 +257,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL initializeSearchBoxTextView(); initializeVoiceSearchButton(); initializeLensButton(); -@@ -802,12 +807,15 @@ public class NewTabPageLayout extends LinearLayout { +@@ -782,12 +787,15 @@ public class NewTabPageLayout extends LinearLayout { marginLayoutParams.leftMargin = lateralPaddingsForNtp; marginLayoutParams.rightMargin = lateralPaddingsForNtp; } @@ -274,7 +274,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL marginLayoutParams.bottomMargin = getResources() .getDimensionPixelSize(R.dimen.tile_carousel_layout_bottom_margin); -@@ -815,7 +823,10 @@ public class NewTabPageLayout extends LinearLayout { +@@ -795,7 +803,10 @@ public class NewTabPageLayout extends LinearLayout { // Set a bit more top padding on the tile grid if there is no logo. ViewGroup.LayoutParams layoutParams = mMvTilesContainerLayout.getLayoutParams(); layoutParams.width = ViewGroup.LayoutParams.WRAP_CONTENT; @@ -286,7 +286,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL marginLayoutParams.bottomMargin = getGridMvtBottomMargin(); } -@@ -1117,6 +1128,22 @@ public class NewTabPageLayout extends LinearLayout { +@@ -1093,6 +1104,22 @@ public class NewTabPageLayout extends LinearLayout { return iphCommandBuilder; } @@ -346,8 +346,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug 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 -@@ -222,6 +222,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kHideTabOnTabSwitcher, +@@ -223,6 +223,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &kGridTabSwitcherAndroidAnimations, &kIncognitoReauthenticationForAndroid, &kIncognitoScreenshot, + &kSimplifiedNTP, @@ -357,7 +357,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -324,6 +324,7 @@ public abstract class ChromeFeatureList { +@@ -325,6 +325,7 @@ public abstract class ChromeFeatureList { "LookalikeUrlNavigationSuggestionsUI"; public static final String MAGIC_STACK_ANDROID = "MagicStackAndroid"; public static final String MESSAGES_FOR_ANDROID_ADS_BLOCKED = "MessagesForAndroidAdsBlocked"; @@ -365,6 +365,15 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String MESSAGES_FOR_ANDROID_INFRASTRUCTURE = "MessagesForAndroidInfrastructure"; public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox"; +@@ -634,7 +635,7 @@ public abstract class ChromeFeatureList { + newCachedFlag(ACCOUNT_REAUTHENTICATION_RECENT_TIME_WINDOW, true); + public static final CachedFlag sStartSurfaceWithAccessibility = + newCachedFlag(START_SURFACE_WITH_ACCESSIBILITY, true); +- public static final CachedFlag sSurfacePolish = newCachedFlag(SURFACE_POLISH, true); ++ public static final CachedFlag sSurfacePolish = newCachedFlag(SURFACE_POLISH, false); + public static final CachedFlag sTabDragDropAsWindowAndroid = + newCachedFlag(TAB_DRAG_DROP_ANDROID, false); + public static final CachedFlag sTabGroupPaneAndroid = diff --git a/cromite_flags/chrome/browser/about_flags_cc/Restore-Simplified-NTP-launch.inc b/cromite_flags/chrome/browser/about_flags_cc/Restore-Simplified-NTP-launch.inc new file mode 100644 --- /dev/null @@ -386,10 +395,12 @@ diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/R new file mode 100644 --- /dev/null +++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Restore-Simplified-NTP-launch.inc -@@ -0,0 +1,3 @@ +@@ -0,0 +1,5 @@ +CROMITE_FEATURE(kSimplifiedNTP, + "SimplifiedNTP", + base::FEATURE_ENABLED_BY_DEFAULT); ++ ++SET_CROMITE_FEATURE_DISABLED(kSurfacePolish); diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/Restore-Simplified-NTP-launch.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/Restore-Simplified-NTP-launch.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch index 1d86bc0fb..455ebcca3 100644 --- a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch +++ b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch @@ -89,7 +89,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareButt 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 -@@ -653,18 +653,12 @@ const FeatureEntry::FeatureParam kAdaptiveButtonCustomization_Share[] = { +@@ -658,18 +658,12 @@ const FeatureEntry::FeatureParam kAdaptiveButtonCustomization_Share[] = { {"default_segment", "share"}, {"show_ui_only_after_ready", "false"}, {"ignore_segmentation_results", "true"}}; @@ -111,7 +111,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -47,9 +47,10 @@ +@@ -42,9 +42,10 @@ "expiry_milestone": 125 }, { @@ -134,7 +134,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &kAdaptiveButtonInTopToolbarTranslate, &kAdaptiveButtonInTopToolbarAddToBookmarks, &kAdaptiveButtonInTopToolbarCustomizationV2, -@@ -391,6 +392,10 @@ static jlong JNI_ChromeFeatureMap_GetNativeMap(JNIEnv* env) { +@@ -388,6 +389,10 @@ static jlong JNI_ChromeFeatureMap_GetNativeMap(JNIEnv* env) { // Alphabetical: @@ -175,7 +175,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java -@@ -16,8 +16,18 @@ import org.chromium.chrome.browser.readaloud.ReadAloudFeatures; +@@ -17,8 +17,18 @@ import org.chromium.chrome.browser.readaloud.ReadAloudFeatures; import java.util.HashMap; @@ -195,7 +195,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** Finch default group for new tab variation. */ static final String NEW_TAB = "new-tab"; -@@ -33,6 +43,7 @@ public class AdaptiveToolbarFeatures { +@@ -34,6 +44,7 @@ public class AdaptiveToolbarFeatures { private static final String VARIATION_PARAM_DISABLE_UI = "disable_ui"; private static final String VARIATION_PARAM_IGNORE_SEGMENTATION_RESULTS = "ignore_segmentation_results"; @@ -203,7 +203,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow private static final String VARIATION_PARAM_SHOW_UI_ONLY_AFTER_READY = "show_ui_only_after_ready"; @VisibleForTesting static final String VARIATION_PARAM_MIN_VERSION = "min_version_adaptive"; -@@ -101,6 +112,21 @@ public class AdaptiveToolbarFeatures { +@@ -102,6 +113,21 @@ public class AdaptiveToolbarFeatures { } } @@ -225,7 +225,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** * Returns whether the adaptive toolbar is enabled with segmentation and customization. * -@@ -241,11 +267,48 @@ public class AdaptiveToolbarFeatures { +@@ -242,11 +268,48 @@ public class AdaptiveToolbarFeatures { ChromeFeatureList.CONTEXTUAL_PAGE_ACTIONS, "enable_ui", true); } diff --git a/build/patches/Restore-offline-indicator-v2-flag.patch b/build/patches/Restore-offline-indicator-v2-flag.patch index 7c57d178d..ec90f355a 100644 --- a/build/patches/Restore-offline-indicator-v2-flag.patch +++ b/build/patches/Restore-offline-indicator-v2-flag.patch @@ -92,7 +92,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in 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 -@@ -1076,7 +1076,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1101,7 +1101,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { private void initStatusIndicatorCoordinator(LayoutManagerImpl layoutManager) { // TODO(crbug.com/1035584): Disable on tablets for now as we need to do one or two extra // things for tablets. @@ -102,9 +102,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab return; } -@@ -1102,6 +1103,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { - mStatusIndicatorCoordinator.addObserver(mStatusIndicatorObserver); - mStatusIndicatorCoordinator.addObserver(mStatusBarColorController); +@@ -1135,6 +1136,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { + hubManager.setStatusIndicatorHeight(mStatusIndicatorHeight); + }); + // Don't initialize the offline indicator controller if the feature is disabled. + if (!ChromeFeatureList.isEnabled(ChromeFeatureList.OFFLINE_INDICATOR_V2)) { @@ -117,7 +117,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab 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 -@@ -233,6 +233,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -234,6 +234,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kNotificationPermissionVariant, &kNotificationPermissionBottomSheet, &kOpenDownloadDialog, @@ -128,7 +128,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -338,6 +338,7 @@ public abstract class ChromeFeatureList { +@@ -342,6 +342,7 @@ public abstract class ChromeFeatureList { public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET = "NotificationPermissionBottomSheet"; diff --git a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch index 1387e42f4..0a6b60d77 100644 --- a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch +++ b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch @@ -15,7 +15,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 -@@ -1807,6 +1807,10 @@ +@@ -1843,6 +1843,10 @@ "yangsharon@google.com", "alexmos@google.com", "creis@google.com" ], "expiry_milestone": 140 }, diff --git a/build/patches/Revert-removal-of-execution-context-address-space.patch b/build/patches/Revert-removal-of-execution-context-address-space.patch index 05677a9c1..ccf4fd462 100644 --- a/build/patches/Revert-removal-of-execution-context-address-space.patch +++ b/build/patches/Revert-removal-of-execution-context-address-space.patch @@ -106,7 +106,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc b/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc --- a/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc +++ b/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc -@@ -251,6 +251,7 @@ void WebSharedWorkerImpl::StartWorkerContext( +@@ -252,6 +252,7 @@ void WebSharedWorkerImpl::StartWorkerContext( MakeGarbageCollected(), std::make_unique( std::move(content_settings)), @@ -171,7 +171,7 @@ diff --git a/third_party/blink/renderer/core/frame/policy_container.h b/third_pa diff --git a/third_party/blink/renderer/core/frame/web_frame_test.cc b/third_party/blink/renderer/core/frame/web_frame_test.cc --- a/third_party/blink/renderer/core/frame/web_frame_test.cc +++ b/third_party/blink/renderer/core/frame/web_frame_test.cc -@@ -8082,6 +8082,40 @@ TEST_F(WebFrameTest, PushStateStartsAndStops) { +@@ -8083,6 +8083,40 @@ TEST_F(WebFrameTest, PushStateStartsAndStops) { EXPECT_EQ(client.StopLoadingCount(), 2); } @@ -237,7 +237,7 @@ diff --git a/third_party/blink/renderer/core/loader/modulescript/installed_servi diff --git a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc --- a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc +++ b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc -@@ -207,6 +207,7 @@ void ModuleScriptLoaderTest::InitializeForWorklet() { +@@ -228,6 +228,7 @@ void ModuleScriptLoaderTest::InitializeForWorklet() { network::mojom::ReferrerPolicy::kDefault, security_origin_.get(), true /* is_secure_context */, HttpsState::kModern, nullptr /* worker_clients */, nullptr /* content_settings_client */, @@ -256,7 +256,7 @@ diff --git a/third_party/blink/renderer/core/loader/modulescript/worker_module_s #include "services/network/public/mojom/referrer_policy.mojom-blink.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/loader/network_utils.h" -@@ -182,7 +183,7 @@ void WorkerModuleScriptFetcher::NotifyClient( +@@ -183,7 +184,7 @@ void WorkerModuleScriptFetcher::NotifyClient( // Step 12.3-12.6 are implemented in Initialize(). global_scope_->Initialize( @@ -363,7 +363,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.h b/third_ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc --- a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc +++ b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc -@@ -83,6 +83,8 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create( +@@ -85,6 +85,8 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create( KURL response_script_url = creation_params->script_url; network::mojom::ReferrerPolicy response_referrer_policy = creation_params->referrer_policy; @@ -372,7 +372,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco const bool parent_cross_origin_isolated_capability = creation_params->parent_cross_origin_isolated_capability; const bool parent_is_isolated_context = -@@ -102,7 +104,7 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create( +@@ -104,7 +106,7 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create( // Pass dummy origin trial tokens here as it is already set to outside's // origin trial tokens in DedicatedWorkerGlobalScope's constructor. global_scope->Initialize(response_script_url, response_referrer_policy, @@ -381,7 +381,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco nullptr /* response_origin_trial_tokens */); return global_scope; } else { -@@ -224,6 +226,7 @@ const AtomicString& DedicatedWorkerGlobalScope::InterfaceName() const { +@@ -226,6 +228,7 @@ const AtomicString& DedicatedWorkerGlobalScope::InterfaceName() const { void DedicatedWorkerGlobalScope::Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -389,7 +389,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco Vector response_csp, const Vector* /* response_origin_trial_tokens */) { // Step 14.3. "Set worker global scope's url to response's url." -@@ -237,6 +240,9 @@ void DedicatedWorkerGlobalScope::Initialize( +@@ -239,6 +242,9 @@ void DedicatedWorkerGlobalScope::Initialize( // parsing the `Referrer-Policy` header of response." SetReferrerPolicy(response_referrer_policy); @@ -399,7 +399,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco // The following is the Content-Security-Policy part of "Initialize worker // global scope's policy container" // https://html.spec.whatwg.org/#initialize-worker-policy-container -@@ -449,6 +455,7 @@ void DedicatedWorkerGlobalScope::DidFetchClassicScript( +@@ -451,6 +457,7 @@ void DedicatedWorkerGlobalScope::DidFetchClassicScript( // Pass dummy origin trial tokens here as it is already set to outside's // origin trial tokens in DedicatedWorkerGlobalScope's constructor. Initialize(classic_script_loader->ResponseURL(), response_referrer_policy, @@ -410,7 +410,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h --- a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h +++ b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h -@@ -109,6 +109,7 @@ class CORE_EXPORT DedicatedWorkerGlobalScope final : public WorkerGlobalScope { +@@ -110,6 +110,7 @@ class CORE_EXPORT DedicatedWorkerGlobalScope final : public WorkerGlobalScope { void Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -429,7 +429,7 @@ diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_param const Vector* inherited_trial_features, const base::UnguessableToken& parent_devtools_token, std::unique_ptr worker_settings, -@@ -68,6 +69,7 @@ GlobalScopeCreationParams::GlobalScopeCreationParams( +@@ -69,6 +70,7 @@ GlobalScopeCreationParams::GlobalScopeCreationParams( starter_https_state(starter_https_state), worker_clients(worker_clients), content_settings_client(std::move(content_settings_client)), @@ -440,14 +440,14 @@ diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_param diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_params.h b/third_party/blink/renderer/core/workers/global_scope_creation_params.h --- a/third_party/blink/renderer/core/workers/global_scope_creation_params.h +++ b/third_party/blink/renderer/core/workers/global_scope_creation_params.h -@@ -11,6 +11,7 @@ +@@ -12,6 +12,7 @@ #include "base/unguessable_token.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "services/metrics/public/cpp/ukm_source_id.h" +#include "services/network/public/mojom/ip_address_space.mojom-blink-forward.h" #include "services/network/public/mojom/referrer_policy.mojom-blink-forward.h" - #include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/public/common/permissions_policy/permissions_policy.h" + #include "third_party/blink/public/common/tokens/tokens.h" @@ -61,6 +62,7 @@ struct CORE_EXPORT GlobalScopeCreationParams final { HttpsState starter_https_state, WorkerClients*, @@ -456,7 +456,7 @@ diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_param const Vector* inherited_trial_features, const base::UnguessableToken& parent_devtools_token, std::unique_ptr, -@@ -169,6 +171,11 @@ struct CORE_EXPORT GlobalScopeCreationParams final { +@@ -170,6 +172,11 @@ struct CORE_EXPORT GlobalScopeCreationParams final { std::unique_ptr content_settings_client; @@ -544,7 +544,7 @@ diff --git a/third_party/blink/renderer/core/workers/main_thread_worklet_test.cc diff --git a/third_party/blink/renderer/core/workers/shared_worker_global_scope.cc b/third_party/blink/renderer/core/workers/shared_worker_global_scope.cc --- a/third_party/blink/renderer/core/workers/shared_worker_global_scope.cc +++ b/third_party/blink/renderer/core/workers/shared_worker_global_scope.cc -@@ -76,6 +76,7 @@ const AtomicString& SharedWorkerGlobalScope::InterfaceName() const { +@@ -82,6 +82,7 @@ const AtomicString& SharedWorkerGlobalScope::InterfaceName() const { void SharedWorkerGlobalScope::Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -552,7 +552,7 @@ diff --git a/third_party/blink/renderer/core/workers/shared_worker_global_scope. Vector response_csp, const Vector* response_origin_trial_tokens) { // Step 12.3. "Set worker global scope's url to response's url." -@@ -89,6 +90,9 @@ void SharedWorkerGlobalScope::Initialize( +@@ -95,6 +96,9 @@ void SharedWorkerGlobalScope::Initialize( // parsing the `Referrer-Policy` header of response." SetReferrerPolicy(response_referrer_policy); @@ -562,7 +562,7 @@ diff --git a/third_party/blink/renderer/core/workers/shared_worker_global_scope. // Step 12.6. "Execute the Initialize a global object's CSP list algorithm // on worker global scope and response. [CSP]" // SharedWorkerGlobalScope inherits the outside's CSP instead of the response -@@ -98,6 +102,8 @@ void SharedWorkerGlobalScope::Initialize( +@@ -104,6 +108,8 @@ void SharedWorkerGlobalScope::Initialize( // https://fetch.spec.whatwg.org/#local-scheme // // https://w3c.github.io/webappsec-csp/#initialize-global-object-csp @@ -571,7 +571,7 @@ diff --git a/third_party/blink/renderer/core/workers/shared_worker_global_scope. Vector csp_headers = response_url.ProtocolIsAbout() || response_url.ProtocolIsData() || response_url.ProtocolIs("blob") -@@ -245,6 +251,7 @@ void SharedWorkerGlobalScope::DidFetchClassicScript( +@@ -251,6 +257,7 @@ void SharedWorkerGlobalScope::DidFetchClassicScript( // Step 12.3-12.6 are implemented in Initialize(). Initialize(classic_script_loader->ResponseURL(), response_referrer_policy, @@ -582,7 +582,7 @@ diff --git a/third_party/blink/renderer/core/workers/shared_worker_global_scope. diff --git a/third_party/blink/renderer/core/workers/shared_worker_global_scope.h b/third_party/blink/renderer/core/workers/shared_worker_global_scope.h --- a/third_party/blink/renderer/core/workers/shared_worker_global_scope.h +++ b/third_party/blink/renderer/core/workers/shared_worker_global_scope.h -@@ -64,6 +64,7 @@ class CORE_EXPORT SharedWorkerGlobalScope final : public WorkerGlobalScope { +@@ -65,6 +65,7 @@ class CORE_EXPORT SharedWorkerGlobalScope final : public WorkerGlobalScope { void Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, diff --git a/build/patches/Show-NTP-at-startup.patch b/build/patches/Show-NTP-at-startup.patch index ce423bdcd..a3840dcbf 100644 --- a/build/patches/Show-NTP-at-startup.patch +++ b/build/patches/Show-NTP-at-startup.patch @@ -9,7 +9,7 @@ Until the real tab is opened, no data is retrieved. License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- .../java/res/layout/single_tab_view_layout.xml | 11 +++++++++-- - .../tasks/SingleTabSwitcherOnNtpMediator.java | 8 ++++---- + .../tasks/SingleTabSwitcherOnNtpMediator.java | 10 ++++------ .../android/java/res/xml/homepage_preferences.xml | 6 ++++++ .../chrome/browser/ChromeInactivityTracker.java | 13 +++++++++++++ .../chrome/browser/ChromeTabbedActivity.java | 4 +++- @@ -18,7 +18,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../preferences/LegacyChromePreferenceKeys.java | 1 + .../show-ntp-at-startup.grdp | 9 +++++++++ .../chrome_feature_list_cc/show-ntp-at-startup.inc | 2 ++ - 10 files changed, 56 insertions(+), 8 deletions(-) + 10 files changed, 56 insertions(+), 10 deletions(-) create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/show-ntp-at-startup.grdp create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/show-ntp-at-startup.inc @@ -57,23 +57,25 @@ diff --git a/chrome/android/features/start_surface/java/res/layout/single_tab_vi diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/SingleTabSwitcherOnNtpMediator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/SingleTabSwitcherOnNtpMediator.java --- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/SingleTabSwitcherOnNtpMediator.java +++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/SingleTabSwitcherOnNtpMediator.java -@@ -292,8 +292,8 @@ public class SingleTabSwitcherOnNtpMediator implements ConfigurationChangedObser +@@ -292,9 +292,8 @@ public class SingleTabSwitcherOnNtpMediator implements ConfigurationChangedObser public void onPageLoadFinished(Tab tab, GURL url) { super.onPageLoadFinished(tab, url); mPropertyModel.set(TITLE, tab.getTitle()); - if (mIsSurfacePolishEnabled) { -- mPropertyModel.set(URL, tab.getUrl().getHost()); +- mPropertyModel.set( +- URL, SingleTabSwitcherMediator.getDomainUrl(tab.getUrl())); + if ((true)) { + mPropertyModel.set(URL, tab.getUrl().getPossiblyInvalidSpec()); } tab.removeObserver(this); } -@@ -301,8 +301,8 @@ public class SingleTabSwitcherOnNtpMediator implements ConfigurationChangedObser +@@ -302,9 +301,8 @@ public class SingleTabSwitcherOnNtpMediator implements ConfigurationChangedObser mMostRecentTab.addObserver(tabObserver); } else { mPropertyModel.set(TITLE, mMostRecentTab.getTitle()); - if (mIsSurfacePolishEnabled) { -- mPropertyModel.set(URL, mMostRecentTab.getUrl().getHost()); +- mPropertyModel.set( +- URL, SingleTabSwitcherMediator.getDomainUrl(mMostRecentTab.getUrl())); + if ((true)) { + mPropertyModel.set(URL, mMostRecentTab.getUrl().getPossiblyInvalidSpec()); } @@ -128,7 +130,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeInactivit 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 -@@ -1618,7 +1618,7 @@ public class ChromeTabbedActivity extends ChromeActivity onStandardActiveIndexRead = null; shouldShowNtpAsHomeSurfaceAtStartup = shouldShowNtpHomeSurfaceOnStartup(); boolean skipSavingNonActiveNtps = skipSavingNonActiveNtps(); @@ -137,7 +139,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct mHomeSurfaceTracker = new HomeSurfaceTracker(); } if (shouldShowNtpAsHomeSurfaceAtStartup) { -@@ -2269,6 +2269,8 @@ public class ChromeTabbedActivity extends ChromeActivityGetPrefRegistrationFlags()); } @@ -664,7 +664,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov // Obsolete prefs ---------------------------------------------------------- // These prefs have been removed, but need to be registered so they can -@@ -153,6 +155,10 @@ PrefProvider::PrefProvider(PrefService* prefs, +@@ -151,6 +153,10 @@ PrefProvider::PrefProvider(PrefService* prefs, event_args->set_number_of_exceptions( num_exceptions); // PrefProvider::PrefProvider. }); @@ -675,7 +675,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov } PrefProvider::~PrefProvider() { -@@ -439,4 +445,14 @@ void PrefProvider::SetClockForTesting(base::Clock* clock) { +@@ -437,4 +443,14 @@ void PrefProvider::SetClockForTesting(base::Clock* clock) { clock_ = clock; } @@ -767,7 +767,7 @@ new file mode 100644 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 -@@ -110,6 +110,7 @@ struct RendererContentSettingRules { +@@ -107,6 +107,7 @@ struct RendererContentSettingRules { ContentSettingsForOneType popup_redirect_rules; ContentSettingsForOneType mixed_content_rules; ContentSettingsForOneType auto_dark_content_rules; @@ -778,7 +778,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 -@@ -100,4 +100,5 @@ struct RendererContentSettingRules { +@@ -102,4 +102,5 @@ struct RendererContentSettingRules { array popup_redirect_rules; array mixed_content_rules; array auto_dark_content_rules; @@ -787,7 +787,7 @@ diff --git a/components/content_settings/core/common/content_settings.mojom b/co diff --git a/components/content_settings/core/common/content_settings_mojom_traits.cc b/components/content_settings/core/common/content_settings_mojom_traits.cc --- a/components/content_settings/core/common/content_settings_mojom_traits.cc +++ b/components/content_settings/core/common/content_settings_mojom_traits.cc -@@ -173,7 +173,8 @@ bool StructTraitsscript_rules) && data.ReadPopupRedirectRules(&out->popup_redirect_rules) && data.ReadMixedContentRules(&out->mixed_content_rules) && @@ -800,7 +800,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai diff --git a/components/content_settings/core/common/content_settings_mojom_traits.h b/components/content_settings/core/common/content_settings_mojom_traits.h --- a/components/content_settings/core/common/content_settings_mojom_traits.h +++ b/components/content_settings/core/common/content_settings_mojom_traits.h -@@ -222,6 +222,11 @@ struct StructTraits< +@@ -227,6 +227,11 @@ struct StructTraits< return r.auto_dark_content_rules; } diff --git a/build/patches/Use-4-tile-rows-never-show-logo.patch b/build/patches/Use-4-tile-rows-never-show-logo.patch index b2bcee4d0..1cc6e94d4 100644 --- a/build/patches/Use-4-tile-rows-never-show-logo.patch +++ b/build/patches/Use-4-tile-rows-never-show-logo.patch @@ -13,7 +13,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/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java -@@ -119,7 +119,7 @@ public class NewTabPageLayout extends LinearLayout { +@@ -115,7 +115,7 @@ public class NewTabPageLayout extends LinearLayout { */ private boolean mHasShownView; @@ -22,7 +22,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL private boolean mSearchProviderIsGoogle; private boolean mShowingNonStandardLogo; -@@ -518,7 +518,7 @@ public class NewTabPageLayout extends LinearLayout { +@@ -498,7 +498,7 @@ public class NewTabPageLayout extends LinearLayout { boolean searchProviderIsGoogle) { assert mMvTilesContainerLayout != null; @@ -31,7 +31,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL mMostVisitedTilesCoordinator = new MostVisitedTilesCoordinator( -@@ -752,7 +752,7 @@ public class NewTabPageLayout extends LinearLayout { +@@ -732,7 +732,7 @@ public class NewTabPageLayout extends LinearLayout { && mInitialized) { return; } diff --git a/build/patches/Use-list-mode-for-tab-switcher.patch b/build/patches/Use-list-mode-for-tab-switcher.patch index 3df3c51f8..6b2d297c6 100644 --- a/build/patches/Use-list-mode-for-tab-switcher.patch +++ b/build/patches/Use-list-mode-for-tab-switcher.patch @@ -21,18 +21,18 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java -@@ -15,6 +15,7 @@ import org.chromium.build.BuildConfig; +@@ -16,6 +16,7 @@ import org.chromium.build.BuildConfig; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; import org.chromium.ui.base.DeviceFormFactor; +import org.chromium.chrome.browser.flags.cromite.sTabSwitcherListMode; - /** A class to handle the state of flags for tab_management. */ - public class TabUiFeatureUtilities { -@@ -100,8 +101,7 @@ public class TabUiFeatureUtilities { - * @param context The activity context. - */ - public static boolean shouldUseListMode(Context context) { + import java.util.Collections; + import java.util.HashSet; +@@ -115,8 +116,7 @@ public class TabUiFeatureUtilities { + + /** Returns whether the Grid Tab Switcher UI should use list mode. */ + public static boolean shouldUseListMode() { - // Low-end forces list mode. - return SysUtils.isLowEndDevice(); + return sTabSwitcherListMode.getInstance().isEnabled(); @@ -119,7 +119,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.omnibox.LocationBar; import org.chromium.chrome.browser.omnibox.LocationBarCoordinator; import org.chromium.chrome.browser.omnibox.NewTabPageDelegate; -@@ -519,7 +520,8 @@ public class ToolbarPhone extends ToolbarLayout +@@ -520,7 +521,8 @@ public class ToolbarPhone extends ToolbarLayout private void inflateTabSwitchingResources() { mToggleTabStackButton = findViewById(R.id.tab_switcher_button); @@ -129,7 +129,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow } private void enableTabSwitchingResources() { -@@ -2043,14 +2045,15 @@ public class ToolbarPhone extends ToolbarLayout +@@ -2044,14 +2046,15 @@ public class ToolbarPhone extends ToolbarLayout // On entering the tab switcher, set the focusability of the url bar to be false. This will // occur at the start of the enter event, and will later be reset to true upon finishing the // exit event only in #onStartSurfaceStateChanged. @@ -147,7 +147,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow // Prevent pressing the tab switcher button until after transition finishes. mToggleTabStackButton.setClickable(false); return; -@@ -2070,7 +2073,8 @@ public class ToolbarPhone extends ToolbarLayout +@@ -2071,7 +2074,8 @@ public class ToolbarPhone extends ToolbarLayout return; } // Prevent pressing the tab switcher button until after transition finishes. @@ -157,7 +157,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mTabSwitcherState = inTabSwitcherMode ? ENTERING_TAB_SWITCHER : EXITING_TAB_SWITCHER; -@@ -2164,7 +2168,8 @@ public class ToolbarPhone extends ToolbarLayout +@@ -2165,7 +2169,8 @@ public class ToolbarPhone extends ToolbarLayout } if (mTabSwitcherState == ENTERING_TAB_SWITCHER) { mTabSwitcherState = TAB_SWITCHER; diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch index 9eb858f8b..6d6713820 100644 --- a/build/patches/User-agent-customization.patch +++ b/build/patches/User-agent-customization.patch @@ -48,8 +48,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/base/base_switches.cc b/base/base_switches.cc --- a/base/base_switches.cc +++ b/base/base_switches.cc -@@ -179,6 +179,8 @@ const char kPackageVersionCode[] = "package-version-code"; - extern const char kEnableCrashpad[] = "enable-crashpad"; +@@ -176,6 +176,8 @@ const char kPackageVersionName[] = "package-version-name"; + const char kPackageVersionCode[] = "package-version-code"; #endif +const char kDesktopModeViewportMetaEnabled[] = "dm-viewport-meta-enabled"; @@ -60,7 +60,7 @@ diff --git a/base/base_switches.cc b/base/base_switches.cc diff --git a/base/base_switches.h b/base/base_switches.h --- a/base/base_switches.h +++ b/base/base_switches.h -@@ -70,6 +70,8 @@ extern const char kEnableCrashpad[]; +@@ -65,6 +65,8 @@ extern const char kPackageVersionCode[]; extern const char kSchedulerBoostUrgent[]; #endif @@ -72,7 +72,7 @@ diff --git a/base/base_switches.h b/base/base_switches.h 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,4 +649,6 @@ chrome_java_resources = [ +@@ -651,4 +651,6 @@ chrome_java_resources = [ "java/res/xml/privacy_preferences.xml", "java/res/xml/search_widget_info.xml", "java/res/xml/tracing_preferences.xml", @@ -82,7 +82,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 -@@ -955,6 +955,7 @@ chrome_java_sources = [ +@@ -963,6 +963,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java", "java/src/org/chromium/chrome/browser/payments/ui/LineItem.java", "java/src/org/chromium/chrome/browser/payments/ui/PaymentAppComparator.java", @@ -531,7 +531,7 @@ new file mode 100644 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 -@@ -83,6 +83,11 @@ import org.chromium.content_public.browser.SelectionPopupController; +@@ -88,6 +88,11 @@ import org.chromium.content_public.browser.SelectionPopupController; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.components.user_prefs.UserPrefs; @@ -543,7 +543,7 @@ 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. -@@ -607,6 +612,32 @@ class TabImpl implements Tab { +@@ -613,6 +618,32 @@ class TabImpl implements Tab { params.setOverrideUserAgent(calculateUserAgentOverrideOption(null)); } @@ -573,10 +573,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav + } + } + - @TabLoadStatus int result = loadUrlInternal(params, fixedUrl); + LoadUrlResult result = loadUrlInternal(params, fixedUrl); for (TabObserver observer : mObservers) { -@@ -1516,9 +1547,16 @@ class TabImpl implements Tab { +@@ -1524,9 +1555,16 @@ class TabImpl implements Tab { mWebContents.setImportance(mImportance); @@ -596,7 +596,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav mContentView.addOnAttachStateChangeListener(mAttachStateChangeListener); updateInteractableState(); -@@ -1705,6 +1743,10 @@ class TabImpl implements Tab { +@@ -1713,6 +1751,10 @@ class TabImpl implements Tab { } mIsBeingRestored = true; for (TabObserver observer : mObservers) observer.onRestoreStarted(this); @@ -607,7 +607,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav } finally { TraceEvent.end("Tab.restoreIfNeeded"); } -@@ -1917,6 +1959,13 @@ class TabImpl implements Tab { +@@ -1940,6 +1982,13 @@ class TabImpl implements Tab { } private @UserAgentOverrideOption int calculateUserAgentOverrideOption(@Nullable GURL url) { @@ -621,7 +621,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav WebContents webContents = getWebContents(); boolean currentRequestDesktopSite = TabUtils.isUsingDesktopUserAgent(webContents); @TabUserAgent int tabUserAgent = TabUtils.getTabUserAgent(this); -@@ -1986,6 +2035,42 @@ class TabImpl implements Tab { +@@ -2009,6 +2058,42 @@ class TabImpl implements Tab { mLaunchType = launchType; } @@ -915,7 +915,7 @@ diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl 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 -@@ -899,6 +899,9 @@ public final class ChromePreferenceKeys { +@@ -882,6 +882,9 @@ public final class ChromePreferenceKeys { public static final String BLUETOOTH_NOTIFICATION_IDS = "Chrome.Bluetooth.NotificationIds"; public static final String USB_NOTIFICATION_IDS = "Chrome.USB.NotificationIds"; @@ -925,7 +925,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro /** * These values are currently used as SharedPreferences keys, along with the keys in * {@link LegacyChromePreferenceKeys#getKeysInUse()}. Add new SharedPreferences keys -@@ -1032,8 +1035,8 @@ public final class ChromePreferenceKeys { +@@ -1013,8 +1016,8 @@ public final class ChromePreferenceKeys { SIGNIN_PROMO_NTP_LAST_SHOWN_TIME, SYNC_PROMO_TOTAL_SHOW_COUNT, SEARCH_RESUMPTION_MODULE_COLLAPSE_ON_NTP, @@ -957,7 +957,7 @@ diff --git a/chrome/browser/privacy/settings/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java --- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java +++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java -@@ -277,6 +277,8 @@ public interface Tab extends TabLifecycle { +@@ -297,6 +297,8 @@ public interface Tab extends TabLifecycle { /** Goes to the navigation entry after the current one. */ void goForward(); @@ -969,7 +969,7 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.jav diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java --- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java +++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java -@@ -94,6 +94,8 @@ public interface TabWindowManager { +@@ -101,6 +101,8 @@ public interface TabWindowManager { */ Tab getTabById(int tabId); @@ -981,7 +981,7 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java b/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java --- a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java +++ b/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java -@@ -330,6 +330,24 @@ public class TabWindowManagerImpl implements ActivityStateListener, TabWindowMan +@@ -400,6 +400,24 @@ public class TabWindowManagerImpl implements ActivityStateListener, TabWindowMan return null; } @@ -1054,7 +1054,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 -@@ -1834,6 +1834,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group"; +@@ -1828,6 +1828,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group"; inline constexpr char kHadThreeConsecutiveNotificationPermissionDenies[] = "profile.content_settings.had_three_consecutive_denies.notifications"; @@ -1125,7 +1125,7 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.cc b/co const JavaParamRef& j_initiator_origin, jboolean has_user_gesture, jboolean should_clear_history_list, -@@ -350,6 +351,9 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl( +@@ -352,6 +353,9 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl( params.navigation_ui_data = std::move(navigation_ui_data); @@ -1149,9 +1149,9 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.h b/con diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -3601,6 +3601,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( - switches::kLacrosUseChromeosProtectedMedia, - switches::kLacrosUseChromeosProtectedAv1, +@@ -3577,6 +3577,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( + switches::kLacrosUseChromeosProtectedMedia, + switches::kLacrosUseChromeosProtectedAv1, #endif + switches::kDesktopModeViewportMetaEnabled, }; @@ -1168,7 +1168,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser #include "base/check_op.h" #include "base/command_line.h" #include "base/containers/contains.h" -@@ -3114,6 +3115,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences() { +@@ -3105,6 +3106,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences() { #else prefs.viewport_meta_enabled = false; #endif @@ -1181,7 +1181,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser diff --git a/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java -@@ -224,6 +224,7 @@ import org.chromium.url.Origin; +@@ -225,6 +225,7 @@ import org.chromium.url.Origin; params.getCanLoadLocalResources(), params.getIsRendererInitiated(), params.getShouldReplaceCurrentEntry(), @@ -1189,7 +1189,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/frameh params.getInitiatorOrigin(), params.getHasUserGesture(), params.getShouldClearHistoryList(), -@@ -500,7 +501,7 @@ import org.chromium.url.Origin; +@@ -503,7 +504,7 @@ import org.chromium.url.Origin; String dataUrlAsString, boolean canLoadLocalResources, boolean isRendererInitiated, @@ -1201,7 +1201,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/frameh diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc -@@ -807,7 +807,6 @@ void RenderThreadImpl::InitializeRenderer( +@@ -861,7 +861,6 @@ void RenderThreadImpl::InitializeRenderer( const blink::UserAgentMetadata& user_agent_metadata, const std::vector& cors_exempt_header_list, blink::mojom::OriginTrialsSettingsPtr origin_trials_settings) { diff --git a/build/patches/Viewport-Protection-flag.patch b/build/patches/Viewport-Protection-flag.patch index 7e853634d..256d896c1 100644 --- a/build/patches/Viewport-Protection-flag.patch +++ b/build/patches/Viewport-Protection-flag.patch @@ -259,7 +259,7 @@ new file mode 100644 diff --git a/third_party/blink/public/common/widget/device_emulation_params.h b/third_party/blink/public/common/widget/device_emulation_params.h --- a/third_party/blink/public/common/widget/device_emulation_params.h +++ b/third_party/blink/public/common/widget/device_emulation_params.h -@@ -20,6 +20,9 @@ namespace blink { +@@ -21,6 +21,9 @@ namespace blink { struct DeviceEmulationParams { mojom::EmulatedScreenType screen_type = mojom::EmulatedScreenType::kDesktop; @@ -269,7 +269,7 @@ diff --git a/third_party/blink/public/common/widget/device_emulation_params.h b/ // Emulated screen size. Typically full / physical size of the device screen // in DIP. Empty size means using default value: original one for kDesktop // screen position, equal to |view_size| for kMobile. -@@ -77,7 +80,8 @@ inline bool operator==(const DeviceEmulationParams& a, +@@ -78,7 +81,8 @@ inline bool operator==(const DeviceEmulationParams& a, a.viewport_offset == b.viewport_offset && a.viewport_scale == b.viewport_scale && a.window_segments == b.window_segments && @@ -313,7 +313,7 @@ diff --git a/third_party/blink/renderer/core/css/media_values.cc b/third_party/b diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc --- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc +++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc -@@ -1829,7 +1829,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { +@@ -1823,7 +1823,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { ComputedStyleBuilder builder = CreateComputedStyleBuilder(); builder.SetRtlOrdering(GetDocument().VisuallyOrdered() ? EOrder::kVisual : EOrder::kLogical); @@ -411,7 +411,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc --- a/third_party/blink/renderer/core/frame/local_dom_window.cc +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc -@@ -1480,7 +1480,12 @@ int LocalDOMWindow::outerHeight() const { +@@ -1485,7 +1485,12 @@ int LocalDOMWindow::outerHeight() const { if (frame->IsInFencedFrameTree()) { return innerHeight(); } @@ -425,7 +425,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p Page* page = frame->GetPage(); if (!page) return 0; -@@ -1505,7 +1510,12 @@ int LocalDOMWindow::outerWidth() const { +@@ -1510,7 +1515,12 @@ int LocalDOMWindow::outerWidth() const { if (frame->IsInFencedFrameTree()) { return innerWidth(); } @@ -439,7 +439,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p Page* page = frame->GetPage(); if (!page) return 0; -@@ -1706,7 +1716,8 @@ double LocalDOMWindow::devicePixelRatio() const { +@@ -1711,7 +1721,8 @@ double LocalDOMWindow::devicePixelRatio() const { if (!GetFrame()) return 0.0; @@ -449,7 +449,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p } void LocalDOMWindow::scrollBy(double x, double y) const { -@@ -2296,6 +2307,23 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, +@@ -2301,6 +2312,23 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, if (!completed_url.IsEmpty() || result.new_window) result.frame->Navigate(frame_request, WebFrameLoadType::kStandard); @@ -473,7 +473,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p // TODO(japhet): window-open-noopener.html?_top and several tests in // html/browsers/windows/browsing-context-names/ appear to require that // the special case target names (_top, _parent, _self) ignore opener -@@ -2352,6 +2380,15 @@ DOMWindow* LocalDOMWindow::openPictureInPictureWindow( +@@ -2357,6 +2385,15 @@ DOMWindow* LocalDOMWindow::openPictureInPictureWindow( DCHECK(result.new_window); result.frame->Navigate(frame_request, WebFrameLoadType::kStandard); @@ -492,7 +492,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p 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 -@@ -1447,6 +1447,10 @@ void LocalFrame::RestoreScrollOffsets() { +@@ -1465,6 +1465,10 @@ void LocalFrame::RestoreScrollOffsets() { saved_scroll_offsets_ = nullptr; } @@ -503,7 +503,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ void LocalFrame::SetPageZoomFactor(float factor) { SetPageAndTextZoomFactors(factor, text_zoom_factor_); } -@@ -1617,12 +1621,16 @@ device::mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() { +@@ -1635,12 +1639,16 @@ mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() { return mojo_handler_->GetDevicePosture(); } @@ -522,7 +522,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ return ratio; } -@@ -3152,6 +3160,11 @@ void LocalFrame::SetScaleFactor(float scale_factor) { +@@ -3191,6 +3199,11 @@ void LocalFrame::SetScaleFactor(float scale_factor) { DCHECK(!GetDocument() || !GetDocument()->Printing()); DCHECK(IsMainFrame()); @@ -537,7 +537,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h -@@ -422,13 +422,14 @@ class CORE_EXPORT LocalFrame final +@@ -424,13 +424,14 @@ class CORE_EXPORT LocalFrame final void SetInViewSourceMode(bool = true); void SetPageZoomFactor(float); @@ -554,7 +554,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b // Informs the local root's document and its local descendant subtree that a // media query value changed. -@@ -1048,6 +1049,7 @@ class CORE_EXPORT LocalFrame final +@@ -1050,6 +1051,7 @@ class CORE_EXPORT LocalFrame final unsigned hidden_ : 1; float page_zoom_factor_; @@ -660,7 +660,7 @@ diff --git a/third_party/blink/renderer/core/frame/screen_metrics_emulator.h b/t diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc --- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc +++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc -@@ -1765,6 +1765,14 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1769,6 +1769,14 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( if (auto* device_emulator = DeviceEmulator()) { device_emulator->UpdateVisualProperties(visual_properties); @@ -745,7 +745,7 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re namespace blink { namespace { -@@ -1021,7 +1027,94 @@ void Page::UpdateAcceleratedCompositingSettings() { +@@ -1037,7 +1043,94 @@ void Page::UpdateAcceleratedCompositingSettings() { } } @@ -843,7 +843,7 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/renderer/core/page/page.h --- a/third_party/blink/renderer/core/page/page.h +++ b/third_party/blink/renderer/core/page/page.h -@@ -481,6 +481,10 @@ class CORE_EXPORT Page final : public GarbageCollected, +@@ -486,6 +486,10 @@ class CORE_EXPORT Page final : public GarbageCollected, // the close task will still be processed after the swap. void TakeCloseTaskHandler(Page* old_page); @@ -854,7 +854,7 @@ diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/ren private: friend class ScopedPagePauser; class CloseTaskHandler; -@@ -634,6 +638,11 @@ class CORE_EXPORT Page final : public GarbageCollected, +@@ -640,6 +644,11 @@ class CORE_EXPORT Page final : public GarbageCollected, // browser side FrameTree has the FrameTree::Type of kFencedFrame. bool is_fenced_frame_tree_ = false; @@ -869,7 +869,7 @@ diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/ren diff --git a/third_party/blink/renderer/core/style/computed_style.h b/third_party/blink/renderer/core/style/computed_style.h --- a/third_party/blink/renderer/core/style/computed_style.h +++ b/third_party/blink/renderer/core/style/computed_style.h -@@ -1940,6 +1940,12 @@ class ComputedStyle final : public ComputedStyleBase { +@@ -1931,6 +1931,12 @@ class ComputedStyle final : public ComputedStyleBase { IsRunningBackdropFilterAnimationOnCompositor(); } diff --git a/build/patches/WIN-Disable-sharing-hub.patch b/build/patches/WIN-Disable-sharing-hub.patch index 777190a68..4ba8fbfbe 100644 --- a/build/patches/WIN-Disable-sharing-hub.patch +++ b/build/patches/WIN-Disable-sharing-hub.patch @@ -13,7 +13,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/sharing_hub/sharing_hub_features.cc b/chrome/browser/sharing_hub/sharing_hub_features.cc --- a/chrome/browser/sharing_hub/sharing_hub_features.cc +++ b/chrome/browser/sharing_hub/sharing_hub_features.cc -@@ -73,7 +73,7 @@ BASE_FEATURE(kDesktopScreenshots, +@@ -72,7 +72,7 @@ BASE_FEATURE(kDesktopScreenshots, #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS) void RegisterProfilePrefs(PrefRegistrySimple* registry) { @@ -25,7 +25,7 @@ diff --git a/chrome/browser/sharing_hub/sharing_hub_features.cc b/chrome/browser diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui/browser_command_controller.cc --- a/chrome/browser/ui/browser_command_controller.cc +++ b/chrome/browser/ui/browser_command_controller.cc -@@ -1730,10 +1730,10 @@ void BrowserCommandController::UpdateCommandsForFullscreenMode() { +@@ -1725,10 +1725,10 @@ void BrowserCommandController::UpdateCommandsForFullscreenMode() { command_updater_.UpdateCommandEnabled(IDC_CHROME_WHATS_NEW, show_main_ui); #endif command_updater_.UpdateCommandEnabled(IDC_CONTENT_CONTEXT_SHARING_SUBMENU, @@ -42,7 +42,7 @@ diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui diff --git a/chrome/browser/ui/browser_commands.cc b/chrome/browser/ui/browser_commands.cc --- a/chrome/browser/ui/browser_commands.cc +++ b/chrome/browser/ui/browser_commands.cc -@@ -1599,6 +1599,7 @@ void SendTabToSelfFromPageAction(Browser* browser) { +@@ -1596,6 +1596,7 @@ void SendTabToSelfFromPageAction(Browser* browser) { } bool CanGenerateQrCode(const Browser* browser) { diff --git a/build/patches/WIN-enable-HighEfficiencyMode-by-default.patch b/build/patches/WIN-enable-HighEfficiencyMode-by-default.patch index f0b2578ee..4e10e2d32 100644 --- a/build/patches/WIN-enable-HighEfficiencyMode-by-default.patch +++ b/build/patches/WIN-enable-HighEfficiencyMode-by-default.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/components/performance_manager/user_tuning/prefs.cc b/components/performance_manager/user_tuning/prefs.cc --- a/components/performance_manager/user_tuning/prefs.cc +++ b/components/performance_manager/user_tuning/prefs.cc -@@ -13,12 +13,12 @@ +@@ -23,12 +23,12 @@ namespace performance_manager::user_tuning::prefs { void RegisterLocalStatePrefs(PrefRegistrySimple* registry) { diff --git a/build/patches/WIN-enable-file-system-access-blocklist.patch b/build/patches/WIN-enable-file-system-access-blocklist.patch index dc4bb15e7..781bb0bb3 100644 --- a/build/patches/WIN-enable-file-system-access-blocklist.patch +++ b/build/patches/WIN-enable-file-system-access-blocklist.patch @@ -10,8 +10,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/content/browser/file_system_access/features.cc b/content/browser/file_system_access/features.cc --- a/content/browser/file_system_access/features.cc +++ b/content/browser/file_system_access/features.cc -@@ -39,4 +39,5 @@ BASE_FEATURE(kFileSystemAccessDirectoryIterationBlocklistCheck, - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -41,4 +41,5 @@ BASE_FEATURE(kFileSystemAccessDirectoryIterationBlocklistCheck, + base::FEATURE_DISABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_WIN) +SET_CROMITE_FEATURE_ENABLED(kFileSystemAccessDragAndDropCheckBlocklist); diff --git a/build/patches/WIN-enable-pdf-plugin.patch b/build/patches/WIN-enable-pdf-plugin.patch index 537d87701..e3231256b 100644 --- a/build/patches/WIN-enable-pdf-plugin.patch +++ b/build/patches/WIN-enable-pdf-plugin.patch @@ -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/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 -@@ -2130,7 +2130,9 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() { +@@ -2148,7 +2148,9 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() { } PluginData* LocalFrame::GetPluginData() const { diff --git a/build/patches/Warning-message-for-unsupported-hardware-aes.patch b/build/patches/Warning-message-for-unsupported-hardware-aes.patch index 03d70ea71..614887da1 100644 --- a/build/patches/Warning-message-for-unsupported-hardware-aes.patch +++ b/build/patches/Warning-message-for-unsupported-hardware-aes.patch @@ -28,7 +28,7 @@ you can remove the message by going to chrome://flags/#no-hw-aes-warning diff --git a/base/base_switches.cc b/base/base_switches.cc --- a/base/base_switches.cc +++ b/base/base_switches.cc -@@ -181,6 +181,8 @@ extern const char kEnableCrashpad[] = "enable-crashpad"; +@@ -178,6 +178,8 @@ const char kPackageVersionCode[] = "package-version-code"; const char kDesktopModeViewportMetaEnabled[] = "dm-viewport-meta-enabled"; @@ -40,7 +40,7 @@ diff --git a/base/base_switches.cc b/base/base_switches.cc diff --git a/base/base_switches.h b/base/base_switches.h --- a/base/base_switches.h +++ b/base/base_switches.h -@@ -34,6 +34,7 @@ extern const char kTraceToFileName[]; +@@ -35,6 +35,7 @@ extern const char kTraceToFileName[]; extern const char kV[]; extern const char kVModule[]; extern const char kWaitForDebugger[]; @@ -51,7 +51,7 @@ diff --git a/base/base_switches.h b/base/base_switches.h diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn -@@ -440,6 +440,7 @@ if (is_win) { +@@ -429,6 +429,7 @@ if (is_win) { "//components/policy:generated", "//content/public/app", "//crypto", @@ -59,7 +59,7 @@ diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn "//headless:headless_non_renderer", "//headless:headless_shell_browser_lib", "//net:net_resources", -@@ -1682,6 +1683,8 @@ if (is_android) { +@@ -1669,6 +1670,8 @@ if (is_android) { "//chrome/common/profiler", "//chrome/gpu", "//chrome/renderer", @@ -81,7 +81,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat #if BUILDFLAG(IS_WIN) #include -@@ -1259,6 +1262,13 @@ std::optional ChromeMainDelegate::BasicStartupComplete() { +@@ -1251,6 +1254,13 @@ std::optional ChromeMainDelegate::BasicStartupComplete() { return chrome::RESULT_CODE_INVALID_SANDBOX_STATE; #endif @@ -98,7 +98,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat 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 -@@ -7214,6 +7214,10 @@ Keep your key file in a safe place. You will need it to create new versions of y +@@ -7212,6 +7212,10 @@ Keep your key file in a safe place. You will need it to create new versions of y You are using an unsupported feature flag: $1SignedHTTPExchange. Stability and security will suffer. @@ -131,8 +131,8 @@ diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/s diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -3606,6 +3606,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( - switches::kLacrosUseChromeosProtectedAv1, +@@ -3582,6 +3582,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( + switches::kLacrosUseChromeosProtectedAv1, #endif switches::kDesktopModeViewportMetaEnabled, + switches::kNoAESHardware, diff --git a/build/patches/Welcome-screen.patch b/build/patches/Welcome-screen.patch index 8d4a9173c..aed5ec06d 100644 --- a/build/patches/Welcome-screen.patch +++ b/build/patches/Welcome-screen.patch @@ -13,15 +13,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/android/java/res/values/styles.xml | 24 ++ .../firstrun/ChildAccountStatusSupplier.java | 13 - .../DefaultSearchEngineFirstRunFragment.java | 3 - - .../browser/firstrun/FirstRunActivity.java | 17 +- + .../browser/firstrun/FirstRunActivity.java | 25 +- .../firstrun/FirstRunActivityBase.java | 6 +- - .../firstrun/FirstRunFlowSequencer.java | 63 +--- + .../firstrun/FirstRunFlowSequencer.java | 61 +--- .../browser/firstrun/FirstRunUtils.java | 15 +- .../firstrun/ToSAndUMAFirstRunFragment.java | 335 +++++++++++++++++ .../firstrun/TosAndUmaFragmentView.java | 336 ++++++++++++++++++ .../browser/locale/LocaleManagerDelegate.java | 5 +- .../strings/android_chrome_strings.grd | 24 +- - 15 files changed, 913 insertions(+), 101 deletions(-) + 15 files changed, 913 insertions(+), 107 deletions(-) create mode 100644 chrome/android/java/res/layout/fre_tosanduma.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/firstrun/TosAndUmaFragmentView.java @@ -29,7 +29,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 -@@ -504,6 +504,7 @@ chrome_java_resources = [ +@@ -506,6 +506,7 @@ chrome_java_resources = [ "java/res/layout/find_in_page.xml", "java/res/layout/find_toolbar.xml", "java/res/layout/fre_tos_privacy_disclaimer.xml", @@ -40,7 +40,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 -@@ -647,6 +647,8 @@ chrome_java_sources = [ +@@ -654,6 +654,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/firstrun/SyncConsentFirstRunFragment.java", "java/src/org/chromium/chrome/browser/firstrun/TabbedModeFirstRunActivity.java", "java/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidator.java", @@ -237,7 +237,7 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res/values/styles.xml --- a/chrome/android/java/res/values/styles.xml +++ b/chrome/android/java/res/values/styles.xml -@@ -257,6 +257,30 @@ found in the LICENSE file. +@@ -270,6 +270,30 @@ found in the LICENSE file. 1 @@ -320,7 +320,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/Defaul diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java -@@ -30,8 +30,7 @@ import org.chromium.chrome.browser.fonts.FontPreloader; +@@ -31,8 +31,7 @@ import org.chromium.chrome.browser.fonts.FontPreloader; import org.chromium.chrome.browser.metrics.UmaUtils; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; @@ -330,7 +330,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR import org.chromium.components.browser_ui.modaldialog.AppModalPresenter; import org.chromium.components.feature_engagement.EventConstants; import org.chromium.components.metrics.LowEntropySource; -@@ -120,7 +119,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -121,7 +120,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa /** Creates first page and sets up adapter. Should result UI being shown on the screen. */ private void createFirstPage() { BooleanSupplier showWelcomePage = () -> !FirstRunStatus.shouldSkipWelcomePage(); @@ -339,7 +339,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR mFreProgressStates.add(MobileFreProgress.WELCOME_SHOWN); mPagerAdapter = new FirstRunPagerAdapter(FirstRunActivity.this, mPages); mPager.setAdapter(mPagerAdapter); -@@ -142,13 +141,11 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -143,7 +142,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa // // TODO(b/245912657): explicitly sign in supervised users in {@link // SigninFirstRunMediator#handleContinueWithNative} rather than relying on SigninChecker. @@ -347,25 +347,28 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR mFirstRunFlowSequencer.updateFirstRunProperties(mFreProperties); - BooleanSupplier showSearchEnginePromo = - () -> mFreProperties.getBoolean(SHOW_SEARCH_ENGINE_PAGE); -- BooleanSupplier showSyncConsent = () -> mFreProperties.getBoolean(SHOW_SYNC_CONSENT_PAGE); - - // An optional page to select a default search engine. - if (showSearchEnginePromo.getAsBoolean()) { -@@ -158,11 +155,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -158,20 +156,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa mFreProgressStates.add(MobileFreProgress.DEFAULT_SEARCH_ENGINE_SHOWN); } - // An optional sync consent page, the visibility of this page will be decided on the fly - // according to the situation. -- mPages.add(new FirstRunPage<>(SyncConsentFirstRunFragment.class, showSyncConsent)); +- if (ChromeFeatureList.isEnabled( +- ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS)) { +- BooleanSupplier showHistorySync = +- () -> mFreProperties.getBoolean(SHOW_HISTORY_SYNC_PAGE); +- mPages.add(new FirstRunPage<>(HistorySyncFirstRunFragment.class, showHistorySync)); +- } else { +- BooleanSupplier showSyncConsent = +- () -> mFreProperties.getBoolean(SHOW_SYNC_CONSENT_PAGE); +- mPages.add(new FirstRunPage<>(SyncConsentFirstRunFragment.class, showSyncConsent)); +- } - mFreProgressStates.add(MobileFreProgress.SYNC_CONSENT_SHOWN); - if (mPagerAdapter != null) { mPagerAdapter.notifyDataSetChanged(); } -@@ -513,11 +505,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -522,11 +506,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa public void acceptTermsOfService(boolean allowMetricsAndCrashUploading) { assert mNativeInitializationPromise.isFulfilled(); @@ -389,7 +392,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR /** Base class for First Run Experience. */ public abstract class FirstRunActivityBase extends AsyncInitializationActivity -@@ -111,9 +109,7 @@ public abstract class FirstRunActivityBase extends AsyncInitializationActivity +@@ -112,9 +110,7 @@ public abstract class FirstRunActivityBase extends AsyncInitializationActivity @Override @CallSuper public void triggerLayoutInflation() { @@ -403,7 +406,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java -@@ -27,14 +27,9 @@ import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomiza +@@ -28,14 +28,9 @@ import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomiza import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileProvider; import org.chromium.chrome.browser.search_engines.SearchEnginePromoType; @@ -418,7 +421,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR /** * A helper to determine what should be the sequence of First Run Experience screens, and whether -@@ -62,41 +57,19 @@ public abstract class FirstRunFlowSequencer { +@@ -63,41 +58,19 @@ public abstract class FirstRunFlowSequencer { /** Returns true if the sync consent promo page should be shown. */ boolean shouldShowSyncConsentPage(boolean isChild) { @@ -428,7 +431,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR - } - assert mProfileSupplier.get() != null; - Profile profile = mProfileSupplier.get().getOriginalProfile(); -- +- // TODO(crbug.com/1520791): Review this logic for history sync for UNO. - final IdentityManager identityManager = - IdentityServicesProvider.get().getIdentityManager(profile); - if (identityManager.hasPrimaryAccount(ConsentLevel.SYNC) || !isSyncAllowed()) { @@ -463,7 +466,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR } } -@@ -152,18 +125,8 @@ public abstract class FirstRunFlowSequencer { +@@ -153,18 +126,8 @@ public abstract class FirstRunFlowSequencer { * method. */ void start() { @@ -484,7 +487,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR } @VisibleForTesting -@@ -182,14 +145,10 @@ public abstract class FirstRunFlowSequencer { +@@ -183,14 +146,10 @@ public abstract class FirstRunFlowSequencer { } private void maybeProcessFreEnvironmentPreNative() { @@ -499,18 +502,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR onFlowIsKnown(freProperties); } -@@ -200,8 +159,8 @@ public abstract class FirstRunFlowSequencer { +@@ -201,6 +160,8 @@ public abstract class FirstRunFlowSequencer { * @param freProperties Resulting FRE properties bundle. */ public void updateFirstRunProperties(Bundle freProperties) { -- freProperties.putBoolean( -- FirstRunActivity.SHOW_SYNC_CONSENT_PAGE, shouldShowSyncConsentPage()); + if (freProperties == null) + throw new RuntimeException("attempting to update null FRE properties"); - freProperties.putBoolean( - FirstRunActivity.SHOW_SEARCH_ENGINE_PAGE, shouldShowSearchEnginePage()); - } -@@ -303,13 +262,17 @@ public abstract class FirstRunFlowSequencer { + boolean isHistorySyncEnabled = + ChromeFeatureList.isEnabled( + ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS); +@@ -311,13 +272,17 @@ public abstract class FirstRunFlowSequencer { if (!(caller instanceof Activity)) { freIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); } @@ -1264,7 +1265,7 @@ diff --git a/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/L - throw new IllegalStateException( - "Not applicable unless existing or new promos are required"); + TemplateUrlService templateUrlService = -+ TemplateUrlServiceFactory.getForProfile(Profile.getLastUsedRegularProfile()); ++ TemplateUrlServiceFactory.getForProfile(ProfileManager.getLastUsedRegularProfile()); + return templateUrlService.getTemplateUrls(); } @@ -1272,7 +1273,7 @@ diff --git a/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/L 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 -@@ -3108,7 +3108,29 @@ To change this setting, <resetlink>reset sync

BEGIN_LINKclear the Chrome da %1$sGoogle Maps will open in Chrome. By continuing, you agree to the <LINK1>Google Terms of Service</LINK1>, and the <LINK2>Google Chrome and ChromeOS Additional Terms of Service</LINK2>. The <LINK3>Privacy Policy</LINK3> also applies. diff --git a/build/patches/add-browser-policy.patch b/build/patches/add-browser-policy.patch index f89a26a3e..e7ea1c781 100644 --- a/build/patches/add-browser-policy.patch +++ b/build/patches/add-browser-policy.patch @@ -194,7 +194,7 @@ diff --git a/chrome/browser/metrics/chrome_feature_list_creator.cc b/chrome/brow diff --git a/chrome/browser/policy/chrome_browser_policy_connector.cc b/chrome/browser/policy/chrome_browser_policy_connector.cc --- a/chrome/browser/policy/chrome_browser_policy_connector.cc +++ b/chrome/browser/policy/chrome_browser_policy_connector.cc -@@ -158,9 +158,6 @@ bool ChromeBrowserPolicyConnector::HasMachineLevelPolicies() { +@@ -161,9 +161,6 @@ bool ChromeBrowserPolicyConnector::HasMachineLevelPolicies() { return true; } #endif // !BUILDFLAG(IS_CHROMEOS_ASH) @@ -207,7 +207,7 @@ diff --git a/chrome/browser/policy/chrome_browser_policy_connector.cc b/chrome/b diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc -@@ -2105,9 +2105,9 @@ bool AreFuturePoliciesEnabledByDefault() { +@@ -2155,9 +2155,9 @@ bool AreFuturePoliciesEnabledByDefault() { if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) { return true; } @@ -223,7 +223,7 @@ diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/browser/signin/account_consistency_mode_manager.cc --- a/chrome/browser/signin/account_consistency_mode_manager.cc +++ b/chrome/browser/signin/account_consistency_mode_manager.cc -@@ -164,7 +164,7 @@ void AccountConsistencyModeManager::SetIgnoreMissingOAuthClientForTesting() { +@@ -167,7 +167,7 @@ void AccountConsistencyModeManager::SetIgnoreMissingOAuthClientForTesting() { // static bool AccountConsistencyModeManager::ShouldBuildServiceForProfile( Profile* profile) { @@ -232,7 +232,7 @@ diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/ } AccountConsistencyMethod -@@ -202,7 +202,8 @@ AccountConsistencyModeManager::ComputeAccountConsistencyMethod( +@@ -205,7 +205,8 @@ AccountConsistencyModeManager::ComputeAccountConsistencyMethod( #endif #if BUILDFLAG(ENABLE_MIRROR) @@ -242,7 +242,7 @@ diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/ #endif #if BUILDFLAG(ENABLE_DICE_SUPPORT) -@@ -212,7 +213,7 @@ AccountConsistencyModeManager::ComputeAccountConsistencyMethod( +@@ -215,7 +216,7 @@ AccountConsistencyModeManager::ComputeAccountConsistencyMethod( return AccountConsistencyMethod::kDisabled; } @@ -264,7 +264,7 @@ diff --git a/chrome/browser/signin/account_consistency_mode_manager_factory.cc b diff --git a/chrome/browser/signin/bound_session_credentials/throttled_gaia_auth_fetcher.cc b/chrome/browser/signin/bound_session_credentials/throttled_gaia_auth_fetcher.cc --- a/chrome/browser/signin/bound_session_credentials/throttled_gaia_auth_fetcher.cc +++ b/chrome/browser/signin/bound_session_credentials/throttled_gaia_auth_fetcher.cc -@@ -12,6 +12,7 @@ +@@ -13,6 +13,7 @@ #include "net/cookies/cookie_util.h" #include "services/network/public/cpp/shared_url_loader_factory.h" #include "services/network/public/mojom/fetch_api.mojom-shared.h" @@ -272,7 +272,7 @@ diff --git a/chrome/browser/signin/bound_session_credentials/throttled_gaia_auth ThrottledGaiaAuthFetcher::ThrottledGaiaAuthFetcher( GaiaAuthConsumer* consumer, -@@ -38,6 +39,7 @@ void ThrottledGaiaAuthFetcher::CreateAndStartGaiaFetcher( +@@ -39,6 +40,7 @@ void ThrottledGaiaAuthFetcher::CreateAndStartGaiaFetcher( const GURL& gaia_gurl, network::mojom::CredentialsMode credentials_mode, const net::NetworkTrafficAnnotationTag& traffic_annotation) { @@ -280,7 +280,7 @@ diff --git a/chrome/browser/signin/bound_session_credentials/throttled_gaia_auth if ((IsListAccountsUrl(gaia_gurl) || IsMultiloginUrl(gaia_gurl)) && credentials_mode == network::mojom::CredentialsMode::kInclude && GoogleURLLoaderThrottle::ShouldDeferRequestForBoundSession( -@@ -53,6 +55,7 @@ void ThrottledGaiaAuthFetcher::CreateAndStartGaiaFetcher( +@@ -54,6 +56,7 @@ void ThrottledGaiaAuthFetcher::CreateAndStartGaiaFetcher( GaiaAuthFetcher::CreateAndStartGaiaFetcher(body, body_content_type, headers, gaia_gurl, credentials_mode, traffic_annotation); @@ -288,15 +288,15 @@ diff --git a/chrome/browser/signin/bound_session_credentials/throttled_gaia_auth } void ThrottledGaiaAuthFetcher::OnGaiaFetcherResumedOrCancelled( -@@ -63,6 +66,7 @@ void ThrottledGaiaAuthFetcher::OnGaiaFetcherResumedOrCancelled( - network::mojom::CredentialsMode credentials_mode, +@@ -65,6 +68,7 @@ void ThrottledGaiaAuthFetcher::OnGaiaFetcherResumedOrCancelled( const net::NetworkTrafficAnnotationTag& traffic_annotation, - BoundSessionRequestThrottledHandler::UnblockAction unblock_action) { + BoundSessionRequestThrottledHandler::UnblockAction unblock_action, + chrome::mojom::ResumeBlockedRequestsTrigger resume_trigger) { +#if BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS) switch (unblock_action) { case BoundSessionRequestThrottledHandler::UnblockAction::kResume: GaiaAuthFetcher::CreateAndStartGaiaFetcher( -@@ -74,4 +78,5 @@ void ThrottledGaiaAuthFetcher::OnGaiaFetcherResumedOrCancelled( +@@ -76,4 +80,5 @@ void ThrottledGaiaAuthFetcher::OnGaiaFetcherResumedOrCancelled( /*response_code=*/0); break; } @@ -305,7 +305,7 @@ diff --git a/chrome/browser/signin/bound_session_credentials/throttled_gaia_auth diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/signin/chrome_signin_client.cc --- a/chrome/browser/signin/chrome_signin_client.cc +++ b/chrome/browser/signin/chrome_signin_client.cc -@@ -228,7 +228,9 @@ void ChromeSigninClient::DoFinalInit() { +@@ -232,7 +232,9 @@ void ChromeSigninClient::DoFinalInit() { bool ChromeSigninClient::ProfileAllowsSigninCookies(Profile* profile) { scoped_refptr cookie_settings = CookieSettingsFactory::GetForProfile(profile); @@ -316,7 +316,7 @@ diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/sign } PrefService* ChromeSigninClient::GetPrefs() { -@@ -347,6 +349,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() { +@@ -355,6 +357,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() { } void ChromeSigninClient::DelayNetworkCall(base::OnceClosure callback) { @@ -329,7 +329,7 @@ diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/sign diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browser/ui/webui/policy/policy_ui_handler.cc --- a/chrome/browser/ui/webui/policy/policy_ui_handler.cc +++ b/chrome/browser/ui/webui/policy/policy_ui_handler.cc -@@ -23,6 +23,7 @@ +@@ -24,6 +24,7 @@ #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/notreached.h" @@ -337,7 +337,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browse #include "base/strings/utf_string_conversions.h" #include "base/task/task_traits.h" #include "base/task/thread_pool.h" -@@ -65,6 +66,7 @@ +@@ -67,6 +68,7 @@ #include "components/policy/core/common/policy_details.h" #include "components/policy/core/common/policy_logger.h" #include "components/policy/core/common/policy_pref_names.h" @@ -345,7 +345,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browse #include "components/policy/core/common/policy_scheduler.h" #include "components/policy/core/common/policy_types.h" #include "components/policy/core/common/remote_commands/remote_commands_service.h" -@@ -177,6 +179,10 @@ void PolicyUIHandler::RegisterMessages() { +@@ -183,6 +185,10 @@ void PolicyUIHandler::RegisterMessages() { "exportPoliciesJSON", base::BindRepeating(&PolicyUIHandler::HandleExportPoliciesJson, base::Unretained(this))); @@ -356,7 +356,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browse web_ui()->RegisterMessageCallback( "listenPoliciesUpdates", base::BindRepeating(&PolicyUIHandler::HandleListenPoliciesUpdates, -@@ -408,8 +414,102 @@ void PolicyUIHandler::SendPolicies() { +@@ -427,8 +433,102 @@ void PolicyUIHandler::SendPolicies() { "policies-updated", base::Value( policy_value_and_status_aggregator_->GetAggregatedPolicyNames()), @@ -464,7 +464,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browse diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.h b/chrome/browser/ui/webui/policy/policy_ui_handler.h --- a/chrome/browser/ui/webui/policy/policy_ui_handler.h +++ b/chrome/browser/ui/webui/policy/policy_ui_handler.h -@@ -50,6 +50,8 @@ class PolicyUIHandler +@@ -54,6 +54,8 @@ class PolicyUIHandler : public content::WebUIMessageHandler, private: void HandleExportPoliciesJson(const base::Value::List& args); @@ -476,7 +476,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.h b/chrome/browser 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 -@@ -384,7 +384,7 @@ +@@ -381,7 +381,7 @@ @@ -488,7 +488,7 @@ diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/comp diff --git a/components/commerce/core/commerce_feature_list.cc b/components/commerce/core/commerce_feature_list.cc --- a/components/commerce/core/commerce_feature_list.cc +++ b/components/commerce/core/commerce_feature_list.cc -@@ -55,56 +55,6 @@ const CountryLocaleMap& GetAllowedCountryToLocaleMap() { +@@ -56,56 +56,6 @@ const CountryLocaleMap& GetAllowedCountryToLocaleMap() { return *allowed_map; } @@ -545,7 +545,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm } // namespace namespace switches { -@@ -304,6 +254,16 @@ const char kParcelTrackingTestDataParamDelivered[] = "Delivered"; +@@ -308,6 +258,16 @@ const char kParcelTrackingTestDataParamDelivered[] = "Delivered"; const char kParcelTrackingTestDataParamInProgress[] = "InProgress"; const char kParcelTrackingTestDataParamOutForDelivery[] = "OutForDelivery"; @@ -562,7 +562,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm // Params for Discount Consent V2 in the NTP Cart module. const char kNtpChromeCartModuleDiscountConsentNtpVariationParam[] = "discount-consent-ntp-variation"; -@@ -429,11 +389,11 @@ bool IsPartnerMerchant(const GURL& url) { +@@ -433,11 +393,11 @@ bool IsPartnerMerchant(const GURL& url) { } bool IsRuleDiscountPartnerMerchant(const GURL& url) { @@ -576,7 +576,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm } bool IsCartDiscountFeatureEnabled() { -@@ -516,6 +476,7 @@ base::TimeDelta GetDiscountFetchDelay() { +@@ -520,6 +480,7 @@ base::TimeDelta GetDiscountFetchDelay() { } bool IsNoDiscountMerchant(const GURL& url) { @@ -773,7 +773,7 @@ diff --git a/components/policy/core/common/policy_loader_command_line.cc b/compo diff --git a/components/policy/core/common/policy_pref_names.cc b/components/policy/core/common/policy_pref_names.cc --- a/components/policy/core/common/policy_pref_names.cc +++ b/components/policy/core/common/policy_pref_names.cc -@@ -97,6 +97,9 @@ const char kReadAloudEnabled[] = "policy.read_aloud_enabled"; +@@ -94,6 +94,9 @@ const char kReadAloudEnabled[] = "policy.read_aloud_enabled"; const char kUserAgentClientHintsGREASEUpdateEnabled[] = "policy.user_agent_client_hints_grease_update_enabled"; @@ -786,7 +786,7 @@ diff --git a/components/policy/core/common/policy_pref_names.cc b/components/pol diff --git a/components/policy/core/common/policy_pref_names.h b/components/policy/core/common/policy_pref_names.h --- a/components/policy/core/common/policy_pref_names.h +++ b/components/policy/core/common/policy_pref_names.h -@@ -51,6 +51,7 @@ extern const char kUrlAllowlist[]; +@@ -50,6 +50,7 @@ extern const char kUrlAllowlist[]; extern const char kUserPolicyRefreshRate[]; extern const char kIntensiveWakeUpThrottlingEnabled[]; extern const char kUserAgentClientHintsGREASEUpdateEnabled[]; @@ -881,7 +881,7 @@ diff --git a/components/policy/resources/webui/policy_row.ts b/components/policy this.setAttribute('role', 'rowgroup'); this.classList.add('policy-data'); } -@@ -94,6 +98,9 @@ export class PolicyRowElement extends CustomElement { +@@ -93,6 +97,9 @@ export class PolicyRowElement extends CustomElement { this.toggleAttribute('no-help-link', true); } @@ -891,7 +891,7 @@ diff --git a/components/policy/resources/webui/policy_row.ts b/components/policy // Populate the remaining columns with policy scope, level and value if a // value has been set. Otherwise, leave them blank. if (!this.unset_) { -@@ -226,6 +233,11 @@ export class PolicyRowElement extends CustomElement { +@@ -224,6 +231,11 @@ export class PolicyRowElement extends CustomElement { } } @@ -906,7 +906,7 @@ diff --git a/components/policy/resources/webui/policy_row.ts b/components/policy diff --git a/components/policy_strings.grdp b/components/policy_strings.grdp --- a/components/policy_strings.grdp +++ b/components/policy_strings.grdp -@@ -633,8 +633,8 @@ Additional details: +@@ -636,8 +636,8 @@ Additional details: Default diff --git a/build/patches/allow-the-download-of-clang-for-windows-crossbuild.patch b/build/patches/allow-the-download-of-clang-for-windows-crossbuild.patch index 8af152b8b..69d7d1ccc 100644 --- a/build/patches/allow-the-download-of-clang-for-windows-crossbuild.patch +++ b/build/patches/allow-the-download-of-clang-for-windows-crossbuild.patch @@ -58,8 +58,8 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py + help='Do not remove old file before extracting.') args = parser.parse_args() - # TODO(crbug.com/1467585): Remove in next Clang roll. -@@ -378,7 +384,7 @@ def main(): + if args.verify_version and args.verify_version != RELEASE_VERSION: +@@ -373,7 +379,7 @@ def main(): print('--llvm-force-head-revision can only be used for --print-revision') return 1 diff --git a/build/patches/autofill-miscellaneous.patch b/build/patches/autofill-miscellaneous.patch index 07d61888a..8610e7497 100644 --- a/build/patches/autofill-miscellaneous.patch +++ b/build/patches/autofill-miscellaneous.patch @@ -23,7 +23,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 -@@ -1338,7 +1338,7 @@ void RegisterProfilePrefsForMigration( +@@ -1344,7 +1344,7 @@ void RegisterProfilePrefsForMigration( #endif // Deprecated 12/2023. @@ -35,7 +35,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse 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 -@@ -225,12 +225,7 @@ ChromeAutofillClient::GetURLLoaderFactory() { +@@ -242,12 +242,7 @@ ChromeAutofillClient::GetURLLoaderFactory() { } AutofillCrowdsourcingManager* ChromeAutofillClient::GetCrowdsourcingManager() { @@ -52,8 +52,8 @@ diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/brows diff --git a/components/autofill/core/browser/browser_autofill_manager.h b/components/autofill/core/browser/browser_autofill_manager.h --- a/components/autofill/core/browser/browser_autofill_manager.h +++ b/components/autofill/core/browser/browser_autofill_manager.h -@@ -777,9 +777,9 @@ class BrowserAutofillManager : public AutofillManager { - autocomplete_unrecognized_fallback_logger_; +@@ -577,9 +577,9 @@ class BrowserAutofillManager : public AutofillManager { + manual_fallback_logger_; // Have we logged whether Autofill is enabled for this page load? - bool has_logged_autofill_enabled_ = false; @@ -67,7 +67,7 @@ diff --git a/components/autofill/core/browser/browser_autofill_manager.h b/compo diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc b/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc --- a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc +++ b/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc -@@ -473,33 +473,6 @@ std::optional GetUploadPayloadForApi( +@@ -475,33 +475,6 @@ std::optional GetUploadPayloadForApi( return std::move(payload); } @@ -101,7 +101,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci // Gets HTTP body payload for API POST request. std::optional GetAPIBodyPayload(std::string payload, RequestType type) { -@@ -531,18 +504,7 @@ std::optional GetAPIQueryPayload( +@@ -533,18 +506,7 @@ std::optional GetAPIQueryPayload( } std::string GetAPIKeyForUrl(version_info::Channel channel) { @@ -121,7 +121,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci } std::optional>& GetActiveExperiments() { -@@ -772,34 +734,13 @@ size_t AutofillCrowdsourcingManager::GetPayloadLength( +@@ -774,34 +736,13 @@ size_t AutofillCrowdsourcingManager::GetPayloadLength( std::tuple AutofillCrowdsourcingManager::GetRequestURLAndMethod( const FormRequestData& request_data) const { @@ -175,7 +175,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc --- a/components/autofill/core/common/autofill_features.cc +++ b/components/autofill/core/common/autofill_features.cc -@@ -791,6 +791,7 @@ BASE_FEATURE(kAutofillUploadThrottling, +@@ -775,6 +775,7 @@ BASE_FEATURE(kAutofillUploadThrottling, "AutofillUploadThrottling", base::FEATURE_ENABLED_BY_DEFAULT); @@ -206,9 +206,9 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto - prefs::kAutofillPaymentCvcStorage, true, + prefs::kAutofillPaymentCvcStorage, false, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); - - // Non-synced prefs. Used for per-device choices, e.g., signin promo. -@@ -91,9 +91,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref( + kAutofillPaymentCardBenefits, true, +@@ -94,9 +94,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { #endif // Deprecated prefs registered for migration. @@ -223,7 +223,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto diff --git a/components/password_manager/core/browser/password_generation_frame_helper.cc b/components/password_manager/core/browser/password_generation_frame_helper.cc --- a/components/password_manager/core/browser/password_generation_frame_helper.cc +++ b/components/password_manager/core/browser/password_generation_frame_helper.cc -@@ -94,7 +94,6 @@ void PasswordGenerationFrameHelper::ProcessPasswordRequirements( +@@ -95,7 +95,6 @@ void PasswordGenerationFrameHelper::ProcessPasswordRequirements( // In order for password generation to be enabled, we need to make sure: // (1) Password sync is enabled, and // (2) Password saving is enabled @@ -231,14 +231,14 @@ diff --git a/components/password_manager/core/browser/password_generation_frame_ bool PasswordGenerationFrameHelper::IsGenerationEnabled( bool log_debug_data) const { std::unique_ptr logger; -@@ -104,9 +103,6 @@ bool PasswordGenerationFrameHelper::IsGenerationEnabled( +@@ -105,9 +104,6 @@ bool PasswordGenerationFrameHelper::IsGenerationEnabled( } GURL url = driver_->GetLastCommittedURL(); - if (url.DomainIs("google.com")) - return false; - - if (!client_->IsSavingAndFillingEnabled(url)) { - if (logger) - logger->LogMessage(Logger::STRING_GENERATION_DISABLED_SAVING_DISABLED); + if (!password_manager_util::IsAbleToSavePasswords(client_)) { + if (logger) { + logger->LogMessage( -- diff --git a/build/patches/bromite-build-utils.patch b/build/patches/bromite-build-utils.patch index 9e74d960e..5910f846c 100644 --- a/build/patches/bromite-build-utils.patch +++ b/build/patches/bromite-build-utils.patch @@ -427,7 +427,7 @@ new file mode 100644 diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn --- a/build/config/BUILDCONFIG.gn +++ b/build/config/BUILDCONFIG.gn -@@ -652,6 +652,7 @@ set_defaults("component") { +@@ -655,6 +655,7 @@ set_defaults("component") { configs = default_component_configs } diff --git a/build/patches/build-remove-calling-untrusted-hooks.patch b/build/patches/build-remove-calling-untrusted-hooks.patch index 7e1548101..705aff452 100644 --- a/build/patches/build-remove-calling-untrusted-hooks.patch +++ b/build/patches/build-remove-calling-untrusted-hooks.patch @@ -31,7 +31,7 @@ diff --git a/DEPS b/DEPS # By default bot checkouts the WPR archive files only when this # flag is set True. -@@ -4419,54 +4419,6 @@ hooks = [ +@@ -4526,54 +4526,6 @@ hooks = [ 'sync', '--extract', ], }, @@ -86,7 +86,7 @@ diff --git a/DEPS b/DEPS { # Case-insensitivity for the Win SDK. Must run before win_toolchain below. 'name': 'ciopfs_linux', -@@ -4616,57 +4568,6 @@ hooks = [ +@@ -4723,57 +4675,6 @@ hooks = [ ], }, @@ -144,7 +144,7 @@ diff --git a/DEPS b/DEPS # Pull rc binaries using checked-in hashes. { 'name': 'rc_win', -@@ -4692,30 +4593,6 @@ hooks = [ +@@ -4799,30 +4700,6 @@ hooks = [ '-s', 'src/build/toolchain/win/rc/mac/rc.sha1', ], }, diff --git a/build/patches/disable-AdsBlockedInfoBar.patch b/build/patches/disable-AdsBlockedInfoBar.patch index ef9a009c5..944456674 100644 --- a/build/patches/disable-AdsBlockedInfoBar.patch +++ b/build/patches/disable-AdsBlockedInfoBar.patch @@ -24,7 +24,7 @@ diff --git a/components/subresource_filter/content/browser/profile_interaction_m namespace subresource_filter { ProfileInteractionManager::ProfileInteractionManager( -@@ -135,47 +128,6 @@ void ProfileInteractionManager::MaybeShowNotification() { +@@ -133,47 +126,6 @@ void ProfileInteractionManager::MaybeShowNotification() { // currently primary. DCHECK(page_); DCHECK(page_->IsPrimary()); diff --git a/build/patches/disable-WebView-variations-support.patch b/build/patches/disable-WebView-variations-support.patch index 639295bc1..d679eb4ff 100644 --- a/build/patches/disable-WebView-variations-support.patch +++ b/build/patches/disable-WebView-variations-support.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java --- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java +++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java -@@ -201,12 +201,6 @@ public class WebViewChromiumAwInit { +@@ -211,12 +211,6 @@ public class WebViewChromiumAwInit { AwBrowserProcess.configureChildProcessLauncher(); @@ -28,7 +28,7 @@ diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewC diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java --- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java +++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java -@@ -465,10 +465,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { +@@ -463,10 +463,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { } } diff --git a/build/patches/do-not-add-suffix-to-package-name.patch b/build/patches/do-not-add-suffix-to-package-name.patch index a2dd93b2e..268d587c9 100644 --- a/build/patches/do-not-add-suffix-to-package-name.patch +++ b/build/patches/do-not-add-suffix-to-package-name.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni --- a/chrome/android/chrome_public_apk_tmpl.gni +++ b/chrome/android/chrome_public_apk_tmpl.gni -@@ -29,7 +29,7 @@ declare_args() { +@@ -28,7 +28,7 @@ declare_args() { chrome_public_manifest_package = "org.chromium.chrome" if (use_stable_package_name_for_trichrome) { chrome_public_manifest_package += ".stable" diff --git a/build/patches/do-not-block-build-incompatible-profiles.patch b/build/patches/do-not-block-build-incompatible-profiles.patch index 4d982c29a..11d498b43 100644 --- a/build/patches/do-not-block-build-incompatible-profiles.patch +++ b/build/patches/do-not-block-build-incompatible-profiles.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/v8/BUILD.gn b/v8/BUILD.gn --- a/v8/BUILD.gn +++ b/v8/BUILD.gn -@@ -2405,7 +2405,7 @@ template("run_mksnapshot") { +@@ -2417,7 +2417,7 @@ template("run_mksnapshot") { # Replace this with --warn-about-builtin-profile-data to see the full # list of builtins with incompatible profiles. diff --git a/build/patches/enable-ftrivial-auto-var-init-zero.patch b/build/patches/enable-ftrivial-auto-var-init-zero.patch index 4e0f8ff7c..315e57d08 100644 --- a/build/patches/enable-ftrivial-auto-var-init-zero.patch +++ b/build/patches/enable-ftrivial-auto-var-init-zero.patch @@ -11,7 +11,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 -@@ -401,6 +401,10 @@ config("compiler") { +@@ -398,6 +398,10 @@ config("compiler") { cflags += [ "-fwrapv" ] } diff --git a/build/patches/eyeo-beta-118.0.5993.48-android_api.patch b/build/patches/eyeo-beta-118.0.5993.48-android_api.patch index d2b4c6584..aa92d0479 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-android_api.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-android_api.patch @@ -97,7 +97,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn import("//build/android/resource_sizes.gni") import("//build/config/android/config.gni") -@@ -461,6 +465,7 @@ if (current_toolchain == default_toolchain) { +@@ -462,6 +466,7 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/xsurface:java", "//chrome/browser/xsurface_provider:dependency_provider_impl_java", "//chrome/browser/xsurface_provider:java", @@ -105,7 +105,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/autofill/android:autofill_java", "//components/background_task_scheduler:background_task_scheduler_java", "//components/background_task_scheduler:background_task_scheduler_task_ids_java", -@@ -678,6 +683,7 @@ if (current_toolchain == default_toolchain) { +@@ -680,6 +685,7 @@ if (current_toolchain == default_toolchain) { "//url/mojom:url_mojom_gurl_java", ] @@ -113,7 +113,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn deps += feed_deps srcjar_deps = [ -@@ -1568,6 +1574,7 @@ if (current_toolchain == default_toolchain) { +@@ -1574,6 +1580,7 @@ if (current_toolchain == default_toolchain) { "//chrome/android/webapk/libs/client:client_java", "//chrome/android/webapk/libs/common:common_java", "//chrome/android/webapk/libs/runtime_library:webapk_service_aidl_java", @@ -121,7 +121,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/android/browserservices/intents:java", "//chrome/browser/android/browserservices/verification:java", "//chrome/browser/android/browserservices/verification:javatests", -@@ -1913,6 +1920,7 @@ if (current_toolchain == default_toolchain) { +@@ -1919,6 +1926,7 @@ if (current_toolchain == default_toolchain) { srcjar_deps = [ "//chrome/browser:tos_dialog_behavior_generated_enum" ] data = [ @@ -129,7 +129,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/test/data/android/", "//chrome/test/data/autofill/", "//chrome/test/data/background_sync/", -@@ -3778,6 +3786,7 @@ group("jni_headers") { +@@ -3785,6 +3793,7 @@ group("jni_headers") { "//chrome/browser/util:jni_headers", "//chrome/browser/webauthn/android:jni_headers", "//components/browser_ui/device_lock/android:device_lock_bridge_jni_headers", @@ -140,7 +140,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3433,6 +3433,17 @@ static_library("browser") { +@@ -3452,6 +3452,17 @@ static_library("browser") { "webauthn/android/webauthn_request_delegate_android.h", ] @@ -158,7 +158,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn public_deps += [ "//chrome/android/features/dev_ui:buildflags", -@@ -3621,6 +3632,9 @@ static_library("browser") { +@@ -3641,6 +3652,9 @@ static_library("browser") { "//url", ] @@ -660,7 +660,7 @@ new file mode 100644 diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -269,6 +269,11 @@ +@@ -271,6 +271,11 @@ #include "components/commerce/core/commerce_feature_list.h" #include "components/commerce/core/proto/merchant_signal_db_content.pb.h" @@ -672,7 +672,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #else #include "chrome/browser/accessibility/live_caption/live_caption_controller_factory.h" -@@ -830,6 +835,11 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -832,6 +837,11 @@ void ChromeBrowserMainExtraPartsProfiles:: #if BUILDFLAG(IS_ANDROID) FastCheckoutCapabilitiesFetcherFactory::GetInstance(); diff --git a/build/patches/eyeo-beta-118.0.5993.48-android_settings.patch b/build/patches/eyeo-beta-118.0.5993.48-android_settings.patch index a3db59103..1c15fd3d7 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-android_settings.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-android_settings.patch @@ -254,7 +254,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn if (plus_addresses_use_internal_android_resources) { deps += [ "//clank/components/plus_addresses:java_resources" ] } else { -@@ -683,6 +687,9 @@ if (current_toolchain == default_toolchain) { +@@ -685,6 +689,9 @@ if (current_toolchain == default_toolchain) { "//url/mojom:url_mojom_gurl_java", ] diff --git a/build/patches/eyeo-beta-118.0.5993.48-base.patch b/build/patches/eyeo-beta-118.0.5993.48-base.patch index facbdd872..ccbd74037 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-base.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-base.patch @@ -435,7 +435,7 @@ diff --git a/DEPS b/DEPS # By default, do not check out WebKit for iOS, as it is not needed unless # running against ToT WebKit rather than system WebKit. This can be overridden # e.g. with custom_vars. -@@ -290,6 +294,8 @@ vars = { +@@ -292,6 +296,8 @@ vars = { 'download_libaom_testdata': False, 'android_git': 'https://android.googlesource.com', @@ -444,7 +444,7 @@ diff --git a/DEPS b/DEPS 'aomedia_git': 'https://aomedia.googlesource.com', 'boringssl_git': 'https://boringssl.googlesource.com', 'chrome_git': 'https://chrome-internal.googlesource.com', -@@ -501,6 +507,11 @@ vars = { +@@ -503,6 +509,11 @@ vars = { # and whatever else without interference from each other. 'betocore_revision': '4d202dab960a0b6a6e4757ab4393945aca5a09db', @@ -455,8 +455,8 @@ diff --git a/DEPS b/DEPS + # If you change this, also update the libc++ revision in # //buildtools/deps_revisions.gni. - 'libcxx_revision': '28aa23ffb4c7344914a5b4ac7169f12e5a12333f', -@@ -831,6 +842,10 @@ deps = { + 'libcxx_revision': '834e97d73f13a166af65952fb681071eec87a2c4', +@@ -833,6 +844,10 @@ deps = { 'condition': 'checkout_android and checkout_src_internal', }, @@ -465,9 +465,9 @@ diff --git a/DEPS b/DEPS + }, + 'src/docs/website': { - 'url': Var('chromium_git') + '/website.git' + '@' + '7474472013397bdb177cda70099f6411a5bd8212', + 'url': Var('chromium_git') + '/website.git' + '@' + '12d09e14812d8390213801bb31d08858a3378fcb', }, -@@ -936,6 +951,13 @@ deps = { +@@ -938,6 +953,13 @@ deps = { 'dep_type': 'cipd', }, @@ -596,10 +596,10 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn + "//components/adblock/core/converter/serializer:unit_tests", + "//components/adblock/core/converter:unit_tests", + "//components/adblock/core/subscription:unit_tests", + "//components/affiliations/core/browser:unit_tests", "//components/aggregation_service:unit_tests", "//components/apdu:unit_tests", - "//components/assist_ranker:unit_tests", -@@ -416,6 +427,7 @@ test("components_unittests") { +@@ -411,6 +422,7 @@ test("components_unittests") { if (use_blink) { deps += [ @@ -607,7 +607,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn "//components/autofill/content/browser:unit_tests", "//components/autofill/content/renderer:unit_tests", "//components/autofill/core/common/mojom:unit_tests", -@@ -1162,6 +1174,9 @@ if (use_blink) { +@@ -1155,6 +1167,9 @@ if (use_blink) { deps = [ "//base", @@ -31368,7 +31368,7 @@ new file mode 100644 diff --git a/components/resources/BUILD.gn b/components/resources/BUILD.gn --- a/components/resources/BUILD.gn +++ b/components/resources/BUILD.gn -@@ -76,6 +76,11 @@ grit("components_resources") { +@@ -78,6 +78,11 @@ grit("components_resources") { if (is_android && safe_browsing_mode == 2) { deps += [ "//components/safe_browsing/content/resources/real_time_url_checks_allowlist:make_real_time_url_allowlist_protobuf" ] } @@ -52324,7 +52324,7 @@ diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/brow #include "content/browser/loader/navigation_url_loader_impl.h" #include -@@ -978,7 +982,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( +@@ -999,7 +1003,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( LogQueueTimeHistogram("Navigation.QueueTime.OnReceiveRedirect", resource_request_->is_outermost_main_frame); net::Error error = net::OK; @@ -52347,7 +52347,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b #include "content/browser/renderer_host/render_frame_host_impl.h" -@@ -2631,6 +2635,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( +@@ -2646,6 +2650,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( std::move(callback)); } @@ -52374,7 +52374,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.h b/content/br #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_FRAME_HOST_IMPL_H_ #define CONTENT_BROWSER_RENDERER_HOST_RENDER_FRAME_HOST_IMPL_H_ -@@ -438,6 +442,10 @@ class CONTENT_EXPORT RenderFrameHostImpl +@@ -435,6 +439,10 @@ class CONTENT_EXPORT RenderFrameHostImpl const std::u16string& method_name, base::Value::List arguments, JavaScriptResultCallback callback) override; @@ -52448,7 +52448,7 @@ diff --git a/extensions/browser/api/web_request/web_request_proxying_url_loader_ #include "extensions/browser/api/web_request/web_request_proxying_url_loader_factory.h" #include -@@ -461,6 +465,7 @@ void WebRequestProxyingURLLoaderFactory::InProgressRequest::OnReceiveRedirect( +@@ -463,6 +467,7 @@ void WebRequestProxyingURLLoaderFactory::InProgressRequest::OnReceiveRedirect( TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT); if (redirect_url_ != redirect_info.new_url && @@ -52517,7 +52517,7 @@ diff --git a/third_party/blink/public/mojom/frame/frame.mojom b/third_party/blin module blink.mojom; -@@ -896,6 +900,10 @@ interface LocalFrame { +@@ -897,6 +901,10 @@ interface LocalFrame { // the given point in the view coordinate space. PluginActionAt(gfx.mojom.Point location, blink.mojom.PluginActionType action); @@ -52542,7 +52542,7 @@ diff --git a/third_party/blink/public/web/web_document.h b/third_party/blink/pub #ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DOCUMENT_H_ #define THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DOCUMENT_H_ -@@ -136,6 +140,14 @@ class BLINK_EXPORT WebDocument : public WebNode { +@@ -141,6 +145,14 @@ class BLINK_EXPORT WebDocument : public WebNode { WebCssOrigin = WebCssOrigin::kAuthor, BackForwardCacheAware = BackForwardCacheAware::kAllow); @@ -52571,7 +52571,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_pa #include "third_party/blink/public/web/web_document.h" #include "base/memory/scoped_refptr.h" -@@ -252,6 +256,54 @@ WebStyleSheetKey WebDocument::InsertStyleSheet( +@@ -263,6 +267,54 @@ WebStyleSheetKey WebDocument::InsertStyleSheet( return injection_key; } @@ -53149,7 +53149,7 @@ diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ # This file is used to assign starting resource ids for resources and strings # used by Chromium. This is done to ensure that resource ids are unique # across all the grd files. If you are adding a new grd file, please add -@@ -701,6 +705,10 @@ +@@ -705,6 +709,10 @@ "META": {"sizes": {"includes": [10]}}, "includes": [5240], }, diff --git a/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch b/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch index ffc772697..cfccbfb60 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch @@ -51,11 +51,11 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module .../adblock_internals_page_handler_impl.h | 51 +++ .../adblock_internals/adblock_internals_ui.cc | 47 +++ .../adblock_internals/adblock_internals_ui.h | 48 +++ - .../webui/chrome_web_ui_controller_factory.cc | 11 +- + .../webui/chrome_web_ui_controller_factory.cc | 8 + chrome/common/BUILD.gn | 3 + chrome/common/webui_url_constants.cc | 5 + chrome/common/webui_url_constants.h | 5 + - 49 files changed, 2339 insertions(+), 6 deletions(-) + 49 files changed, 2337 insertions(+), 5 deletions(-) create mode 100644 chrome/browser/adblock/README.md create mode 100644 chrome/browser/adblock/adblock_content_browser_client.cc create mode 100644 chrome/browser/adblock/adblock_content_browser_client.h @@ -111,7 +111,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat #include "chrome/browser/buildflags.h" #include "chrome/browser/chrome_content_browser_client.h" #include "chrome/browser/chrome_resource_bundle_helper.h" -@@ -1928,7 +1933,7 @@ content::ContentClient* ChromeMainDelegate::CreateContentClient() { +@@ -1896,7 +1901,7 @@ content::ContentClient* ChromeMainDelegate::CreateContentClient() { content::ContentBrowserClient* ChromeMainDelegate::CreateContentBrowserClient() { chrome_content_browser_client_ = @@ -133,10 +133,10 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn import("//base/allocator/allocator.gni") import("//build/buildflag_header.gni") -@@ -149,6 +152,26 @@ static_library("browser") { - "accessibility/page_colors.h", - "accessibility/page_colors_factory.cc", +@@ -153,6 +156,26 @@ static_library("browser") { "accessibility/page_colors_factory.h", + "accessibility/prefers_default_scrollbar_styles_prefs.cc", + "accessibility/prefers_default_scrollbar_styles_prefs.h", + "adblock/adblock_content_browser_client.cc", + "adblock/adblock_content_browser_client.h", + "adblock/adblock_controller_factory.cc", @@ -160,7 +160,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "after_startup_task_utils.cc", "after_startup_task_utils.h", "app_mode/app_mode_utils.cc", -@@ -2110,6 +2133,7 @@ static_library("browser") { +@@ -2123,6 +2146,7 @@ static_library("browser") { "//chrome/browser/ui/color:color_headers", "//chrome/browser/ui/color:mixers", "//chrome/browser/ui/webui:configs", @@ -168,7 +168,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/browser/ui/webui/app_service_internals:mojo_bindings", "//chrome/browser/ui/webui/feed:mojo_bindings", "//chrome/browser/ui/webui/internals/user_education:mojo_bindings", -@@ -2132,6 +2156,8 @@ static_library("browser") { +@@ -2145,6 +2169,8 @@ static_library("browser") { "//chrome/common/notifications", "//chrome/installer/util:with_no_strings", "//chrome/services/speech/buildflags", @@ -176,8 +176,8 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn + "//components/adblock/core/converter", "//components/assist_ranker", "//components/autofill/content/browser", - "//components/autofill/core/browser", -@@ -3406,6 +3432,8 @@ static_library("browser") { + "//components/autofill/content/common:features", +@@ -3425,6 +3451,8 @@ static_library("browser") { "webauthn/android/webauthn_request_delegate_android.cc", "webauthn/android/webauthn_request_delegate_android.h", ] @@ -186,7 +186,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn public_deps += [ "//chrome/android/features/dev_ui:buildflags", "//components/image_fetcher/core", -@@ -3593,6 +3621,7 @@ static_library("browser") { +@@ -3613,6 +3641,7 @@ static_library("browser") { "//url", ] @@ -2048,7 +2048,7 @@ diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser #include "chrome/browser/ui/webui/browsing_topics/browsing_topics_internals_ui.h" #include "chrome/browser/ui/webui/engagement/site_engagement_ui.h" #include "chrome/browser/ui/webui/internals/internals_ui.h" -@@ -1090,6 +1095,10 @@ void PopulateChromeWebUIFrameBinders( +@@ -1092,6 +1097,10 @@ void PopulateChromeWebUIFrameBinders( media::mojom::MediaEngagementScoreDetailsProvider, MediaEngagementUI>( map); @@ -2146,7 +2146,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h" #include "chrome/browser/autocomplete/document_suggestions_service_factory.h" #include "chrome/browser/autocomplete/in_memory_url_index_factory.h" -@@ -255,6 +268,8 @@ +@@ -257,6 +270,8 @@ #include "chrome/browser/signin/signin_manager_android_factory.h" #include "components/commerce/core/commerce_feature_list.h" #include "components/commerce/core/proto/merchant_signal_db_content.pb.h" @@ -2155,7 +2155,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #else #include "chrome/browser/accessibility/live_caption/live_caption_controller_factory.h" #include "chrome/browser/accessibility/live_translate_controller_factory.h" -@@ -803,8 +818,19 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -805,8 +820,19 @@ void ChromeBrowserMainExtraPartsProfiles:: // Makes manual testing possible. FakeSmartCardDeviceServiceFactory::GetInstance(); #endif @@ -2189,7 +2189,7 @@ diff --git a/chrome/browser/profiles/profile_keyed_service_browsertest.cc b/chro #include #include "base/memory/raw_ptr.h" -@@ -206,12 +210,22 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, +@@ -221,12 +225,22 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, SystemProfileParent_NeededServices) { @@ -2214,7 +2214,7 @@ diff --git a/chrome/browser/profiles/profile_keyed_service_browsertest.cc b/chro } IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, -@@ -293,7 +307,7 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, +@@ -314,7 +328,7 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, "UpdaterService", "UsbDeviceManager", "UsbDeviceResourceManager", @@ -2223,7 +2223,7 @@ diff --git a/chrome/browser/profiles/profile_keyed_service_browsertest.cc b/chro }; // clang-format on -@@ -555,6 +569,17 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, +@@ -577,6 +591,17 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, "feedback::FeedbackUploaderChrome", "sct_reporting::Factory", "ZeroSuggestCacheServiceFactory", @@ -2241,7 +2241,7 @@ diff --git a/chrome/browser/profiles/profile_keyed_service_browsertest.cc b/chro }; // clang-format on -@@ -600,6 +625,17 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, +@@ -622,6 +647,17 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, "PermissionsUpdaterShutdownFactory", "PluginInfoHostImpl", "TurnSyncOnHelperShutdownNotifier", @@ -2427,7 +2427,7 @@ diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc b/ #include "components/safe_browsing/content/browser/safe_browsing_blocking_page.h" -@@ -66,6 +70,7 @@ +@@ -67,6 +71,7 @@ #include "chrome/common/url_constants.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" @@ -2435,7 +2435,7 @@ diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc b/ #include "components/google/core/common/google_util.h" #include "components/grit/components_resources.h" #include "components/omnibox/browser/omnibox_prefs.h" -@@ -611,6 +616,8 @@ class SafeBrowsingBlockingPageBrowserTest +@@ -673,6 +678,8 @@ class SafeBrowsingBlockingPageBrowserTest {tag_and_attribute, add_warning_shown_timestamp_csbrrs, create_warning_shown_csbrrs}, {}); @@ -2490,10 +2490,10 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn import("//build/config/buildflags_paint_preview.gni") import("//build/config/chromeos/ui_mode.gni") -@@ -250,6 +254,10 @@ static_library("ui") { - "webid/identity_dialog_controller.h", - "webui/about/about_ui.cc", +@@ -241,6 +245,10 @@ static_library("ui") { "webui/about/about_ui.h", + "webui/accessibility/accessibility_ui.cc", + "webui/accessibility/accessibility_ui.h", + "webui/adblock_internals/adblock_internals_page_handler_impl.cc", + "webui/adblock_internals/adblock_internals_page_handler_impl.h", + "webui/adblock_internals/adblock_internals_ui.cc", @@ -2501,7 +2501,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "webui/autofill_and_password_manager_internals/autofill_internals_ui.cc", "webui/autofill_and_password_manager_internals/autofill_internals_ui.h", "webui/autofill_and_password_manager_internals/internals_ui_handler.cc", -@@ -456,6 +464,7 @@ static_library("ui") { +@@ -447,6 +455,7 @@ static_library("ui") { "//chrome/browser/storage_access_api", "//chrome/browser/ui/side_panel:side_panel_enums", "//chrome/browser/ui/webui/location_internals:mojo_bindings", @@ -2509,10 +2509,10 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "//chrome/browser/ui/webui/omnibox:mojo_bindings", "//chrome/browser/ui/webui/privacy_sandbox:mojo_bindings", "//chrome/browser/ui/webui/segmentation_internals:mojo_bindings", -@@ -473,6 +482,7 @@ static_library("ui") { - "//components/about_ui", +@@ -463,6 +472,7 @@ static_library("ui") { "//components/access_code_cast/common:metrics", "//components/account_id", + "//components/affiliations/core/browser:affiliations", + "//components/adblock/content:browser", "//components/autofill/content/browser", "//components/autofill/content/browser:risk_proto", @@ -2578,7 +2578,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/breadcrumbs/breadcrumb_manager_tab_helper.h" #include "chrome/browser/browser_process.h" -@@ -110,6 +117,7 @@ +@@ -111,6 +118,7 @@ #include "chrome/common/chrome_features.h" #include "chrome/common/chrome_isolated_world_ids.h" #include "chrome/common/chrome_switches.h" @@ -2586,7 +2586,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "components/autofill/content/browser/content_autofill_client.h" #include "components/autofill/content/browser/content_autofill_driver_factory.h" #include "components/autofill/core/browser/browser_autofill_manager.h" -@@ -360,6 +368,16 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -364,6 +372,16 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { optimization_guide_decider); } } @@ -2951,28 +2951,24 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h" -@@ -30,6 +34,7 @@ +@@ -29,6 +33,7 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/signin/signin_features.h" #include "chrome/browser/ui/webui/about/about_ui.h" +#include "chrome/browser/ui/webui/adblock_internals/adblock_internals_ui.h" - #include "chrome/browser/ui/webui/autofill_and_password_manager_internals/autofill_internals_ui.h" - #include "chrome/browser/ui/webui/autofill_and_password_manager_internals/password_manager_internals_ui.h" #include "chrome/browser/ui/webui/browsing_topics/browsing_topics_internals_ui.h" -@@ -439,8 +444,12 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, - // after the host name. - if (url.host_piece() == chrome::kChromeUIAccessibilityHost) - return &NewWebUI; -- if (url.host_piece() == chrome::kChromeUIAutofillInternalsHost) + #include "chrome/browser/ui/webui/components/components_ui.h" + #include "chrome/browser/ui/webui/constrained_web_dialog_ui.h" +@@ -429,6 +434,9 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, + + if (url.host_piece() == chrome::kChromeUIBrowsingTopicsInternalsHost) + return &NewWebUI; + if (url.host_piece() == chrome::kChromeUIAdblockInternalsHost) { + return &NewWebUI; + } -+ if (url.host_piece() == chrome::kChromeUIAutofillInternalsHost) { - return &NewWebUI; -+ } - - #if BUILDFLAG(IS_CHROMEOS_ASH) - if (url.host_piece() == chrome::kChromeUIAppDisabledHost) + if (url.host_piece() == chrome::kChromeUIComponentsHost) + return &NewWebUI; + #if !BUILDFLAG(IS_ANDROID) diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn diff --git a/build/patches/eyeo-beta-118.0.5993.48-extension_api.patch b/build/patches/eyeo-beta-118.0.5993.48-extension_api.patch index 42668a7f7..7660633e3 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-extension_api.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-extension_api.patch @@ -3472,7 +3472,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro #include "chrome/browser/extensions/api/settings_private/prefs_util.h" #include -@@ -27,6 +31,7 @@ +@@ -28,6 +32,7 @@ #include "chrome/browser/ssl/generated_https_first_mode_pref.h" #include "chrome/common/chrome_features.h" #include "chrome/common/pref_names.h" @@ -3480,8 +3480,8 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro #include "components/autofill/core/common/autofill_prefs.h" #include "components/bookmarks/common/bookmark_pref_names.h" #include "components/browsing_data/core/pref_names.h" -@@ -175,6 +180,20 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { - return *s_allowlist; +@@ -182,6 +187,20 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { + } s_allowlist = new PrefsUtil::TypedPrefMap(); + // Adblock settings @@ -4146,7 +4146,7 @@ diff --git a/extensions/common/mojom/api_permission_id.mojom b/extensions/common diff --git a/tools/metrics/histograms/metadata/extensions/enums.xml b/tools/metrics/histograms/metadata/extensions/enums.xml --- a/tools/metrics/histograms/metadata/extensions/enums.xml +++ b/tools/metrics/histograms/metadata/extensions/enums.xml -@@ -750,6 +750,7 @@ Called by update_extension_histograms.py.--> +@@ -751,6 +751,7 @@ Called by update_extension_histograms.py.--> @@ -4154,7 +4154,7 @@ diff --git a/tools/metrics/histograms/metadata/extensions/enums.xml b/tools/metr -@@ -3093,6 +3094,8 @@ Called by update_extension_permission.py.--> +@@ -3095,6 +3096,8 @@ Called by update_extension_permission.py.--> diff --git a/build/patches/openH264-enable-ARM-ARM64-optimizations.patch b/build/patches/openH264-enable-ARM-ARM64-optimizations.patch index a9c028027..a32c6c9be 100644 --- a/build/patches/openH264-enable-ARM-ARM64-optimizations.patch +++ b/build/patches/openH264-enable-ARM-ARM64-optimizations.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/renderer/modules/mediarecorder/h264_encoder.cc b/third_party/blink/renderer/modules/mediarecorder/h264_encoder.cc --- a/third_party/blink/renderer/modules/mediarecorder/h264_encoder.cc +++ b/third_party/blink/renderer/modules/mediarecorder/h264_encoder.cc -@@ -229,11 +229,11 @@ bool H264Encoder::ConfigureEncoder(const gfx::Size& size) { +@@ -228,11 +228,11 @@ bool H264Encoder::ConfigureEncoder(const gfx::Size& size) { init_params.iRCMode = RC_OFF_MODE; } diff --git a/build/patches/sharing-hub-always-use-visible-URL.patch b/build/patches/sharing-hub-always-use-visible-URL.patch index 2ab139eb5..b90076d75 100644 --- a/build/patches/sharing-hub-always-use-visible-URL.patch +++ b/build/patches/sharing-hub-always-use-visible-URL.patch @@ -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/share/ShareDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java -@@ -225,14 +225,8 @@ public class ShareDelegateImpl implements ShareDelegate { +@@ -223,14 +223,8 @@ public class ShareDelegateImpl implements ShareDelegate { @VisibleForTesting static boolean shouldFetchCanonicalUrl(final Tab currentTab) { diff --git a/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch b/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch index b432fb448..271a26654 100644 --- a/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch +++ b/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/network_time/network_time_tracker.cc b/components/network_time/network_time_tracker.cc --- a/components/network_time/network_time_tracker.cc +++ b/components/network_time/network_time_tracker.cc -@@ -271,7 +271,7 @@ void NetworkTimeTracker::UpdateNetworkTime(base::Time network_time, +@@ -274,7 +274,7 @@ void NetworkTimeTracker::UpdateNetworkTime(base::Time network_time, } bool NetworkTimeTracker::AreTimeFetchesEnabled() const { diff --git a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch index ec1f57f28..e50494fbe 100644 --- a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch +++ b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1393,8 +1393,6 @@ static_library("browser") { +@@ -1399,8 +1399,6 @@ static_library("browser") { "profiles/profile_attributes_storage.cc", "profiles/profile_attributes_storage.h", "profiles/profile_attributes_storage_observer.h", @@ -26,7 +26,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browser/profiles/profile_attributes_entry.cc --- a/chrome/browser/profiles/profile_attributes_entry.cc +++ b/chrome/browser/profiles/profile_attributes_entry.cc -@@ -324,12 +324,6 @@ std::u16string ProfileAttributesEntry::GetUserName() const { +@@ -328,12 +328,6 @@ std::u16string ProfileAttributesEntry::GetUserName() const { gfx::Image ProfileAttributesEntry::GetAvatarIcon( int size_for_placeholder_avatar, bool use_high_res_file) const { diff --git a/build/patches/ungoogled-chromium-Disable-translate-integration.patch b/build/patches/ungoogled-chromium-Disable-translate-integration.patch index ff5562f69..ebf90a020 100644 --- a/build/patches/ungoogled-chromium-Disable-translate-integration.patch +++ b/build/patches/ungoogled-chromium-Disable-translate-integration.patch @@ -173,9 +173,9 @@ diff --git a/chrome/browser/language/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 -@@ -1723,9 +1723,6 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1735,9 +1735,6 @@ Your Google account may have other forms of browsing history like searches and a - Websites will show text in your preferred language, when possible. + Let websites know the languages you speak. They’ll show content in those languages, when possible. - - Offer to translate pages in other languages diff --git a/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch b/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch index 503725951..ef59b7719 100644 --- a/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch +++ b/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 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 -@@ -98,7 +98,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -101,7 +101,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterStringPref(prefs::kWebRTCUDPPortRange, std::string()); registry->RegisterBooleanPref(prefs::kWebRtcEventLogCollectionAllowed, false); registry->RegisterListPref(prefs::kWebRtcLocalIpsAllowedUrls); diff --git a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch index 1a93f4984..50816de0a 100644 --- a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch +++ b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch @@ -9,7 +9,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/browser/BUILD.gn | 8 - .../android/metrics/uma_session_stats.cc | 10 - - .../android/signin/signin_manager_android.cc | 27 +- + .../android/signin/signin_manager_android.cc | 39 +-- chrome/browser/browser_process_impl.cc | 1 - chrome/browser/chrome_browser_main.cc | 10 - .../browser/chrome_content_browser_client.cc | 35 +- @@ -45,7 +45,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../domain_reliability/google_configs.h | 8 +- components/domain_reliability/monitor.cc | 8 - components/domain_reliability/uploader.cc | 2 +- - components/google/core/common/google_util.cc | 313 +----------------- + components/google/core/common/google_util.cc | 312 +----------------- components/google/core/common/google_util.h | 15 +- .../browser/page_load_metrics_util.cc | 4 +- .../common/page_load_metrics_util.cc | 33 +- @@ -59,14 +59,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ...gled-chromium-no-special-hosts-domains.inc | 1 + net/base/url_util.cc | 25 +- services/network/network_context.cc | 2 +- - 52 files changed, 58 insertions(+), 799 deletions(-) + 52 files changed, 58 insertions(+), 810 deletions(-) create mode 100644 cromite_flags/content/common/features_cc/ungoogled-chromium-no-special-hosts-domains.inc create mode 100644 cromite_flags/content/public/common/content_features_cc/ungoogled-chromium-no-special-hosts-domains.inc diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -997,10 +997,6 @@ static_library("browser") { +@@ -1005,10 +1005,6 @@ static_library("browser") { "page_load_metrics/observers/foreground_duration_ukm_observer.h", "page_load_metrics/observers/formfill_page_load_metrics_observer.cc", "page_load_metrics/observers/formfill_page_load_metrics_observer.h", @@ -77,7 +77,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "page_load_metrics/observers/histogram_suffixes.cc", "page_load_metrics/observers/histogram_suffixes.h", "page_load_metrics/observers/https_engagement_metrics/https_engagement_page_load_metrics_observer.cc", -@@ -1944,7 +1940,6 @@ static_library("browser") { +@@ -1956,7 +1952,6 @@ static_library("browser") { "//chrome/browser/autofill", "//chrome/browser/devtools", "//chrome/browser/favicon", @@ -85,7 +85,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn # Circular dependency due to SystemNetworkContextManager. "//chrome/browser/image_fetcher", -@@ -1973,7 +1968,6 @@ static_library("browser") { +@@ -1985,7 +1980,6 @@ static_library("browser") { public_deps = [ "//base", @@ -93,7 +93,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/browser/headless", "//chrome/browser/profiles", "//chrome/common", -@@ -7799,8 +7793,6 @@ static_library("browser") { +@@ -7790,8 +7784,6 @@ static_library("browser") { "supervised_user/chrome_supervised_user_web_content_handler_base.h", "supervised_user/supervised_user_browser_utils.cc", "supervised_user/supervised_user_browser_utils.h", @@ -125,13 +125,25 @@ diff --git a/chrome/browser/android/metrics/uma_session_stats.cc b/chrome/browse diff --git a/chrome/browser/android/signin/signin_manager_android.cc b/chrome/browser/android/signin/signin_manager_android.cc --- a/chrome/browser/android/signin/signin_manager_android.cc +++ b/chrome/browser/android/signin/signin_manager_android.cc -@@ -58,29 +58,10 @@ class ProfileDataRemover : public content::BrowsingDataRemover::Observer { +@@ -60,41 +60,10 @@ class ProfileDataRemover : public content::BrowsingDataRemover::Observer { + origin_runner_(base::SingleThreadTaskRunner::GetCurrentDefault()), remover_(profile->GetBrowsingDataRemover()) { remover_->AddObserver(this); - +- - if (all_data) { -- remover_->RemoveAndReply(base::Time(), base::Time::Max(), -- chrome_browsing_data_remover::ALL_DATA_TYPES, +- chrome_browsing_data_remover::DataType removed_types = +- chrome_browsing_data_remover::ALL_DATA_TYPES; +- if (password_manager::UsesSplitStoresAndUPMForLocal( +- profile_->GetPrefs())) { +- // If usesSplitStoresAndUPMForLocal() is true, browser sign-in won't +- // upload existing passwords, so there's no reason to wipe them +- // immediately before. Similarly, on browser sign-out, account passwords +- // should survive (outside of the browser) to be used by other apps, +- // until system-level sign-out. In other words, the browser has no +- // business deleting any passwords here. +- removed_types &= ~chrome_browsing_data_remover::DATA_TYPE_PASSWORDS; +- } +- remover_->RemoveAndReply(base::Time(), base::Time::Max(), removed_types, - chrome_browsing_data_remover::ALL_ORIGIN_TYPES, - this); - } else { @@ -153,16 +165,16 @@ diff --git a/chrome/browser/android/signin/signin_manager_android.cc b/chrome/br - std::move(google_tld_filter), this); - } + remover_->RemoveAndReply(base::Time(), base::Time::Max(), -+ chrome_browsing_data_remover::ALL_DATA_TYPES, -+ chrome_browsing_data_remover::ALL_ORIGIN_TYPES, -+ this); ++ chrome_browsing_data_remover::ALL_DATA_TYPES, ++ chrome_browsing_data_remover::ALL_ORIGIN_TYPES, ++ this); } ProfileDataRemover(const ProfileDataRemover&) = delete; 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,7 +1138,6 @@ BrowserProcessImpl::component_updater() { +@@ -1159,7 +1159,6 @@ BrowserProcessImpl::component_updater() { std::make_unique(); std::string brand; @@ -173,7 +185,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro 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 -@@ -526,11 +526,6 @@ void ProcessSingletonNotificationCallbackImpl( +@@ -527,11 +527,6 @@ void ProcessSingletonNotificationCallbackImpl( StartupBrowserCreator::ProcessCommandLineAlreadyRunning( command_line, current_directory, startup_profile_path_info); @@ -185,7 +197,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows } #endif // BUILDFLAG(ENABLE_PROCESS_SINGLETON) -@@ -1776,11 +1771,6 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { +@@ -1781,11 +1776,6 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { upgrade_util::SaveLastModifiedTimeOfExe(); #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) @@ -200,7 +212,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -2747,7 +2747,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -2744,7 +2744,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( switches::kForcePNaClSubzero, #endif switches::kForceUIDirection, @@ -208,7 +220,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch switches::kJavaScriptHarmony, switches::kEnableExperimentalWebAssemblyFeatures, embedder_support::kOriginTrialDisabledFeatures, -@@ -4982,12 +4981,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -5010,12 +5009,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( } #endif @@ -221,7 +233,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch if (auto* throttle_manager = subresource_filter::ContentSubresourceFilterThrottleManager:: FromNavigationHandle(*handle)) { -@@ -5502,7 +5495,8 @@ GetClientDataHeader(int frame_tree_node_id) { +@@ -5558,7 +5551,8 @@ GetClientDataHeader(int frame_tree_node_id) { } #endif @@ -231,7 +243,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if BUILDFLAG(IS_ANDROID) const std::string& client_data_header, #endif -@@ -5541,7 +5535,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( +@@ -5597,7 +5591,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( std::move(bound_session_request_throttled_handler), #endif std::move(dynamic_params)); @@ -240,7 +252,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch std::vector> ChromeContentBrowserClient::CreateURLLoaderThrottles( -@@ -5589,15 +5583,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( +@@ -5645,15 +5639,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( GetClientDataHeader(frame_tree_node_id); #endif @@ -256,7 +268,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch { auto* factory = ProtocolHandlerRegistryFactory::GetForBrowserContext(browser_context); -@@ -5652,20 +5637,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( +@@ -5708,20 +5693,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( } #endif @@ -443,7 +455,7 @@ diff --git a/chrome/browser/long_screenshots/long_screenshots_tab_service.cc b/c diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc --- a/chrome/browser/metrics/chrome_metrics_service_client.cc +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc -@@ -636,7 +636,7 @@ ChromeMetricsServiceClient::GetNetworkTimeTracker() { +@@ -646,7 +646,7 @@ ChromeMetricsServiceClient::GetNetworkTimeTracker() { } bool ChromeMetricsServiceClient::GetBrand(std::string* brand_code) { @@ -455,7 +467,7 @@ diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/br diff --git a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc --- a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc +++ b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc -@@ -101,9 +101,6 @@ void PostStoreMetricsClientInfo(const metrics::ClientInfo& client_info) { +@@ -103,9 +103,6 @@ void PostStoreMetricsClientInfo(const metrics::ClientInfo& client_info) { // This must happen on the same sequence as the tasks to enable/disable // metrics reporting. Otherwise, this may run while disabling metrics // reporting if the user quickly enables and disables metrics reporting. @@ -465,7 +477,7 @@ diff --git a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc b/ } #if BUILDFLAG(IS_ANDROID) -@@ -328,7 +325,7 @@ ChromeMetricsServicesManagerClient::GetMetricsStateManager() { +@@ -343,7 +340,7 @@ ChromeMetricsServicesManagerClient::GetMetricsStateManager() { cc::switches::kEnableGpuBenchmarking), }, base::BindRepeating(&PostStoreMetricsClientInfo), @@ -573,7 +585,7 @@ diff --git a/chrome/browser/metrics/metrics_reporting_state.cc b/chrome/browser/ 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 -@@ -841,7 +841,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( +@@ -857,7 +857,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( void SystemNetworkContextManager::ConfigureDefaultNetworkContextParams( network::mojom::NetworkContextParams* network_context_params) { variations::UpdateCorsExemptHeaderForVariations(network_context_params); @@ -654,7 +666,7 @@ diff --git a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metri diff --git a/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc b/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc --- a/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc +++ b/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc -@@ -143,8 +143,6 @@ void PageLoadMetricsEmbedder::RegisterEmbedderObservers( +@@ -144,8 +144,6 @@ void PageLoadMetricsEmbedder::RegisterEmbedderObservers( tracker->AddObserver(std::make_unique()); tracker->AddObserver(std::make_unique()); tracker->AddObserver(std::make_unique()); @@ -691,7 +703,7 @@ diff --git a/chrome/browser/search_engines/ui_thread_search_terms_data.cc b/chro 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 -@@ -436,7 +436,6 @@ static_library("ui") { +@@ -427,7 +427,6 @@ static_library("ui") { "//chrome/browser/companion/core", "//chrome/browser/devtools", "//chrome/browser/favicon", @@ -702,7 +714,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc --- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc +++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc -@@ -630,11 +630,6 @@ content::WebUIDataSource* CreateAndAddNewTabPageUiHtmlSource(Profile* profile) { +@@ -643,11 +643,6 @@ content::WebUIDataSource* CreateAndAddNewTabPageUiHtmlSource(Profile* profile) { // chrome-untrusted://new-tab-page for other external content and resources. // NOTE: Use caution when overriding content security policies as that cean // lead to subtle security bugs such as https://crbug.com/1251541. @@ -717,7 +729,7 @@ diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chrome/br diff --git a/chrome/browser/ui/webui/settings/reset_settings_handler.cc b/chrome/browser/ui/webui/settings/reset_settings_handler.cc --- a/chrome/browser/ui/webui/settings/reset_settings_handler.cc +++ b/chrome/browser/ui/webui/settings/reset_settings_handler.cc -@@ -81,7 +81,6 @@ bool ResetSettingsHandler::ShouldShowResetProfileBanner(Profile* profile) { +@@ -96,7 +96,6 @@ bool ResetSettingsHandler::ShouldShowResetProfileBanner(Profile* profile) { ResetSettingsHandler::ResetSettingsHandler(Profile* profile) : profile_(profile) { @@ -728,7 +740,7 @@ diff --git a/chrome/browser/ui/webui/settings/reset_settings_handler.cc b/chrome diff --git a/chrome/browser/upgrade_detector/upgrade_detector_impl.cc b/chrome/browser/upgrade_detector/upgrade_detector_impl.cc --- a/chrome/browser/upgrade_detector/upgrade_detector_impl.cc +++ b/chrome/browser/upgrade_detector/upgrade_detector_impl.cc -@@ -215,7 +215,7 @@ void UpgradeDetectorImpl::StartOutdatedBuildDetector() { +@@ -213,7 +213,7 @@ void UpgradeDetectorImpl::StartOutdatedBuildDetector() { // an outdated build is being simulated by command line switches. if (!simulating_outdated_) { std::string brand; @@ -784,14 +796,14 @@ diff --git a/chrome/renderer/url_loader_throttle_provider_impl.cc b/chrome/rende diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -6768,7 +6768,6 @@ if (!is_fuchsia) { - "//chrome/browser/favicon", - "//chrome/browser/feature_guide/notifications:unit_tests", - "//chrome/browser/first_party_sets", -- "//chrome/browser/google:unit_tests", - "//chrome/browser/media/prefs", - "//chrome/browser/media/prefs:unit_tests", - "//chrome/browser/media/router", +@@ -6674,7 +6674,6 @@ test("unit_tests") { + "//chrome/browser/favicon", + "//chrome/browser/feature_guide/notifications:unit_tests", + "//chrome/browser/first_party_sets", +- "//chrome/browser/google:unit_tests", + "//chrome/browser/media/prefs", + "//chrome/browser/media/prefs:unit_tests", + "//chrome/browser/media/router", diff --git a/components/domain_reliability/BUILD.gn b/components/domain_reliability/BUILD.gn --- a/components/domain_reliability/BUILD.gn +++ b/components/domain_reliability/BUILD.gn @@ -882,7 +894,7 @@ diff --git a/components/domain_reliability/google_configs.cc b/components/domain // Origins with subdomains and same-origin collectors. Currently, all // origins with same-origin collectors also run collectors on their www // subdomain. (e.g., both foo.com and www.foo.com.) -@@ -550,11 +550,11 @@ std::unique_ptr CreateGoogleConfig( +@@ -549,11 +549,11 @@ std::unique_ptr CreateGoogleConfig( config->failure_sample_rate = 1.00; config->path_prefixes.clear(); return config; @@ -896,7 +908,7 @@ diff --git a/components/domain_reliability/google_configs.cc b/components/domain const std::string& hostname) { bool is_www_subdomain = base::StartsWith(hostname, "www.", base::CompareCase::SENSITIVE); -@@ -604,6 +604,6 @@ GetAllGoogleConfigsForTesting() { +@@ -603,6 +603,6 @@ GetAllGoogleConfigsForTesting() { configs_out.push_back(CreateGoogleConfig(params, true)); } return configs_out; @@ -1066,7 +1078,7 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co - -bool HasGoogleSearchQueryParam(base::StringPiece str) { - url::Component query(0, static_cast(str.length())), key, value; -- while (url::ExtractQueryKeyValue(str.data(), &query, &key, &value)) { +- while (url::ExtractQueryKeyValue(str, &query, &key, &value)) { - base::StringPiece key_str = str.substr(key.begin, key.len); - if (key_str == "q" || key_str == "as_q" || key_str == "imgurl") - return true; @@ -1110,7 +1122,7 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co } GURL GetGoogleSearchURL(const GURL& google_homepage_url) { -@@ -227,206 +111,25 @@ bool IsGoogleDomainUrl(const GURL& url, +@@ -227,205 +111,25 @@ bool IsGoogleDomainUrl(const GURL& url, bool IsGoogleHostname(base::StringPiece host, SubdomainPermission subdomain_permission) { @@ -1244,8 +1256,7 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co - url::Component cursor(0, input.size()); - std::string output; - url::Component key_range, value_range; -- while (url::ExtractQueryKeyValue(input.data(), &cursor, &key_range, -- &value_range)) { +- while (url::ExtractQueryKeyValue(input, &cursor, &key_range, &value_range)) { - const base::StringPiece input_key = - input.substr(key_range.begin, key_range.len); - std::string key_value_pair( @@ -1282,7 +1293,7 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co - url::Component query(0, static_cast(url.query_piece().length())); - url::Component key, value; - GoogleSearchMode mode = GoogleSearchMode::kUnspecified; -- while (url::ExtractQueryKeyValue(query_str.data(), &query, &key, &value)) { +- while (url::ExtractQueryKeyValue(query_str, &query, &key, &value)) { - base::StringPiece key_str = query_str.substr(key.begin, key.len); - if (key_str != "tbm") { - continue; @@ -1367,7 +1378,7 @@ diff --git a/components/page_load_metrics/browser/page_load_metrics_util.cc b/co } bool IsGoogleSearchHostname(const GURL& url) { -- absl::optional result = +- std::optional result = - page_load_metrics::GetGoogleHostnamePrefix(url); - return result && result.value() == "www"; + return false; @@ -1380,7 +1391,7 @@ diff --git a/components/page_load_metrics/common/page_load_metrics_util.cc b/com @@ -24,38 +24,7 @@ const int kExtraBufferTimerDelayMillis = 50; } // namespace - absl::optional GetGoogleHostnamePrefix(const GURL& url) { + std::optional GetGoogleHostnamePrefix(const GURL& url) { - const size_t registry_length = - net::registry_controlled_domains::GetRegistryLength( - url, @@ -1396,7 +1407,7 @@ diff --git a/components/page_load_metrics/common/page_load_metrics_util.cc b/com - const base::StringPiece hostname = url.host_piece(); - if (registry_length == 0 || registry_length == std::string::npos || - registry_length >= hostname.length()) { -- return absl::optional(); +- return std::optional(); - } - - // Removes the tld and the preceding dot. @@ -1408,12 +1419,12 @@ diff --git a/components/page_load_metrics/common/page_load_metrics_util.cc b/com - - if (!base::EndsWith(hostname_minus_registry, ".google", - base::CompareCase::INSENSITIVE_ASCII)) { -- return absl::optional(); +- return std::optional(); - } - - return std::string(hostname_minus_registry.substr( - 0, hostname_minus_registry.length() - strlen(".google"))); -+ return std::string(""); ++ return std::optional(); } bool IsGoogleHostname(const GURL& url) { @@ -1642,7 +1653,7 @@ new file mode 100644 diff --git a/net/base/url_util.cc b/net/base/url_util.cc --- a/net/base/url_util.cc +++ b/net/base/url_util.cc -@@ -491,34 +491,11 @@ bool HasGoogleHost(const GURL& url) { +@@ -489,34 +489,11 @@ bool HasGoogleHost(const GURL& url) { } bool IsGoogleHost(std::string_view host) { @@ -1681,7 +1692,7 @@ diff --git a/net/base/url_util.cc b/net/base/url_util.cc 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 -@@ -2691,7 +2691,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -2707,7 +2707,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( } #endif // BUILDFLAG(IS_CT_SUPPORTED) diff --git a/build/patches/webRTC-do-not-expose-local-IP-addresses.patch b/build/patches/webRTC-do-not-expose-local-IP-addresses.patch index 9833b2cdb..26a7bc6f5 100644 --- a/build/patches/webRTC-do-not-expose-local-IP-addresses.patch +++ b/build/patches/webRTC-do-not-expose-local-IP-addresses.patch @@ -17,7 +17,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 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 -@@ -94,7 +94,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -97,7 +97,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { false); #endif registry->RegisterStringPref(prefs::kWebRTCIPHandlingPolicy, @@ -29,7 +29,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc --- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc +++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc -@@ -113,7 +113,9 @@ WebRTCIPHandlingPolicy GetWebRTCIPHandlingPolicy(const String& preference) { +@@ -121,7 +121,9 @@ WebRTCIPHandlingPolicy GetWebRTCIPHandlingPolicy(const String& preference) { return kDefaultPublicInterfaceOnly; if (preference == kWebRTCIPHandlingDisableNonProxiedUdp) return kDisableNonProxiedUdp; @@ -40,7 +40,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d } bool IsValidPortRange(uint16_t min_port, uint16_t max_port) { -@@ -825,7 +827,7 @@ PeerConnectionDependencyFactory::CreatePortAllocator( +@@ -865,7 +867,7 @@ PeerConnectionDependencyFactory::CreatePortAllocator( break; } diff --git a/build/patches/webview-Hard-no-to-persistent-histograms.patch b/build/patches/webview-Hard-no-to-persistent-histograms.patch index 0524573e3..af33b22eb 100644 --- a/build/patches/webview-Hard-no-to-persistent-histograms.patch +++ b/build/patches/webview-Hard-no-to-persistent-histograms.patch @@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/android_webview/browser/aw_field_trials.cc b/android_webview/browser/aw_field_trials.cc --- a/android_webview/browser/aw_field_trials.cc +++ b/android_webview/browser/aw_field_trials.cc -@@ -58,13 +58,6 @@ class AwFeatureOverrides { +@@ -60,13 +60,6 @@ class AwFeatureOverrides { } // namespace void AwFieldTrials::OnVariationsSetupComplete() { diff --git a/docs/PATCHES.md b/docs/PATCHES.md index f18d98e1e..3fba5da32 100644 --- a/docs/PATCHES.md +++ b/docs/PATCHES.md @@ -1,8 +1,6 @@ | Patch | Message | |--------|--------| |**AImageReader CFI crash mitigations**
Tue, 5 May 2020 07:22:20 +0200
File: [AImageReader-CFI-crash-mitigations.patch](/build/patches/AImageReader-CFI-crash-mitigations.patch)
Author: csagan5
Context:
License: GPL-3.0-only |Revert "gpu/android: Remove setup for disabling AImageReader."
This reverts commit dcd5a39518246eb999f1cc63bf1ec95d93fd5b2f.
Revert "Remove flags to enable/disable AImageReader."
This reverts commit 463fa0f2e3b9e418bc26e2c8954463f0b0f76634.
Restore GPU bug blacklist for AImageReader on ARM and Qualcomm CPUs
Restore the AImageReader blacklist for ARM/Qualcomm chipsets which causes
crashes on Android 9 and 10 (at different code locations).
See discussions at:
* https://github.com/bromite/bromite/issues/445
* https://github.com/bromite/bromite/issues/814
* https://github.com/bromite/bromite/issues/1005| -|**AdblockPlus add blocking in service workers**
Thu, 7 Sep 2023 07:25:25 +0000
File: [AdblockPlus-add-blocking-in-service-workers.patch](/build/patches/AdblockPlus-add-blocking-in-service-workers.patch)
Author: uazo
Context:
License: GPL-2.0-or-later || -|**AdblockPlus connect popup blocker**
Tue, 9 Jan 2024 13:37:05 +0000
File: [AdblockPlus-connect-popup-blocker.patch](/build/patches/AdblockPlus-connect-popup-blocker.patch)
Author: uazo
Context:
License: |activates the pop-up blocking management present in adblockplus
but not active in upstream.
added "enable-stricter-popup-blocker" flag for the global
deactivation of all pop-ups (default disabled)| |**Add AllowUserCertificates flag**
Mon, 26 Apr 2021 13:28:24 +0000
File: [Add-AllowUserCertificates-flag.patch](/build/patches/Add-AllowUserCertificates-flag.patch)
Author: uazo
Context:
License: GPL-3.0-only || |**Add Alt+D hotkey to focus address bar**
Tue, 9 Mar 2021 19:43:00 +0100
File: [Add-Alt-D-hotkey-to-focus-address-bar.patch](/build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch)
Author: csagan5
Context:
License: GPL-3.0-only || |**Add IsCleartextPermitted flag**
Mon, 26 Apr 2021 15:04:11 +0000
File: [Add-IsCleartextPermitted-flag.patch](/build/patches/Add-IsCleartextPermitted-flag.patch)
Author: uazo
Context:
License: GPL-3.0-only || @@ -154,7 +152,7 @@ |**Enables deactivation of the js debugger statement**
Wed, 10 Jan 2024 13:42:27 +0000
File: [Enables-deactivation-of-the-js-debugger-statement.patch](/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch)
Author: uazo
Context:
License: GPL-2.0-or-later |enables a new option in the developer tools settings for
deactivating the debugger javascript statement| |**Evict the entire FrameTree like desktop**
Tue, 14 Feb 2023 16:23:08 +0000
File: [Evict-the-entire-FrameTree-like-desktop.patch](/build/patches/Evict-the-entire-FrameTree-like-desktop.patch)
Author: uazo
Context:
License: GPL-2.0-or-later || |**Experimental user scripts support**
Fri, 13 Aug 2021 17:10:47 +0000
File: [Experimental-user-scripts-support.patch](/build/patches/Experimental-user-scripts-support.patch)
Author: uazo
Context:
License: GPL-3.0-only |Activate the user scripts functionality for Android,
as it is available in the Desktop version.
It is possible to add user scripts in two ways: by
selecting files from the picker in the settings or
downloading the scripts and opening them from downloads
(only if such files end with '.user.js').
New imported scripts are disabled by default: they
can be activated via the UI.
Parsed user script headers are: name, version, description,
include, exclude, match, exclude_match (only http and
https), run-at (document-start, document-end,
document-idle), homepage, url_source
The UI also allows you to see the source of the script.
See also: components/user_scripts/README.md
Requires patch: Adds-support-for-writing-URIs.patch| -|**Eyeo Adblock for Bromite**
Thu, 29 Sep 2022 11:27:35 +0000
File: [Eyeo-Adblock-Remove-Privacy-Issues.patch](/build/patches/Eyeo-Adblock-Remove-Privacy-Issues.patch)
Author: uazo
Context:
License: |Change the normal behaviour of Eyeo Chromium SDK to
suit Bromite logic| +|**Eyeo Adblock for Bromite**
Thu, 29 Sep 2022 11:27:35 +0000
File: [Eyeo-Adblock-Remove-Privacy-Issues.patch](/build/patches/Eyeo-Adblock-Remove-Privacy-Issues.patch)
Author: uazo
Context:
License: |Change the normal behaviour of Eyeo Chromium SDK to
suit Bromite logic.
Add blocking in service workers
Activates the pop-up blocking management present in adblockplus
but not active in upstream.
Added "enable-stricter-popup-blocker" flag for the global
deactivation of all pop-ups (default disabled)| |**Fix chromium build bugs**
Wed, 6 Sep 2023 17:55:01 +0000
File: [Fix-chromium-build-bugs.patch](/build/patches/Fix-chromium-build-bugs.patch)
Author: Your
Context:
License: |because of
https://bugs.chromium.org/p/chromium/issues/detail?id=1491776#c10| |**Fix crash on customize profile ui**
Thu, 7 Sep 2023 06:15:28 +0000
File: [Fix-crash-on-customize-profile-ui.patch](/build/patches/Fix-crash-on-customize-profile-ui.patch)
Author: uazo
Context:
License: GPL-2.0-or-later || |**Follow only system dark mode**
Mon, 4 Jul 2022 16:14:37 +0300
File: [Follow-only-system-dark-mode.patch](/build/patches/Follow-only-system-dark-mode.patch)
Author: krlvm
Context:
License: GPL-3.0-only |Follow only system dark mode preference when theme is set to system default|