diff --git a/BUILD.gn b/BUILD.gn index 8459ad944..a2978189f 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -535,6 +535,7 @@ static_library("libcef_static") { "libcef/browser/file_dialog_manager.h", "libcef/browser/frame_host_impl.cc", "libcef/browser/frame_host_impl.h", + "libcef/browser/frame_service_base.h", "libcef/browser/image_impl.cc", "libcef/browser/image_impl.h", "libcef/browser/iothread_state.cc", @@ -1185,6 +1186,21 @@ static_library("libcef_static") { # Part of //ui/events:test_support which is testingonly. "//ui/events/test/x11_event_waiter.cc", "//ui/events/test/x11_event_waiter.h", + # Part of //ui/ozone::ui_test_support which is testingonly. + "//ui/ozone/common/test/stub_ozone_ui_controls_test_helper.cc", + "//ui/ozone/common/test/stub_ozone_ui_controls_test_helper.h", + "//ui/ozone/public/ozone_ui_controls_test_helper.cc", + "//ui/ozone/public/ozone_ui_controls_test_helper.h", + "$root_gen_dir/ui/ozone/test_constructor_list.cc", + # Part of //ui/views:test_support which is testingonly. + "//ui/views/test/test_desktop_screen_ozone.cc", + "//ui/views/test/test_desktop_screen_ozone.h", + "//ui/views/test/ui_controls_factory_desktop_aura_ozone.cc", + "//ui/views/test/ui_controls_factory_desktop_aura_ozone.h", + ] + + deps += [ + "//ui/ozone:generate_test_support_constructor_list", ] if (use_x11) { @@ -1195,9 +1211,9 @@ static_library("libcef_static") { "//ui/base/x/test/x11_ui_controls_test_helper.h", # Part of //ui/aura:test_support which is testingonly. "//ui/aura/test/x11_event_sender.h", - # Part of //ui/views:test_support which is testingonly. - "//ui/views/test/ui_controls_factory_desktop_aurax11.cc", - "//ui/views/test/ui_controls_factory_desktop_aurax11.h", + # Part of //ui/ozone/platform/x11:test_support which is testingonly. + "//ui/ozone/platform/x11/x11_ozone_ui_controls_test_helper.cc", + "//ui/ozone/platform/x11/x11_ozone_ui_controls_test_helper.h", ] } else { sources += [ diff --git a/CHROMIUM_BUILD_COMPATIBILITY.txt b/CHROMIUM_BUILD_COMPATIBILITY.txt index 47e97573b..3595dda79 100644 --- a/CHROMIUM_BUILD_COMPATIBILITY.txt +++ b/CHROMIUM_BUILD_COMPATIBILITY.txt @@ -7,5 +7,5 @@ # https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding { - 'chromium_checkout': 'refs/tags/95.0.4638.0' + 'chromium_checkout': 'refs/tags/96.0.4664.0' } diff --git a/libcef/browser/alloy/alloy_browser_context.cc b/libcef/browser/alloy/alloy_browser_context.cc index 6a42933b5..c31e14875 100644 --- a/libcef/browser/alloy/alloy_browser_context.cc +++ b/libcef/browser/alloy/alloy_browser_context.cc @@ -348,7 +348,8 @@ AlloyBrowserContext::GetDownloadManagerDelegate() { } content::BrowserPluginGuestManager* AlloyBrowserContext::GetGuestManager() { - DCHECK(extensions::ExtensionsEnabled()); + if (!extensions::ExtensionsEnabled()) + return nullptr; return guest_view::GuestViewManager::FromBrowserContext(this); } diff --git a/libcef/browser/alloy/alloy_browser_context.h b/libcef/browser/alloy/alloy_browser_context.h index 45f64f03c..fb6c38d5f 100644 --- a/libcef/browser/alloy/alloy_browser_context.h +++ b/libcef/browser/alloy/alloy_browser_context.h @@ -96,7 +96,7 @@ class AlloyBrowserContext : public ChromeProfileAlloy, // Values checked in ProfileNetworkContextService::CreateNetworkContextParams // when creating the NetworkContext. - bool ShouldRestoreOldSessionCookies() const override { + bool ShouldRestoreOldSessionCookies() override { return ShouldPersistSessionCookies(); } bool ShouldPersistSessionCookies() const override { diff --git a/libcef/browser/alloy/alloy_browser_host_impl.cc b/libcef/browser/alloy/alloy_browser_host_impl.cc index 9f3762066..5c8861d70 100644 --- a/libcef/browser/alloy/alloy_browser_host_impl.cc +++ b/libcef/browser/alloy/alloy_browser_host_impl.cc @@ -51,7 +51,7 @@ #include "extensions/common/constants.h" #include "extensions/common/extension.h" #include "net/base/net_errors.h" -#include "third_party/blink/public/mojom/page/widget.mojom-test-utils.h" +#include "third_party/blink/public/mojom/widget/platform_widget.mojom-test-utils.h" #include "ui/events/base_event_utils.h" using content::KeyboardEventProcessingResult; @@ -126,8 +126,7 @@ class CefWidgetHostInterceptor DISALLOW_COPY_AND_ASSIGN(CefWidgetHostInterceptor); }; -static constexpr base::TimeDelta kRecentlyAudibleTimeout = - base::TimeDelta::FromSeconds(2); +static constexpr base::TimeDelta kRecentlyAudibleTimeout = base::Seconds(2); } // namespace diff --git a/libcef/browser/alloy/alloy_content_browser_client.cc b/libcef/browser/alloy/alloy_content_browser_client.cc index 1f49f2a66..faa1e2e99 100644 --- a/libcef/browser/alloy/alloy_content_browser_client.cc +++ b/libcef/browser/alloy/alloy_content_browser_client.cc @@ -1206,7 +1206,7 @@ void AlloyContentBrowserClient::OnNetworkServiceCreated( network_service); } -void AlloyContentBrowserClient::ConfigureNetworkContextParams( +bool AlloyContentBrowserClient::ConfigureNetworkContextParams( content::BrowserContext* context, bool in_memory, const base::FilePath& relative_partition_path, @@ -1216,10 +1216,9 @@ void AlloyContentBrowserClient::ConfigureNetworkContextParams( // This method may be called during shutdown when using multi-threaded // message loop mode. In that case exit early to avoid crashes. if (!SystemNetworkContextManager::GetInstance()) { - // This must match the value expected in + // Cancel NetworkContext creation in // StoragePartitionImpl::InitNetworkContext. - network_context_params->context_name = "magic_shutting_down"; - return; + return false; } auto cef_context = CefBrowserContext::FromBrowserContext(context); @@ -1243,6 +1242,8 @@ void AlloyContentBrowserClient::ConfigureNetworkContextParams( // TODO(cef): Remove this and add required NetworkIsolationKeys, // this is currently not the case and this was not required pre M84. network_context_params->require_network_isolation_key = false; + + return true; } // The sandbox may block read/write access from the NetworkService to @@ -1271,6 +1272,7 @@ bool AlloyContentBrowserClient::HandleExternalProtocol( int frame_tree_node_id, content::NavigationUIData* navigation_data, bool is_main_frame, + network::mojom::WebSandboxFlags sandbox_flags, ui::PageTransition page_transition, bool has_user_gesture, const absl::optional& initiating_origin, @@ -1283,6 +1285,7 @@ bool AlloyContentBrowserClient::HandleExternalProtocol( content::WebContents::Getter web_contents_getter, int frame_tree_node_id, content::NavigationUIData* navigation_data, + network::mojom::WebSandboxFlags sandbox_flags, const network::ResourceRequest& resource_request, mojo::PendingRemote* out_factory) { mojo::PendingReceiver receiver = diff --git a/libcef/browser/alloy/alloy_content_browser_client.h b/libcef/browser/alloy/alloy_content_browser_client.h index c2a5a63d2..232986844 100644 --- a/libcef/browser/alloy/alloy_content_browser_client.h +++ b/libcef/browser/alloy/alloy_content_browser_client.h @@ -172,7 +172,7 @@ class AlloyContentBrowserClient : public content::ContentBrowserClient { network::mojom::URLLoaderFactoryOverridePtr* factory_override) override; void OnNetworkServiceCreated( network::mojom::NetworkService* network_service) override; - void ConfigureNetworkContextParams( + bool ConfigureNetworkContextParams( content::BrowserContext* context, bool in_memory, const base::FilePath& relative_partition_path, @@ -187,6 +187,7 @@ class AlloyContentBrowserClient : public content::ContentBrowserClient { int frame_tree_node_id, content::NavigationUIData* navigation_data, bool is_main_frame, + network::mojom::WebSandboxFlags sandbox_flags, ui::PageTransition page_transition, bool has_user_gesture, const absl::optional& initiating_origin, @@ -196,6 +197,7 @@ class AlloyContentBrowserClient : public content::ContentBrowserClient { content::WebContents::Getter web_contents_getter, int frame_tree_node_id, content::NavigationUIData* navigation_data, + network::mojom::WebSandboxFlags sandbox_flags, const network::ResourceRequest& request, mojo::PendingRemote* out_factory) override; diff --git a/libcef/browser/alloy/chrome_profile_alloy.cc b/libcef/browser/alloy/chrome_profile_alloy.cc index d9755a4b4..42af118cd 100644 --- a/libcef/browser/alloy/chrome_profile_alloy.cc +++ b/libcef/browser/alloy/chrome_profile_alloy.cc @@ -153,15 +153,6 @@ bool ChromeProfileAlloy::WasCreatedByVersionOrLater( return false; } -void ChromeProfileAlloy::SetExitType(ExitType exit_type) { - NOTREACHED(); -} - -Profile::ExitType ChromeProfileAlloy::GetLastSessionExitType() const { - NOTREACHED(); - return EXIT_NORMAL; -} - base::Time ChromeProfileAlloy::GetCreationTime() const { NOTREACHED(); return base::Time(); diff --git a/libcef/browser/alloy/chrome_profile_alloy.h b/libcef/browser/alloy/chrome_profile_alloy.h index 39d4925cd..400571a38 100644 --- a/libcef/browser/alloy/chrome_profile_alloy.h +++ b/libcef/browser/alloy/chrome_profile_alloy.h @@ -44,8 +44,6 @@ class ChromeProfileAlloy : public Profile { void set_last_selected_directory(const base::FilePath& path) override; GURL GetHomePage() override; bool WasCreatedByVersionOrLater(const std::string& version) override; - void SetExitType(ExitType exit_type) override; - ExitType GetLastSessionExitType() const override; base::Time GetCreationTime() const override; void SetCreationTimeForTesting(base::Time creation_time) override; void RecordPrimaryMainFrameNavigation() override; diff --git a/libcef/browser/browser_frame.cc b/libcef/browser/browser_frame.cc index d722440c6..6aec8e23b 100644 --- a/libcef/browser/browser_frame.cc +++ b/libcef/browser/browser_frame.cc @@ -16,7 +16,7 @@ CefBrowserFrame::CefBrowserFrame( content::RenderFrameHost* render_frame_host, mojo::PendingReceiver receiver) - : DocumentServiceBase(render_frame_host, std::move(receiver)) {} + : FrameServiceBase(render_frame_host, std::move(receiver)) {} CefBrowserFrame::~CefBrowserFrame() = default; diff --git a/libcef/browser/browser_frame.h b/libcef/browser/browser_frame.h index e98277d4d..d39e1ecc2 100644 --- a/libcef/browser/browser_frame.h +++ b/libcef/browser/browser_frame.h @@ -7,18 +7,18 @@ #pragma once #include "libcef/browser/frame_host_impl.h" +#include "libcef/browser/frame_service_base.h" #include "cef/libcef/common/mojom/cef.mojom.h" -#include "content/public/browser/document_service_base.h" #include "mojo/public/cpp/bindings/binder_map.h" // Implementation of the BrowserFrame mojo interface. // This is implemented separately from CefFrameHostImpl to better manage the // association with the RenderFrameHost (which may be speculative, etc.), and so // that messages are always routed to the most appropriate CefFrameHostImpl -// instance. Lifespan is tied to the RFH via DocumentServiceBase. +// instance. Lifespan is tied to the RFH via FrameServiceBase. class CefBrowserFrame - : public content::DocumentServiceBase { + : public content::FrameServiceBase { public: CefBrowserFrame(content::RenderFrameHost* render_frame_host, mojo::PendingReceiver receiver); @@ -39,7 +39,7 @@ class CefBrowserFrame absl::optional> regions) override; - // DocumentServiceBase methods: + // FrameServiceBase methods: bool ShouldCloseOnFinishNavigation() const override { return false; } CefRefPtr GetFrameHost( diff --git a/libcef/browser/browser_host_base.cc b/libcef/browser/browser_host_base.cc index a2c3c6441..20b9cd082 100644 --- a/libcef/browser/browser_host_base.cc +++ b/libcef/browser/browser_host_base.cc @@ -247,7 +247,7 @@ void CefBrowserHostBase::DownloadImage( return; web_contents->DownloadImage( - gurl, is_favicon, max_image_size, + gurl, is_favicon, gfx::Size(max_image_size, max_image_size), max_image_size * gfx::ImageSkia::GetMaxSupportedScale(), bypass_cache, base::BindOnce( [](uint32 max_image_size, diff --git a/libcef/browser/browser_platform_delegate.h b/libcef/browser/browser_platform_delegate.h index be1236f25..2c87042ab 100644 --- a/libcef/browser/browser_platform_delegate.h +++ b/libcef/browser/browser_platform_delegate.h @@ -17,7 +17,7 @@ #include "base/callback_forward.h" #include "extensions/common/mojom/view_type.mojom-forward.h" #include "third_party/blink/public/common/page/drag_operation.h" -#include "third_party/blink/public/mojom/page/drag.mojom-forward.h" +#include "third_party/blink/public/mojom/drag/drag.mojom-forward.h" #include "third_party/skia/include/core/SkColor.h" #include "ui/base/dragdrop/mojom/drag_drop_types.mojom-forward.h" #include "ui/base/window_open_disposition.h" diff --git a/libcef/browser/chrome/chrome_content_browser_client_cef.cc b/libcef/browser/chrome/chrome_content_browser_client_cef.cc index 1caaaa8f2..6d93f3d27 100644 --- a/libcef/browser/chrome/chrome_content_browser_client_cef.cc +++ b/libcef/browser/chrome/chrome_content_browser_client_cef.cc @@ -26,6 +26,7 @@ #include "base/command_line.h" #include "base/path_service.h" #include "chrome/browser/chrome_browser_main.h" +#include "chrome/browser/net/system_network_context_manager.h" #include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_switches.h" #include "content/public/browser/navigation_throttle.h" @@ -44,6 +45,7 @@ void HandleExternalProtocolHelper( content::WebContents::Getter web_contents_getter, int frame_tree_node_id, content::NavigationUIData* navigation_data, + network::mojom::WebSandboxFlags sandbox_flags, const network::ResourceRequest& resource_request) { // Match the logic of the original call in // NavigationURLLoaderImpl::PrepareForNonInterceptedRequest. @@ -53,6 +55,7 @@ void HandleExternalProtocolHelper( navigation_data, resource_request.resource_type == static_cast(blink::mojom::ResourceType::kMainFrame), + sandbox_flags, static_cast(resource_request.transition_type), resource_request.has_user_gesture, resource_request.request_initiator, nullptr); @@ -238,6 +241,7 @@ bool ChromeContentBrowserClientCef::HandleExternalProtocol( int frame_tree_node_id, content::NavigationUIData* navigation_data, bool is_main_frame, + network::mojom::WebSandboxFlags sandbox_flags, ui::PageTransition page_transition, bool has_user_gesture, const absl::optional& initiating_origin, @@ -254,14 +258,15 @@ bool ChromeContentBrowserClientCef::HandleExternalProtocol( // handling. return ChromeContentBrowserClient::HandleExternalProtocol( url, web_contents_getter, child_id, frame_tree_node_id, navigation_data, - is_main_frame, page_transition, has_user_gesture, initiating_origin, - nullptr); + is_main_frame, sandbox_flags, page_transition, has_user_gesture, + initiating_origin, nullptr); } bool ChromeContentBrowserClientCef::HandleExternalProtocol( content::WebContents::Getter web_contents_getter, int frame_tree_node_id, content::NavigationUIData* navigation_data, + network::mojom::WebSandboxFlags sandbox_flags, const network::ResourceRequest& resource_request, mojo::PendingRemote* out_factory) { mojo::PendingReceiver receiver = @@ -272,7 +277,7 @@ bool ChromeContentBrowserClientCef::HandleExternalProtocol( web_contents_getter, frame_tree_node_id, resource_request, base::BindRepeating(HandleExternalProtocolHelper, base::Unretained(this), web_contents_getter, frame_tree_node_id, - navigation_data, resource_request)); + navigation_data, sandbox_flags, resource_request)); net_service::ProxyURLLoaderFactory::CreateProxy( web_contents_getter, std::move(receiver), std::move(request_handler)); @@ -288,13 +293,21 @@ ChromeContentBrowserClientCef::CreateThrottlesForNavigation( return throttles; } -void ChromeContentBrowserClientCef::ConfigureNetworkContextParams( +bool ChromeContentBrowserClientCef::ConfigureNetworkContextParams( content::BrowserContext* context, bool in_memory, const base::FilePath& relative_partition_path, network::mojom::NetworkContextParams* network_context_params, cert_verifier::mojom::CertVerifierCreationParams* cert_verifier_creation_params) { + // This method may be called during shutdown when using multi-threaded + // message loop mode. In that case exit early to avoid crashes. + if (!SystemNetworkContextManager::GetInstance()) { + // Cancel NetworkContext creation in + // StoragePartitionImpl::InitNetworkContext. + return false; + } + ChromeContentBrowserClient::ConfigureNetworkContextParams( context, in_memory, relative_partition_path, network_context_params, cert_verifier_creation_params); @@ -314,6 +327,8 @@ void ChromeContentBrowserClientCef::ConfigureNetworkContextParams( accept_language_list != network_context_params->accept_language) { network_context_params->accept_language = accept_language_list; } + + return true; } std::unique_ptr diff --git a/libcef/browser/chrome/chrome_content_browser_client_cef.h b/libcef/browser/chrome/chrome_content_browser_client_cef.h index 129016dc0..768b6861e 100644 --- a/libcef/browser/chrome/chrome_content_browser_client_cef.h +++ b/libcef/browser/chrome/chrome_content_browser_client_cef.h @@ -63,6 +63,7 @@ class ChromeContentBrowserClientCef : public ChromeContentBrowserClient { int frame_tree_node_id, content::NavigationUIData* navigation_data, bool is_main_frame, + network::mojom::WebSandboxFlags sandbox_flags, ui::PageTransition page_transition, bool has_user_gesture, const absl::optional& initiating_origin, @@ -72,13 +73,14 @@ class ChromeContentBrowserClientCef : public ChromeContentBrowserClient { content::WebContents::Getter web_contents_getter, int frame_tree_node_id, content::NavigationUIData* navigation_data, + network::mojom::WebSandboxFlags sandbox_flags, const network::ResourceRequest& request, mojo::PendingRemote* out_factory) override; std::vector> CreateThrottlesForNavigation( content::NavigationHandle* navigation_handle) override; - void ConfigureNetworkContextParams( + bool ConfigureNetworkContextParams( content::BrowserContext* context, bool in_memory, const base::FilePath& relative_partition_path, diff --git a/libcef/browser/extensions/api/storage/sync_value_store_cache.cc b/libcef/browser/extensions/api/storage/sync_value_store_cache.cc index ebdb8f591..b73879cd5 100644 --- a/libcef/browser/extensions/api/storage/sync_value_store_cache.cc +++ b/libcef/browser/extensions/api/storage/sync_value_store_cache.cc @@ -10,11 +10,11 @@ #include #include +#include "components/value_store/value_store_factory.h" #include "content/public/browser/browser_thread.h" #include "extensions/browser/api/storage/backend_task_runner.h" #include "extensions/browser/api/storage/value_store_util.h" #include "extensions/browser/api/storage/weak_unlimited_settings_storage.h" -#include "extensions/browser/value_store/value_store_factory.h" #include "extensions/common/api/storage.h" #include "extensions/common/extension.h" #include "extensions/common/permissions/permissions_data.h" diff --git a/libcef/browser/extensions/extension_system.cc b/libcef/browser/extensions/extension_system.cc index a3524475d..8386a2ec3 100644 --- a/libcef/browser/extensions/extension_system.cc +++ b/libcef/browser/extensions/extension_system.cc @@ -41,7 +41,6 @@ #include "extensions/browser/null_app_sorting.h" #include "extensions/browser/quota_service.h" #include "extensions/browser/renderer_startup_helper.h" -#include "extensions/browser/runtime_data.h" #include "extensions/browser/service_worker_manager.h" #include "extensions/browser/state_store.h" #include "extensions/browser/unloaded_extension_reason.h" @@ -387,7 +386,6 @@ void CefExtensionSystem::Shutdown() { void CefExtensionSystem::InitForRegularProfile(bool extensions_enabled) { DCHECK(!initialized_); service_worker_manager_.reset(new ServiceWorkerManager(browser_context_)); - runtime_data_.reset(new RuntimeData(registry_)); quota_service_.reset(new QuotaService); app_sorting_.reset(new NullAppSorting); } @@ -396,10 +394,6 @@ ExtensionService* CefExtensionSystem::extension_service() { return nullptr; } -RuntimeData* CefExtensionSystem::runtime_data() { - return runtime_data_.get(); -} - ManagementPolicy* CefExtensionSystem::management_policy() { return nullptr; } @@ -420,6 +414,10 @@ StateStore* CefExtensionSystem::rules_store() { return rules_store_.get(); } +StateStore* CefExtensionSystem::dynamic_user_scripts_store() { + return nullptr; +} + scoped_refptr CefExtensionSystem::store_factory() { return store_factory_; diff --git a/libcef/browser/extensions/extension_system.h b/libcef/browser/extensions/extension_system.h index e5ae3de4d..8fd20d1c6 100644 --- a/libcef/browser/extensions/extension_system.h +++ b/libcef/browser/extensions/extension_system.h @@ -84,12 +84,12 @@ class CefExtensionSystem : public ExtensionSystem { // ExtensionSystem implementation: void InitForRegularProfile(bool extensions_enabled) override; ExtensionService* extension_service() override; - RuntimeData* runtime_data() override; ManagementPolicy* management_policy() override; ServiceWorkerManager* service_worker_manager() override; UserScriptManager* user_script_manager() override; StateStore* state_store() override; StateStore* rules_store() override; + StateStore* dynamic_user_scripts_store() override; scoped_refptr store_factory() override; InfoMap* info_map() override; QuotaService* quota_service() override; @@ -170,7 +170,6 @@ class CefExtensionSystem : public ExtensionSystem { scoped_refptr info_map_; std::unique_ptr service_worker_manager_; - std::unique_ptr runtime_data_; std::unique_ptr quota_service_; std::unique_ptr app_sorting_; diff --git a/libcef/browser/extensions/extension_view_host.cc b/libcef/browser/extensions/extension_view_host.cc index c7423f9ed..081264739 100644 --- a/libcef/browser/extensions/extension_view_host.cc +++ b/libcef/browser/extensions/extension_view_host.cc @@ -9,9 +9,8 @@ #include "content/public/browser/notification_source.h" #include "content/public/browser/web_contents.h" -#include "extensions/browser/extension_system.h" #include "extensions/browser/notification_types.h" -#include "extensions/browser/runtime_data.h" +#include "extensions/browser/process_util.h" #include "third_party/blink/public/common/input/web_gesture_event.h" using content::NativeWebKeyboardEvent; @@ -44,9 +43,9 @@ void CefExtensionViewHost::OnDidStopFirstLoad() { } void CefExtensionViewHost::LoadInitialURL() { - if (!ExtensionSystem::Get(browser_context()) - ->runtime_data() - ->IsBackgroundPageReady(extension())) { + if (process_util::GetPersistentBackgroundPageState(*extension(), + browser_context()) == + process_util::PersistentBackgroundPageState::kNotReady) { // Make sure the background page loads before any others. registrar_.Add(this, extensions::NOTIFICATION_EXTENSION_BACKGROUND_PAGE_READY, @@ -86,9 +85,9 @@ void CefExtensionViewHost::Observe( const content::NotificationSource& source, const content::NotificationDetails& details) { DCHECK_EQ(type, extensions::NOTIFICATION_EXTENSION_BACKGROUND_PAGE_READY); - DCHECK(ExtensionSystem::Get(browser_context()) - ->runtime_data() - ->IsBackgroundPageReady(extension())); + DCHECK_EQ(process_util::PersistentBackgroundPageState::kReady, + process_util::GetPersistentBackgroundPageState(*extension(), + browser_context())); LoadInitialURL(); } diff --git a/libcef/browser/extensions/extension_web_contents_observer.cc b/libcef/browser/extensions/extension_web_contents_observer.cc index d266e8cc4..11fee6534 100644 --- a/libcef/browser/extensions/extension_web_contents_observer.cc +++ b/libcef/browser/extensions/extension_web_contents_observer.cc @@ -52,6 +52,6 @@ void CefExtensionWebContentsObserver::RenderFrameCreated( } } -WEB_CONTENTS_USER_DATA_KEY_IMPL(CefExtensionWebContentsObserver) +WEB_CONTENTS_USER_DATA_KEY_IMPL(CefExtensionWebContentsObserver); } // namespace extensions diff --git a/libcef/browser/extensions/extensions_api_client.h b/libcef/browser/extensions/extensions_api_client.h index 3d6c5707f..b57eb3d6e 100644 --- a/libcef/browser/extensions/extensions_api_client.h +++ b/libcef/browser/extensions/extensions_api_client.h @@ -6,8 +6,8 @@ #ifndef CEF_LIBCEF_BROWSER_EXTENSIONS_EXTENSIONS_API_CLIENT_H_ #define CEF_LIBCEF_BROWSER_EXTENSIONS_EXTENSIONS_API_CLIENT_H_ +#include "components/value_store/value_store_factory.h" #include "extensions/browser/api/extensions_api_client.h" -#include "extensions/browser/value_store/value_store_factory.h" namespace extensions { diff --git a/libcef/browser/extensions/value_store/cef_value_store.h b/libcef/browser/extensions/value_store/cef_value_store.h index e3191a6e1..7de64a346 100644 --- a/libcef/browser/extensions/value_store/cef_value_store.h +++ b/libcef/browser/extensions/value_store/cef_value_store.h @@ -13,7 +13,7 @@ #include "base/compiler_specific.h" #include "base/macros.h" -#include "extensions/browser/value_store/value_store.h" +#include "components/value_store/value_store.h" namespace value_store { diff --git a/libcef/browser/extensions/value_store/cef_value_store_factory.cc b/libcef/browser/extensions/value_store/cef_value_store_factory.cc index aa1fcdc31..01b06975b 100644 --- a/libcef/browser/extensions/value_store/cef_value_store_factory.cc +++ b/libcef/browser/extensions/value_store/cef_value_store_factory.cc @@ -9,7 +9,7 @@ #include "base/containers/contains.h" #include "base/memory/ptr_util.h" -#include "extensions/browser/value_store/leveldb_value_store.h" +#include "components/value_store/leveldb_value_store.h" namespace { diff --git a/libcef/browser/extensions/value_store/cef_value_store_factory.h b/libcef/browser/extensions/value_store/cef_value_store_factory.h index 42a0e5723..3a60e657d 100644 --- a/libcef/browser/extensions/value_store/cef_value_store_factory.h +++ b/libcef/browser/extensions/value_store/cef_value_store_factory.h @@ -10,7 +10,7 @@ #include #include "base/files/file_path.h" -#include "extensions/browser/value_store/value_store_factory.h" +#include "components/value_store/value_store_factory.h" namespace value_store { diff --git a/libcef/browser/frame_service_base.h b/libcef/browser/frame_service_base.h new file mode 100644 index 000000000..1c10aa35c --- /dev/null +++ b/libcef/browser/frame_service_base.h @@ -0,0 +1,125 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CEF_LIBCEF_BROWSER_FRAME_SERVICE_BASE_H_ +#define CEF_LIBCEF_BROWSER_FRAME_SERVICE_BASE_H_ + +#include + +#include "base/bind.h" +#include "base/logging.h" +#include "base/threading/thread_checker.h" +#include "content/public/browser/navigation_handle.h" +#include "content/public/browser/render_frame_host.h" +#include "content/public/browser/web_contents.h" +#include "content/public/browser/web_contents_observer.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" +#include "mojo/public/cpp/bindings/receiver.h" +#include "url/origin.h" + +namespace content { + +// Base class for mojo interface implementations tied to a document's lifetime. +// The service will be destroyed when any of the following happens: +// 1. mojo interface connection error happened, +// 2. the RenderFrameHost was deleted, or +// 3. navigation was committed on the RenderFrameHost (not same document) and +// ShouldCloseOnFinishNavigation() returns true. +// +// WARNING: To avoid race conditions, subclasses MUST only get the origin via +// origin() instead of from |render_frame_host| passed in the constructor. +// See https://crbug.com/769189 for an example of such a race. +// +// Based on the old implementation of DocumentServiceBase that existed prior to +// https://crrev.com/2809effa24. CEF requires the old implementation to support +// bindings that outlive navigation. +template +class FrameServiceBase : public Interface, public WebContentsObserver { + public: + FrameServiceBase(RenderFrameHost* render_frame_host, + mojo::PendingReceiver pending_receiver) + : WebContentsObserver( + WebContents::FromRenderFrameHost(render_frame_host)), + render_frame_host_(render_frame_host), + origin_(render_frame_host_->GetLastCommittedOrigin()), + receiver_(this, std::move(pending_receiver)) { + // |this| owns |receiver_|, so unretained is safe. + receiver_.set_disconnect_handler( + base::BindOnce(&FrameServiceBase::Close, base::Unretained(this))); + } + + protected: + // Make the destructor private since |this| can only be deleted by Close(). + virtual ~FrameServiceBase() = default; + + // All subclasses should use this function to obtain the origin instead of + // trying to get it from the RenderFrameHost pointer directly. + const url::Origin& origin() const { return origin_; } + + // Returns the RenderFrameHost held by this object. + RenderFrameHost* render_frame_host() const { return render_frame_host_; } + + // Subclasses can use this to check thread safety. + // For example: DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + THREAD_CHECKER(thread_checker_); + + private: + // Disallow calling web_contents() directly from the subclasses to ensure that + // tab-level state doesn't get queried or updated when the RenderFrameHost is + // not active. + // Use WebContents::From(render_frame_host()) instead, but please keep in mind + // that the render_frame_host() might not be active. See + // RenderFrameHost::IsActive() for details. + using WebContentsObserver::web_contents; + + // WebContentsObserver implementation. + void RenderFrameDeleted(RenderFrameHost* render_frame_host) final { + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + + if (render_frame_host == render_frame_host_) { + DVLOG(1) << __func__ << ": RenderFrame destroyed."; + Close(); + } + } + + void DidFinishNavigation(NavigationHandle* navigation_handle) final { + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + if (!ShouldCloseOnFinishNavigation()) + return; + + if (!navigation_handle->HasCommitted() || + navigation_handle->IsSameDocument() || + navigation_handle->IsPageActivation()) { + return; + } + + if (navigation_handle->GetRenderFrameHost() == render_frame_host_) { + // FrameServiceBase is destroyed either when RenderFrameHost is + // destroyed (covered by RenderFrameDeleted) or when a new document + // commits in the same RenderFrameHost (covered by DidFinishNavigation). + // Only committed non-same-document non-bfcache non-prerendering + // activation navigations replace a document in existing RenderFrameHost. + DVLOG(1) << __func__ << ": Close connection on navigation."; + Close(); + } + } + + // Used for CEF bindings that outlive navigation. + virtual bool ShouldCloseOnFinishNavigation() const { return true; } + + // Stops observing WebContents and delete |this|. + void Close() { + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + DVLOG(1) << __func__; + delete this; + } + + RenderFrameHost* const render_frame_host_ = nullptr; + const url::Origin origin_; + mojo::Receiver receiver_; +}; + +} // namespace content + +#endif // CEF_LIBCEF_BROWSER_FRAME_SERVICE_BASE_H_ diff --git a/libcef/browser/media_router/media_router_manager.cc b/libcef/browser/media_router/media_router_manager.cc index e349f9d61..b3da61eb8 100644 --- a/libcef/browser/media_router/media_router_manager.cc +++ b/libcef/browser/media_router/media_router_manager.cc @@ -184,7 +184,7 @@ void CefMediaRouterManager::CreateRoute( source_id, sink_id, origin, nullptr /* web_contents */, base::BindOnce(&CefMediaRouterManager::OnCreateRoute, weak_ptr_factory_.GetWeakPtr(), std::move(callback)), - base::TimeDelta::FromMilliseconds(kTimeoutMs), false /* incognito */); + base::Milliseconds(kTimeoutMs), false /* incognito */); } void CefMediaRouterManager::SendRouteMessage( diff --git a/libcef/browser/native/browser_platform_delegate_native_mac.mm b/libcef/browser/native/browser_platform_delegate_native_mac.mm index a19f6cd16..66dc5c709 100644 --- a/libcef/browser/native/browser_platform_delegate_native_mac.mm +++ b/libcef/browser/native/browser_platform_delegate_native_mac.mm @@ -559,7 +559,7 @@ void CefBrowserPlatformDelegateNativeMac::TranslateWebMouseEvent( // timestamp result.SetTimeStamp(base::TimeTicks() + - base::TimeDelta::FromSeconds(currentEventTimestamp())); + base::Seconds(currentEventTimestamp())); result.pointer_type = blink::WebPointerProperties::PointerType::kMouse; } diff --git a/libcef/browser/native/native_menu_win.cc b/libcef/browser/native/native_menu_win.cc index 4d3b029b2..7573f4250 100644 --- a/libcef/browser/native/native_menu_win.cc +++ b/libcef/browser/native/native_menu_win.cc @@ -21,6 +21,7 @@ #include "ui/base/l10n/l10n_util_win.h" #include "ui/base/models/image_model.h" #include "ui/base/models/menu_model.h" +#include "ui/color/color_provider_manager.h" #include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/canvas.h" #include "ui/gfx/font_list.h" @@ -295,11 +296,33 @@ class CefNativeMenuWin::MenuHostWindow { ui::NativeTheme* native_theme = ui::NativeTheme::GetInstanceForNativeUi(); + // Logic from Widget::GetColorProviderKey() prior to + // https://crrev.com/e24ffe177b. + // TODO(cef): Use |native_theme->GetColorProviderKey(nullptr)| after M97 + // Chromium update. + const auto color_scheme = native_theme->GetDefaultSystemColorScheme(); + ui::ColorProviderManager::Key color_provider_key( + (color_scheme == ui::NativeTheme::ColorScheme::kDark) + ? ui::ColorProviderManager::ColorMode::kDark + : ui::ColorProviderManager::ColorMode::kLight, + (color_scheme == + ui::NativeTheme::ColorScheme::kPlatformHighContrast) + ? ui::ColorProviderManager::ContrastMode::kHigh + : ui::ColorProviderManager::ContrastMode::kNormal, + native_theme->is_custom_system_theme() + ? ui::ColorProviderManager::SystemTheme::kCustom + : ui::ColorProviderManager::SystemTheme::kDefault, + /*custom_theme=*/nullptr); + + auto* color_provider = + ui::ColorProviderManager::Get().GetColorProviderFor( + color_provider_key); + // We currently don't support items with both icons and checkboxes. const gfx::ImageSkia skia_icon = icon.IsImage() ? icon.GetImage().AsImageSkia() : ui::ThemedVectorIcon(icon.GetVectorIcon()) - .GetImageSkia(native_theme, 16); + .GetImageSkia(color_provider, 16); DCHECK(type != ui::MenuModel::TYPE_CHECK); std::unique_ptr canvas = skia::CreatePlatformCanvas( diff --git a/libcef/browser/net_service/cookie_helper.cc b/libcef/browser/net_service/cookie_helper.cc index 67b2643b5..1d574b611 100644 --- a/libcef/browser/net_service/cookie_helper.cc +++ b/libcef/browser/net_service/cookie_helper.cc @@ -81,15 +81,17 @@ void GetCookieListCallback(const AllowCookieCallback& allow_cookie_callback, std::move(done_callback), included_cookies)); } -void LoadCookiesOnUIThread(content::BrowserContext* browser_context, - const GURL& url, - const net::CookieOptions& options, - const AllowCookieCallback& allow_cookie_callback, - DoneCookieCallback done_callback) { +void LoadCookiesOnUIThread( + content::BrowserContext* browser_context, + const GURL& url, + const net::CookieOptions& options, + const net::CookiePartitionKeychain& cookie_partition_keychain, + const AllowCookieCallback& allow_cookie_callback, + DoneCookieCallback done_callback) { CEF_REQUIRE_UIT(); GetCookieManager(browser_context) ->GetCookieList( - url, options, + url, options, cookie_partition_keychain, base::BindOnce(GetCookieListCallback, allow_cookie_callback, std::move(done_callback))); } @@ -199,9 +201,10 @@ void LoadCookies(content::BrowserContext* browser_context, } CEF_POST_TASK( - CEF_UIT, base::BindOnce(LoadCookiesOnUIThread, browser_context, - request.url, GetCookieOptions(request), - allow_cookie_callback, std::move(done_callback))); + CEF_UIT, + base::BindOnce(LoadCookiesOnUIThread, browser_context, request.url, + GetCookieOptions(request), net::CookiePartitionKeychain(), + allow_cookie_callback, std::move(done_callback))); } void SaveCookies(content::BrowserContext* browser_context, diff --git a/libcef/browser/net_service/cookie_manager_impl.cc b/libcef/browser/net_service/cookie_manager_impl.cc index f45de4a02..512b974f2 100644 --- a/libcef/browser/net_service/cookie_manager_impl.cc +++ b/libcef/browser/net_service/cookie_manager_impl.cc @@ -257,7 +257,7 @@ bool CefCookieManagerImpl::VisitUrlCookiesInternal( return false; GetCookieManager(browser_context) - ->GetCookieList(url, options, + ->GetCookieList(url, options, net::CookiePartitionKeychain(), base::BindOnce(&GetCookiesCallbackImpl, visitor, browser_context_getter_)); return true; diff --git a/libcef/browser/osr/osr_accessibility_util.cc b/libcef/browser/osr/osr_accessibility_util.cc index 95221dc2b..96663e4d8 100644 --- a/libcef/browser/osr/osr_accessibility_util.cc +++ b/libcef/browser/osr/osr_accessibility_util.cc @@ -17,7 +17,7 @@ #include "ui/accessibility/ax_enums.mojom.h" #include "ui/accessibility/ax_text_utils.h" #include "ui/accessibility/ax_tree_update.h" -#include "ui/gfx/transform.h" +#include "ui/gfx/geometry/transform.h" namespace { using ui::ToString; diff --git a/libcef/browser/osr/render_widget_host_view_osr.cc b/libcef/browser/osr/render_widget_host_view_osr.cc index 03242db39..3bc9e258e 100644 --- a/libcef/browser/osr/render_widget_host_view_osr.cc +++ b/libcef/browser/osr/render_widget_host_view_osr.cc @@ -723,6 +723,12 @@ void CefRenderWidgetHostViewOSR::GetScreenInfo(display::ScreenInfo* results) { *results = ScreenInfoFrom(screen_info); } +display::ScreenInfos CefRenderWidgetHostViewOSR::GetScreenInfos() { + display::ScreenInfo screen_info; + GetScreenInfo(&screen_info); + return display::ScreenInfos(screen_info); +} + void CefRenderWidgetHostViewOSR::TransformPointToRootSurface( gfx::PointF* point) {} @@ -1516,14 +1522,11 @@ bool CefRenderWidgetHostViewOSR::SetDeviceScaleFactor() { void CefRenderWidgetHostViewOSR::SetCurrentDeviceScaleFactor(float scale) { // Initialize a display struct as needed, to cache the scale factor. - if (display_list_.displays().empty()) { - display_list_ = display::DisplayList( - {display::Display(display::kDefaultDisplayId)}, - display::kDefaultDisplayId, display::kDefaultDisplayId); + if (screen_infos_.screen_infos.empty()) { + screen_infos_ = display::ScreenInfos(display::ScreenInfo()); } - display::Display current_display = display_list_.GetCurrentDisplay(); - current_display.set_device_scale_factor(scale); - display_list_.UpdateDisplay(current_display); + screen_infos_.mutable_current().device_scale_factor = scale; + UpdateScreenInfo(); } bool CefRenderWidgetHostViewOSR::SetViewBounds() { diff --git a/libcef/browser/osr/render_widget_host_view_osr.h b/libcef/browser/osr/render_widget_host_view_osr.h index 3f764e52a..7bd702a92 100644 --- a/libcef/browser/osr/render_widget_host_view_osr.h +++ b/libcef/browser/osr/render_widget_host_view_osr.h @@ -159,6 +159,7 @@ class CefRenderWidgetHostViewOSR const gfx::Size& output_size, base::OnceCallback callback) override; void GetScreenInfo(display::ScreenInfo* results) override; + display::ScreenInfos GetScreenInfos() override; void TransformPointToRootSurface(gfx::PointF* point) override; gfx::Rect GetBoundsInRootWindow() override; diff --git a/libcef/browser/printing/print_dialog_linux.cc b/libcef/browser/printing/print_dialog_linux.cc index b3881cadd..04a532ac2 100644 --- a/libcef/browser/printing/print_dialog_linux.cc +++ b/libcef/browser/printing/print_dialog_linux.cc @@ -22,6 +22,7 @@ #include "base/values.h" #include "content/public/browser/global_routing_id.h" #include "printing/metafile.h" +#include "printing/mojom/print.mojom-shared.h" #include "printing/print_job_constants.h" #include "printing/print_settings.h" @@ -175,7 +176,7 @@ void CefPrintDialogLinux::ShowDialog( SetHandler(); if (!handler_.get()) { - std::move(callback).Run(PrintingContextLinux::CANCEL); + std::move(callback).Run(printing::mojom::ResultCode::kCanceled); return; } @@ -291,11 +292,11 @@ void CefPrintDialogLinux::OnPrintContinue( CefPrintSettingsImpl* impl = static_cast(settings.get()); context_->InitWithSettings(impl->TakeOwnership()); - std::move(callback_).Run(PrintingContextLinux::OK); + std::move(callback_).Run(printing::mojom::ResultCode::kSuccess); } void CefPrintDialogLinux::OnPrintCancel() { - std::move(callback_).Run(PrintingContextLinux::CANCEL); + std::move(callback_).Run(printing::mojom::ResultCode::kCanceled); } void CefPrintDialogLinux::OnJobCompleted() { diff --git a/libcef/browser/thread_util.h b/libcef/browser/thread_util.h index f57c4b404..a22fe7ab9 100644 --- a/libcef/browser/thread_util.h +++ b/libcef/browser/thread_util.h @@ -44,8 +44,7 @@ #define CEF_POST_TASK(id, task) base::PostTask(FROM_HERE, {id}, task) #define CEF_POST_DELAYED_TASK(id, task, delay_ms) \ - base::PostDelayedTask(FROM_HERE, {id}, task, \ - base::TimeDelta::FromMilliseconds(delay_ms)) + base::PostDelayedTask(FROM_HERE, {id}, task, base::Milliseconds(delay_ms)) // Post a blocking task with the specified |priority|. Tasks that have not // started executing at shutdown will never run. However, any task that has diff --git a/libcef/browser/views/view_view.h b/libcef/browser/views/view_view.h index afa850d19..6215c85df 100644 --- a/libcef/browser/views/view_view.h +++ b/libcef/browser/views/view_view.h @@ -13,6 +13,7 @@ #include "libcef/browser/views/view_util.h" #include "base/logging.h" +#include "ui/views/accessibility/accessibility_paint_checks.h" #include "ui/views/background.h" #include "ui/views/view.h" @@ -46,6 +47,10 @@ CEF_VIEW_VIEW_T class CefViewView : public ViewsViewClass { // Use our defaults instead of the Views framework defaults. ParentClass::SetBackground( views::CreateSolidBackground(view_util::kDefaultBackgroundColor)); + + // TODO(crbug.com/1218186): Remove this, if this view is focusable then it + // needs to add a name so that the screen reader knows what to announce. + ParentClass::SetProperty(views::kSkipAccessibilityPaintChecks, true); } // Returns the CefViewDelegate-derived delegate associated with this view. diff --git a/libcef/browser/views/window_impl.cc b/libcef/browser/views/window_impl.cc index 5cb772020..449b2aea5 100644 --- a/libcef/browser/views/window_impl.cc +++ b/libcef/browser/views/window_impl.cc @@ -23,15 +23,28 @@ #include "ui/aura/test/ui_controls_factory_aura.h" #include "ui/aura/window.h" #include "ui/base/test/ui_controls_aura.h" -#if defined(OS_LINUX) && defined(USE_X11) -#include "ui/views/test/ui_controls_factory_desktop_aurax11.h" -#endif +#if defined(USE_OZONE) +#include "ui/ozone/public/ozone_ui_controls_test_helper.h" +#include "ui/views/test/ui_controls_factory_desktop_aura_ozone.h" #endif +#endif // defined(USE_AURA) #if defined(OS_WIN) #include "ui/display/win/screen_win.h" #endif +#if defined(USE_AURA) && defined(USE_OZONE) +// Stub implementation for function called from +// $root_gen_dir/ui/ozone/test_constructor_list.cc to avoid +// //ui/ozone/platform/wayland:ui_test_support dependencies. +namespace ui { +OzoneUIControlsTestHelper* CreateOzoneUIControlsTestHelperWayland() { + NOTREACHED(); + return nullptr; +} +} // namespace ui +#endif + namespace { // Based on chrome/test/base/interactive_ui_tests_main.cc. @@ -41,14 +54,14 @@ void InitializeUITesting() { ui_controls::EnableUIControls(); #if defined(USE_AURA) -#if defined(OS_LINUX) && defined(USE_X11) - ui_controls::InstallUIControlsAura( - views::test::CreateUIControlsDesktopAura()); -#else +#if defined(OS_WIN) ui_controls::InstallUIControlsAura( aura::test::CreateUIControlsAura(nullptr)); +#elif defined(USE_OZONE) + ui_controls::InstallUIControlsAura( + views::test::CreateUIControlsDesktopAuraOzone()); #endif -#endif +#endif // defined(USE_AURA) initialized = true; } diff --git a/libcef/common/cef_crash_report_upload_thread.h b/libcef/common/cef_crash_report_upload_thread.h index b3641d6f7..00913c5a5 100644 --- a/libcef/common/cef_crash_report_upload_thread.h +++ b/libcef/common/cef_crash_report_upload_thread.h @@ -5,6 +5,7 @@ #ifndef CEF_LIBCEF_COMMON_CEF_CRASH_REPORT_UPLOAD_THREAD_H_ #define CEF_LIBCEF_COMMON_CEF_CRASH_REPORT_UPLOAD_THREAD_H_ +#include "base/macros.h" #include "third_party/crashpad/crashpad/handler/crash_report_upload_thread.h" class CefCrashReportUploadThread : public crashpad::CrashReportUploadThread { diff --git a/libcef/common/task_impl.cc b/libcef/common/task_impl.cc index de90e626f..cf955e6db 100644 --- a/libcef/common/task_impl.cc +++ b/libcef/common/task_impl.cc @@ -40,7 +40,7 @@ bool CefPostDelayedTask(CefThreadId threadId, if (task_runner.get()) { return task_runner->PostDelayedTask( FROM_HERE, base::BindOnce(&CefTask::Execute, task.get()), - base::TimeDelta::FromMilliseconds(delay_ms)); + base::Milliseconds(delay_ms)); } LOG(WARNING) << "No task runner for threadId " << threadId; diff --git a/libcef/common/task_runner_impl.cc b/libcef/common/task_runner_impl.cc index cf90d60c9..837c7800d 100644 --- a/libcef/common/task_runner_impl.cc +++ b/libcef/common/task_runner_impl.cc @@ -145,5 +145,5 @@ bool CefTaskRunnerImpl::PostDelayedTask(CefRefPtr task, int64 delay_ms) { return task_runner_->PostDelayedTask( FROM_HERE, base::BindOnce(&CefTask::Execute, task.get()), - base::TimeDelta::FromMilliseconds(delay_ms)); + base::Milliseconds(delay_ms)); } diff --git a/libcef/common/waitable_event_impl.cc b/libcef/common/waitable_event_impl.cc index ee34451c7..720c49598 100644 --- a/libcef/common/waitable_event_impl.cc +++ b/libcef/common/waitable_event_impl.cc @@ -57,5 +57,5 @@ void CefWaitableEventImpl::Wait() { bool CefWaitableEventImpl::TimedWait(int64 max_ms) { if (!AllowWait()) return false; - return event_.TimedWait(base::TimeDelta::FromMilliseconds(max_ms)); + return event_.TimedWait(base::Milliseconds(max_ms)); } diff --git a/libcef/renderer/render_urlrequest_impl.cc b/libcef/renderer/render_urlrequest_impl.cc index aa167b20b..35253d56b 100644 --- a/libcef/renderer/render_urlrequest_impl.cc +++ b/libcef/renderer/render_urlrequest_impl.cc @@ -66,7 +66,8 @@ class CefWebURLLoaderClient : public blink::WebURLLoaderClient { const WebString& new_method, const WebURLResponse& passed_redirect_response, bool& report_raw_headers, - std::vector* removed_headers) override; + std::vector* removed_headers, + bool insecure_scheme_was_upgraded) override; protected: // The context_ pointer will outlive this object. @@ -398,7 +399,8 @@ bool CefWebURLLoaderClient::WillFollowRedirect( const WebString& new_method, const WebURLResponse& passed_redirect_response, bool& report_raw_headers, - std::vector* removed_headers) { + std::vector* removed_headers, + bool insecure_scheme_was_upgraded) { if (request_flags_ & UR_FLAG_STOP_ON_REDIRECT) { context_->OnStopRedirect(new_url, passed_redirect_response); return false; diff --git a/libcef/renderer/thread_util.h b/libcef/renderer/thread_util.h index 7bf73f82f..768a3b36c 100644 --- a/libcef/renderer/thread_util.h +++ b/libcef/renderer/thread_util.h @@ -33,9 +33,9 @@ #define CEF_POST_TASK_RT(task) \ CEF_RENDER_TASK_RUNNER()->PostTask(FROM_HERE, task) -#define CEF_POST_DELAYED_TASK_RT(task, delay_ms) \ - CEF_RENDER_TASK_RUNNER()->PostDelayedTask( \ - FROM_HERE, task, base::TimeDelta::FromMilliseconds(delay_ms)) +#define CEF_POST_DELAYED_TASK_RT(task, delay_ms) \ + CEF_RENDER_TASK_RUNNER()->PostDelayedTask(FROM_HERE, task, \ + base::Milliseconds(delay_ms)) // Use this template in conjuction with RefCountedThreadSafe when you want to // ensure that an object is deleted on the render thread. diff --git a/patch/patch.cfg b/patch/patch.cfg index 4fcf37b93..4bb029ae9 100644 --- a/patch/patch.cfg +++ b/patch/patch.cfg @@ -151,17 +151,6 @@ patches = [ # https://bitbucket.org/chromiumembedded/cef/issues/2798 'name': 'content_main_654986', }, - { - # Make content::FrameServiceBase usable with CefBrowserFrame. - # https://bitbucket.org/chromiumembedded/cef/issues/3123 - 'name': 'content_mojo_3123', - }, - { - # Fix missing check for defined(ENABLE_THEMES) in - # renderer_preferences_util.cc on Linux. - # https://bugs.chromium.org/p/chromium/issues/detail?id=545103 - 'name': 'renderer_preferences_util_545103', - }, { # Expose the FontFamilyCache UserData key. # https://bitbucket.org/chromiumembedded/cef/issues/1501 @@ -331,6 +320,10 @@ patches = [ # Add new ContentBrowserClient::HandleExternalProtocol variant for use with # the NetworkService. # https://bitbucket.org/chromiumembedded/cef/issues/2622 + # + # Change ContentBrowserClient::ConfigureNetworkContextParams return type to + # bool to support cancellation of NetworkContext creation during shutdown. + # https://bitbucket.org/chromiumembedded/cef/issues/2985 'name': 'content_2015', }, { @@ -379,6 +372,7 @@ patches = [ { # Linux: Use poll instead of select to fix crash during startup. # https://bitbucket.org/chromiumembedded/cef/issues/2466 + # https://chromium-review.googlesource.com/c/chromium/src/+/3237729/ 'name': 'linux_poll_2466', }, { @@ -422,7 +416,8 @@ patches = [ # NetworkServiceClient::OnAuthRequired. # https://bitbucket.org/chromiumembedded/cef/issues/2718 # - # Fix shutdown crash in InitNetworkContext with multi-threaded message loop. + # Change ContentBrowserClient::ConfigureNetworkContextParams return type to + # bool to support cancellation of NetworkContext creation during shutdown. # https://bitbucket.org/chromiumembedded/cef/issues/2985 # # Compute correct default quota when cache_path is unspecified. @@ -532,6 +527,7 @@ patches = [ # Linux: Fix undefined symbol: ResourceMapper::MapToJavaDrawableId in # ChromePageInfoClient::GetJavaResourceId. # https://bugs.chromium.org/p/chromium/issues/detail?id=1099927 + # https://chromium-review.googlesource.com/c/chromium/src/+/3236818 'name': 'linux_chrome_page_info_1099927', }, { @@ -542,20 +538,20 @@ patches = [ # https://bitbucket.org/chromiumembedded/cef/issues/2969 'name': 'chrome_browser_background_mode_1100085', }, - { - # Windows: Fix cef_sandbox compile error due to missing include. - # Fixed by the below change in more recent Chromium versions. - # https://bugs.chromium.org/p/chromium/issues/detail?id=1049498#c14 - 'name': 'base_string_piece_1049498', - }, { # Linux: Fix ATK assertion error when generating ARM build config. # https://bugs.chromium.org/p/chromium/issues/detail?id=1123214 'name': 'linux_atk_1123214', }, { - # Linux: Fix missing re2 dependency for third_party/maldoca. - # https://chromium-review.googlesource.com/c/chromium/src/+/3128781 - 'name': 'linux_maldoca_3128781', + # Linux: Make the //ui/ozone:generate_test_support_constructor_list target + # visible to CEF. + 'name': 'linux_ui_ozone', + }, + { + # Windows: Fix cef_sandbox compile error: ignoring return value of function + # declared with 'nodiscard' attribute [-Werror,-Wunused-result] + # https://chromium-review.googlesource.com/c/chromium/src/+/3237648 + 'name': 'base_thread_restrictions_3237648', } ] diff --git a/patch/patches/base_command_line_1872.patch b/patch/patches/base_command_line_1872.patch index 900e2dd60..985e666ea 100644 --- a/patch/patches/base_command_line_1872.patch +++ b/patch/patches/base_command_line_1872.patch @@ -1,8 +1,8 @@ diff --git base/command_line.cc base/command_line.cc -index 3ef2e87e40687..f7b91a202a377 100644 +index 735a1e8bcbe6f..d284d2c86b11b 100644 --- base/command_line.cc +++ base/command_line.cc -@@ -333,11 +333,10 @@ void CommandLine::AppendSwitchPath(StringPiece switch_string, +@@ -338,11 +338,10 @@ void CommandLine::AppendSwitchPath(StringPiece switch_string, void CommandLine::AppendSwitchNative(StringPiece switch_string, CommandLine::StringPieceType value) { diff --git a/patch/patches/base_sandbox_2743.patch b/patch/patches/base_sandbox_2743.patch index 1ebebfa36..f11ac09a4 100644 --- a/patch/patches/base_sandbox_2743.patch +++ b/patch/patches/base_sandbox_2743.patch @@ -1,5 +1,5 @@ diff --git base/BUILD.gn base/BUILD.gn -index 336ce46f03ad2..c23082ba356a2 100644 +index afd0690c72de4..07a2889100e39 100644 --- base/BUILD.gn +++ base/BUILD.gn @@ -34,6 +34,7 @@ import("//build/config/ui.gni") @@ -10,7 +10,7 @@ index 336ce46f03ad2..c23082ba356a2 100644 import("//testing/libfuzzer/fuzzer_test.gni") import("//testing/test.gni") import("//third_party/icu/config.gni") -@@ -1767,7 +1768,11 @@ component("base") { +@@ -1783,7 +1784,11 @@ component("base") { "hash/md5_constexpr_internal.h", "hash/sha1.h", ] @@ -23,7 +23,7 @@ index 336ce46f03ad2..c23082ba356a2 100644 sources += [ "hash/md5_nacl.cc", "hash/md5_nacl.h", -@@ -2014,6 +2019,12 @@ component("base") { +@@ -2030,6 +2035,12 @@ component("base") { defines += [ "COM_INIT_CHECK_HOOK_DISABLED" ] } diff --git a/patch/patches/base_string_piece_1049498.patch b/patch/patches/base_string_piece_1049498.patch deleted file mode 100644 index 613fd47b2..000000000 --- a/patch/patches/base_string_piece_1049498.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git base/strings/string_piece.h base/strings/string_piece.h -index 5ceb3a40eb01b..89476bfa41e9b 100644 ---- base/strings/string_piece.h -+++ base/strings/string_piece.h -@@ -23,6 +23,7 @@ - - #include - -+#include - #include - #include - #include diff --git a/patch/patches/base_thread_restrictions_3237648.patch b/patch/patches/base_thread_restrictions_3237648.patch new file mode 100644 index 000000000..9995f16d3 --- /dev/null +++ b/patch/patches/base_thread_restrictions_3237648.patch @@ -0,0 +1,26 @@ +diff --git base/threading/thread_restrictions.cc base/threading/thread_restrictions.cc +index a892d9bb96bfe..33d13529aeadd 100644 +--- base/threading/thread_restrictions.cc ++++ base/threading/thread_restrictions.cc +@@ -267,18 +267,18 @@ void DisallowUnresponsiveTasks() { + + // static + void PermanentThreadAllowance::AllowBlocking() { +- *GetBlockingDisallowedTls().Set(std::make_unique(false)); ++ GetBlockingDisallowedTls().Set(std::make_unique(false)); + } + + // static + void PermanentThreadAllowance::AllowBaseSyncPrimitives() { +- *GetBaseSyncPrimitivesDisallowedTls().Set( ++ GetBaseSyncPrimitivesDisallowedTls().Set( + std::make_unique(false)); + } + + // static + void PermanentSingletonAllowance::AllowSingleton() { +- *GetSingletonDisallowedTls().Set(std::make_unique(false)); ++ GetSingletonDisallowedTls().Set(std::make_unique(false)); + } + + } // namespace base diff --git a/patch/patches/browser_scheduler.patch b/patch/patches/browser_scheduler.patch index 0efe9776c..8de291f12 100644 --- a/patch/patches/browser_scheduler.patch +++ b/patch/patches/browser_scheduler.patch @@ -1,8 +1,8 @@ diff --git content/browser/scheduler/browser_task_executor.cc content/browser/scheduler/browser_task_executor.cc -index c04efa1296318..8c8515cb74a2b 100644 +index 3d56ff6e97575..1af9338f883fb 100644 --- content/browser/scheduler/browser_task_executor.cc +++ content/browser/scheduler/browser_task_executor.cc -@@ -269,7 +269,7 @@ BrowserTaskExecutor::OnUserInputStart() { +@@ -285,7 +285,7 @@ BrowserTaskExecutor::OnUserInputStart() { // static void BrowserTaskExecutor::Shutdown() { diff --git a/patch/patches/browser_security_policy_1081397.patch b/patch/patches/browser_security_policy_1081397.patch index a1e63fc1e..e407b65cd 100644 --- a/patch/patches/browser_security_policy_1081397.patch +++ b/patch/patches/browser_security_policy_1081397.patch @@ -1,8 +1,8 @@ diff --git content/browser/child_process_security_policy_impl.cc content/browser/child_process_security_policy_impl.cc -index 5daa087a01e80..316ec852394a4 100644 +index 4801a199a29d3..11a1d3b328142 100644 --- content/browser/child_process_security_policy_impl.cc +++ content/browser/child_process_security_policy_impl.cc -@@ -1738,6 +1738,16 @@ bool ChildProcessSecurityPolicyImpl::CanAccessDataForOrigin( +@@ -1778,6 +1778,16 @@ bool ChildProcessSecurityPolicyImpl::CanAccessDataForOrigin( // DeclarativeApiTest.PersistRules. if (actual_process_lock.matches_scheme(url::kDataScheme)) return true; @@ -20,10 +20,10 @@ index 5daa087a01e80..316ec852394a4 100644 // TODO(wjmaclean): We should update the ProcessLock comparison API diff --git content/browser/renderer_host/navigation_request.cc content/browser/renderer_host/navigation_request.cc -index f1136b6502573..654397a5a9f76 100644 +index 50bdac2c30caa..2546c845e756a 100644 --- content/browser/renderer_host/navigation_request.cc +++ content/browser/renderer_host/navigation_request.cc -@@ -5803,6 +5803,12 @@ NavigationRequest::GetOriginForURLLoaderFactoryWithoutFinalFrameHost( +@@ -5737,6 +5737,12 @@ NavigationRequest::GetOriginForURLLoaderFactoryWithoutFinalFrameHost( network::mojom::WebSandboxFlags sandbox_flags) { // Calculate an approximation of the origin. The sandbox/csp are ignored. url::Origin origin = GetOriginForURLLoaderFactoryUnchecked(this); @@ -36,7 +36,7 @@ index f1136b6502573..654397a5a9f76 100644 // Apply sandbox flags. // See https://html.spec.whatwg.org/#sandboxed-origin-browsing-context-flag -@@ -5836,6 +5842,15 @@ NavigationRequest::GetOriginForURLLoaderFactoryWithFinalFrameHost() { +@@ -5770,6 +5776,15 @@ NavigationRequest::GetOriginForURLLoaderFactoryWithFinalFrameHost() { if (IsSameDocument() || IsPageActivation()) return GetRenderFrameHost()->GetLastCommittedOrigin(); diff --git a/patch/patches/build.patch b/patch/patches/build.patch index 9bd9d871d..2db0d94b5 100644 --- a/patch/patches/build.patch +++ b/patch/patches/build.patch @@ -1,8 +1,8 @@ diff --git build/config/compiler/BUILD.gn build/config/compiler/BUILD.gn -index 219a2be0e1a1f..aeec295e68de5 100644 +index f4421666b3d10..66ca782d2fe68 100644 --- build/config/compiler/BUILD.gn +++ build/config/compiler/BUILD.gn -@@ -1906,8 +1906,6 @@ config("thin_archive") { +@@ -1766,8 +1766,6 @@ config("thin_archive") { # confuses lldb. if ((is_posix && !is_nacl && !is_apple) || is_fuchsia) { arflags = [ "-T" ] diff --git a/patch/patches/chrome_browser.patch b/patch/patches/chrome_browser.patch index cf8b7b4ae..083a1ca76 100644 --- a/patch/patches/chrome_browser.patch +++ b/patch/patches/chrome_browser.patch @@ -1,5 +1,5 @@ diff --git chrome/browser/BUILD.gn chrome/browser/BUILD.gn -index a2045328ec276..cf90eda945d20 100644 +index 1f848e0760118..29bfa6e602430 100644 --- chrome/browser/BUILD.gn +++ chrome/browser/BUILD.gn @@ -13,6 +13,7 @@ import("//build/config/features.gni") @@ -10,7 +10,7 @@ index a2045328ec276..cf90eda945d20 100644 import("//chrome/browser/buildflags.gni") import("//chrome/browser/downgrade/buildflags.gni") import("//chrome/common/features.gni") -@@ -1921,6 +1922,7 @@ static_library("browser") { +@@ -1932,6 +1933,7 @@ static_library("browser") { "//build:os_buildflags", "//build/config/compiler:compiler_buildflags", "//cc", @@ -18,8 +18,8 @@ index a2045328ec276..cf90eda945d20 100644 "//chrome:extra_resources", "//chrome:resources", "//chrome:strings", -@@ -2512,6 +2514,10 @@ static_library("browser") { - ] +@@ -2540,6 +2542,10 @@ static_library("browser") { + deps += [ "//chrome/browser/ui/webui/connectors_internals:mojo_bindings" ] } + if (enable_cef) { diff --git a/patch/patches/chrome_browser_background_mode_1100085.patch b/patch/patches/chrome_browser_background_mode_1100085.patch index 2a872196a..2359cd5e4 100644 --- a/patch/patches/chrome_browser_background_mode_1100085.patch +++ b/patch/patches/chrome_browser_background_mode_1100085.patch @@ -1,8 +1,8 @@ diff --git chrome/browser/browser_process.h chrome/browser/browser_process.h -index 6732a55a88d30..d8e4dd5da576d 100644 +index f091754b8d814..7bf45f611e8ac 100644 --- chrome/browser/browser_process.h +++ chrome/browser/browser_process.h -@@ -202,9 +202,9 @@ class BrowserProcess { +@@ -206,9 +206,9 @@ class BrowserProcess { virtual DownloadStatusUpdater* download_status_updater() = 0; virtual DownloadRequestLimiter* download_request_limiter() = 0; @@ -14,10 +14,10 @@ index 6732a55a88d30..d8e4dd5da576d 100644 std::unique_ptr manager) = 0; #endif diff --git chrome/browser/browser_process_impl.cc chrome/browser/browser_process_impl.cc -index e4ae583861fb6..57f5d6efc9221 100644 +index 2f7791ecdde11..093592fdbd3c5 100644 --- chrome/browser/browser_process_impl.cc +++ chrome/browser/browser_process_impl.cc -@@ -998,18 +998,14 @@ DownloadRequestLimiter* BrowserProcessImpl::download_request_limiter() { +@@ -1005,18 +1005,14 @@ DownloadRequestLimiter* BrowserProcessImpl::download_request_limiter() { return download_request_limiter_.get(); } @@ -38,10 +38,10 @@ index e4ae583861fb6..57f5d6efc9221 100644 std::unique_ptr manager) { background_mode_manager_ = std::move(manager); diff --git chrome/browser/browser_process_impl.h chrome/browser/browser_process_impl.h -index 80311eff04c56..29c1e8cec24c9 100644 +index 6f97b256d2227..bd8d318684cf7 100644 --- chrome/browser/browser_process_impl.h +++ chrome/browser/browser_process_impl.h -@@ -180,8 +180,8 @@ class BrowserProcessImpl : public BrowserProcess, +@@ -184,8 +184,8 @@ class BrowserProcessImpl : public BrowserProcess, void SetApplicationLocale(const std::string& actual_locale) override; DownloadStatusUpdater* download_status_updater() override; DownloadRequestLimiter* download_request_limiter() override; diff --git a/patch/patches/chrome_browser_browser.patch b/patch/patches/chrome_browser_browser.patch index cba3f0630..fd6da2af3 100644 --- a/patch/patches/chrome_browser_browser.patch +++ b/patch/patches/chrome_browser_browser.patch @@ -13,7 +13,7 @@ index ba0c5c3fc0446..b4df9af95ecd1 100644 return false; } diff --git chrome/browser/ui/browser.cc chrome/browser/ui/browser.cc -index 2beb437bedf1d..21b15b48b4a3e 100644 +index c764e3607d274..8a26710f982df 100644 --- chrome/browser/ui/browser.cc +++ chrome/browser/ui/browser.cc @@ -265,6 +265,20 @@ @@ -37,7 +37,7 @@ index 2beb437bedf1d..21b15b48b4a3e 100644 #if BUILDFLAG(ENABLE_EXTENSIONS) #include "chrome/browser/extensions/extension_browser_window_helper.h" #endif -@@ -500,6 +514,13 @@ Browser::Browser(const CreateParams& params) +@@ -499,6 +513,13 @@ Browser::Browser(const CreateParams& params) tab_strip_model_->AddObserver(this); @@ -51,7 +51,7 @@ index 2beb437bedf1d..21b15b48b4a3e 100644 location_bar_model_ = std::make_unique( location_bar_model_delegate_.get(), content::kMaxURLDisplayChars); -@@ -1330,6 +1351,14 @@ content::KeyboardEventProcessingResult Browser::PreHandleKeyboardEvent( +@@ -1329,6 +1350,14 @@ content::KeyboardEventProcessingResult Browser::PreHandleKeyboardEvent( if (exclusive_access_manager_->HandleUserKeyEvent(event)) return content::KeyboardEventProcessingResult::HANDLED; @@ -66,7 +66,7 @@ index 2beb437bedf1d..21b15b48b4a3e 100644 return window()->PreHandleKeyboardEvent(event); } -@@ -1337,8 +1366,18 @@ bool Browser::HandleKeyboardEvent(content::WebContents* source, +@@ -1336,8 +1365,18 @@ bool Browser::HandleKeyboardEvent(content::WebContents* source, const NativeWebKeyboardEvent& event) { DevToolsWindow* devtools_window = DevToolsWindow::GetInstanceForInspectedWebContents(source); @@ -87,7 +87,7 @@ index 2beb437bedf1d..21b15b48b4a3e 100644 } bool Browser::TabsNeedBeforeUnloadFired() { -@@ -1563,6 +1602,14 @@ WebContents* Browser::OpenURLFromTab(WebContents* source, +@@ -1562,6 +1601,14 @@ WebContents* Browser::OpenURLFromTab(WebContents* source, return window->OpenURLFromTab(source, params); } @@ -102,7 +102,7 @@ index 2beb437bedf1d..21b15b48b4a3e 100644 NavigateParams nav_params(this, params.url, params.transition); nav_params.FillNavigateParamsFromOpenURLParams(params); nav_params.source_contents = source; -@@ -1662,6 +1709,15 @@ void Browser::AddNewContents(WebContents* source, +@@ -1661,6 +1708,15 @@ void Browser::AddNewContents(WebContents* source, source, disposition); } @@ -118,7 +118,7 @@ index 2beb437bedf1d..21b15b48b4a3e 100644 chrome::AddWebContents(this, source, std::move(new_contents), target_url, disposition, initial_rect); } -@@ -1680,6 +1736,8 @@ void Browser::LoadingStateChanged(WebContents* source, +@@ -1679,6 +1735,8 @@ void Browser::LoadingStateChanged(WebContents* source, bool to_different_document) { ScheduleUIUpdate(source, content::INVALIDATE_TYPE_LOAD); UpdateWindowForLoadingStateChanged(source, to_different_document); @@ -127,7 +127,7 @@ index 2beb437bedf1d..21b15b48b4a3e 100644 } void Browser::CloseContents(WebContents* source) { -@@ -1707,6 +1765,8 @@ void Browser::SetContentsBounds(WebContents* source, const gfx::Rect& bounds) { +@@ -1706,6 +1764,8 @@ void Browser::SetContentsBounds(WebContents* source, const gfx::Rect& bounds) { } void Browser::UpdateTargetURL(WebContents* source, const GURL& url) { @@ -136,7 +136,7 @@ index 2beb437bedf1d..21b15b48b4a3e 100644 if (!GetStatusBubble()) return; -@@ -1714,6 +1774,17 @@ void Browser::UpdateTargetURL(WebContents* source, const GURL& url) { +@@ -1713,6 +1773,17 @@ void Browser::UpdateTargetURL(WebContents* source, const GURL& url) { GetStatusBubble()->SetURL(url); } @@ -154,7 +154,7 @@ index 2beb437bedf1d..21b15b48b4a3e 100644 void Browser::ContentsMouseEvent(WebContents* source, bool motion, bool exited) { -@@ -1830,6 +1901,10 @@ void Browser::WebContentsCreated(WebContents* source_contents, +@@ -1829,6 +1900,10 @@ void Browser::WebContentsCreated(WebContents* source_contents, // Make the tab show up in the task manager. task_manager::WebContentsTags::CreateForTabContents(new_contents); @@ -165,7 +165,7 @@ index 2beb437bedf1d..21b15b48b4a3e 100644 } void Browser::PortalWebContentsCreated(WebContents* portal_web_contents) { -@@ -1866,6 +1941,8 @@ void Browser::RendererResponsive( +@@ -1871,6 +1946,8 @@ void Browser::RendererResponsive( void Browser::DidNavigatePrimaryMainFramePostCommit(WebContents* web_contents) { if (web_contents == tab_strip_model_->GetActiveWebContents()) UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_TAB_STATE); @@ -174,7 +174,7 @@ index 2beb437bedf1d..21b15b48b4a3e 100644 } content::JavaScriptDialogManager* Browser::GetJavaScriptDialogManager( -@@ -1905,11 +1982,15 @@ void Browser::EnterFullscreenModeForTab( +@@ -1910,11 +1987,15 @@ void Browser::EnterFullscreenModeForTab( const blink::mojom::FullscreenOptions& options) { exclusive_access_manager_->fullscreen_controller()->EnterFullscreenModeForTab( requesting_frame, options.display_id); @@ -190,7 +190,7 @@ index 2beb437bedf1d..21b15b48b4a3e 100644 } bool Browser::IsFullscreenForTabOrPending(const WebContents* web_contents) { -@@ -2754,6 +2835,8 @@ void Browser::SetAsDelegate(WebContents* web_contents, bool set_delegate) { +@@ -2757,6 +2838,8 @@ void Browser::SetAsDelegate(WebContents* web_contents, bool set_delegate) { content_translate_driver->RemoveTranslationObserver(this); BookmarkTabHelper::FromWebContents(web_contents)->RemoveObserver(this); } @@ -200,7 +200,7 @@ index 2beb437bedf1d..21b15b48b4a3e 100644 void Browser::TabDetachedAtImpl(content::WebContents* contents, diff --git chrome/browser/ui/browser.h chrome/browser/ui/browser.h -index 7649c59dde3f5..a3b719f5c673a 100644 +index 69911da4fe7b9..2adcba6abef01 100644 --- chrome/browser/ui/browser.h +++ chrome/browser/ui/browser.h @@ -21,6 +21,7 @@ @@ -234,7 +234,7 @@ index 7649c59dde3f5..a3b719f5c673a 100644 private: friend class Browser; friend class WindowSizerChromeOSTest; -@@ -355,6 +365,13 @@ class Browser : public TabStripModelObserver, +@@ -358,6 +368,13 @@ class Browser : public TabStripModelObserver, return creation_source_ == CreationSource::kSessionRestore; } @@ -248,7 +248,7 @@ index 7649c59dde3f5..a3b719f5c673a 100644 // Accessors //////////////////////////////////////////////////////////////// const CreateParams& create_params() const { return create_params_; } -@@ -428,6 +445,12 @@ class Browser : public TabStripModelObserver, +@@ -431,6 +448,12 @@ class Browser : public TabStripModelObserver, base::WeakPtr AsWeakPtr(); @@ -261,7 +261,7 @@ index 7649c59dde3f5..a3b719f5c673a 100644 // Get the FindBarController for this browser, creating it if it does not // yet exist. FindBarController* GetFindBarController(); -@@ -793,6 +816,11 @@ class Browser : public TabStripModelObserver, +@@ -799,6 +822,11 @@ class Browser : public TabStripModelObserver, void SetContentsBounds(content::WebContents* source, const gfx::Rect& bounds) override; void UpdateTargetURL(content::WebContents* source, const GURL& url) override; @@ -273,7 +273,7 @@ index 7649c59dde3f5..a3b719f5c673a 100644 void ContentsMouseEvent(content::WebContents* source, bool motion, bool exited) override; -@@ -1186,6 +1214,8 @@ class Browser : public TabStripModelObserver, +@@ -1189,6 +1217,8 @@ class Browser : public TabStripModelObserver, const std::string initial_workspace_; bool initial_visible_on_all_workspaces_state_; @@ -282,7 +282,7 @@ index 7649c59dde3f5..a3b719f5c673a 100644 CreationSource creation_source_ = CreationSource::kUnknown; UnloadController unload_controller_; -@@ -1243,6 +1273,10 @@ class Browser : public TabStripModelObserver, +@@ -1246,6 +1276,10 @@ class Browser : public TabStripModelObserver, extension_browser_window_helper_; #endif @@ -294,10 +294,10 @@ index 7649c59dde3f5..a3b719f5c673a 100644 // The following factory is used for chrome update coalescing. diff --git chrome/browser/ui/browser_navigator.cc chrome/browser/ui/browser_navigator.cc -index b304e3ebb6bb1..e171cc7b747ca 100644 +index ca5ad72b0707e..ea229dbf98656 100644 --- chrome/browser/ui/browser_navigator.cc +++ chrome/browser/ui/browser_navigator.cc -@@ -455,6 +455,13 @@ std::unique_ptr CreateTargetContents( +@@ -451,6 +451,13 @@ std::unique_ptr CreateTargetContents( std::unique_ptr target_contents = WebContents::Create(create_params); diff --git a/patch/patches/chrome_browser_content_settings.patch b/patch/patches/chrome_browser_content_settings.patch index da0b94a62..3359894af 100644 --- a/patch/patches/chrome_browser_content_settings.patch +++ b/patch/patches/chrome_browser_content_settings.patch @@ -1,16 +1,16 @@ diff --git chrome/browser/content_settings/host_content_settings_map_factory.cc chrome/browser/content_settings/host_content_settings_map_factory.cc -index 173582c7c4904..bbf57904b6de9 100644 +index 05dd1c1b9741a..322dcb5feed00 100644 --- chrome/browser/content_settings/host_content_settings_map_factory.cc +++ chrome/browser/content_settings/host_content_settings_map_factory.cc -@@ -8,6 +8,7 @@ - +@@ -9,6 +9,7 @@ #include "base/feature_list.h" + #include "build/build_config.h" #include "build/buildflag.h" +#include "cef/libcef/features/runtime.h" #include "chrome/browser/content_settings/one_time_geolocation_permission_provider.h" #include "chrome/browser/permissions/last_tab_standing_tracker_factory.h" #include "chrome/browser/profiles/off_the_record_profile_impl.h" -@@ -22,6 +23,10 @@ +@@ -23,6 +24,10 @@ #include "extensions/buildflags/buildflags.h" #include "ui/webui/webui_allowlist_provider.h" @@ -19,24 +19,23 @@ index 173582c7c4904..bbf57904b6de9 100644 +#endif + #if BUILDFLAG(ENABLE_EXTENSIONS) - #include "chrome/browser/extensions/extension_service.h" - #include "extensions/browser/extension_system.h" -@@ -51,8 +56,14 @@ HostContentSettingsMapFactory::HostContentSettingsMapFactory() + #include "base/trace_event/trace_event.h" + #include "chrome/browser/extensions/api/content_settings/content_settings_custom_extension_provider.h" +@@ -51,7 +56,13 @@ HostContentSettingsMapFactory::HostContentSettingsMapFactory() DependsOn(SupervisedUserSettingsServiceFactory::GetInstance()); #endif #if BUILDFLAG(ENABLE_EXTENSIONS) +#if BUILDFLAG(ENABLE_CEF) + if (!cef::IsAlloyRuntimeEnabled() || extensions::ExtensionsEnabled()) { +#endif - DependsOn( - extensions::ExtensionsBrowserClient::Get()->GetExtensionSystemFactory()); + DependsOn(extensions::ContentSettingsService::GetFactoryInstance()); +#if BUILDFLAG(ENABLE_CEF) + } +#endif #endif } -@@ -110,10 +121,16 @@ scoped_refptr +@@ -111,6 +122,9 @@ scoped_refptr } #if BUILDFLAG(ENABLE_EXTENSIONS) @@ -45,8 +44,11 @@ index 173582c7c4904..bbf57904b6de9 100644 +#endif // These must be registered before before the HostSettings are passed over to // the IOThread. Simplest to do this on construction. - extensions::ExtensionService::RegisterContentSettings(settings_map.get(), - profile); + settings_map->RegisterProvider( +@@ -123,6 +137,9 @@ scoped_refptr + // the case where profile->IsOffTheRecord() is true? And what is the + // interaction with profile->IsGuestSession()? + false)); +#if BUILDFLAG(ENABLE_CEF) + } +#endif @@ -54,7 +56,7 @@ index 173582c7c4904..bbf57904b6de9 100644 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) SupervisedUserSettingsService* supervised_service = diff --git components/content_settings/renderer/content_settings_agent_impl.cc components/content_settings/renderer/content_settings_agent_impl.cc -index 274b468f69a93..70dae07f3b883 100644 +index c88d87dc4c5f0..5f6d19e50c304 100644 --- components/content_settings/renderer/content_settings_agent_impl.cc +++ components/content_settings/renderer/content_settings_agent_impl.cc @@ -170,7 +170,7 @@ ContentSetting GetContentSettingFromRulesImpl( diff --git a/patch/patches/chrome_browser_context_menus.patch b/patch/patches/chrome_browser_context_menus.patch index c4f469831..c8109af61 100644 --- a/patch/patches/chrome_browser_context_menus.patch +++ b/patch/patches/chrome_browser_context_menus.patch @@ -1,8 +1,8 @@ diff --git chrome/browser/renderer_context_menu/render_view_context_menu.cc chrome/browser/renderer_context_menu/render_view_context_menu.cc -index 9729ece5b3ffe..6a31b31567f24 100644 +index fa211d7a0d997..cea251366f5d9 100644 --- chrome/browser/renderer_context_menu/render_view_context_menu.cc +++ chrome/browser/renderer_context_menu/render_view_context_menu.cc -@@ -280,6 +280,13 @@ base::OnceCallback* GetMenuShownCallback() { +@@ -278,6 +278,13 @@ base::OnceCallback* GetMenuShownCallback() { return callback.get(); } @@ -27,7 +27,7 @@ index 9729ece5b3ffe..6a31b31567f24 100644 id = CollapseCommandsForUMA(id); const auto& map = GetIdcToUmaMap(type); auto it = map.find(id); -@@ -667,6 +678,14 @@ RenderViewContextMenu::RenderViewContextMenu( +@@ -673,6 +684,14 @@ RenderViewContextMenu::RenderViewContextMenu( system_app_ = GetBrowser() && GetBrowser()->app_controller() ? GetBrowser()->app_controller()->system_app() : nullptr; @@ -42,7 +42,7 @@ index 9729ece5b3ffe..6a31b31567f24 100644 } RenderViewContextMenu::~RenderViewContextMenu() = default; -@@ -1033,6 +1052,12 @@ void RenderViewContextMenu::InitMenu() { +@@ -1031,6 +1050,12 @@ void RenderViewContextMenu::InitMenu() { // menu, meaning that each menu item added/removed in this function will cause // it to visibly jump on the screen (see b/173569669). AppendQuickAnswersItems(); @@ -55,7 +55,7 @@ index 9729ece5b3ffe..6a31b31567f24 100644 } Profile* RenderViewContextMenu::GetProfile() const { -@@ -2819,6 +2844,12 @@ void RenderViewContextMenu::RegisterMenuShownCallbackForTesting( +@@ -2849,6 +2874,12 @@ void RenderViewContextMenu::RegisterMenuShownCallbackForTesting( *GetMenuShownCallback() = std::move(cb); } @@ -69,10 +69,10 @@ index 9729ece5b3ffe..6a31b31567f24 100644 RenderViewContextMenu::GetHandlersForLinkUrl() { ProtocolHandlerRegistry::ProtocolHandlerList handlers = diff --git chrome/browser/renderer_context_menu/render_view_context_menu.h chrome/browser/renderer_context_menu/render_view_context_menu.h -index 524cff207c179..801def29a8636 100644 +index 17efc6e786bfb..58b5ea1f2750b 100644 --- chrome/browser/renderer_context_menu/render_view_context_menu.h +++ chrome/browser/renderer_context_menu/render_view_context_menu.h -@@ -109,6 +109,12 @@ class RenderViewContextMenu : public RenderViewContextMenuBase, +@@ -113,6 +113,12 @@ class RenderViewContextMenu : public RenderViewContextMenuBase, static void RegisterMenuShownCallbackForTesting( base::OnceCallback cb); @@ -85,7 +85,7 @@ index 524cff207c179..801def29a8636 100644 protected: Profile* GetProfile() const; -@@ -307,6 +313,9 @@ class RenderViewContextMenu : public RenderViewContextMenuBase, +@@ -312,6 +318,9 @@ class RenderViewContextMenu : public RenderViewContextMenuBase, // built. bool is_protocol_submenu_valid_ = false; @@ -132,10 +132,10 @@ index f40f15c23bfb2..06d4d197ce137 100644 command_executed_ = true; RecordUsedItem(id); diff --git components/renderer_context_menu/render_view_context_menu_base.h components/renderer_context_menu/render_view_context_menu_base.h -index 051953091fd4f..7e771526ce52a 100644 +index 2b7d7d98615d1..9e47cb40c728c 100644 --- components/renderer_context_menu/render_view_context_menu_base.h +++ components/renderer_context_menu/render_view_context_menu_base.h -@@ -82,6 +82,9 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate, +@@ -86,6 +86,9 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate, const ui::SimpleMenuModel& menu_model() const { return menu_model_; } const content::ContextMenuParams& params() const { return params_; } @@ -145,7 +145,7 @@ index 051953091fd4f..7e771526ce52a 100644 // Returns true if the specified command id is known and valid for // this menu. If the command is known |enabled| is set to indicate -@@ -90,6 +93,9 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate, +@@ -94,6 +97,9 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate, // SimpleMenuModel::Delegate implementation. bool IsCommandIdChecked(int command_id) const override; @@ -155,7 +155,7 @@ index 051953091fd4f..7e771526ce52a 100644 void ExecuteCommand(int command_id, int event_flags) override; void OnMenuWillShow(ui::SimpleMenuModel* source) override; void MenuClosed(ui::SimpleMenuModel* source) override; -@@ -120,6 +126,9 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate, +@@ -124,6 +130,9 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate, content::WebContents* GetWebContents() const override; content::BrowserContext* GetBrowserContext() const override; @@ -165,7 +165,7 @@ index 051953091fd4f..7e771526ce52a 100644 protected: friend class RenderViewContextMenuTest; friend class RenderViewContextMenuPrefsTest; -@@ -157,9 +166,6 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate, +@@ -161,9 +170,6 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate, // TODO(oshima): Remove this. virtual void AppendPlatformEditableItems() {} diff --git a/patch/patches/chrome_browser_net_export.patch b/patch/patches/chrome_browser_net_export.patch index a6704d124..c8eb5c3ef 100644 --- a/patch/patches/chrome_browser_net_export.patch +++ b/patch/patches/chrome_browser_net_export.patch @@ -1,5 +1,5 @@ diff --git chrome/browser/ui/BUILD.gn chrome/browser/ui/BUILD.gn -index e5811d45bd4b6..4f532d65e963f 100644 +index e9a748c91f743..1b4cc72352e67 100644 --- chrome/browser/ui/BUILD.gn +++ chrome/browser/ui/BUILD.gn @@ -11,6 +11,7 @@ import("//build/config/features.gni") @@ -10,7 +10,7 @@ index e5811d45bd4b6..4f532d65e963f 100644 import("//chrome/browser/buildflags.gni") import("//chrome/common/features.gni") import("//chromeos/assistant/assistant.gni") -@@ -347,6 +348,10 @@ static_library("ui") { +@@ -357,6 +358,10 @@ static_library("ui") { "//build/config/compiler:wexit_time_destructors", ] @@ -21,7 +21,7 @@ index e5811d45bd4b6..4f532d65e963f 100644 # Since browser and browser_ui actually depend on each other, # we must omit the dependency from browser_ui to browser. # However, this means browser_ui and browser should more or less -@@ -369,6 +374,7 @@ static_library("ui") { +@@ -379,6 +384,7 @@ static_library("ui") { "//build:branding_buildflags", "//build:chromeos_buildflags", "//cc/paint", @@ -29,7 +29,7 @@ index e5811d45bd4b6..4f532d65e963f 100644 "//chrome:extra_resources", "//chrome:resources", "//chrome:strings", -@@ -4984,6 +4990,7 @@ static_library("ui") { +@@ -5053,6 +5059,7 @@ static_library("ui") { if (enable_basic_printing) { deps += [ "//components/printing/browser", @@ -38,7 +38,7 @@ index e5811d45bd4b6..4f532d65e963f 100644 ] } diff --git chrome/browser/ui/webui/net_export_ui.cc chrome/browser/ui/webui/net_export_ui.cc -index 096f4ca97179d..d2c731625b9d6 100644 +index a57128a2803fe..1015d50db53ee 100644 --- chrome/browser/ui/webui/net_export_ui.cc +++ chrome/browser/ui/webui/net_export_ui.cc @@ -22,6 +22,7 @@ @@ -58,9 +58,9 @@ index 096f4ca97179d..d2c731625b9d6 100644 +#endif + #if defined(OS_ANDROID) - #include "chrome/browser/android/intent_helper.h" + #include "components/browser_ui/share/android/intent_helper.h" #endif -@@ -138,6 +143,13 @@ class NetExportMessageHandler +@@ -142,6 +147,13 @@ class NetExportMessageHandler // NetLog file. void ShowSelectFileDialog(const base::FilePath& default_path); @@ -74,7 +74,7 @@ index 096f4ca97179d..d2c731625b9d6 100644 // Cached pointer to SystemNetworkContextManager's NetExportFileWriter. net_log::NetExportFileWriter* file_writer_; -@@ -233,6 +245,13 @@ void NetExportMessageHandler::OnStartNetLog(const base::ListValue* list) { +@@ -235,6 +247,13 @@ void NetExportMessageHandler::OnStartNetLog(const base::ListValue* list) { if (UsingMobileUI()) { StartNetLog(base::FilePath()); } else { @@ -88,7 +88,7 @@ index 096f4ca97179d..d2c731625b9d6 100644 base::FilePath initial_dir = last_save_dir.Pointer()->empty() ? DownloadPrefs::FromBrowserContext( web_ui()->GetWebContents()->GetBrowserContext())->DownloadPath() : -@@ -249,6 +268,7 @@ void NetExportMessageHandler::OnStopNetLog(const base::ListValue* list) { +@@ -251,6 +270,7 @@ void NetExportMessageHandler::OnStopNetLog(const base::ListValue* list) { std::unique_ptr ui_thread_polled_data( new base::DictionaryValue()); @@ -96,7 +96,7 @@ index 096f4ca97179d..d2c731625b9d6 100644 Profile* profile = Profile::FromWebUI(web_ui()); SetIfNotNull(ui_thread_polled_data.get(), "prerenderInfo", chrome_browser_net::GetPrerenderInfo(profile)); -@@ -258,6 +278,7 @@ void NetExportMessageHandler::OnStopNetLog(const base::ListValue* list) { +@@ -260,6 +280,7 @@ void NetExportMessageHandler::OnStopNetLog(const base::ListValue* list) { SetIfNotNull(ui_thread_polled_data.get(), "serviceProviders", chrome_browser_net::GetWindowsServiceProviders()); #endif @@ -104,7 +104,7 @@ index 096f4ca97179d..d2c731625b9d6 100644 file_writer_->StopNetLog(std::move(ui_thread_polled_data)); } -@@ -374,6 +395,38 @@ void NetExportMessageHandler::ShowSelectFileDialog( +@@ -375,6 +396,38 @@ void NetExportMessageHandler::ShowSelectFileDialog( &file_type_info, 0, base::FilePath::StringType(), owning_window, nullptr); } diff --git a/patch/patches/chrome_browser_profile_menu.patch b/patch/patches/chrome_browser_profile_menu.patch index f0ebd96d1..e94d01fca 100644 --- a/patch/patches/chrome_browser_profile_menu.patch +++ b/patch/patches/chrome_browser_profile_menu.patch @@ -14,10 +14,10 @@ index c00884e06f960..858fdb75529f8 100644 : profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER; } diff --git chrome/browser/ui/views/profiles/incognito_menu_view.cc chrome/browser/ui/views/profiles/incognito_menu_view.cc -index 8a93e597977b0..4d0faa950a2af 100644 +index 38970b9869c05..35dd0be0030ed 100644 --- chrome/browser/ui/views/profiles/incognito_menu_view.cc +++ chrome/browser/ui/views/profiles/incognito_menu_view.cc -@@ -37,7 +37,9 @@ +@@ -38,7 +38,9 @@ IncognitoMenuView::IncognitoMenuView(views::Button* anchor_button, Browser* browser) : ProfileMenuViewBase(anchor_button, browser) { @@ -29,10 +29,10 @@ index 8a93e597977b0..4d0faa950a2af 100644 chrome::RecordDialogCreation( diff --git chrome/browser/ui/views/profiles/profile_menu_view_base.cc chrome/browser/ui/views/profiles/profile_menu_view_base.cc -index 8dffbd45f0e38..1e162823bd817 100644 +index 7f8f15b406de5..d0cf255156980 100644 --- chrome/browser/ui/views/profiles/profile_menu_view_base.cc +++ chrome/browser/ui/views/profiles/profile_menu_view_base.cc -@@ -511,7 +511,9 @@ void ProfileMenuViewBase::ShowBubble(profiles::BubbleViewMode view_mode, +@@ -512,7 +512,9 @@ void ProfileMenuViewBase::ShowBubble(profiles::BubbleViewMode view_mode, ProfileMenuViewBase* bubble = nullptr; if (view_mode == profiles::BUBBLE_VIEW_MODE_INCOGNITO) { @@ -42,4 +42,4 @@ index 8dffbd45f0e38..1e162823bd817 100644 + browser->profile()->GetOTRProfileID().IsUniqueForCEF())); bubble = new IncognitoMenuView(anchor_button, browser); } else { - DCHECK_EQ(profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, view_mode); + #if BUILDFLAG(IS_CHROMEOS_ASH) diff --git a/patch/patches/chrome_browser_profiles.patch b/patch/patches/chrome_browser_profiles.patch index 9f2d42fa4..6dbecf792 100644 --- a/patch/patches/chrome_browser_profiles.patch +++ b/patch/patches/chrome_browser_profiles.patch @@ -1,8 +1,8 @@ diff --git chrome/browser/profiles/off_the_record_profile_impl.cc chrome/browser/profiles/off_the_record_profile_impl.cc -index 4e76c7a55ac03..a4614a9d2cecb 100644 +index 9022569bd6b32..06cb80bf601ef 100644 --- chrome/browser/profiles/off_the_record_profile_impl.cc +++ chrome/browser/profiles/off_the_record_profile_impl.cc -@@ -636,7 +636,9 @@ std::unique_ptr Profile::CreateOffTheRecordProfile( +@@ -620,7 +620,9 @@ std::unique_ptr Profile::CreateOffTheRecordProfile( #endif if (!profile) profile = std::make_unique(parent, otr_profile_id); @@ -14,10 +14,10 @@ index 4e76c7a55ac03..a4614a9d2cecb 100644 } diff --git chrome/browser/profiles/profile.cc chrome/browser/profiles/profile.cc -index 5d6cb6f377f81..8c4b53d2f7cc3 100644 +index 77c15d82fb04e..791ee83161633 100644 --- chrome/browser/profiles/profile.cc +++ chrome/browser/profiles/profile.cc -@@ -86,6 +86,7 @@ base::LazyInstance>::Leaky +@@ -83,6 +83,7 @@ base::LazyInstance>::Leaky namespace { @@ -25,7 +25,7 @@ index 5d6cb6f377f81..8c4b53d2f7cc3 100644 const char kDevToolsOTRProfileIDPrefix[] = "Devtools::BrowserContext"; const char kMediaRouterOTRProfileIDPrefix[] = "MediaRouter::Presentation"; const char kTestOTRProfileIDPrefix[] = "Test::OTR"; -@@ -100,6 +101,8 @@ bool Profile::OTRProfileID::AllowsBrowserWindows() const { +@@ -97,6 +98,8 @@ bool Profile::OTRProfileID::AllowsBrowserWindows() const { // DevTools::BrowserContext and MediaRouter::Presentation are an // exception to this ban. return *this == PrimaryID() || @@ -34,7 +34,7 @@ index 5d6cb6f377f81..8c4b53d2f7cc3 100644 base::StartsWith(profile_id_, kDevToolsOTRProfileIDPrefix, base::CompareCase::SENSITIVE) || base::StartsWith(profile_id_, kMediaRouterOTRProfileIDPrefix, -@@ -121,6 +124,16 @@ Profile::OTRProfileID Profile::OTRProfileID::CreateUnique( +@@ -118,6 +121,16 @@ Profile::OTRProfileID Profile::OTRProfileID::CreateUnique( base::GUID::GenerateRandomV4().AsLowercaseString().c_str())); } @@ -52,10 +52,10 @@ index 5d6cb6f377f81..8c4b53d2f7cc3 100644 Profile::OTRProfileID Profile::OTRProfileID::CreateUniqueForDevTools() { return CreateUnique(kDevToolsOTRProfileIDPrefix); diff --git chrome/browser/profiles/profile.h chrome/browser/profiles/profile.h -index bf7fc55a91e20..d6209550b6567 100644 +index 1466666f50f4e..704fda78a1842 100644 --- chrome/browser/profiles/profile.h +++ chrome/browser/profiles/profile.h -@@ -112,6 +112,10 @@ class Profile : public content::BrowserContext { +@@ -98,6 +98,10 @@ class Profile : public content::BrowserContext { // be applicable to run. Please see crbug.com/1098697#c3 for more details. static OTRProfileID CreateUnique(const std::string& profile_id_prefix); @@ -66,7 +66,7 @@ index bf7fc55a91e20..d6209550b6567 100644 // Creates a unique OTR profile id to be used for DevTools browser contexts. static OTRProfileID CreateUniqueForDevTools(); -@@ -514,6 +518,8 @@ class Profile : public content::BrowserContext { +@@ -483,6 +487,8 @@ class Profile : public content::BrowserContext { virtual void RecordPrimaryMainFrameNavigation() = 0; @@ -75,7 +75,7 @@ index bf7fc55a91e20..d6209550b6567 100644 protected: // Creates an OffTheRecordProfile which points to this Profile. static std::unique_ptr CreateOffTheRecordProfile( -@@ -525,8 +531,6 @@ class Profile : public content::BrowserContext { +@@ -494,8 +500,6 @@ class Profile : public content::BrowserContext { static PrefStore* CreateExtensionPrefStore(Profile*, bool incognito_pref_store); @@ -85,10 +85,10 @@ index bf7fc55a91e20..d6209550b6567 100644 virtual bool IsSignedIn() = 0; diff --git chrome/browser/profiles/profile_impl.cc chrome/browser/profiles/profile_impl.cc -index 56ce2f16cdd12..82e8d76090ce1 100644 +index d8df8be6d9d54..f21f0d40a8e2c 100644 --- chrome/browser/profiles/profile_impl.cc +++ chrome/browser/profiles/profile_impl.cc -@@ -1026,7 +1026,9 @@ Profile* ProfileImpl::GetOffTheRecordProfile(const OTRProfileID& otr_profile_id, +@@ -989,7 +989,9 @@ Profile* ProfileImpl::GetOffTheRecordProfile(const OTRProfileID& otr_profile_id, otr_profiles_[otr_profile_id] = std::move(otr_profile); @@ -100,10 +100,10 @@ index 56ce2f16cdd12..82e8d76090ce1 100644 return raw_otr_profile; } diff --git chrome/browser/profiles/profile_manager.cc chrome/browser/profiles/profile_manager.cc -index b6c4eee4c9d1a..c8158ff856167 100644 +index 8aa1fb3410e95..4509880095d9a 100644 --- chrome/browser/profiles/profile_manager.cc +++ chrome/browser/profiles/profile_manager.cc -@@ -495,7 +495,7 @@ ProfileManager::ProfileManager(const base::FilePath& user_data_dir) +@@ -501,7 +501,7 @@ ProfileManager::ProfileManager(const base::FilePath& user_data_dir) base::Unretained(this))); #endif @@ -113,10 +113,10 @@ index b6c4eee4c9d1a..c8158ff856167 100644 } diff --git chrome/browser/profiles/profile_manager.h chrome/browser/profiles/profile_manager.h -index c4d9b563a2bc1..13de953c75ad2 100644 +index d6120ff3abd2e..2f03384a0b32d 100644 --- chrome/browser/profiles/profile_manager.h +++ chrome/browser/profiles/profile_manager.h -@@ -119,7 +119,7 @@ class ProfileManager : public Profile::Delegate { +@@ -123,7 +123,7 @@ class ProfileManager : public Profile::Delegate { // acceptable. Returns null if creation of the new profile fails. // TODO(bauerb): Migrate calls from other code to GetProfileByPath(), then // make this method private. @@ -125,7 +125,7 @@ index c4d9b563a2bc1..13de953c75ad2 100644 // Returns regular or off-the-record profile given its profile key. static Profile* GetProfileFromProfileKey(ProfileKey* profile_key); -@@ -151,7 +151,7 @@ class ProfileManager : public Profile::Delegate { +@@ -155,7 +155,7 @@ class ProfileManager : public Profile::Delegate { // Returns true if the profile pointer is known to point to an existing // profile. @@ -135,7 +135,7 @@ index c4d9b563a2bc1..13de953c75ad2 100644 // Returns the directory where the first created profile is stored, // relative to the user data directory currently in use. diff --git chrome/browser/profiles/renderer_updater.cc chrome/browser/profiles/renderer_updater.cc -index 96b9b82ffe61d..31d23c7ca954f 100644 +index 6602171b1c29b..f49d57df645fd 100644 --- chrome/browser/profiles/renderer_updater.cc +++ chrome/browser/profiles/renderer_updater.cc @@ -8,6 +8,7 @@ @@ -146,7 +146,7 @@ index 96b9b82ffe61d..31d23c7ca954f 100644 #include "chrome/browser/content_settings/content_settings_manager_delegate.h" #include "chrome/browser/content_settings/host_content_settings_map_factory.h" #include "chrome/browser/profiles/profile.h" -@@ -60,8 +61,12 @@ void GetGuestViewDefaultContentSettingRules( +@@ -64,8 +65,12 @@ void GetGuestViewDefaultContentSettingRules( } // namespace RendererUpdater::RendererUpdater(Profile* profile) : profile_(profile) { diff --git a/patch/patches/chrome_browser_safe_browsing.patch b/patch/patches/chrome_browser_safe_browsing.patch index 4a7421769..2280c7819 100644 --- a/patch/patches/chrome_browser_safe_browsing.patch +++ b/patch/patches/chrome_browser_safe_browsing.patch @@ -1,8 +1,8 @@ diff --git chrome/browser/safe_browsing/BUILD.gn chrome/browser/safe_browsing/BUILD.gn -index abc27a26195d8..67124b5eccf50 100644 +index d03245c9fe864..6a8899f3487a6 100644 --- chrome/browser/safe_browsing/BUILD.gn +++ chrome/browser/safe_browsing/BUILD.gn -@@ -27,6 +27,7 @@ static_library("safe_browsing") { +@@ -26,6 +26,7 @@ static_library("safe_browsing") { "//chrome/common:constants", "//components/browser_sync", "//components/enterprise/common:strings", diff --git a/patch/patches/chrome_browser_themes.patch b/patch/patches/chrome_browser_themes.patch index f84953a5c..38babe524 100644 --- a/patch/patches/chrome_browser_themes.patch +++ b/patch/patches/chrome_browser_themes.patch @@ -1,5 +1,5 @@ diff --git chrome/browser/themes/theme_service.cc chrome/browser/themes/theme_service.cc -index abba09a2eda93..d9e23612dfa0e 100644 +index 21f6cb93a3778..31134a9495858 100644 --- chrome/browser/themes/theme_service.cc +++ chrome/browser/themes/theme_service.cc @@ -26,6 +26,7 @@ @@ -9,7 +9,7 @@ index abba09a2eda93..d9e23612dfa0e 100644 +#include "cef/libcef/features/runtime.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/theme_installed_infobar_delegate.h" - #include "chrome/browser/profiles/profile.h" + #include "chrome/browser/new_tab_page/chrome_colors/chrome_colors_service.h" @@ -58,6 +59,10 @@ #include "third_party/abseil-cpp/absl/types/optional.h" #include "ui/base/layout.h" @@ -21,7 +21,7 @@ index abba09a2eda93..d9e23612dfa0e 100644 #if BUILDFLAG(ENABLE_EXTENSIONS) #include "base/scoped_observation.h" #include "extensions/browser/extension_registry_observer.h" -@@ -280,11 +285,19 @@ void ThemeService::Init() { +@@ -281,11 +286,19 @@ void ThemeService::Init() { // OnExtensionServiceReady. Otherwise, the ThemeObserver won't be // constructed in time to observe the corresponding events. #if BUILDFLAG(ENABLE_EXTENSIONS) diff --git a/patch/patches/chrome_plugins.patch b/patch/patches/chrome_plugins.patch index fe68578e9..3e6650f42 100644 --- a/patch/patches/chrome_plugins.patch +++ b/patch/patches/chrome_plugins.patch @@ -1,5 +1,5 @@ diff --git chrome/browser/plugins/plugin_info_host_impl.cc chrome/browser/plugins/plugin_info_host_impl.cc -index 4cb831441aed4..ed0092720b63f 100644 +index 30017a7261496..ac208ec1fee24 100644 --- chrome/browser/plugins/plugin_info_host_impl.cc +++ chrome/browser/plugins/plugin_info_host_impl.cc @@ -18,6 +18,7 @@ @@ -22,7 +22,7 @@ index 4cb831441aed4..ed0092720b63f 100644 #if BUILDFLAG(ENABLE_EXTENSIONS) #include "components/guest_view/browser/guest_view_base.h" #include "extensions/browser/extension_registry.h" -@@ -99,6 +105,9 @@ bool IsPluginLoadingAccessibleResourceInWebView( +@@ -102,6 +108,9 @@ bool IsPluginLoadingAccessibleResourceInWebView( extensions::ExtensionRegistry* extension_registry, int process_id, const GURL& resource) { @@ -32,7 +32,7 @@ index 4cb831441aed4..ed0092720b63f 100644 extensions::WebViewRendererState* renderer_state = extensions::WebViewRendererState::GetInstance(); std::string partition_id; -@@ -127,14 +136,18 @@ bool IsPluginLoadingAccessibleResourceInWebView( +@@ -130,14 +139,18 @@ bool IsPluginLoadingAccessibleResourceInWebView( PluginInfoHostImpl::Context::Context(int render_process_id, Profile* profile) : render_process_id_(render_process_id), @@ -54,7 +54,7 @@ index 4cb831441aed4..ed0092720b63f 100644 } PluginInfoHostImpl::Context::~Context() {} -@@ -214,6 +227,15 @@ void PluginInfoHostImpl::Context::DecidePluginStatus( +@@ -217,6 +230,15 @@ void PluginInfoHostImpl::Context::DecidePluginStatus( PluginMetadata::SecurityStatus security_status, const std::string& plugin_identifier, chrome::mojom::PluginStatus* status) const { @@ -70,7 +70,7 @@ index 4cb831441aed4..ed0092720b63f 100644 if (security_status == PluginMetadata::SECURITY_STATUS_FULLY_TRUSTED) { *status = chrome::mojom::PluginStatus::kAllowed; return; -@@ -329,17 +351,41 @@ bool PluginInfoHostImpl::Context::FindEnabledPlugin( +@@ -324,17 +346,41 @@ bool PluginInfoHostImpl::Context::FindEnabledPlugin( return false; } @@ -186,10 +186,10 @@ index 8c2547056ec26..2ab3252dca708 100644 // that the X-Frame-Options protection mechanism is set to either DENY or // SAMEORIGIN. diff --git chrome/renderer/chrome_content_renderer_client.cc chrome/renderer/chrome_content_renderer_client.cc -index 5f0ce2bee4f26..39e29185a11e1 100644 +index 5ff5939031672..01742ddfef449 100644 --- chrome/renderer/chrome_content_renderer_client.cc +++ chrome/renderer/chrome_content_renderer_client.cc -@@ -942,6 +942,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( +@@ -943,6 +943,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( if ((status == chrome::mojom::PluginStatus::kUnauthorized || status == chrome::mojom::PluginStatus::kBlocked) && @@ -197,7 +197,7 @@ index 5f0ce2bee4f26..39e29185a11e1 100644 content_settings_agent_delegate->IsPluginTemporarilyAllowed( identifier)) { status = chrome::mojom::PluginStatus::kAllowed; -@@ -1150,7 +1151,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( +@@ -1144,7 +1145,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( render_frame->GetRemoteAssociatedInterfaces()->GetInterface( plugin_auth_host.BindNewEndpointAndPassReceiver()); plugin_auth_host->BlockedUnauthorizedPlugin(group_name, identifier); @@ -207,7 +207,7 @@ index 5f0ce2bee4f26..39e29185a11e1 100644 break; } case chrome::mojom::PluginStatus::kBlocked: { -@@ -1159,7 +1161,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( +@@ -1153,7 +1155,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name)); placeholder->AllowLoading(); RenderThread::Get()->RecordAction(UserMetricsAction("Plugin_Blocked")); @@ -217,7 +217,7 @@ index 5f0ce2bee4f26..39e29185a11e1 100644 break; } case chrome::mojom::PluginStatus::kBlockedByPolicy: { -@@ -1169,7 +1172,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( +@@ -1163,7 +1166,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( group_name)); RenderThread::Get()->RecordAction( UserMetricsAction("Plugin_BlockedByPolicy")); @@ -227,7 +227,7 @@ index 5f0ce2bee4f26..39e29185a11e1 100644 break; } case chrome::mojom::PluginStatus::kBlockedNoLoading: { -@@ -1177,7 +1181,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( +@@ -1171,7 +1175,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( IDR_BLOCKED_PLUGIN_HTML, l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED_NO_LOADING, group_name)); @@ -238,10 +238,10 @@ index 5f0ce2bee4f26..39e29185a11e1 100644 } } diff --git content/browser/browser_plugin/browser_plugin_guest.h content/browser/browser_plugin/browser_plugin_guest.h -index bc13113e725e0..2bc15de23ec4a 100644 +index d596ac1b51e87..64dfdd8cddccb 100644 --- content/browser/browser_plugin/browser_plugin_guest.h +++ content/browser/browser_plugin/browser_plugin_guest.h -@@ -113,6 +113,8 @@ class CONTENT_EXPORT BrowserPluginGuest : public GuestHost, +@@ -116,6 +116,8 @@ class CONTENT_EXPORT BrowserPluginGuest : public GuestHost, gfx::Point GetScreenCoordinates(const gfx::Point& relative_position) const; diff --git a/patch/patches/chrome_renderer.patch b/patch/patches/chrome_renderer.patch index 24eb2712e..af829ba01 100644 --- a/patch/patches/chrome_renderer.patch +++ b/patch/patches/chrome_renderer.patch @@ -1,5 +1,5 @@ diff --git chrome/renderer/BUILD.gn chrome/renderer/BUILD.gn -index fdbff76b66227..d8b6453dffcac 100644 +index 0d6bbf294add1..8b438ff31e2a6 100644 --- chrome/renderer/BUILD.gn +++ chrome/renderer/BUILD.gn @@ -5,6 +5,7 @@ diff --git a/patch/patches/chrome_runtime.patch b/patch/patches/chrome_runtime.patch index ae18b81f3..7ace13e0b 100644 --- a/patch/patches/chrome_runtime.patch +++ b/patch/patches/chrome_runtime.patch @@ -1,5 +1,5 @@ diff --git chrome/app/chrome_main_delegate.cc chrome/app/chrome_main_delegate.cc -index f12e393e0f9bb..51f4898fc25d5 100644 +index 2404d62d189df..4daa969021dd5 100644 --- chrome/app/chrome_main_delegate.cc +++ chrome/app/chrome_main_delegate.cc @@ -29,6 +29,7 @@ @@ -19,7 +19,7 @@ index f12e393e0f9bb..51f4898fc25d5 100644 #if defined(OS_WIN) // Reach out to chrome_elf for the truth on the user data directory. // Note that in tests, this links to chrome_elf_test_stubs. -@@ -708,7 +711,9 @@ void ChromeMainDelegate::PostFieldTrialInitialization() { +@@ -712,7 +715,9 @@ void ChromeMainDelegate::PostFieldTrialInitialization() { } #if defined(OS_WIN) @@ -29,7 +29,7 @@ index f12e393e0f9bb..51f4898fc25d5 100644 base::sequence_manager::internal::ThreadControllerPowerMonitor:: InitializeOnMainThread(); #endif -@@ -1003,6 +1008,7 @@ void ChromeMainDelegate::PreSandboxStartup() { +@@ -1007,6 +1012,7 @@ void ChromeMainDelegate::PreSandboxStartup() { std::string process_type = command_line.GetSwitchValueASCII(switches::kProcessType); @@ -37,7 +37,7 @@ index f12e393e0f9bb..51f4898fc25d5 100644 crash_reporter::InitializeCrashKeys(); #if defined(OS_POSIX) -@@ -1013,6 +1019,7 @@ void ChromeMainDelegate::PreSandboxStartup() { +@@ -1017,6 +1023,7 @@ void ChromeMainDelegate::PreSandboxStartup() { InitMacCrashReporter(command_line, process_type); SetUpInstallerPreferences(command_line); #endif @@ -45,7 +45,7 @@ index f12e393e0f9bb..51f4898fc25d5 100644 #if defined(OS_WIN) child_process_logging::Init(); -@@ -1136,6 +1143,7 @@ void ChromeMainDelegate::PreSandboxStartup() { +@@ -1140,6 +1147,7 @@ void ChromeMainDelegate::PreSandboxStartup() { locale; } @@ -53,7 +53,7 @@ index f12e393e0f9bb..51f4898fc25d5 100644 #if defined(OS_POSIX) && !defined(OS_MAC) // Zygote needs to call InitCrashReporter() in RunZygote(). if (process_type != switches::kZygoteProcess) { -@@ -1168,6 +1176,7 @@ void ChromeMainDelegate::PreSandboxStartup() { +@@ -1172,6 +1180,7 @@ void ChromeMainDelegate::PreSandboxStartup() { // After all the platform Breakpads have been initialized, store the command // line for crash reporting. crash_keys::SetCrashKeysFromCommandLine(command_line); @@ -61,7 +61,7 @@ index f12e393e0f9bb..51f4898fc25d5 100644 #if BUILDFLAG(ENABLE_PDF) MaybePatchGdiGetFontData(); -@@ -1266,6 +1275,7 @@ void ChromeMainDelegate::ZygoteForked() { +@@ -1270,6 +1279,7 @@ void ChromeMainDelegate::ZygoteForked() { SetUpProfilingShutdownHandler(); } @@ -69,7 +69,7 @@ index f12e393e0f9bb..51f4898fc25d5 100644 // Needs to be called after we have chrome::DIR_USER_DATA. BrowserMain sets // this up for the browser process in a different manner. const base::CommandLine* command_line = -@@ -1282,6 +1292,7 @@ void ChromeMainDelegate::ZygoteForked() { +@@ -1286,6 +1296,7 @@ void ChromeMainDelegate::ZygoteForked() { // Reset the command line for the newly spawned process. crash_keys::SetCrashKeysFromCommandLine(*command_line); @@ -78,7 +78,7 @@ index f12e393e0f9bb..51f4898fc25d5 100644 #endif // defined(OS_LINUX) || defined(OS_CHROMEOS) diff --git chrome/browser/chrome_browser_main.cc chrome/browser/chrome_browser_main.cc -index 3f433969229eb..560f1e830a4e7 100644 +index 15a26590d35e4..5f95666dd7967 100644 --- chrome/browser/chrome_browser_main.cc +++ chrome/browser/chrome_browser_main.cc @@ -50,6 +50,7 @@ @@ -89,7 +89,7 @@ index 3f433969229eb..560f1e830a4e7 100644 #include "chrome/browser/about_flags.h" #include "chrome/browser/active_use_util.h" #include "chrome/browser/after_startup_task_utils.h" -@@ -911,8 +912,10 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() { +@@ -919,8 +920,10 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() { #if !defined(OS_ANDROID) // Create the RunLoop for MainMessageLoopRun() to use, and pass a copy of // its QuitClosure to the BrowserProcessImpl to call when it is time to exit. @@ -101,7 +101,7 @@ index 3f433969229eb..560f1e830a4e7 100644 // These members must be initialized before returning from this function. // Android doesn't use StartupBrowserCreator. -@@ -1686,11 +1689,14 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { +@@ -1690,11 +1693,14 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { // This step is costly and is already measured in // Startup.StartupBrowserCreator_Start. // See the comment above for an explanation of |process_command_line|. @@ -156,7 +156,7 @@ index 95d1ebc190910..13cdfa52db108 100644 +#endif } diff --git chrome/browser/chrome_content_browser_client.cc chrome/browser/chrome_content_browser_client.cc -index 93a402f34c0da..92d30ea06b5f1 100644 +index 4ba206e769e7e..1d2cf1b866dfa 100644 --- chrome/browser/chrome_content_browser_client.cc +++ chrome/browser/chrome_content_browser_client.cc @@ -28,6 +28,7 @@ @@ -167,7 +167,7 @@ index 93a402f34c0da..92d30ea06b5f1 100644 #include "chrome/browser/accessibility/accessibility_labels_service.h" #include "chrome/browser/accessibility/accessibility_labels_service_factory.h" #include "chrome/browser/after_startup_task_utils.h" -@@ -3500,9 +3501,11 @@ void ChromeContentBrowserClient::BrowserURLHandlerCreated( +@@ -3674,9 +3675,11 @@ void ChromeContentBrowserClient::BrowserURLHandlerCreated( &search::HandleNewTabURLReverseRewrite); #endif // defined(OS_ANDROID) @@ -179,19 +179,50 @@ index 93a402f34c0da..92d30ea06b5f1 100644 } base::FilePath ChromeContentBrowserClient::GetDefaultDownloadDirectory() { +@@ -5288,7 +5291,7 @@ void ChromeContentBrowserClient::OnNetworkServiceCreated( + network_service); + } + +-void ChromeContentBrowserClient::ConfigureNetworkContextParams( ++bool ChromeContentBrowserClient::ConfigureNetworkContextParams( + content::BrowserContext* context, + bool in_memory, + const base::FilePath& relative_partition_path, +@@ -5306,6 +5309,8 @@ void ChromeContentBrowserClient::ConfigureNetworkContextParams( + network_context_params->user_agent = GetUserAgent(); + network_context_params->accept_language = GetApplicationLocale(); + } ++ ++ return true; + } + + std::vector +diff --git chrome/browser/chrome_content_browser_client.h chrome/browser/chrome_content_browser_client.h +index 0c8939e57e814..25c0a2acff7dd 100644 +--- chrome/browser/chrome_content_browser_client.h ++++ chrome/browser/chrome_content_browser_client.h +@@ -548,7 +548,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { + override; + void OnNetworkServiceCreated( + network::mojom::NetworkService* network_service) override; +- void ConfigureNetworkContextParams( ++ bool ConfigureNetworkContextParams( + content::BrowserContext* context, + bool in_memory, + const base::FilePath& relative_partition_path, diff --git chrome/browser/prefs/browser_prefs.cc chrome/browser/prefs/browser_prefs.cc -index ce875b5837a36..2ee3cf28b2e6f 100644 +index d5ed8faa24cfb..a30a0eed11278 100644 --- chrome/browser/prefs/browser_prefs.cc +++ chrome/browser/prefs/browser_prefs.cc -@@ -10,6 +10,7 @@ - #include "build/branding_buildflags.h" +@@ -11,6 +11,7 @@ #include "build/build_config.h" + #include "build/chromecast_buildflags.h" #include "build/chromeos_buildflags.h" +#include "cef/libcef/features/features.h" #include "chrome/browser/about_flags.h" #include "chrome/browser/accessibility/accessibility_labels_service.h" #include "chrome/browser/accessibility/accessibility_ui.h" -@@ -164,6 +165,10 @@ +@@ -167,6 +168,10 @@ #include "chrome/browser/background/background_mode_manager.h" #endif @@ -202,7 +233,7 @@ index ce875b5837a36..2ee3cf28b2e6f 100644 #if BUILDFLAG(ENABLE_EXTENSIONS) #include "chrome/browser/accessibility/animation_policy_prefs.h" #include "chrome/browser/apps/platform_apps/shortcut_manager.h" -@@ -1177,6 +1182,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -1195,6 +1200,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, SessionDataService::RegisterProfilePrefs(registry); #endif diff --git a/patch/patches/chrome_runtime_views.patch b/patch/patches/chrome_runtime_views.patch index 1df2dc0a4..b71b365b4 100644 --- a/patch/patches/chrome_runtime_views.patch +++ b/patch/patches/chrome_runtime_views.patch @@ -1,5 +1,5 @@ diff --git chrome/browser/ui/browser_command_controller.cc chrome/browser/ui/browser_command_controller.cc -index 93f3e51084cbe..8103ae19de912 100644 +index 12c161774914c..c681383e3a947 100644 --- chrome/browser/ui/browser_command_controller.cc +++ chrome/browser/ui/browser_command_controller.cc @@ -351,8 +351,10 @@ bool BrowserCommandController::ExecuteCommandWithDisposition( @@ -31,10 +31,10 @@ index 93f3e51084cbe..8103ae19de912 100644 void BrowserCommandController::InitCommandState() { diff --git chrome/browser/ui/views/frame/browser_frame.cc chrome/browser/ui/views/frame/browser_frame.cc -index 79a2b7358eade..976332c2564d2 100644 +index 28cb0acd5a55d..f22ac22d04245 100644 --- chrome/browser/ui/views/frame/browser_frame.cc +++ chrome/browser/ui/views/frame/browser_frame.cc -@@ -72,15 +72,23 @@ bool IsUsingGtkTheme(Profile* profile) { +@@ -73,15 +73,23 @@ bool IsUsingGtkTheme(Profile* profile) { //////////////////////////////////////////////////////////////////////////////// // BrowserFrame, public: @@ -60,7 +60,7 @@ index 79a2b7358eade..976332c2564d2 100644 } BrowserFrame::~BrowserFrame() {} -@@ -140,6 +148,12 @@ gfx::Rect BrowserFrame::GetBoundsForTabStripRegion( +@@ -141,6 +149,12 @@ gfx::Rect BrowserFrame::GetBoundsForTabStripRegion( } int BrowserFrame::GetTopInset() const { @@ -73,7 +73,7 @@ index 79a2b7358eade..976332c2564d2 100644 return browser_frame_view_->GetTopInset(false); } -@@ -174,15 +188,21 @@ void BrowserFrame::GetWindowPlacement(gfx::Rect* bounds, +@@ -175,15 +189,21 @@ void BrowserFrame::GetWindowPlacement(gfx::Rect* bounds, content::KeyboardEventProcessingResult BrowserFrame::PreHandleKeyboardEvent( const content::NativeWebKeyboardEvent& event) { @@ -95,7 +95,16 @@ index 79a2b7358eade..976332c2564d2 100644 browser_frame_view_->OnBrowserViewInitViewsComplete(); } -@@ -353,7 +373,8 @@ void BrowserFrame::SelectNativeTheme() { +@@ -244,6 +264,8 @@ const ui::ThemeProvider* BrowserFrame::GetThemeProvider() const { + + ui::ColorProviderManager::InitializerSupplier* BrowserFrame::GetCustomTheme() + const { ++ if (!browser_view_) ++ return nullptr; + Browser* browser = browser_view_->browser(); + auto* app_controller = browser->app_controller(); + // Ignore GTK+ for web apps with window-controls-overlay as the +@@ -369,7 +391,8 @@ void BrowserFrame::SelectNativeTheme() { // Select between regular, dark and GTK theme. ui::NativeTheme* native_theme = ui::NativeTheme::GetInstanceForNativeUi(); @@ -106,7 +115,7 @@ index 79a2b7358eade..976332c2564d2 100644 // or not we always use the dark ui instance. if (base::FeatureList::IsEnabled( diff --git chrome/browser/ui/views/frame/browser_frame.h chrome/browser/ui/views/frame/browser_frame.h -index e06cd6c3d83db..1f7da7cf79979 100644 +index d32af8b258530..b883d7204ecec 100644 --- chrome/browser/ui/views/frame/browser_frame.h +++ chrome/browser/ui/views/frame/browser_frame.h @@ -54,7 +54,9 @@ enum class TabDragKind { @@ -116,14 +125,14 @@ index e06cd6c3d83db..1f7da7cf79979 100644 + BrowserFrame(); explicit BrowserFrame(BrowserView* browser_view); + void InitBrowserView(BrowserView* browser_view); - ~BrowserFrame() override; - // Initialize the frame (creates the underlying native window). + BrowserFrame(const BrowserFrame&) = delete; + BrowserFrame& operator=(const BrowserFrame&) = delete; diff --git chrome/browser/ui/views/frame/browser_view.cc chrome/browser/ui/views/frame/browser_view.cc -index 84044530181a8..737c41a0d01a5 100644 +index 9f57e739baf84..f0d42b0c98a05 100644 --- chrome/browser/ui/views/frame/browser_view.cc +++ chrome/browser/ui/views/frame/browser_view.cc -@@ -281,11 +281,10 @@ using content::WebContents; +@@ -289,11 +289,10 @@ using content::WebContents; using views::ColumnSet; using web_modal::WebContentsModalDialogHost; @@ -138,7 +147,7 @@ index 84044530181a8..737c41a0d01a5 100644 #if BUILDFLAG(IS_CHROMEOS_ASH) // UMA histograms that record animation smoothness for tab loading animation. -@@ -600,11 +599,22 @@ class BrowserView::AccessibilityModeObserver : public ui::AXModeObserver { +@@ -608,11 +607,22 @@ class BrowserView::AccessibilityModeObserver : public ui::AXModeObserver { /////////////////////////////////////////////////////////////////////////////// // BrowserView, public: @@ -162,7 +171,7 @@ index 84044530181a8..737c41a0d01a5 100644 SetShowIcon(::ShouldShowWindowIcon(browser_.get())); // In forced app mode, all size controls are always disabled. Otherwise, use -@@ -618,7 +628,6 @@ BrowserView::BrowserView(std::unique_ptr browser) +@@ -626,7 +636,6 @@ BrowserView::BrowserView(std::unique_ptr browser) } browser_->tab_strip_model()->AddObserver(this); @@ -170,7 +179,7 @@ index 84044530181a8..737c41a0d01a5 100644 // Top container holds tab strip region and toolbar and lives at the front of // the view hierarchy. -@@ -662,8 +671,15 @@ BrowserView::BrowserView(std::unique_ptr browser) +@@ -672,8 +681,15 @@ BrowserView::BrowserView(std::unique_ptr browser) contents_container->SetLayoutManager(std::make_unique( devtools_web_view_, contents_web_view_)); @@ -188,7 +197,7 @@ index 84044530181a8..737c41a0d01a5 100644 contents_separator_ = top_container_->AddChildView(std::make_unique()); -@@ -1454,6 +1470,8 @@ bool BrowserView::ShouldHideUIForFullscreen() const { +@@ -1523,6 +1539,8 @@ bool BrowserView::ShouldHideUIForFullscreen() const { if (immersive_mode_controller_->IsEnabled()) return false; @@ -197,7 +206,7 @@ index 84044530181a8..737c41a0d01a5 100644 return frame_->GetFrameView()->ShouldHideTopUIForFullscreen(); } -@@ -2527,7 +2545,8 @@ BrowserView::GetNativeViewHostsForTopControlsSlide() const { +@@ -2645,7 +2663,8 @@ BrowserView::GetNativeViewHostsForTopControlsSlide() const { } void BrowserView::ReparentTopContainerForEndOfImmersive() { @@ -207,7 +216,7 @@ index 84044530181a8..737c41a0d01a5 100644 top_container()->DestroyLayer(); AddChildViewAt(top_container(), 0); EnsureFocusOrder(); -@@ -2979,8 +2998,10 @@ void BrowserView::Layout() { +@@ -3097,8 +3116,10 @@ void BrowserView::Layout() { // TODO(jamescook): Why was this in the middle of layout code? toolbar_->location_bar()->omnibox_view()->SetFocusBehavior( @@ -220,7 +229,7 @@ index 84044530181a8..737c41a0d01a5 100644 // Some of the situations when the BrowserView is laid out are: // - Enter/exit immersive fullscreen mode. -@@ -3043,6 +3064,11 @@ void BrowserView::AddedToWidget() { +@@ -3161,6 +3182,11 @@ void BrowserView::AddedToWidget() { SetThemeProfileForWindow(GetNativeWindow(), browser_->profile()); #endif @@ -232,7 +241,7 @@ index 84044530181a8..737c41a0d01a5 100644 toolbar_->Init(); #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) -@@ -3078,13 +3104,9 @@ void BrowserView::AddedToWidget() { +@@ -3196,13 +3222,9 @@ void BrowserView::AddedToWidget() { EnsureFocusOrder(); @@ -249,10 +258,10 @@ index 84044530181a8..737c41a0d01a5 100644 MaybeInitializeWebUITabStrip(); diff --git chrome/browser/ui/views/frame/browser_view.h chrome/browser/ui/views/frame/browser_view.h -index 4709cdd1f29d1..3d79400cbf4a7 100644 +index 05dd759a2cf5b..377ac51e75f3d 100644 --- chrome/browser/ui/views/frame/browser_view.h +++ chrome/browser/ui/views/frame/browser_view.h -@@ -118,11 +118,16 @@ class BrowserView : public BrowserWindow, +@@ -125,11 +125,16 @@ class BrowserView : public BrowserWindow, public webapps::AppBannerManager::Observer { public: METADATA_HEADER(BrowserView); @@ -269,7 +278,7 @@ index 4709cdd1f29d1..3d79400cbf4a7 100644 void set_frame(BrowserFrame* frame) { frame_ = frame; } BrowserFrame* frame() const { return frame_; } -@@ -679,6 +684,12 @@ class BrowserView : public BrowserWindow, +@@ -695,6 +700,12 @@ class BrowserView : public BrowserWindow, return accessibility_focus_highlight_.get(); } @@ -283,7 +292,7 @@ index 4709cdd1f29d1..3d79400cbf4a7 100644 // Do not friend BrowserViewLayout. Use the BrowserViewLayoutDelegate // interface to keep these two classes decoupled and testable. diff --git chrome/browser/ui/views/frame/browser_view_layout.cc chrome/browser/ui/views/frame/browser_view_layout.cc -index 2bd298c830bec..47e5f851740a8 100644 +index c31b8240eb455..70e8cc8854596 100644 --- chrome/browser/ui/views/frame/browser_view_layout.cc +++ chrome/browser/ui/views/frame/browser_view_layout.cc @@ -39,6 +39,10 @@ @@ -297,7 +306,7 @@ index 2bd298c830bec..47e5f851740a8 100644 using views::View; using web_modal::WebContentsModalDialogHost; using web_modal::ModalDialogHostObserver; -@@ -443,6 +447,11 @@ int BrowserViewLayout::LayoutWebUITabStrip(int top) { +@@ -446,6 +450,11 @@ int BrowserViewLayout::LayoutWebUITabStrip(int top) { int BrowserViewLayout::LayoutToolbar(int top) { TRACE_EVENT0("ui", "BrowserViewLayout::LayoutToolbar"); @@ -368,10 +377,10 @@ index 140c0df49ea46..7d4ac470dcc9a 100644 } diff --git chrome/browser/ui/views/toolbar/toolbar_view.cc chrome/browser/ui/views/toolbar/toolbar_view.cc -index f290b0d5ea521..31ffa7e61e69f 100644 +index 31e062d75daeb..c6d700e702e56 100644 --- chrome/browser/ui/views/toolbar/toolbar_view.cc +++ chrome/browser/ui/views/toolbar/toolbar_view.cc -@@ -162,12 +162,13 @@ auto& GetViewCommandMap() { +@@ -167,12 +167,13 @@ auto& GetViewCommandMap() { //////////////////////////////////////////////////////////////////////////////// // ToolbarView, public: @@ -387,7 +396,7 @@ index f290b0d5ea521..31ffa7e61e69f 100644 SetID(VIEW_ID_TOOLBAR); UpgradeDetector::GetInstance()->AddObserver(this); -@@ -202,7 +203,7 @@ void ToolbarView::Init() { +@@ -207,7 +208,7 @@ void ToolbarView::Init() { #endif auto location_bar = std::make_unique( browser_, browser_->profile(), browser_->command_controller(), this, @@ -397,7 +406,7 @@ index f290b0d5ea521..31ffa7e61e69f 100644 size_animation_.Reset(1); diff --git chrome/browser/ui/views/toolbar/toolbar_view.h chrome/browser/ui/views/toolbar/toolbar_view.h -index ec77ff5a0611a..0c8d95120d0c5 100644 +index 1da8e4f42dc99..3c86aad64f014 100644 --- chrome/browser/ui/views/toolbar/toolbar_view.h +++ chrome/browser/ui/views/toolbar/toolbar_view.h @@ -91,7 +91,8 @@ class ToolbarView : public views::AccessiblePaneView, diff --git a/patch/patches/component_build.patch b/patch/patches/component_build.patch index 4a917722e..848bd34eb 100644 --- a/patch/patches/component_build.patch +++ b/patch/patches/component_build.patch @@ -1,5 +1,5 @@ diff --git content/browser/devtools/devtools_instrumentation.h content/browser/devtools/devtools_instrumentation.h -index d279815ed7dd1..de68b25583b37 100644 +index 6aa16d20faa3b..5c4fd217ae936 100644 --- content/browser/devtools/devtools_instrumentation.h +++ content/browser/devtools/devtools_instrumentation.h @@ -90,7 +90,7 @@ bool ApplyUserAgentMetadataOverrides( @@ -12,7 +12,7 @@ index d279815ed7dd1..de68b25583b37 100644 bool is_navigation, bool is_download, diff --git content/browser/renderer_host/input/synthetic_gesture_target_base.h content/browser/renderer_host/input/synthetic_gesture_target_base.h -index eef661b3e0950..6c0dacfa4bc3a 100644 +index 1f05fa3562f48..2295e442f590a 100644 --- content/browser/renderer_host/input/synthetic_gesture_target_base.h +++ content/browser/renderer_host/input/synthetic_gesture_target_base.h @@ -9,6 +9,7 @@ @@ -32,7 +32,7 @@ index eef661b3e0950..6c0dacfa4bc3a 100644 + public SyntheticGestureTarget { public: explicit SyntheticGestureTargetBase(RenderWidgetHostImpl* host); - ~SyntheticGestureTargetBase() override; + diff --git content/common/content_switches_internal.h content/common/content_switches_internal.h index 57072bf1263ae..0a93446e4d21c 100644 --- content/common/content_switches_internal.h @@ -68,7 +68,7 @@ index 103fe625bb488..81c79036aa465 100644 if (is_linux || is_chromeos) { diff --git ui/events/keycodes/BUILD.gn ui/events/keycodes/BUILD.gn -index 86bbf620ff0d9..6c06b461c6da1 100644 +index c7fe1117512e5..44af6b52db4b4 100644 --- ui/events/keycodes/BUILD.gn +++ ui/events/keycodes/BUILD.gn @@ -19,6 +19,8 @@ source_set("xkb") { diff --git a/patch/patches/content_2015.patch b/patch/patches/content_2015.patch index cb725dc21..a7fe5f8ad 100644 --- a/patch/patches/content_2015.patch +++ b/patch/patches/content_2015.patch @@ -1,5 +1,5 @@ diff --git chrome/browser/download/download_target_determiner.cc chrome/browser/download/download_target_determiner.cc -index 404fb702f46bd..fa460d245570c 100644 +index c5a29d75151a6..c5b198483cb4a 100644 --- chrome/browser/download/download_target_determiner.cc +++ chrome/browser/download/download_target_determiner.cc @@ -683,7 +683,7 @@ void IsHandledBySafePlugin(int render_process_id, @@ -12,10 +12,10 @@ index 404fb702f46bd..fa460d245570c 100644 if (is_stale && stale_plugin_action == RETRY_IF_STALE_PLUGIN_LIST) { // The GetPlugins call causes the plugin list to be refreshed. Once that's diff --git chrome/browser/plugins/chrome_plugin_service_filter.cc chrome/browser/plugins/chrome_plugin_service_filter.cc -index 27f7028908745..35e1cdb72874f 100644 +index 4e6a0f8e664b3..e34a49e4fc654 100644 --- chrome/browser/plugins/chrome_plugin_service_filter.cc +++ chrome/browser/plugins/chrome_plugin_service_filter.cc -@@ -133,6 +133,7 @@ bool ChromePluginServiceFilter::IsPluginAvailable( +@@ -129,6 +129,7 @@ bool ChromePluginServiceFilter::IsPluginAvailable( int render_process_id, int render_frame_id, const GURL& plugin_content_url, @@ -36,7 +36,7 @@ index 937d3d5bc84fd..ac327392dcf37 100644 content::WebPluginInfo* plugin) override; diff --git chrome/browser/plugins/pdf_iframe_navigation_throttle.cc chrome/browser/plugins/pdf_iframe_navigation_throttle.cc -index d0a5a12620bd3..a02e13bbd8154 100644 +index 6b260a40b14a2..b6198889273ce 100644 --- chrome/browser/plugins/pdf_iframe_navigation_throttle.cc +++ chrome/browser/plugins/pdf_iframe_navigation_throttle.cc @@ -65,7 +65,7 @@ bool IsPDFPluginEnabled(content::NavigationHandle* navigation_handle, @@ -75,37 +75,37 @@ index 18b58f53a9df7..80452f68f24fb 100644 GetContentClient()->browser()->GetUserAgent()); version.SetString("V8-Version", V8_VERSION_STRING); diff --git content/browser/loader/navigation_url_loader_impl.cc content/browser/loader/navigation_url_loader_impl.cc -index 33822b23dfb1e..0593095eb42f9 100644 +index 06517d7afaaa2..e368b300c5e30 100644 --- content/browser/loader/navigation_url_loader_impl.cc +++ content/browser/loader/navigation_url_loader_impl.cc -@@ -636,6 +636,13 @@ NavigationURLLoaderImpl::PrepareForNonInterceptedRequest( - resource_request_->has_user_gesture, - resource_request_->request_initiator, &loader_factory); +@@ -670,6 +670,13 @@ NavigationURLLoaderImpl::PrepareForNonInterceptedRequest( + resource_request_->has_user_gesture, initiating_origin, + &loader_factory); + if (!handled) { + handled = GetContentClient()->browser()->HandleExternalProtocol( + web_contents_getter_, frame_tree_node_id_, -+ navigation_ui_data_.get(), *resource_request_, -+ &loader_factory); ++ navigation_ui_data_.get(), request_info_->sandbox_flags, ++ *resource_request_, &loader_factory); + } + if (loader_factory) { factory = base::MakeRefCounted( std::move(loader_factory)); -@@ -869,7 +876,7 @@ void NavigationURLLoaderImpl::CheckPluginAndContinueOnReceiveResponse( +@@ -838,7 +845,7 @@ void NavigationURLLoaderImpl::CheckPluginAndContinueOnReceiveResponse( frame_tree_node->current_frame_host()->GetProcess()->GetID(); int routing_id = frame_tree_node->current_frame_host()->GetRoutingID(); bool has_plugin = PluginService::GetInstance()->GetPluginInfo( - render_process_id, routing_id, resource_request_->url, url::Origin(), + render_process_id, routing_id, resource_request_->url, true, url::Origin(), - head->mime_type, false /* allow_wildcard */, &stale, &plugin, nullptr); + head->mime_type, /*allow_wildcard=*/false, &stale, &plugin, nullptr); if (stale) { diff --git content/browser/plugin_service_impl.cc content/browser/plugin_service_impl.cc -index 493e9a31c983d..c468cb87a541f 100644 +index bec7bccadfec4..5a45990eb71ed 100644 --- content/browser/plugin_service_impl.cc +++ content/browser/plugin_service_impl.cc -@@ -269,6 +269,7 @@ bool PluginServiceImpl::GetPluginInfoArray( +@@ -266,6 +266,7 @@ bool PluginServiceImpl::GetPluginInfoArray( bool PluginServiceImpl::GetPluginInfo(int render_process_id, int render_frame_id, const GURL& url, @@ -113,7 +113,7 @@ index 493e9a31c983d..c468cb87a541f 100644 const url::Origin& main_frame_origin, const std::string& mime_type, bool allow_wildcard, -@@ -286,7 +287,8 @@ bool PluginServiceImpl::GetPluginInfo(int render_process_id, +@@ -283,7 +284,8 @@ bool PluginServiceImpl::GetPluginInfo(int render_process_id, for (size_t i = 0; i < plugins.size(); ++i) { if (!filter_ || filter_->IsPluginAvailable(render_process_id, render_frame_id, url, @@ -136,7 +136,7 @@ index b0fb11b4d5ba7..1bce64c6b20ee 100644 const std::string& mime_type, bool allow_wildcard, diff --git content/browser/renderer_host/plugin_registry_impl.cc content/browser/renderer_host/plugin_registry_impl.cc -index 68ccb16a86ad0..7e9aeed8c8c32 100644 +index 54a561c009464..a51afa5c74141 100644 --- content/browser/renderer_host/plugin_registry_impl.cc +++ content/browser/renderer_host/plugin_registry_impl.cc @@ -30,6 +30,7 @@ void PluginRegistryImpl::Bind( @@ -188,10 +188,10 @@ index 632ae86c6fd69..55b749ec12421 100644 const std::vector& all_plugins); diff --git content/browser/renderer_host/render_frame_host_impl.cc content/browser/renderer_host/render_frame_host_impl.cc -index 974823d53b583..f5d635cd92889 100644 +index 6520b9b7e90aa..60af548b678cc 100644 --- content/browser/renderer_host/render_frame_host_impl.cc +++ content/browser/renderer_host/render_frame_host_impl.cc -@@ -12408,6 +12408,7 @@ void RenderFrameHostImpl::BindHungDetectorHost( +@@ -12341,6 +12341,7 @@ void RenderFrameHostImpl::BindHungDetectorHost( } void RenderFrameHostImpl::GetPluginInfo(const GURL& url, @@ -199,7 +199,7 @@ index 974823d53b583..f5d635cd92889 100644 const url::Origin& main_frame_origin, const std::string& mime_type, GetPluginInfoCallback callback) { -@@ -12415,7 +12416,8 @@ void RenderFrameHostImpl::GetPluginInfo(const GURL& url, +@@ -12348,7 +12349,8 @@ void RenderFrameHostImpl::GetPluginInfo(const GURL& url, WebPluginInfo info; std::string actual_mime_type; bool found = PluginServiceImpl::GetInstance()->GetPluginInfo( @@ -210,10 +210,10 @@ index 974823d53b583..f5d635cd92889 100644 std::move(callback).Run(found, info, actual_mime_type); } diff --git content/browser/renderer_host/render_frame_host_impl.h content/browser/renderer_host/render_frame_host_impl.h -index 53cc68edc7fd7..b8b6698f65e9d 100644 +index 86666516a0131..c1e11fbfda6fb 100644 --- content/browser/renderer_host/render_frame_host_impl.h +++ content/browser/renderer_host/render_frame_host_impl.h -@@ -2611,6 +2611,7 @@ class CONTENT_EXPORT RenderFrameHostImpl +@@ -2614,6 +2614,7 @@ class CONTENT_EXPORT RenderFrameHostImpl int32_t plugin_child_id, const base::FilePath& path) override; void GetPluginInfo(const GURL& url, @@ -222,7 +222,7 @@ index 53cc68edc7fd7..b8b6698f65e9d 100644 const std::string& mime_type, GetPluginInfoCallback callback) override; diff --git content/common/pepper_plugin.mojom content/common/pepper_plugin.mojom -index a544bfed7ed85..60aad01350c2f 100644 +index c20ff8254421b..84659f627e2f8 100644 --- content/common/pepper_plugin.mojom +++ content/common/pepper_plugin.mojom @@ -29,6 +29,7 @@ interface PepperHost { @@ -234,7 +234,7 @@ index a544bfed7ed85..60aad01350c2f 100644 string mime_type) => (bool found, diff --git content/public/browser/content_browser_client.cc content/public/browser/content_browser_client.cc -index 0cf1f777dc5ff..5d6bf40de09b9 100644 +index 248a90c768200..1ba2f15d5778d 100644 --- content/public/browser/content_browser_client.cc +++ content/public/browser/content_browser_client.cc @@ -9,7 +9,7 @@ @@ -246,8 +246,25 @@ index 0cf1f777dc5ff..5d6bf40de09b9 100644 #include +@@ -874,7 +874,7 @@ ContentBrowserClient::CreateURLLoaderHandlerForServiceWorkerNavigationPreload( + void ContentBrowserClient::OnNetworkServiceCreated( + network::mojom::NetworkService* network_service) {} + +-void ContentBrowserClient::ConfigureNetworkContextParams( ++bool ContentBrowserClient::ConfigureNetworkContextParams( + BrowserContext* context, + bool in_memory, + const base::FilePath& relative_partition_path, +@@ -883,6 +883,7 @@ void ContentBrowserClient::ConfigureNetworkContextParams( + cert_verifier_creation_params) { + network_context_params->user_agent = GetUserAgent(); + network_context_params->accept_language = "en-us,en"; ++ return true; + } + + std::vector diff --git content/public/browser/content_browser_client.h content/public/browser/content_browser_client.h -index bafb4cc0e7cdf..6f303d9866f18 100644 +index 7dfc30f346a94..8adbde6963711 100644 --- content/public/browser/content_browser_client.h +++ content/public/browser/content_browser_client.h @@ -33,6 +33,7 @@ @@ -258,7 +275,16 @@ index bafb4cc0e7cdf..6f303d9866f18 100644 #include "content/public/browser/web_ui_browser_interface_broker_registry.h" #include "content/public/common/page_visibility_state.h" #include "content/public/common/window_container_type.mojom-forward.h" -@@ -1780,6 +1781,14 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -1618,7 +1619,7 @@ class CONTENT_EXPORT ContentBrowserClient { + // + // If |relative_partition_path| is the empty string, it means this needs to + // create the default NetworkContext for the BrowserContext. +- virtual void ConfigureNetworkContextParams( ++ virtual bool ConfigureNetworkContextParams( + BrowserContext* context, + bool in_memory, + const base::FilePath& relative_partition_path, +@@ -1802,6 +1803,15 @@ class CONTENT_EXPORT ContentBrowserClient { const absl::optional& initiating_origin, mojo::PendingRemote* out_factory); @@ -267,13 +293,14 @@ index bafb4cc0e7cdf..6f303d9866f18 100644 + WebContents::Getter web_contents_getter, + int frame_tree_node_id, + NavigationUIData* navigation_data, ++ network::mojom::WebSandboxFlags sandbox_flags, + const network::ResourceRequest& request, + mojo::PendingRemote* out_factory) { return false; } + // Creates an OverlayWindow to be used for Picture-in-Picture. This window // will house the content shown when in Picture-in-Picture mode. This will // return a new OverlayWindow. -@@ -1853,6 +1862,10 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -1879,6 +1889,10 @@ class CONTENT_EXPORT ContentBrowserClient { // Used as part of the user agent string. virtual std::string GetProduct(); @@ -309,7 +336,7 @@ index 570b5a4738b94..923a5f7195c53 100644 WebPluginInfo* plugin) = 0; diff --git content/public/renderer/content_renderer_client.h content/public/renderer/content_renderer_client.h -index b62158069f9a1..7470d6f49dac0 100644 +index f3852c0eef152..03b751225575e 100644 --- content/public/renderer/content_renderer_client.h +++ content/public/renderer/content_renderer_client.h @@ -82,6 +82,9 @@ class CONTENT_EXPORT ContentRendererClient { @@ -334,10 +361,10 @@ index b62158069f9a1..7470d6f49dac0 100644 // started. virtual void SetRuntimeFeaturesDefaultsBeforeBlinkInitialization() {} diff --git content/renderer/render_frame_impl.cc content/renderer/render_frame_impl.cc -index 173952d4545d5..2f311b988c380 100644 +index 78ec20c40e5db..406a25890ddb8 100644 --- content/renderer/render_frame_impl.cc +++ content/renderer/render_frame_impl.cc -@@ -3306,7 +3306,8 @@ blink::WebPlugin* RenderFrameImpl::CreatePlugin( +@@ -3278,7 +3278,8 @@ blink::WebPlugin* RenderFrameImpl::CreatePlugin( WebPluginInfo info; std::string mime_type; bool found = false; @@ -348,10 +375,10 @@ index 173952d4545d5..2f311b988c380 100644 &mime_type); if (!found) diff --git content/renderer/render_thread_impl.cc content/renderer/render_thread_impl.cc -index 52c02371bf373..3cd441e5d9a0d 100644 +index 1546f52724fc7..776efe8247abd 100644 --- content/renderer/render_thread_impl.cc +++ content/renderer/render_thread_impl.cc -@@ -610,6 +610,8 @@ void RenderThreadImpl::Init() { +@@ -616,6 +616,8 @@ void RenderThreadImpl::Init() { GetContentClient()->renderer()->CreateURLLoaderThrottleProvider( blink::URLLoaderThrottleProviderType::kFrame); @@ -361,10 +388,10 @@ index 52c02371bf373..3cd441e5d9a0d 100644 &RenderThreadImpl::OnRendererInterfaceReceiver, base::Unretained(this))); diff --git content/renderer/renderer_blink_platform_impl.cc content/renderer/renderer_blink_platform_impl.cc -index 337c630fc85f3..20abead97fe1d 100644 +index bbfe51c4bcfd5..b81c93789993c 100644 --- content/renderer/renderer_blink_platform_impl.cc +++ content/renderer/renderer_blink_platform_impl.cc -@@ -1101,6 +1101,15 @@ SkBitmap* RendererBlinkPlatformImpl::GetSadPageBitmap() { +@@ -1093,6 +1093,15 @@ SkBitmap* RendererBlinkPlatformImpl::GetSadPageBitmap() { //------------------------------------------------------------------------------ @@ -377,14 +404,14 @@ index 337c630fc85f3..20abead97fe1d 100644 + +//------------------------------------------------------------------------------ + - blink::mojom::CodeCacheHost& RendererBlinkPlatformImpl::GetCodeCacheHost() { - if (!code_cache_host_) { - code_cache_host_ = mojo::SharedRemote( + mojo::SharedRemote + RendererBlinkPlatformImpl::GetCodeCacheHost() { + base::AutoLock lock(code_cache_host_lock_); diff --git content/renderer/renderer_blink_platform_impl.h content/renderer/renderer_blink_platform_impl.h -index b199c34615f02..43ced4c4d8cf5 100644 +index 6c0a233f70d81..38f15d507f2a2 100644 --- content/renderer/renderer_blink_platform_impl.h +++ content/renderer/renderer_blink_platform_impl.h -@@ -258,6 +258,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { +@@ -264,6 +264,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { const blink::WebURL& url, blink::WebVector* csp) override; @@ -407,10 +434,10 @@ index c25b7d1a18432..7e007d964f1a1 100644 WebPluginInfo* plugin) { return plugin->name == u"Blink Test Plugin" || diff --git content/shell/browser/shell_plugin_service_filter.h content/shell/browser/shell_plugin_service_filter.h -index 337b4b0653fe2..107ab4c9d8a85 100644 +index e9d0bed90ea65..12d1acb37619f 100644 --- content/shell/browser/shell_plugin_service_filter.h +++ content/shell/browser/shell_plugin_service_filter.h -@@ -20,6 +20,7 @@ class ShellPluginServiceFilter : public PluginServiceFilter { +@@ -24,6 +24,7 @@ class ShellPluginServiceFilter : public PluginServiceFilter { bool IsPluginAvailable(int render_process_id, int render_frame_id, const GURL& url, diff --git a/patch/patches/content_main_654986.patch b/patch/patches/content_main_654986.patch index da4f43c70..e5b55ed3e 100644 --- a/patch/patches/content_main_654986.patch +++ b/patch/patches/content_main_654986.patch @@ -123,7 +123,7 @@ index a26c5c2e053ed..c88c4c1b81f9b 100644 return RunContentProcess(params, runner.get()); } diff --git content/app/content_main_runner_impl.cc content/app/content_main_runner_impl.cc -index 7e7a16e6f9cb1..1989de7847811 100644 +index 915ae322cb6a2..781277e45de4c 100644 --- content/app/content_main_runner_impl.cc +++ content/app/content_main_runner_impl.cc @@ -45,6 +45,7 @@ @@ -134,7 +134,7 @@ index 7e7a16e6f9cb1..1989de7847811 100644 #include "base/time/time.h" #include "base/trace_event/trace_event.h" #include "build/build_config.h" -@@ -1134,6 +1135,11 @@ void ContentMainRunnerImpl::Shutdown() { +@@ -1146,6 +1147,11 @@ void ContentMainRunnerImpl::Shutdown() { is_shutdown_ = true; } @@ -147,7 +147,7 @@ index 7e7a16e6f9cb1..1989de7847811 100644 std::unique_ptr ContentMainRunner::Create() { return ContentMainRunnerImpl::Create(); diff --git content/app/content_main_runner_impl.h content/app/content_main_runner_impl.h -index 5dbc33d943de2..4238219a05773 100644 +index 4bf0a0b27192a..73784107fc682 100644 --- content/app/content_main_runner_impl.h +++ content/app/content_main_runner_impl.h @@ -39,7 +39,7 @@ class ContentMainDelegate; @@ -159,7 +159,7 @@ index 5dbc33d943de2..4238219a05773 100644 public: static std::unique_ptr Create(); -@@ -53,6 +53,8 @@ class ContentMainRunnerImpl : public ContentMainRunner { +@@ -57,6 +57,8 @@ class ContentMainRunnerImpl : public ContentMainRunner { int Run(bool start_minimal_browser) override; void Shutdown() override; diff --git a/patch/patches/content_mojo_3123.patch b/patch/patches/content_mojo_3123.patch deleted file mode 100644 index 0e9d47a89..000000000 --- a/patch/patches/content_mojo_3123.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff --git content/public/browser/document_service_base.h content/public/browser/document_service_base.h -index e92c412a44c62..520338835afa8 100644 ---- content/public/browser/document_service_base.h -+++ content/public/browser/document_service_base.h -@@ -80,6 +80,8 @@ class DocumentServiceBase : public Interface, public WebContentsObserver { - - void DidFinishNavigation(NavigationHandle* navigation_handle) final { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); -+ if (!ShouldCloseOnFinishNavigation()) -+ return; - - if (!navigation_handle->HasCommitted() || - navigation_handle->IsSameDocument() || -@@ -98,6 +100,9 @@ class DocumentServiceBase : public Interface, public WebContentsObserver { - } - } - -+ // Used for CEF bindings that outlive navigation. -+ virtual bool ShouldCloseOnFinishNavigation() const { return true; } -+ - // Stops observing WebContents and delete |this|. - void Close() { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); diff --git a/patch/patches/crashpad_1995.patch b/patch/patches/crashpad_1995.patch index 7b3349bc4..d0abb16c0 100644 --- a/patch/patches/crashpad_1995.patch +++ b/patch/patches/crashpad_1995.patch @@ -136,7 +136,7 @@ index bcf172e645a23..f879aa745adfc 100644 // on the given |command_line|. void SetCrashKeysFromCommandLine(const base::CommandLine& command_line); diff --git components/crash/core/app/breakpad_linux.cc components/crash/core/app/breakpad_linux.cc -index 00009dacdc2b0..e6454d5b1a23d 100644 +index 93d05b949c26c..9d307988b6713 100644 --- components/crash/core/app/breakpad_linux.cc +++ components/crash/core/app/breakpad_linux.cc @@ -28,6 +28,7 @@ @@ -147,7 +147,7 @@ index 00009dacdc2b0..e6454d5b1a23d 100644 #include "base/files/file_path.h" #include "base/lazy_instance.h" #include "base/linux_util.h" -@@ -720,7 +721,7 @@ bool CrashDone(const MinidumpDescriptor& minidump, +@@ -721,7 +722,7 @@ bool CrashDone(const MinidumpDescriptor& minidump, info.process_type_length = 7; info.distro = base::g_linux_distro; info.distro_length = my_strlen(base::g_linux_distro); @@ -156,7 +156,7 @@ index 00009dacdc2b0..e6454d5b1a23d 100644 info.process_start_time = g_process_start_time; info.oom_size = base::g_oom_size; info.pid = g_pid; -@@ -1734,10 +1735,27 @@ void HandleCrashDump(const BreakpadInfo& info) { +@@ -1736,10 +1737,27 @@ void HandleCrashDump(const BreakpadInfo& info) { GetCrashReporterClient()->GetProductNameAndVersion(&product_name, &version); writer.AddBoundary(); @@ -186,7 +186,7 @@ index 00009dacdc2b0..e6454d5b1a23d 100644 if (info.pid > 0) { char pid_value_buf[kUint64StringSize]; uint64_t pid_value_len = my_uint64_len(info.pid); -@@ -1854,6 +1872,9 @@ void HandleCrashDump(const BreakpadInfo& info) { +@@ -1856,6 +1874,9 @@ void HandleCrashDump(const BreakpadInfo& info) { crash_reporter::internal::TransitionalCrashKeyStorage; CrashKeyStorage::Iterator crash_key_iterator(*info.crash_keys); const CrashKeyStorage::Entry* entry; @@ -196,7 +196,7 @@ index 00009dacdc2b0..e6454d5b1a23d 100644 while ((entry = crash_key_iterator.Next())) { size_t key_size, value_size; // Check for malformed messages. -@@ -1864,7 +1885,13 @@ void HandleCrashDump(const BreakpadInfo& info) { +@@ -1866,7 +1887,13 @@ void HandleCrashDump(const BreakpadInfo& info) { ? CrashKeyStorage::value_size - 1 : my_strlen(entry->value); diff --git a/patch/patches/crashpad_tp_1995.patch b/patch/patches/crashpad_tp_1995.patch index 44a9282f4..221c5db33 100644 --- a/patch/patches/crashpad_tp_1995.patch +++ b/patch/patches/crashpad_tp_1995.patch @@ -26,10 +26,10 @@ index 492d466239d1a..a1df635870ede 100644 static const time_t kSecondsInDay = 60 * 60 * 24; diff --git third_party/crashpad/crashpad/client/prune_crash_reports.h third_party/crashpad/crashpad/client/prune_crash_reports.h -index 07a70980f12af..ddf7f17325fed 100644 +index b80cf7a59103b..6318dd05e6eef 100644 --- third_party/crashpad/crashpad/client/prune_crash_reports.h +++ third_party/crashpad/crashpad/client/prune_crash_reports.h -@@ -59,7 +59,8 @@ class PruneCondition { +@@ -58,7 +58,8 @@ class PruneCondition { //! of 128 MB. //! //! \return A PruneCondition for use with PruneCrashReportDatabase(). @@ -130,10 +130,10 @@ index 3855b9b6a4b20..263f985043716 100644 Settings::ScopedLockedFileHandle Settings::MakeScopedLockedFileHandle( FileHandle file, diff --git third_party/crashpad/crashpad/client/settings.h third_party/crashpad/crashpad/client/settings.h -index 5761c6b965b5c..aee4e6c96033e 100644 +index d17f357ed458c..4740bb776125d 100644 --- third_party/crashpad/crashpad/client/settings.h +++ third_party/crashpad/crashpad/client/settings.h -@@ -115,6 +115,11 @@ class Settings { +@@ -118,6 +118,11 @@ class Settings { //! error logged. bool SetLastUploadAttemptTime(time_t time); @@ -146,7 +146,7 @@ index 5761c6b965b5c..aee4e6c96033e 100644 struct Data; diff --git third_party/crashpad/crashpad/handler/BUILD.gn third_party/crashpad/crashpad/handler/BUILD.gn -index a697b338e8eeb..96d4b45c5aa51 100644 +index f66da69a4cedb..01c6d05fdb446 100644 --- third_party/crashpad/crashpad/handler/BUILD.gn +++ third_party/crashpad/crashpad/handler/BUILD.gn @@ -12,6 +12,7 @@ @@ -197,7 +197,7 @@ index b7e445fd9f3ed..c5f1a3c3ceee7 100644 if (!reader->SeekSet(start_offset)) { diff --git third_party/crashpad/crashpad/handler/crash_report_upload_thread.h third_party/crashpad/crashpad/handler/crash_report_upload_thread.h -index 2ec1147d2620d..8ff9a72e0bd79 100644 +index 1a88a087b5357..5688d7f46c9d9 100644 --- third_party/crashpad/crashpad/handler/crash_report_upload_thread.h +++ third_party/crashpad/crashpad/handler/crash_report_upload_thread.h @@ -15,6 +15,7 @@ @@ -208,7 +208,7 @@ index 2ec1147d2620d..8ff9a72e0bd79 100644 #include #include -@@ -103,7 +104,7 @@ class CrashReportUploadThread : public WorkerThread::Delegate, +@@ -106,7 +107,7 @@ class CrashReportUploadThread : public WorkerThread::Delegate, //! It is expected to only be called from the same thread that called Start(). void Stop() override; @@ -217,7 +217,7 @@ index 2ec1147d2620d..8ff9a72e0bd79 100644 //! \brief The result code from UploadReport(). enum class UploadResult { //! \brief The crash report was uploaded successfully. -@@ -131,7 +132,7 @@ class CrashReportUploadThread : public WorkerThread::Delegate, +@@ -134,7 +135,7 @@ class CrashReportUploadThread : public WorkerThread::Delegate, //! object was constructed with \a watch_pending_reports, it will also scan //! the crash report database for other pending reports, and process those as //! well. @@ -226,7 +226,7 @@ index 2ec1147d2620d..8ff9a72e0bd79 100644 //! \brief Processes a single pending report from the database. //! -@@ -145,7 +146,7 @@ class CrashReportUploadThread : public WorkerThread::Delegate, +@@ -148,7 +149,7 @@ class CrashReportUploadThread : public WorkerThread::Delegate, //! remain in the “pending” state. If the upload fails and no more retries are //! desired, or report upload is disabled, it will be marked as “completed” in //! the database without ever having been uploaded. @@ -235,7 +235,7 @@ index 2ec1147d2620d..8ff9a72e0bd79 100644 //! \brief Attempts to upload a crash report. //! -@@ -162,6 +163,11 @@ class CrashReportUploadThread : public WorkerThread::Delegate, +@@ -165,6 +166,11 @@ class CrashReportUploadThread : public WorkerThread::Delegate, UploadResult UploadReport(const CrashReportDatabase::UploadReport* report, std::string* response_body); @@ -248,7 +248,7 @@ index 2ec1147d2620d..8ff9a72e0bd79 100644 //! \brief Calls ProcessPendingReports() in response to ReportPending() having //! been called on any thread, as well as periodically on a timer. diff --git third_party/crashpad/crashpad/handler/handler_main.cc third_party/crashpad/crashpad/handler/handler_main.cc -index 737ee4e09f676..f5a8727f7e6b1 100644 +index 5733463bedb94..ada3ac66bd435 100644 --- third_party/crashpad/crashpad/handler/handler_main.cc +++ third_party/crashpad/crashpad/handler/handler_main.cc @@ -39,6 +39,7 @@ @@ -280,7 +280,7 @@ index 737ee4e09f676..f5a8727f7e6b1 100644 #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) bool use_cros_crash_reporter = false; base::FilePath minidump_dir_for_tests; -@@ -577,6 +585,9 @@ int HandlerMain(int argc, +@@ -582,6 +590,9 @@ int HandlerMain(int argc, kOptionTraceParentWithException, #endif kOptionURL, @@ -290,7 +290,7 @@ index 737ee4e09f676..f5a8727f7e6b1 100644 #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) kOptionUseCrosCrashReporter, kOptionMinidumpDirForTests, -@@ -678,6 +689,9 @@ int HandlerMain(int argc, +@@ -683,6 +694,9 @@ int HandlerMain(int argc, #endif // OS_ANDROID {"help", no_argument, nullptr, kOptionHelp}, {"version", no_argument, nullptr, kOptionVersion}, @@ -300,7 +300,7 @@ index 737ee4e09f676..f5a8727f7e6b1 100644 {nullptr, 0, nullptr, 0}, }; -@@ -833,6 +847,27 @@ int HandlerMain(int argc, +@@ -838,6 +852,27 @@ int HandlerMain(int argc, options.url = optarg; break; } @@ -328,7 +328,7 @@ index 737ee4e09f676..f5a8727f7e6b1 100644 #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) case kOptionUseCrosCrashReporter: { options.use_cros_crash_reporter = true; -@@ -982,8 +1017,14 @@ int HandlerMain(int argc, +@@ -987,8 +1022,14 @@ int HandlerMain(int argc, upload_thread_options.upload_gzip = options.upload_gzip; upload_thread_options.watch_pending_reports = options.periodic_tasks; @@ -343,7 +343,7 @@ index 737ee4e09f676..f5a8727f7e6b1 100644 upload_thread.Get()->Start(); } -@@ -1053,7 +1094,8 @@ int HandlerMain(int argc, +@@ -1058,7 +1099,8 @@ int HandlerMain(int argc, ScopedStoppable prune_thread; if (options.periodic_tasks) { prune_thread.Reset(new PruneCrashReportThread( diff --git a/patch/patches/embedder_product_override.patch b/patch/patches/embedder_product_override.patch index 80a2e4fd0..3f2ef772e 100644 --- a/patch/patches/embedder_product_override.patch +++ b/patch/patches/embedder_product_override.patch @@ -1,17 +1,17 @@ diff --git components/embedder_support/user_agent_utils.cc components/embedder_support/user_agent_utils.cc -index dfa5022f7636e..fa880d2ea9acd 100644 +index 516504c2ce442..60899c8e4f7bf 100644 --- components/embedder_support/user_agent_utils.cc +++ components/embedder_support/user_agent_utils.cc -@@ -12,6 +12,7 @@ - #include "base/system/sys_info.h" +@@ -14,6 +14,7 @@ + #include "base/version.h" #include "build/branding_buildflags.h" #include "build/build_config.h" +#include "cef/libcef/common/cef_switches.h" #include "components/embedder_support/switches.h" #include "components/version_info/version_info.h" #include "content/public/browser/web_contents.h" -@@ -113,6 +114,12 @@ std::string GetUniversalApiContractVersion() { - #endif // defined(OS_WIN) +@@ -172,6 +173,12 @@ const blink::UserAgentBrandList& GetBrandVersionList() { + } // namespace std::string GetProduct() { + base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); @@ -20,6 +20,6 @@ index dfa5022f7636e..fa880d2ea9acd 100644 + switches::kUserAgentProductAndVersion); + } + - return version_info::GetProductNameAndVersionForUserAgent(); - } - + if (base::FeatureList::IsEnabled( + blink::features::kForceMajorVersion100InUserAgent)) + return "Chrome/" + GetM100VersionNumber(); diff --git a/patch/patches/extensions_1947.patch b/patch/patches/extensions_1947.patch index aa71e96ac..fc5007b7f 100644 --- a/patch/patches/extensions_1947.patch +++ b/patch/patches/extensions_1947.patch @@ -60,10 +60,10 @@ index 5c903a13a14ed..c85964a7bab17 100644 std::unique_ptr stream_container( new StreamContainer(tab_id, embedded, handler_url, extension_id, diff --git extensions/browser/extension_host.cc extensions/browser/extension_host.cc -index 3f78873130d14..07159e4524155 100644 +index 941d1ab4ec0f1..e887234ad9a5f 100644 --- extensions/browser/extension_host.cc +++ extensions/browser/extension_host.cc -@@ -63,11 +63,12 @@ ExtensionHost::ExtensionHost(const Extension* extension, +@@ -62,11 +62,12 @@ ExtensionHost::ExtensionHost(const Extension* extension, DCHECK(host_type == mojom::ViewType::kExtensionBackgroundPage || host_type == mojom::ViewType::kExtensionDialog || host_type == mojom::ViewType::kExtensionPopup); @@ -80,7 +80,7 @@ index 3f78873130d14..07159e4524155 100644 // Listen for when an extension is unloaded from the same profile, as it may @@ -81,6 +82,44 @@ ExtensionHost::ExtensionHost(const Extension* extension, - dispatcher()->set_delegate(this); + ExtensionHostRegistry::Get(browser_context_)->ExtensionHostCreated(this); } +ExtensionHost::ExtensionHost(ExtensionHostDelegate* delegate, @@ -125,10 +125,10 @@ index 3f78873130d14..07159e4524155 100644 ExtensionRegistry::Get(browser_context_)->RemoveObserver(this); diff --git extensions/browser/extension_host.h extensions/browser/extension_host.h -index e8b4ce11bcd00..617de0d501fdd 100644 +index fe86adeadc40e..2d4d9fe819fb3 100644 --- extensions/browser/extension_host.h +++ extensions/browser/extension_host.h -@@ -53,13 +53,19 @@ class ExtensionHost : public DeferredStartRenderHost, +@@ -53,6 +53,12 @@ class ExtensionHost : public DeferredStartRenderHost, content::SiteInstance* site_instance, const GURL& url, mojom::ViewType host_type); @@ -138,9 +138,10 @@ index e8b4ce11bcd00..617de0d501fdd 100644 + content::WebContents* host_contents, + const GURL& url, + mojom::ViewType host_type); - ~ExtensionHost() override; - // This may be null if the extension has been or is being unloaded. + ExtensionHost(const ExtensionHost&) = delete; + ExtensionHost& operator=(const ExtensionHost&) = delete; +@@ -63,7 +69,7 @@ class ExtensionHost : public DeferredStartRenderHost, const Extension* extension() const { return extension_; } const std::string& extension_id() const { return extension_id_; } @@ -149,7 +150,7 @@ index e8b4ce11bcd00..617de0d501fdd 100644 content::RenderFrameHost* main_frame_host() const { return main_frame_host_; } content::RenderProcessHost* render_process_host() const; bool has_loaded_once() const { return has_loaded_once_; } -@@ -184,7 +190,8 @@ class ExtensionHost : public DeferredStartRenderHost, +@@ -188,7 +194,8 @@ class ExtensionHost : public DeferredStartRenderHost, content::BrowserContext* browser_context_; // The host for our HTML content. @@ -195,7 +196,7 @@ index 0d21ebc927042..a08ebcbafc252 100644 // once each time the extensions system is loaded per browser_context. The // implementation may wish to use the BrowserContext to record the current diff --git extensions/browser/process_manager.cc extensions/browser/process_manager.cc -index b6517195536df..8aaa645fcb0d5 100644 +index 4f33f582342d8..9e31be3254cfe 100644 --- extensions/browser/process_manager.cc +++ extensions/browser/process_manager.cc @@ -393,9 +393,17 @@ bool ProcessManager::CreateBackgroundHost(const Extension* extension, diff --git a/patch/patches/font_family_cache_1501.patch b/patch/patches/font_family_cache_1501.patch index 498802108..d618446f3 100644 --- a/patch/patches/font_family_cache_1501.patch +++ b/patch/patches/font_family_cache_1501.patch @@ -1,5 +1,5 @@ diff --git chrome/browser/font_family_cache.h chrome/browser/font_family_cache.h -index 0e5573a7326a2..28eb26fb7af55 100644 +index 514fb3aabe50e..6a034b3699a75 100644 --- chrome/browser/font_family_cache.h +++ chrome/browser/font_family_cache.h @@ -19,6 +19,8 @@ class Profile; diff --git a/patch/patches/gn_config.patch b/patch/patches/gn_config.patch index dda519973..2faa8ad4d 100644 --- a/patch/patches/gn_config.patch +++ b/patch/patches/gn_config.patch @@ -1,8 +1,8 @@ diff --git .gn .gn -index c89d504b288ba..3ae0eb3905db1 100644 +index e2e2dcebcdcdb..35443d0e2af1a 100644 --- .gn +++ .gn -@@ -145,6 +145,8 @@ exec_script_whitelist = +@@ -160,6 +160,8 @@ exec_script_whitelist = "//chrome/android/webapk/shell_apk/prepare_upload_dir/BUILD.gn", @@ -12,7 +12,7 @@ index c89d504b288ba..3ae0eb3905db1 100644 # https://crbug.com/474506. "//clank/java/BUILD.gn", diff --git BUILD.gn BUILD.gn -index 0624ab1a07c89..030c497f8e2a2 100644 +index 3f59615361652..db2d917fcc230 100644 --- BUILD.gn +++ BUILD.gn @@ -16,6 +16,7 @@ import("//build/config/sanitizers/sanitizers.gni") @@ -23,7 +23,7 @@ index 0624ab1a07c89..030c497f8e2a2 100644 import("//chrome/browser/buildflags.gni") import("//chrome/browser/media/router/features.gni") import("//components/nacl/features.gni") -@@ -265,6 +266,9 @@ group("gn_all") { +@@ -267,6 +268,9 @@ group("gn_all") { deps += [ "//chrome/test:telemetry_perf_unittests${_target_suffix}" ] } } @@ -79,7 +79,7 @@ index d2266b28b33f8..a7ff6d9b68f38 100644 +_OBJC_METACLASS_$_UnderlayOpenGLHostingWindow + diff --git chrome/chrome_paks.gni chrome/chrome_paks.gni -index a7056344778ec..322a3f313f63e 100644 +index 0d34dbed6909c..52d1de37a6c28 100644 --- chrome/chrome_paks.gni +++ chrome/chrome_paks.gni @@ -4,6 +4,7 @@ @@ -152,7 +152,7 @@ index 51fa0d7f4cf77..2ede68e9377eb 100644 outputs = [ # See also chrome.packed.7z conditionally added below. diff --git tools/grit/grit_defines.gni tools/grit/grit_defines.gni -index 497bc384ee79f..85056a86edd2c 100644 +index 6bf3b8b3e42bd..025d5bd2e9118 100644 --- tools/grit/grit_defines.gni +++ tools/grit/grit_defines.gni @@ -6,6 +6,7 @@ import("//build/config/chrome_build.gni") @@ -163,7 +163,7 @@ index 497bc384ee79f..85056a86edd2c 100644 import("//build/config/ui.gni") shared_intermediate_dir = rebase_path(root_gen_dir, root_build_dir) -@@ -119,6 +120,13 @@ if (is_android) { +@@ -112,6 +113,13 @@ if (is_android) { ] } diff --git a/patch/patches/gritsettings.patch b/patch/patches/gritsettings.patch index 9aee52ad7..4be638a19 100644 --- a/patch/patches/gritsettings.patch +++ b/patch/patches/gritsettings.patch @@ -1,12 +1,11 @@ diff --git tools/gritsettings/resource_ids.spec tools/gritsettings/resource_ids.spec -index 509687647e356..052818aaa2c7e 100644 +index 4e80d8de30827..2525656bfe7b5 100644 --- tools/gritsettings/resource_ids.spec +++ tools/gritsettings/resource_ids.spec -@@ -858,4 +858,13 @@ - # Please read the header and find the right section above instead. +@@ -887,6 +887,15 @@ + # END "everything else" section. + # Everything but chrome/, components/, content/, and ios/ - # Resource ids starting at 31000 are reserved for projects built on Chromium. -+ + "cef/libcef/resources/cef_resources.grd": { + "META": {"align": 31500}, + "includes": [31500], @@ -15,4 +14,7 @@ index 509687647e356..052818aaa2c7e 100644 + "META": {"align": 32000}, + "messages": [32000], + }, ++ + # Thinking about appending to the end? + # Please read the header and find the right section above instead. } diff --git a/patch/patches/linux_blink_thread_local.patch b/patch/patches/linux_blink_thread_local.patch index bf681a247..2d48ebd36 100644 --- a/patch/patches/linux_blink_thread_local.patch +++ b/patch/patches/linux_blink_thread_local.patch @@ -1,7 +1,7 @@ -diff --git third_party/blink/renderer/platform/heap/v8_wrapper/thread_local.h third_party/blink/renderer/platform/heap/v8_wrapper/thread_local.h -index 1a0c43b0eaf45..184155c81b08b 100644 ---- third_party/blink/renderer/platform/heap/v8_wrapper/thread_local.h -+++ third_party/blink/renderer/platform/heap/v8_wrapper/thread_local.h +diff --git third_party/blink/renderer/platform/heap/thread_local.h third_party/blink/renderer/platform/heap/thread_local.h +index 84ef4350bd96d..dbd5b0b73ebb2 100644 +--- third_party/blink/renderer/platform/heap/thread_local.h ++++ third_party/blink/renderer/platform/heap/thread_local.h @@ -36,7 +36,7 @@ #if BLINK_HEAP_HIDE_THREAD_LOCAL_IN_LIBRARY #define BLINK_HEAP_THREAD_LOCAL_MODEL "local-dynamic" diff --git a/patch/patches/linux_maldoca_3128781.patch b/patch/patches/linux_maldoca_3128781.patch deleted file mode 100644 index e4a1262b3..000000000 --- a/patch/patches/linux_maldoca_3128781.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git third_party/maldoca/BUILD.gn third_party/maldoca/BUILD.gn -index 3fb5c5962c07b..20e5809263398 100644 ---- third_party/maldoca/BUILD.gn -+++ third_party/maldoca/BUILD.gn -@@ -276,6 +276,7 @@ static_library("maldoca") { - "//third_party/boringssl", - "//third_party/libxml", - "//third_party/protobuf:protobuf_lite", -+ "//third_party/re2" - ] - - public_deps = [ diff --git a/patch/patches/linux_poll_2466.patch b/patch/patches/linux_poll_2466.patch index 68004b23c..00c19e628 100644 --- a/patch/patches/linux_poll_2466.patch +++ b/patch/patches/linux_poll_2466.patch @@ -1,5 +1,5 @@ diff --git base/files/file_path_watcher_linux.cc base/files/file_path_watcher_linux.cc -index 0c37e08d78825..80a8d27d9733b 100644 +index 0c37e08d78825..29afdf7ea865b 100644 --- base/files/file_path_watcher_linux.cc +++ base/files/file_path_watcher_linux.cc @@ -5,6 +5,7 @@ @@ -18,16 +18,14 @@ index 0c37e08d78825..80a8d27d9733b 100644 #include #include #include -@@ -274,19 +276,16 @@ void InotifyReaderThreadDelegate::ThreadMain() { +@@ -273,20 +275,13 @@ LazyInstance::Leaky g_inotify_reader = LAZY_INSTANCE_INITIALIZER; + void InotifyReaderThreadDelegate::ThreadMain() { PlatformThread::SetName("inotify_reader"); - // Make sure the file descriptors are good for use with select(). +- // Make sure the file descriptors are good for use with select(). - CHECK_LE(0, inotify_fd_); - CHECK_GT(FD_SETSIZE, inotify_fd_); -+ std::array fdarray -+ { { -+ { inotify_fd_, POLLIN, 0 } -+ } }; ++ std::array fdarray{{{inotify_fd_, POLLIN, 0}}}; while (true) { - fd_set rfds; diff --git a/patch/patches/linux_ui_ozone.patch b/patch/patches/linux_ui_ozone.patch new file mode 100644 index 000000000..fc32c665a --- /dev/null +++ b/patch/patches/linux_ui_ozone.patch @@ -0,0 +1,13 @@ +diff --git ui/ozone/BUILD.gn ui/ozone/BUILD.gn +index bf4dba1d1da49..520979a04f77f 100644 +--- ui/ozone/BUILD.gn ++++ ui/ozone/BUILD.gn +@@ -354,6 +354,8 @@ action("generate_test_support_constructor_list") { + ] + + deps = [ ":generate_ozone_platform_list" ] ++ ++ visibility += [ "//cef:*" ] + } + + test("ozone_unittests") { diff --git a/patch/patches/message_pump_mac_2495.patch b/patch/patches/message_pump_mac_2495.patch index 94ed5d01b..7e3aacba0 100644 --- a/patch/patches/message_pump_mac_2495.patch +++ b/patch/patches/message_pump_mac_2495.patch @@ -1,8 +1,8 @@ diff --git base/message_loop/message_pump_mac.mm base/message_loop/message_pump_mac.mm -index ebc9aa83a1a0e..a64b1f9d90c0c 100644 +index dd8147b884833..281a88eea8883 100644 --- base/message_loop/message_pump_mac.mm +++ base/message_loop/message_pump_mac.mm -@@ -692,7 +692,8 @@ void MessagePumpUIApplication::Detach() { +@@ -696,7 +696,8 @@ void MessagePumpUIApplication::Detach() { #else ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() { @@ -12,7 +12,7 @@ index ebc9aa83a1a0e..a64b1f9d90c0c 100644 DCHECK_EQ(kNSApplicationModalSafeModeMask, g_app_pump->GetModeMask()); // Pumping events in private runloop modes is known to interact badly with // app modal windows like NSAlert. -@@ -702,7 +703,8 @@ ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() { +@@ -706,7 +707,8 @@ ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() { } ScopedPumpMessagesInPrivateModes::~ScopedPumpMessagesInPrivateModes() { diff --git a/patch/patches/mime_handler_view_guest_1565_2727.patch b/patch/patches/mime_handler_view_guest_1565_2727.patch index c6f088b15..e106bb57f 100644 --- a/patch/patches/mime_handler_view_guest_1565_2727.patch +++ b/patch/patches/mime_handler_view_guest_1565_2727.patch @@ -12,7 +12,7 @@ index cdbc0273838e5..ee2809a0bb98a 100644 virtual ~WebContentsView() {} diff --git extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc -index b794ee4204fb8..ed1bb47c26758 100644 +index df1d12a9dcd38..6338faaf64f87 100644 --- extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc +++ extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc @@ -210,6 +210,8 @@ void MimeHandlerViewGuest::CreateWebContents( @@ -48,10 +48,10 @@ index b794ee4204fb8..ed1bb47c26758 100644 WebContents* source, const content::OpenURLParams& params) { diff --git extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h -index 647a9bdf39c60..b620cca912b73 100644 +index 663322919d453..fafab123461c6 100644 --- extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h +++ extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h -@@ -139,6 +139,7 @@ class MimeHandlerViewGuest +@@ -144,6 +144,7 @@ class MimeHandlerViewGuest void EmbedderFullscreenToggled(bool entered_fullscreen) final; bool ZoomPropagatesFromEmbedderToGuest() const final; bool ShouldDestroyOnDetach() const final; @@ -59,7 +59,7 @@ index 647a9bdf39c60..b620cca912b73 100644 // WebContentsDelegate implementation. content::WebContents* OpenURLFromTab( -@@ -197,6 +198,7 @@ class MimeHandlerViewGuest +@@ -202,6 +203,7 @@ class MimeHandlerViewGuest content::ChildProcessHost::kInvalidUniqueID, MSG_ROUTING_NONE}; int embedder_widget_routing_id_ = MSG_ROUTING_NONE; @@ -68,7 +68,7 @@ index 647a9bdf39c60..b620cca912b73 100644 bool is_embedder_fullscreen_ = false; bool plugin_can_save_ = false; diff --git extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h -index 98689e2614604..a1b08274f4556 100644 +index ec7bf1f089928..dbd4304e31f8c 100644 --- extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h +++ extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h @@ -8,9 +8,9 @@ @@ -82,8 +82,8 @@ index 98689e2614604..a1b08274f4556 100644 struct ContextMenuParams; } // namespace content -@@ -22,6 +22,14 @@ class MimeHandlerViewGuestDelegate { - MimeHandlerViewGuestDelegate() {} +@@ -27,6 +27,14 @@ class MimeHandlerViewGuestDelegate { + virtual ~MimeHandlerViewGuestDelegate() {} + // Provides an opportunity to supply a custom view implementation. diff --git a/patch/patches/net_cookie_flags.patch b/patch/patches/net_cookie_flags.patch index 95df19be2..5a7295a28 100644 --- a/patch/patches/net_cookie_flags.patch +++ b/patch/patches/net_cookie_flags.patch @@ -10,10 +10,10 @@ index 96d1a51ec1078..e8120a818b1f2 100644 +// This load will not send any cookies. For CEF usage. +LOAD_FLAG(DO_NOT_SEND_COOKIES, 1 << 17) diff --git net/url_request/url_request_http_job.cc net/url_request/url_request_http_job.cc -index f892d0bcb280a..aedc381f6dbf4 100644 +index ef4933bc2ccec..2741bbdb93671 100644 --- net/url_request/url_request_http_job.cc +++ net/url_request/url_request_http_job.cc -@@ -562,7 +562,8 @@ void URLRequestHttpJob::AddCookieHeaderAndStart() { +@@ -588,7 +588,8 @@ void URLRequestHttpJob::AddCookieHeaderAndStart() { // Read cookies whenever allow_credentials() is true, even if the PrivacyMode // is being overridden by NetworkDelegate and will eventually block them, as // blocked cookies still need to be logged in that case. @@ -24,10 +24,10 @@ index f892d0bcb280a..aedc381f6dbf4 100644 request_->force_ignore_site_for_cookies(); if (cookie_store->cookie_access_delegate() && diff --git services/network/public/cpp/resource_request.cc services/network/public/cpp/resource_request.cc -index 5fc02ead27db6..4e48070f18034 100644 +index a24972bd0d082..bdbc608a67ea5 100644 --- services/network/public/cpp/resource_request.cc +++ services/network/public/cpp/resource_request.cc -@@ -253,7 +253,8 @@ bool ResourceRequest::EqualsForTesting(const ResourceRequest& request) const { +@@ -258,7 +258,8 @@ bool ResourceRequest::EqualsForTesting(const ResourceRequest& request) const { } bool ResourceRequest::SendsCookies() const { diff --git a/patch/patches/osr_fling_2745.patch b/patch/patches/osr_fling_2745.patch index c26623122..174040c8c 100644 --- a/patch/patches/osr_fling_2745.patch +++ b/patch/patches/osr_fling_2745.patch @@ -41,10 +41,10 @@ index cc4b13a7b9c67..84f3b9ed7cf49 100644 } // namespace content diff --git content/browser/renderer_host/render_widget_host_impl.cc content/browser/renderer_host/render_widget_host_impl.cc -index d04421d235a08..91d67fefd4274 100644 +index cc527298ebe3c..bb9906d0b8712 100644 --- content/browser/renderer_host/render_widget_host_impl.cc +++ content/browser/renderer_host/render_widget_host_impl.cc -@@ -3119,6 +3119,11 @@ void RenderWidgetHostImpl::OnInvalidInputEventSource() { +@@ -3059,6 +3059,11 @@ void RenderWidgetHostImpl::OnInvalidInputEventSource() { GetProcess(), bad_message::INPUT_ROUTER_INVALID_EVENT_SOURCE); } @@ -57,10 +57,10 @@ index d04421d235a08..91d67fefd4274 100644 const WebInputEvent& event) { if ((base::FeatureList::IsEnabled( diff --git content/browser/renderer_host/render_widget_host_impl.h content/browser/renderer_host/render_widget_host_impl.h -index 42ee281d4f743..39def42840256 100644 +index da1bc9c7e01c6..ff876c3f04d3e 100644 --- content/browser/renderer_host/render_widget_host_impl.h +++ content/browser/renderer_host/render_widget_host_impl.h -@@ -766,6 +766,7 @@ class CONTENT_EXPORT RenderWidgetHostImpl +@@ -763,6 +763,7 @@ class CONTENT_EXPORT RenderWidgetHostImpl void ProgressFlingIfNeeded(base::TimeTicks current_time); void StopFling(); diff --git a/patch/patches/print_preview_123.patch b/patch/patches/print_preview_123.patch index 9eb10b4eb..67b29a9d5 100644 --- a/patch/patches/print_preview_123.patch +++ b/patch/patches/print_preview_123.patch @@ -1,5 +1,5 @@ diff --git chrome/browser/download/download_prefs.cc chrome/browser/download/download_prefs.cc -index 8f2e9445c9207..eccf2a3684650 100644 +index 5f5f6cc2d1024..ab5e0d1517c01 100644 --- chrome/browser/download/download_prefs.cc +++ chrome/browser/download/download_prefs.cc @@ -24,6 +24,7 @@ @@ -21,7 +21,7 @@ index 8f2e9445c9207..eccf2a3684650 100644 using content::BrowserContext; using content::BrowserThread; using content::DownloadManager; -@@ -348,6 +353,11 @@ DownloadPrefs* DownloadPrefs::FromDownloadManager( +@@ -349,6 +354,11 @@ DownloadPrefs* DownloadPrefs::FromDownloadManager( // static DownloadPrefs* DownloadPrefs::FromBrowserContext( content::BrowserContext* context) { @@ -34,7 +34,7 @@ index 8f2e9445c9207..eccf2a3684650 100644 } diff --git chrome/browser/printing/print_preview_dialog_controller.cc chrome/browser/printing/print_preview_dialog_controller.cc -index 4ff73fd2d9ec3..d56686d8284ba 100644 +index 434d4781e2342..2bdd03803c6f8 100644 --- chrome/browser/printing/print_preview_dialog_controller.cc +++ chrome/browser/printing/print_preview_dialog_controller.cc @@ -15,6 +15,7 @@ @@ -45,7 +45,7 @@ index 4ff73fd2d9ec3..d56686d8284ba 100644 #include "chrome/browser/browser_process.h" #include "chrome/browser/extensions/chrome_extension_web_contents_observer.h" #include "chrome/browser/printing/print_view_manager.h" -@@ -402,8 +403,11 @@ WebContents* PrintPreviewDialogController::CreatePrintPreviewDialog( +@@ -404,8 +405,11 @@ WebContents* PrintPreviewDialogController::CreatePrintPreviewDialog( content::HostZoomMap::Get(preview_dialog->GetSiteInstance()) ->SetZoomLevelForHostAndScheme(print_url.scheme(), print_url.host(), 0); PrintViewManager::CreateForWebContents(preview_dialog); @@ -58,7 +58,7 @@ index 4ff73fd2d9ec3..d56686d8284ba 100644 // Add an entry to the map. preview_dialog_map_[preview_dialog] = initiator; diff --git chrome/browser/printing/print_view_manager_base.cc chrome/browser/printing/print_view_manager_base.cc -index e4cacbf9a82da..260fdc00ab860 100644 +index 2011d52338081..362d741d50a33 100644 --- chrome/browser/printing/print_view_manager_base.cc +++ chrome/browser/printing/print_view_manager_base.cc @@ -21,6 +21,7 @@ @@ -80,7 +80,7 @@ index e4cacbf9a82da..260fdc00ab860 100644 #if BUILDFLAG(ENABLE_PRINT_PREVIEW) #include "chrome/browser/printing/print_error_dialog.h" #include "chrome/browser/printing/print_view_manager.h" -@@ -216,8 +221,13 @@ PrintViewManager* GetPrintViewManager(int render_process_id, +@@ -217,8 +222,13 @@ PrintViewManager* GetPrintViewManager(int render_process_id, DCHECK_CURRENTLY_ON(content::BrowserThread::UI); content::WebContents* web_contents = GetWebContentsForRenderFrame(render_process_id, render_frame_id); @@ -96,7 +96,7 @@ index e4cacbf9a82da..260fdc00ab860 100644 } void NotifySystemDialogCancelled(int render_process_id, int routing_id) { -@@ -273,8 +283,7 @@ void UpdatePrintSettingsOnIO( +@@ -274,8 +284,7 @@ void UpdatePrintSettingsOnIO( DCHECK_CURRENTLY_ON(content::BrowserThread::IO); std::unique_ptr printer_query = queue->PopPrinterQuery(cookie); if (!printer_query) { @@ -107,10 +107,10 @@ index e4cacbf9a82da..260fdc00ab860 100644 auto* printer_query_ptr = printer_query.get(); printer_query_ptr->SetSettings( diff --git chrome/browser/printing/print_view_manager_base.h chrome/browser/printing/print_view_manager_base.h -index eaa0e162a339b..8e030d2ab3995 100644 +index c4bcf96d0ac01..c549e3bf2ca36 100644 --- chrome/browser/printing/print_view_manager_base.h +++ chrome/browser/printing/print_view_manager_base.h -@@ -126,9 +126,6 @@ class PrintViewManagerBase : public content::NotificationObserver, +@@ -149,9 +149,6 @@ class PrintViewManagerBase : public content::NotificationObserver, // Manages the low-level talk to the printer. scoped_refptr print_job_; @@ -161,7 +161,7 @@ index 1b6b4e93b45d2..b51f277453529 100644 ConstrainedWebDialogUI::~ConstrainedWebDialogUI() = default; diff --git chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc -index 1b18146a4ba8f..9094f488642fc 100644 +index 8933bc14bdefe..796b8827692c3 100644 --- chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc +++ chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc @@ -21,6 +21,7 @@ @@ -280,7 +280,7 @@ index 1b18146a4ba8f..9094f488642fc 100644 #if BUILDFLAG(IS_CHROMEOS_ASH) drive::DriveIntegrationService* drive_service = diff --git chrome/browser/ui/webui/print_preview/pdf_printer_handler.h chrome/browser/ui/webui/print_preview/pdf_printer_handler.h -index e326047aef5e9..4fc8898e95b6f 100644 +index b3a6eaa270877..aa4e84fea1387 100644 --- chrome/browser/ui/webui/print_preview/pdf_printer_handler.h +++ chrome/browser/ui/webui/print_preview/pdf_printer_handler.h @@ -11,6 +11,7 @@ @@ -291,7 +291,7 @@ index e326047aef5e9..4fc8898e95b6f 100644 #include "chrome/browser/ui/webui/print_preview/printer_handler.h" #include "ui/shell_dialogs/select_file_dialog.h" -@@ -91,10 +92,20 @@ class PdfPrinterHandler : public PrinterHandler, +@@ -94,10 +95,20 @@ class PdfPrinterHandler : public PrinterHandler, void OnDirectorySelected(const base::FilePath& filename, const base::FilePath& directory); @@ -314,7 +314,7 @@ index e326047aef5e9..4fc8898e95b6f 100644 base::FilePath GetSaveLocation() const; diff --git chrome/browser/ui/webui/print_preview/print_preview_ui.cc chrome/browser/ui/webui/print_preview/print_preview_ui.cc -index 424ee9168d93a..aa6266ccf443c 100644 +index 7695cf2a3a2e2..887e047b83b72 100644 --- chrome/browser/ui/webui/print_preview/print_preview_ui.cc +++ chrome/browser/ui/webui/print_preview/print_preview_ui.cc @@ -29,6 +29,7 @@ @@ -325,7 +325,7 @@ index 424ee9168d93a..aa6266ccf443c 100644 #include "chrome/browser/browser_process.h" #include "chrome/browser/pdf/pdf_extension_util.h" #include "chrome/browser/printing/background_printing_manager.h" -@@ -98,6 +99,13 @@ const char16_t kBasicPrintShortcut[] = u"\u0028\u21e7\u2318\u0050\u0029"; +@@ -102,6 +103,13 @@ const char16_t kBasicPrintShortcut[] = u"\u0028\u21e7\u2318\u0050\u0029"; const char16_t kBasicPrintShortcut[] = u"(Ctrl+Shift+P)"; #endif @@ -339,7 +339,7 @@ index 424ee9168d93a..aa6266ccf443c 100644 constexpr char kInvalidArgsForDidStartPreview[] = "Invalid arguments for DidStartPreview"; constexpr char kInvalidPageNumberForDidPreviewPage[] = -@@ -383,7 +391,7 @@ void AddPrintPreviewStrings(content::WebUIDataSource* source) { +@@ -391,7 +399,7 @@ void AddPrintPreviewStrings(content::WebUIDataSource* source) { chrome::kCloudPrintCertificateErrorLearnMoreURL); #if !defined(OS_CHROMEOS) diff --git a/patch/patches/printing_context_2196.patch b/patch/patches/printing_context_2196.patch index 8c9aefb51..a814fda16 100644 --- a/patch/patches/printing_context_2196.patch +++ b/patch/patches/printing_context_2196.patch @@ -1,8 +1,8 @@ diff --git chrome/browser/printing/print_job_worker.cc chrome/browser/printing/print_job_worker.cc -index 2824b97e715a4..7207b58654e49 100644 +index 288b9f89129de..698f90ab66f2d 100644 --- chrome/browser/printing/print_job_worker.cc +++ chrome/browser/printing/print_job_worker.cc -@@ -135,6 +135,7 @@ PrintJobWorker::PrintJobWorker(int render_process_id, int render_frame_id) +@@ -148,6 +148,7 @@ PrintJobWorker::PrintJobWorker(int render_process_id, int render_frame_id) PrintingContext::Create(printing_context_delegate_.get())), thread_("Printing_Worker") { DCHECK_CURRENTLY_ON(content::BrowserThread::IO); @@ -11,10 +11,10 @@ index 2824b97e715a4..7207b58654e49 100644 PrintJobWorker::~PrintJobWorker() { diff --git printing/printing_context.h printing/printing_context.h -index 753bc1d564d60..b80641b465217 100644 +index b28af89c67f88..53f107bf413fa 100644 --- printing/printing_context.h +++ printing/printing_context.h -@@ -149,6 +149,13 @@ class COMPONENT_EXPORT(PRINTING) PrintingContext { +@@ -143,6 +143,13 @@ class COMPONENT_EXPORT(PRINTING) PrintingContext { int job_id() const { return job_id_; } @@ -28,7 +28,7 @@ index 753bc1d564d60..b80641b465217 100644 protected: explicit PrintingContext(Delegate* delegate); -@@ -176,6 +183,10 @@ class COMPONENT_EXPORT(PRINTING) PrintingContext { +@@ -170,6 +177,10 @@ class COMPONENT_EXPORT(PRINTING) PrintingContext { // The job id for the current job. The value is 0 if no jobs are active. int job_id_; diff --git a/patch/patches/renderer_host_1070713.patch b/patch/patches/renderer_host_1070713.patch index b457ed9a9..50418ee42 100644 --- a/patch/patches/renderer_host_1070713.patch +++ b/patch/patches/renderer_host_1070713.patch @@ -1,8 +1,8 @@ diff --git content/browser/renderer_host/render_view_host_impl.cc content/browser/renderer_host/render_view_host_impl.cc -index af75828e89e8c..c7742fb2aa69d 100644 +index 21cbb423d083a..4e92422e467e2 100644 --- content/browser/renderer_host/render_view_host_impl.cc +++ content/browser/renderer_host/render_view_host_impl.cc -@@ -624,6 +624,8 @@ bool RenderViewHostImpl::IsRenderViewLive() { +@@ -627,6 +627,8 @@ bool RenderViewHostImpl::IsRenderViewLive() { } void RenderViewHostImpl::SetBackgroundOpaque(bool opaque) { diff --git a/patch/patches/renderer_preferences_util_545103.patch b/patch/patches/renderer_preferences_util_545103.patch deleted file mode 100644 index 0c093fbed..000000000 --- a/patch/patches/renderer_preferences_util_545103.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git chrome/browser/renderer_preferences_util.cc chrome/browser/renderer_preferences_util.cc -index f61123b6cf989..b2d3b3619b93c 100644 ---- chrome/browser/renderer_preferences_util.cc -+++ chrome/browser/renderer_preferences_util.cc -@@ -42,7 +42,8 @@ - #include "ui/base/cocoa/defaults_utils.h" - #endif - --#if defined(USE_AURA) && (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) -+#if defined(USE_AURA) && (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \ -+ defined(ENABLE_THEMES) - #include "chrome/browser/themes/theme_service.h" - #include "chrome/browser/themes/theme_service_factory.h" - #include "ui/views/linux_ui/linux_ui.h" -@@ -170,7 +171,8 @@ void UpdateFromSystemSettings(blink::RendererPreferences* prefs, - prefs->caret_blink_interval = interval; - #endif - --#if defined(USE_AURA) && (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) -+#if defined(USE_AURA) && (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \ -+ defined(ENABLE_THEMES) - views::LinuxUI* linux_ui = views::LinuxUI::instance(); - if (linux_ui) { - if (ThemeServiceFactory::GetForProfile(profile)->UsingSystemTheme()) { diff --git a/patch/patches/resource_bundle_2512.patch b/patch/patches/resource_bundle_2512.patch index 286ad8abf..25cca9289 100644 --- a/patch/patches/resource_bundle_2512.patch +++ b/patch/patches/resource_bundle_2512.patch @@ -1,8 +1,8 @@ diff --git ui/base/resource/resource_bundle.cc ui/base/resource/resource_bundle.cc -index 65585cd5cb5a5..d5d669f2a63dc 100644 +index 4803daaa1eadc..b66a19afc4b76 100644 --- ui/base/resource/resource_bundle.cc +++ ui/base/resource/resource_bundle.cc -@@ -838,6 +838,12 @@ ResourceBundle::ResourceBundle(Delegate* delegate) +@@ -841,6 +841,12 @@ ResourceBundle::ResourceBundle(Delegate* delegate) : delegate_(delegate), locale_resources_data_lock_(new base::Lock), max_scale_factor_(k100Percent) { @@ -15,7 +15,7 @@ index 65585cd5cb5a5..d5d669f2a63dc 100644 mangle_localized_strings_ = base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kMangleLocalizedStrings); } -@@ -847,6 +853,11 @@ ResourceBundle::~ResourceBundle() { +@@ -850,6 +856,11 @@ ResourceBundle::~ResourceBundle() { UnloadLocaleResources(); } @@ -28,12 +28,12 @@ index 65585cd5cb5a5..d5d669f2a63dc 100644 void ResourceBundle::InitSharedInstance(Delegate* delegate) { DCHECK(g_shared_instance_ == nullptr) << "ResourceBundle initialized twice"; diff --git ui/base/resource/resource_bundle.h ui/base/resource/resource_bundle.h -index 21274f68fb04d..0e134919b3b8b 100644 +index 098b9128f6515..a74e733afd228 100644 --- ui/base/resource/resource_bundle.h +++ ui/base/resource/resource_bundle.h -@@ -191,6 +191,11 @@ class COMPONENT_EXPORT(UI_BASE) ResourceBundle { - // Return the global resource loader instance. - static ResourceBundle& GetSharedInstance(); +@@ -194,6 +194,11 @@ class COMPONENT_EXPORT(UI_BASE) ResourceBundle { + ResourceBundle(const ResourceBundle&) = delete; + ResourceBundle& operator=(const ResourceBundle&) = delete; + // With CEF's multi-threaded mode the ResourceBundle may be created/destroyed + // on the main thread but accessed on the UI thread. Call this method on the diff --git a/patch/patches/rwh_background_color_1984.patch b/patch/patches/rwh_background_color_1984.patch index a579307b4..ffa868533 100644 --- a/patch/patches/rwh_background_color_1984.patch +++ b/patch/patches/rwh_background_color_1984.patch @@ -1,8 +1,8 @@ diff --git content/browser/renderer_host/render_widget_host_view_aura.cc content/browser/renderer_host/render_widget_host_view_aura.cc -index 28e9a059a5c22..f9de44e10828f 100644 +index 239088813b9fa..c80c751b5f9bf 100644 --- content/browser/renderer_host/render_widget_host_view_aura.cc +++ content/browser/renderer_host/render_widget_host_view_aura.cc -@@ -656,10 +656,12 @@ gfx::Rect RenderWidgetHostViewAura::GetViewBounds() { +@@ -662,10 +662,12 @@ gfx::Rect RenderWidgetHostViewAura::GetViewBounds() { void RenderWidgetHostViewAura::UpdateBackgroundColor() { DCHECK(GetBackgroundColor()); @@ -19,7 +19,7 @@ index 28e9a059a5c22..f9de44e10828f 100644 } absl::optional RenderWidgetHostViewAura::GetDisplayFeature() { -@@ -2113,6 +2115,16 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) { +@@ -2141,6 +2143,16 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) { // This needs to happen only after |window_| has been initialized using // Init(), because it needs to have the layer. window_->SetEmbedFrameSinkId(frame_sink_id_); diff --git a/patch/patches/services_network_2622.patch b/patch/patches/services_network_2622.patch index 7522d9ab2..374c46878 100644 --- a/patch/patches/services_network_2622.patch +++ b/patch/patches/services_network_2622.patch @@ -1,5 +1,5 @@ diff --git chrome/browser/net/profile_network_context_service.cc chrome/browser/net/profile_network_context_service.cc -index edbc03f9230de..cc0926c573325 100644 +index a0b46c8619458..dee22b1fc7286 100644 --- chrome/browser/net/profile_network_context_service.cc +++ chrome/browser/net/profile_network_context_service.cc @@ -21,6 +21,7 @@ @@ -7,10 +7,10 @@ index edbc03f9230de..cc0926c573325 100644 #include "base/task/thread_pool.h" #include "build/chromeos_buildflags.h" +#include "cef/libcef/features/runtime.h" + #include "chrome/browser/browser_features.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/content_settings/cookie_settings_factory.h" - #include "chrome/browser/content_settings/host_content_settings_map_factory.h" -@@ -678,7 +679,19 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal( +@@ -677,7 +678,19 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal( // Configure on-disk storage for non-OTR profiles. OTR profiles just use // default behavior (in memory storage, default sizes). @@ -31,7 +31,7 @@ index edbc03f9230de..cc0926c573325 100644 PrefService* local_state = g_browser_process->local_state(); // Configure the HTTP cache path and size. base::FilePath base_cache_path; -@@ -691,7 +704,9 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal( +@@ -690,7 +703,9 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal( base_cache_path.Append(chrome::kCacheDirname); network_context_params->http_cache_max_size = local_state->GetInteger(prefs::kDiskCacheSize); @@ -42,10 +42,10 @@ index edbc03f9230de..cc0926c573325 100644 ::network::mojom::NetworkContextFilePaths::New(); diff --git net/cookies/cookie_monster.cc net/cookies/cookie_monster.cc -index b30a5ea775156..f381fe0540c93 100644 +index 5c3c232d596d6..18e80cb883bc1 100644 --- net/cookies/cookie_monster.cc +++ net/cookies/cookie_monster.cc -@@ -505,6 +505,25 @@ void CookieMonster::SetCookieableSchemes( +@@ -509,6 +509,25 @@ void CookieMonster::SetCookieableSchemes( MaybeRunCookieCallback(std::move(callback), true); } @@ -72,10 +72,10 @@ index b30a5ea775156..f381fe0540c93 100644 void CookieMonster::SetPersistSessionCookies(bool persist_session_cookies) { DCHECK(thread_checker_.CalledOnValidThread()); diff --git net/cookies/cookie_monster.h net/cookies/cookie_monster.h -index ad50ff33792ab..617c6d9061806 100644 +index 5828ff23cdb25..d29e746701060 100644 --- net/cookies/cookie_monster.h +++ net/cookies/cookie_monster.h -@@ -181,6 +181,8 @@ class NET_EXPORT CookieMonster : public CookieStore { +@@ -203,6 +203,8 @@ class NET_EXPORT CookieMonster : public CookieStore { CookieChangeDispatcher& GetChangeDispatcher() override; void SetCookieableSchemes(const std::vector& schemes, SetCookieableSchemesCallback callback) override; @@ -85,10 +85,10 @@ index ad50ff33792ab..617c6d9061806 100644 // Enables writing session cookies into the cookie database. If this this // method is called, it must be called before first use of the instance diff --git net/cookies/cookie_store.h net/cookies/cookie_store.h -index ea17ea39baead..9669ed0f908a7 100644 +index 3a6c7c10d2638..1fd6811ab8e00 100644 --- net/cookies/cookie_store.h +++ net/cookies/cookie_store.h -@@ -149,6 +149,11 @@ class NET_EXPORT CookieStore { +@@ -154,6 +154,11 @@ class NET_EXPORT CookieStore { // Transfer ownership of a CookieAccessDelegate. void SetCookieAccessDelegate(std::unique_ptr delegate); @@ -101,10 +101,10 @@ index ea17ea39baead..9669ed0f908a7 100644 // reset to null. const CookieAccessDelegate* cookie_access_delegate() const { diff --git services/network/cookie_manager.cc services/network/cookie_manager.cc -index a397306372054..8a1bacea8d70c 100644 +index c09630b639542..a8b207b85a87e 100644 --- services/network/cookie_manager.cc +++ services/network/cookie_manager.cc -@@ -249,14 +249,9 @@ void CookieManager::FlushCookieStore(FlushCookieStoreCallback callback) { +@@ -253,14 +253,9 @@ void CookieManager::FlushCookieStore(FlushCookieStoreCallback callback) { void CookieManager::AllowFileSchemeCookies( bool allow, AllowFileSchemeCookiesCallback callback) { @@ -123,10 +123,10 @@ index a397306372054..8a1bacea8d70c 100644 void CookieManager::SetForceKeepSessionState() { diff --git services/network/network_context.cc services/network/network_context.cc -index 188fe601bdf59..bfe5b8e921eb5 100644 +index f8fddf1b0a2c7..35cac9272725a 100644 --- services/network/network_context.cc +++ services/network/network_context.cc -@@ -2141,16 +2141,27 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -2144,16 +2144,27 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( network_service_->network_quality_estimator()); } @@ -157,10 +157,10 @@ index 188fe601bdf59..bfe5b8e921eb5 100644 trust_token_store_ = std::make_unique(); diff --git services/network/public/mojom/network_context.mojom services/network/public/mojom/network_context.mojom -index 84b2e4eee90b1..0646b81a9235f 100644 +index f3f625cc6d545..0c2a270cdad2c 100644 --- services/network/public/mojom/network_context.mojom +++ services/network/public/mojom/network_context.mojom -@@ -298,6 +298,9 @@ struct NetworkContextParams { +@@ -311,6 +311,9 @@ struct NetworkContextParams { // cookies. Otherwise it should be false. bool persist_session_cookies = false; diff --git a/patch/patches/services_network_2718.patch b/patch/patches/services_network_2718.patch index 3e74eb914..f97808ad1 100644 --- a/patch/patches/services_network_2718.patch +++ b/patch/patches/services_network_2718.patch @@ -1,8 +1,8 @@ diff --git content/browser/storage_partition_impl.cc content/browser/storage_partition_impl.cc -index de63186ea911e..4beccce527c86 100644 +index 95e5475cc69e8..2c07037751538 100644 --- content/browser/storage_partition_impl.cc +++ content/browser/storage_partition_impl.cc -@@ -498,10 +498,6 @@ class LoginHandlerDelegate { +@@ -474,10 +474,6 @@ class LoginHandlerDelegate { } WebContents* web_contents = web_contents_getter_.Run(); @@ -13,7 +13,7 @@ index de63186ea911e..4beccce527c86 100644 // WeakPtr is not strictly necessary here due to OnRequestCancelled. creating_login_delegate_ = true; -@@ -552,12 +548,6 @@ void OnAuthRequiredContinuation( +@@ -528,12 +524,6 @@ void OnAuthRequiredContinuation( mojo::PendingRemote auth_challenge_responder, base::RepeatingCallback web_contents_getter) { @@ -26,7 +26,7 @@ index de63186ea911e..4beccce527c86 100644 new LoginHandlerDelegate( std::move(auth_challenge_responder), std::move(web_contents_getter), auth_info, is_request_for_main_frame, process_id, request_id, url, -@@ -2689,8 +2679,12 @@ void StoragePartitionImpl::GetQuotaSettings( +@@ -2671,8 +2661,12 @@ void StoragePartitionImpl::GetQuotaSettings( return; } @@ -40,12 +40,15 @@ index de63186ea911e..4beccce527c86 100644 storage::GetDefaultDeviceInfoHelper(), std::move(callback)); } -@@ -2703,6 +2697,11 @@ void StoragePartitionImpl::InitNetworkContext() { - GetContentClient()->browser()->ConfigureNetworkContextParams( +@@ -2682,9 +2676,12 @@ void StoragePartitionImpl::InitNetworkContext() { + cert_verifier::mojom::CertVerifierCreationParamsPtr + cert_verifier_creation_params = + cert_verifier::mojom::CertVerifierCreationParams::New(); +- GetContentClient()->browser()->ConfigureNetworkContextParams( ++ if (!GetContentClient()->browser()->ConfigureNetworkContextParams( browser_context_, is_in_memory(), relative_partition_path_, - context_params.get(), cert_verifier_creation_params.get()); -+ if (context_params->context_name && -+ *context_params->context_name == "magic_shutting_down") { +- context_params.get(), cert_verifier_creation_params.get()); ++ context_params.get(), cert_verifier_creation_params.get())) { + // Don't re-initialize the network context during shutdown. + return; + } diff --git a/patch/patches/set_resize_background_color.patch b/patch/patches/set_resize_background_color.patch index d28e813db..010f680b0 100644 --- a/patch/patches/set_resize_background_color.patch +++ b/patch/patches/set_resize_background_color.patch @@ -12,10 +12,10 @@ index 91e9eac1fcf71..05b668948c02f 100644 void NativeViewHost::VisibilityChanged(View* starting_from, bool is_visible) { diff --git ui/views/controls/native/native_view_host.h ui/views/controls/native/native_view_host.h -index 3ed75e4c9b11e..c4a7318de5dd7 100644 +index 41dfc21830866..d1bd55a117e53 100644 --- ui/views/controls/native/native_view_host.h +++ ui/views/controls/native/native_view_host.h -@@ -94,6 +94,12 @@ class VIEWS_EXPORT NativeViewHost : public View { +@@ -98,6 +98,12 @@ class VIEWS_EXPORT NativeViewHost : public View { void set_fast_resize(bool fast_resize) { fast_resize_ = fast_resize; } bool fast_resize() const { return fast_resize_; } @@ -28,21 +28,21 @@ index 3ed75e4c9b11e..c4a7318de5dd7 100644 gfx::NativeView native_view() const { return native_view_; } void NativeViewDestroyed(); -@@ -140,6 +146,9 @@ class VIEWS_EXPORT NativeViewHost : public View { +@@ -143,6 +149,9 @@ class VIEWS_EXPORT NativeViewHost : public View { + // True if the native view is being resized using the fast method described // in the setter/accessor above. bool fast_resize_ = false; - ++ + // Color to paint in the background while resizing. + SkColor resize_background_color_ = SK_ColorWHITE; -+ - DISALLOW_COPY_AND_ASSIGN(NativeViewHost); }; + } // namespace views diff --git ui/views/controls/webview/webview.cc ui/views/controls/webview/webview.cc -index 4423a94572577..a8842513d2db0 100644 +index b9e835bc1ef76..cb7b51ac98451 100644 --- ui/views/controls/webview/webview.cc +++ ui/views/controls/webview/webview.cc -@@ -132,6 +132,10 @@ void WebView::EnableSizingFromWebContents(const gfx::Size& min_size, +@@ -137,6 +137,10 @@ void WebView::EnableSizingFromWebContents(const gfx::Size& min_size, MaybeEnableAutoResize(web_contents()->GetMainFrame()); } @@ -54,10 +54,10 @@ index 4423a94572577..a8842513d2db0 100644 if (crashed_overlay_view_ == crashed_overlay_view) return; diff --git ui/views/controls/webview/webview.h ui/views/controls/webview/webview.h -index 5bac066d8bcd9..9463256ca86f6 100644 +index 54c078de0363c..add83c987c3ec 100644 --- ui/views/controls/webview/webview.h +++ ui/views/controls/webview/webview.h -@@ -78,6 +78,10 @@ class WEBVIEW_EXPORT WebView : public View, +@@ -84,6 +84,10 @@ class WEBVIEW_EXPORT WebView : public View, void EnableSizingFromWebContents(const gfx::Size& min_size, const gfx::Size& max_size); diff --git a/patch/patches/trace_event.patch b/patch/patches/trace_event.patch index 7aeaa1e85..33c2b7f2a 100644 --- a/patch/patches/trace_event.patch +++ b/patch/patches/trace_event.patch @@ -1,5 +1,5 @@ diff --git base/trace_event/builtin_categories.h base/trace_event/builtin_categories.h -index 702ac1a546463..c3844be6462cd 100644 +index 60bba6a85d393..70eee12a53157 100644 --- base/trace_event/builtin_categories.h +++ base/trace_event/builtin_categories.h @@ -61,6 +61,8 @@ diff --git a/patch/patches/ui_dragdrop_355390.patch b/patch/patches/ui_dragdrop_355390.patch index 029ecd21f..2013d7092 100644 --- a/patch/patches/ui_dragdrop_355390.patch +++ b/patch/patches/ui_dragdrop_355390.patch @@ -1,8 +1,8 @@ diff --git ui/base/x/x11_os_exchange_data_provider.cc ui/base/x/x11_os_exchange_data_provider.cc -index d3f24a6dce7ad..901198a562e44 100644 +index 4cd2a43b4d937..cd1b9faf6e9a7 100644 --- ui/base/x/x11_os_exchange_data_provider.cc +++ ui/base/x/x11_os_exchange_data_provider.cc -@@ -123,7 +123,8 @@ void XOSExchangeDataProvider::SetURL(const GURL& url, +@@ -127,7 +127,8 @@ void XOSExchangeDataProvider::SetURL(const GURL& url, format_map_.Insert(x11::GetAtom(kMimeTypeMozillaURL), mem); // Set a string fallback as well. diff --git a/patch/patches/views_1749_2102.patch b/patch/patches/views_1749_2102.patch index 35fbe5dd3..0b588b239 100644 --- a/patch/patches/views_1749_2102.patch +++ b/patch/patches/views_1749_2102.patch @@ -43,7 +43,7 @@ index f095bfc301151..f4eab5e49b61c 100644 virtual void MenuWillShow() {} diff --git ui/gfx/render_text.cc ui/gfx/render_text.cc -index dd24fd131a50d..3b8c7e04a0d21 100644 +index 99120dd6d7fb0..94f2d52787860 100644 --- ui/gfx/render_text.cc +++ ui/gfx/render_text.cc @@ -650,6 +650,14 @@ void RenderText::SetWhitespaceElision(absl::optional whitespace_elision) { @@ -119,10 +119,10 @@ index 7ff4204a36c35..6094f15b36470 100644 friend class test::InkDropHostTestApi; diff --git ui/views/controls/button/label_button.cc ui/views/controls/button/label_button.cc -index dbc9ca7ccb3e4..5546dc83a2de9 100644 +index 57e3a7d7e1d8c..eaccdf1cc50cc 100644 --- ui/views/controls/button/label_button.cc +++ ui/views/controls/button/label_button.cc -@@ -509,6 +509,12 @@ void LabelButton::OnThemeChanged() { +@@ -510,6 +510,12 @@ void LabelButton::OnThemeChanged() { SchedulePaint(); } @@ -150,10 +150,10 @@ index 9b5389139c2fb..6111c18533564 100644 ImageView* image() const { return image_; } Label* label() const { return label_; } diff --git ui/views/controls/label.cc ui/views/controls/label.cc -index 79a26da93a4eb..e755a11efc658 100644 +index bb2e1b4412205..493cb05b5c7fa 100644 --- ui/views/controls/label.cc +++ ui/views/controls/label.cc -@@ -52,12 +52,27 @@ enum LabelPropertyKey { +@@ -53,12 +53,27 @@ enum LabelPropertyKey { kLabelLineHeight, kLabelObscured, kLabelAllowCharacterBreak, @@ -181,7 +181,7 @@ index 79a26da93a4eb..e755a11efc658 100644 } // namespace namespace views { -@@ -421,6 +436,15 @@ void Label::SetElideBehavior(gfx::ElideBehavior elide_behavior) { +@@ -422,6 +437,15 @@ void Label::SetElideBehavior(gfx::ElideBehavior elide_behavior) { OnPropertyChanged(&elide_behavior_, kPropertyEffectsPreferredSizeChanged); } @@ -197,7 +197,7 @@ index 79a26da93a4eb..e755a11efc658 100644 std::u16string Label::GetTooltipText() const { return tooltip_text_; } -@@ -717,6 +741,16 @@ std::unique_ptr Label::CreateRenderText() const { +@@ -718,6 +742,16 @@ std::unique_ptr Label::CreateRenderText() const { render_text->SelectRange(stored_selection_range_); } @@ -215,10 +215,10 @@ index 79a26da93a4eb..e755a11efc658 100644 } diff --git ui/views/controls/label.h ui/views/controls/label.h -index 5bad0a8cd8cbc..da57021f0cefa 100644 +index 049983a12312c..7c0cb56ab627e 100644 --- ui/views/controls/label.h +++ ui/views/controls/label.h -@@ -230,6 +230,10 @@ class VIEWS_EXPORT Label : public View, +@@ -233,6 +233,10 @@ class VIEWS_EXPORT Label : public View, gfx::ElideBehavior GetElideBehavior() const; void SetElideBehavior(gfx::ElideBehavior elide_behavior); @@ -229,7 +229,7 @@ index 5bad0a8cd8cbc..da57021f0cefa 100644 // Gets/Sets the tooltip text. Default behavior for a label (single-line) is // to show the full text if it is wider than its bounds. Calling this // overrides the default behavior and lets you set a custom tooltip. To -@@ -476,6 +480,7 @@ class VIEWS_EXPORT Label : public View, +@@ -479,6 +483,7 @@ class VIEWS_EXPORT Label : public View, int max_width_ = 0; // This is used in single-line mode. int max_width_single_line_ = 0; @@ -238,10 +238,10 @@ index 5bad0a8cd8cbc..da57021f0cefa 100644 std::unique_ptr selection_controller_; diff --git ui/views/controls/menu/menu_controller.cc ui/views/controls/menu/menu_controller.cc -index 6905cbd8354ef..86d56579b066a 100644 +index 5a554d16234e5..eb7b21c2cc2ce 100644 --- ui/views/controls/menu/menu_controller.cc +++ ui/views/controls/menu/menu_controller.cc -@@ -2852,8 +2852,13 @@ MenuItemView* MenuController::FindNextSelectableMenuItem( +@@ -2854,8 +2854,13 @@ MenuItemView* MenuController::FindNextSelectableMenuItem( void MenuController::OpenSubmenuChangeSelectionIfCan() { MenuItemView* item = pending_state_.item; @@ -256,7 +256,7 @@ index 6905cbd8354ef..86d56579b066a 100644 MenuItemView* to_select = nullptr; if (!item->GetSubmenu()->GetMenuItems().empty()) to_select = FindInitialSelectableMenuItem(item, INCREMENT_SELECTION_DOWN); -@@ -2872,8 +2877,10 @@ void MenuController::OpenSubmenuChangeSelectionIfCan() { +@@ -2874,8 +2879,10 @@ void MenuController::OpenSubmenuChangeSelectionIfCan() { void MenuController::CloseSubmenu() { MenuItemView* item = state_.item; DCHECK(item); @@ -308,10 +308,10 @@ index 9c1542e1f4f0f..548fc8e87d520 100644 virtual int GetMaxWidthForMenu(MenuItemView* menu); diff --git ui/views/controls/menu/menu_item_view.cc ui/views/controls/menu/menu_item_view.cc -index 9e5fb8d852607..a0106ee33b1f3 100644 +index 23c49fc5325cd..98f3c89e71bcd 100644 --- ui/views/controls/menu/menu_item_view.cc +++ ui/views/controls/menu/menu_item_view.cc -@@ -1072,6 +1072,15 @@ void MenuItemView::PaintBackground(gfx::Canvas* canvas, +@@ -1082,6 +1082,15 @@ void MenuItemView::PaintBackground(gfx::Canvas* canvas, spilling_rect.set_y(spilling_rect.y() - corner_radius_); spilling_rect.set_height(spilling_rect.height() + corner_radius_); canvas->DrawRoundRect(spilling_rect, corner_radius_, flags); @@ -321,19 +321,19 @@ index 9e5fb8d852607..a0106ee33b1f3 100644 + MenuDelegate *delegate = GetDelegate(); + SkColor override_color; + if (delegate && delegate->GetBackgroundColor(GetCommand(), -+ render_selection, ++ paint_as_selected, + &override_color)) { + canvas->DrawColor(override_color); - } else if (render_selection) { + } else if (paint_as_selected) { gfx::Rect item_bounds = GetLocalBounds(); if (type_ == Type::kActionableSubMenu) { -@@ -1138,6 +1147,13 @@ void MenuItemView::PaintMinorIconAndText(gfx::Canvas* canvas, SkColor color) { +@@ -1148,6 +1157,13 @@ void MenuItemView::PaintMinorIconAndText(gfx::Canvas* canvas, SkColor color) { } - SkColor MenuItemView::GetTextColor(bool minor, bool render_selection) const { + SkColor MenuItemView::GetTextColor(bool minor, bool paint_as_selected) const { + SkColor text_color; + const MenuDelegate *delegate = GetDelegate(); -+ if (delegate && delegate->GetTextColor(GetCommand(), minor, render_selection, ++ if (delegate && delegate->GetTextColor(GetCommand(), minor, paint_as_selected, + &text_color)) { + return text_color; + } @@ -424,10 +424,10 @@ index fb5d5e6a79a3f..a336b5a74d6a1 100644 // Look up the menu model for this menu. const std::map::const_iterator map_iterator = diff --git ui/views/controls/menu/menu_model_adapter.h ui/views/controls/menu/menu_model_adapter.h -index 380794d989adf..b7c06c8a30102 100644 +index c07a9df52dd6e..b174c15ebc8b0 100644 --- ui/views/controls/menu/menu_model_adapter.h +++ ui/views/controls/menu/menu_model_adapter.h -@@ -84,6 +84,20 @@ class VIEWS_EXPORT MenuModelAdapter : public MenuDelegate, +@@ -88,6 +88,20 @@ class VIEWS_EXPORT MenuModelAdapter : public MenuDelegate, bool IsCommandEnabled(int id) const override; bool IsCommandVisible(int id) const override; bool IsItemChecked(int id) const override; @@ -449,10 +449,10 @@ index 380794d989adf..b7c06c8a30102 100644 void WillHideMenu(MenuItemView* menu) override; void OnMenuClosed(MenuItemView* menu) override; diff --git ui/views/controls/menu/menu_scroll_view_container.cc ui/views/controls/menu/menu_scroll_view_container.cc -index 713b41c83e923..6f5502a98ea65 100644 +index 63578697ff8be..e29956c754794 100644 --- ui/views/controls/menu/menu_scroll_view_container.cc +++ ui/views/controls/menu/menu_scroll_view_container.cc -@@ -240,6 +240,11 @@ MenuScrollViewContainer::MenuScrollViewContainer(SubmenuView* content_view) +@@ -239,6 +239,11 @@ MenuScrollViewContainer::MenuScrollViewContainer(SubmenuView* content_view) scroll_down_button_ = AddChildView(std::make_unique(content_view, false)); @@ -464,22 +464,8 @@ index 713b41c83e923..6f5502a98ea65 100644 arrow_ = BubbleBorderTypeFromAnchor( content_view_->GetMenuItem()->GetMenuController()->GetAnchorPosition()); -diff --git ui/views/test/ui_controls_factory_desktop_aurax11.cc ui/views/test/ui_controls_factory_desktop_aurax11.cc -index e467f11ada887..be8545f3b39a2 100644 ---- ui/views/test/ui_controls_factory_desktop_aurax11.cc -+++ ui/views/test/ui_controls_factory_desktop_aurax11.cc -@@ -89,9 +89,6 @@ class UIControlsDesktopX11 : public UIControlsAura { - aura::test::QueryLatestMousePositionRequestInHost(host); - host->ConvertPixelsToDIP(&root_current_location); - -- auto* screen = display::Screen::GetScreen(); -- screen->SetCursorScreenPointForTesting(gfx::Point(screen_x, screen_y)); -- - if (root_location != root_current_location && - x11_ui_controls_test_helper_.ButtonDownMask() == 0) { - // Move the cursor because EnterNotify/LeaveNotify are generated with the diff --git ui/views/view.h ui/views/view.h -index f5f5e2db9ed4e..fc1b401d1fefd 100644 +index e567568977553..3ce5b506b1d3f 100644 --- ui/views/view.h +++ ui/views/view.h @@ -21,6 +21,7 @@ diff --git a/patch/patches/views_widget.patch b/patch/patches/views_widget.patch index c360ac5f9..c46541c9a 100644 --- a/patch/patches/views_widget.patch +++ b/patch/patches/views_widget.patch @@ -1,8 +1,8 @@ diff --git content/browser/renderer_host/render_widget_host_view_base.cc content/browser/renderer_host/render_widget_host_view_base.cc -index 5b3c9569f3672..c3db00a555940 100644 +index 9cddf7c7ba6c9..6fd98d5717daa 100644 --- content/browser/renderer_host/render_widget_host_view_base.cc +++ content/browser/renderer_host/render_widget_host_view_base.cc -@@ -618,6 +618,14 @@ float RenderWidgetHostViewBase::GetDeviceScaleFactor() { +@@ -623,6 +623,14 @@ float RenderWidgetHostViewBase::GetDeviceScaleFactor() { return screen_info.device_scale_factor; } @@ -18,7 +18,7 @@ index 5b3c9569f3672..c3db00a555940 100644 if (!GetMouseWheelPhaseHandler()) return; diff --git content/browser/renderer_host/render_widget_host_view_base.h content/browser/renderer_host/render_widget_host_view_base.h -index c30a5715f47f4..2a059a783efb4 100644 +index 3eb1f2f549305..80088a099b36f 100644 --- content/browser/renderer_host/render_widget_host_view_base.h +++ content/browser/renderer_host/render_widget_host_view_base.h @@ -68,6 +68,7 @@ class CursorManager; @@ -29,7 +29,7 @@ index c30a5715f47f4..2a059a783efb4 100644 class SyntheticGestureTarget; class TextInputManager; class TouchSelectionControllerClientManager; -@@ -130,6 +131,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { +@@ -132,6 +133,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { const gfx::Size& max_size) override; void DisableAutoResize(const gfx::Size& new_size) override; float GetDeviceScaleFactor() final; @@ -111,10 +111,10 @@ index c1d9d56076d33..3a7dea0a8134c 100644 if (host_ && set_focus_on_mouse_down_or_key_event_) { set_focus_on_mouse_down_or_key_event_ = false; diff --git content/public/browser/render_widget_host_view.h content/public/browser/render_widget_host_view.h -index 7a8ceb1916434..01d0ca9a19316 100644 +index 0cad4e1f9731b..94d9e189661af 100644 --- content/public/browser/render_widget_host_view.h +++ content/public/browser/render_widget_host_view.h -@@ -249,6 +249,14 @@ class CONTENT_EXPORT RenderWidgetHostView { +@@ -254,6 +254,14 @@ class CONTENT_EXPORT RenderWidgetHostView { // This must always return the same device scale factor as GetScreenInfo. virtual float GetDeviceScaleFactor() = 0; @@ -130,10 +130,10 @@ index 7a8ceb1916434..01d0ca9a19316 100644 // Set the view's active state (i.e., tint state of controls). virtual void SetActive(bool active) = 0; diff --git ui/platform_window/x11/x11_window.cc ui/platform_window/x11/x11_window.cc -index 030c1e3c4ade5..d4776e596f250 100644 +index fc0efff4de309..dfe777e029869 100644 --- ui/platform_window/x11/x11_window.cc +++ ui/platform_window/x11/x11_window.cc -@@ -1677,7 +1677,8 @@ void X11Window::CreateXWindow(const PlatformWindowInitProperties& properties) { +@@ -1680,7 +1680,8 @@ void X11Window::CreateXWindow(const PlatformWindowInitProperties& properties) { req.border_pixel = 0; bounds_in_pixels_ = SanitizeBounds(bounds); @@ -157,10 +157,10 @@ index 7c352dd0d992d..516623a91b0e1 100644 return host ? host->GetAcceleratedWidget() : nullptr; } diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc -index 9f61fc0b83a1e..97cd9c64e341c 100644 +index 9c3dec8dfdd32..a523cceb5aed3 100644 --- ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc +++ ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc -@@ -226,6 +226,18 @@ Widget::MoveLoopResult DesktopWindowTreeHostLinux::RunMoveLoop( +@@ -231,6 +231,18 @@ Widget::MoveLoopResult DesktopWindowTreeHostLinux::RunMoveLoop( escape_behavior); } @@ -179,7 +179,7 @@ index 9f61fc0b83a1e..97cd9c64e341c 100644 void DesktopWindowTreeHostLinux::DispatchEvent(ui::Event* event) { // In Windows, the native events sent to chrome are separated into client // and non-client versions of events, which we record on our LocatedEvent -@@ -367,6 +379,8 @@ void DesktopWindowTreeHostLinux::AddAdditionalInitProperties( +@@ -370,6 +382,8 @@ void DesktopWindowTreeHostLinux::AddAdditionalInitProperties( properties->wm_class_class = params.wm_class_class; properties->wm_role_name = params.wm_role_name; @@ -189,19 +189,19 @@ index 9f61fc0b83a1e..97cd9c64e341c 100644 properties->x11_extension_delegate = this; } diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_linux.h ui/views/widget/desktop_aura/desktop_window_tree_host_linux.h -index fe31ecc51be14..7167a1918c671 100644 +index 5ac7051b4a002..84b8ceb053e75 100644 --- ui/views/widget/desktop_aura/desktop_window_tree_host_linux.h +++ ui/views/widget/desktop_aura/desktop_window_tree_host_linux.h -@@ -78,6 +78,8 @@ class VIEWS_EXPORT DesktopWindowTreeHostLinux - ui::DeskExtension* GetDeskExtension(); - const ui::DeskExtension* GetDeskExtension() const; +@@ -87,6 +87,8 @@ class VIEWS_EXPORT DesktopWindowTreeHostLinux + ui::PinnedModeExtension* GetPinnedModeExtension(); + const ui::PinnedModeExtension* GetPinnedModeExtension() const; + void set_screen_bounds(const gfx::Rect& bounds) { screen_bounds_ = bounds; } + protected: // Overridden from DesktopWindowTreeHost: void Init(const Widget::InitParams& params) override; -@@ -88,6 +90,8 @@ class VIEWS_EXPORT DesktopWindowTreeHostLinux +@@ -96,6 +98,8 @@ class VIEWS_EXPORT DesktopWindowTreeHostLinux const gfx::Vector2d& drag_offset, Widget::MoveLoopSource source, Widget::MoveLoopEscapeBehavior escape_behavior) override; @@ -210,7 +210,7 @@ index fe31ecc51be14..7167a1918c671 100644 // PlatformWindowDelegate: void DispatchEvent(ui::Event* event) override; -@@ -144,6 +148,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostLinux +@@ -152,6 +156,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostLinux // destroyed. static std::list* open_windows_; @@ -219,12 +219,12 @@ index fe31ecc51be14..7167a1918c671 100644 + // The display and the native X window hosting the root window. base::WeakPtrFactory weak_factory_{this}; - + }; diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc -index 4392d37788528..160e6de131fc8 100644 +index b683ba2aff0ca..fe728fa6fb0db 100644 --- ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc +++ ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc -@@ -213,8 +213,8 @@ void DesktopWindowTreeHostPlatform::Init(const Widget::InitParams& params) { +@@ -216,8 +216,8 @@ void DesktopWindowTreeHostPlatform::Init(const Widget::InitParams& params) { if (properties.parent_widget) { window_parent_ = DesktopWindowTreeHostPlatform::GetHostForWidget( properties.parent_widget); @@ -236,7 +236,7 @@ index 4392d37788528..160e6de131fc8 100644 // Calculate initial bounds. diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc -index 17668789847d1..92b6f9afe9688 100644 +index d8411ddc4fd88..5b438dfce3336 100644 --- ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc +++ ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc @@ -180,8 +180,12 @@ void DesktopWindowTreeHostWin::Init(const Widget::InitParams& params) { @@ -253,7 +253,7 @@ index 17668789847d1..92b6f9afe9688 100644 remove_standard_frame_ = params.remove_standard_frame; has_non_client_view_ = Widget::RequiresNonClientView(params.type); -@@ -972,11 +976,15 @@ void DesktopWindowTreeHostWin::HandleFrameChanged() { +@@ -970,11 +974,15 @@ void DesktopWindowTreeHostWin::HandleFrameChanged() { } void DesktopWindowTreeHostWin::HandleNativeFocus(HWND last_focused_window) { @@ -272,10 +272,10 @@ index 17668789847d1..92b6f9afe9688 100644 bool DesktopWindowTreeHostWin::HandleMouseEvent(ui::MouseEvent* event) { diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_win.h ui/views/widget/desktop_aura/desktop_window_tree_host_win.h -index db1299089169f..a9c331c37b210 100644 +index 75604775c06a3..7242a8f8b0fa0 100644 --- ui/views/widget/desktop_aura/desktop_window_tree_host_win.h +++ ui/views/widget/desktop_aura/desktop_window_tree_host_win.h -@@ -317,6 +317,10 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin +@@ -321,6 +321,10 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin // True if the window should have the frame removed. bool remove_standard_frame_; @@ -287,10 +287,10 @@ index db1299089169f..a9c331c37b210 100644 // a reference. corewm::TooltipWin* tooltip_; diff --git ui/views/widget/widget.cc ui/views/widget/widget.cc -index 892f47b000354..03efc840206d5 100644 +index bbbf0478947b9..4505e88bdc4b3 100644 --- ui/views/widget/widget.cc +++ ui/views/widget/widget.cc -@@ -359,7 +359,8 @@ void Widget::Init(InitParams params) { +@@ -360,7 +360,8 @@ void Widget::Init(InitParams params) { } params.child |= (params.type == InitParams::TYPE_CONTROL); @@ -300,7 +300,7 @@ index 892f47b000354..03efc840206d5 100644 if (params.opacity == views::Widget::InitParams::WindowOpacity::kInferred && params.type != views::Widget::InitParams::TYPE_WINDOW) { -@@ -435,13 +436,21 @@ void Widget::Init(InitParams params) { +@@ -436,13 +437,21 @@ void Widget::Init(InitParams params) { if (show_state == ui::SHOW_STATE_MAXIMIZED) { Maximize(); @@ -323,7 +323,7 @@ index 892f47b000354..03efc840206d5 100644 } native_theme_observation_.Observe(GetNativeTheme()); -@@ -1421,10 +1430,16 @@ void Widget::OnNativeWidgetDestroyed() { +@@ -1414,10 +1423,16 @@ void Widget::OnNativeWidgetDestroyed() { } gfx::Size Widget::GetMinimumSize() const { @@ -341,10 +341,10 @@ index 892f47b000354..03efc840206d5 100644 } diff --git ui/views/widget/widget.h ui/views/widget/widget.h -index 6ab943e4b7319..4ab76edb1e39f 100644 +index 31d6c01a839ba..58e02730c5470 100644 --- ui/views/widget/widget.h +++ ui/views/widget/widget.h -@@ -327,6 +327,8 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -329,6 +329,8 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, // the concept with bubble anchoring a la BubbleDialogDelegateView. gfx::NativeView parent = nullptr; @@ -382,10 +382,10 @@ index c23259757d984..450b2610e34d1 100644 if (native_widget_delegate->IsDialogBox()) { *style |= DS_MODALFRAME; diff --git ui/views/win/hwnd_message_handler.cc ui/views/win/hwnd_message_handler.cc -index 21e96caaa8753..5347eee3eefcf 100644 +index 8694e28a174b9..eea36954a547f 100644 --- ui/views/win/hwnd_message_handler.cc +++ ui/views/win/hwnd_message_handler.cc -@@ -3117,10 +3117,13 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message, +@@ -3121,10 +3121,13 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message, } else if (event.type() == ui::ET_MOUSEWHEEL) { ui::MouseWheelEvent mouse_wheel_event(msg); // Reroute the mouse wheel to the window under the pointer if applicable. diff --git a/patch/patches/viz_osr_2575.patch b/patch/patches/viz_osr_2575.patch index d4aee034a..7f7d16b79 100644 --- a/patch/patches/viz_osr_2575.patch +++ b/patch/patches/viz_osr_2575.patch @@ -29,10 +29,10 @@ index 3b00759e513dc..90fe332d59f5b 100644 // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. diff --git components/viz/host/host_display_client.h components/viz/host/host_display_client.h -index 94c5293d528a6..d89a986ed0def 100644 +index 888133f8e05fb..42b5dd238e893 100644 --- components/viz/host/host_display_client.h +++ components/viz/host/host_display_client.h -@@ -31,17 +31,17 @@ class VIZ_HOST_EXPORT HostDisplayClient : public mojom::DisplayClient { +@@ -35,17 +35,17 @@ class VIZ_HOST_EXPORT HostDisplayClient : public mojom::DisplayClient { mojo::PendingRemote GetBoundRemote( scoped_refptr task_runner); @@ -67,10 +67,10 @@ index b04f654fe820f..131977a36591d 100644 if (!canvas_) { diff --git components/viz/host/layered_window_updater_impl.h components/viz/host/layered_window_updater_impl.h -index 1026b739d283f..fe562ab60ce98 100644 +index 894237a777fbf..4310c08b0c2cf 100644 --- components/viz/host/layered_window_updater_impl.h +++ components/viz/host/layered_window_updater_impl.h -@@ -35,7 +35,7 @@ class VIZ_HOST_EXPORT LayeredWindowUpdaterImpl +@@ -39,7 +39,7 @@ class VIZ_HOST_EXPORT LayeredWindowUpdaterImpl // mojom::LayeredWindowUpdater implementation. void OnAllocatedSharedMemory(const gfx::Size& pixel_size, base::UnsafeSharedMemoryRegion region) override; @@ -80,7 +80,7 @@ index 1026b739d283f..fe562ab60ce98 100644 private: const HWND hwnd_; diff --git components/viz/service/BUILD.gn components/viz/service/BUILD.gn -index 34dad16dac566..9618bc3c55fdb 100644 +index eb36a21f0f79a..e796d878ee1f8 100644 --- components/viz/service/BUILD.gn +++ components/viz/service/BUILD.gn @@ -208,6 +208,8 @@ viz_component("service") { @@ -93,7 +93,7 @@ index 34dad16dac566..9618bc3c55fdb 100644 defines = [ "VIZ_SERVICE_IMPLEMENTATION" ] diff --git components/viz/service/display_embedder/output_surface_provider_impl.cc components/viz/service/display_embedder/output_surface_provider_impl.cc -index 827084542417d..73f44ba997497 100644 +index 40a9a82819702..d1d2e77bbae26 100644 --- components/viz/service/display_embedder/output_surface_provider_impl.cc +++ components/viz/service/display_embedder/output_surface_provider_impl.cc @@ -16,6 +16,7 @@ @@ -104,7 +104,7 @@ index 827084542417d..73f44ba997497 100644 #include "components/viz/common/display/renderer_settings.h" #include "components/viz/common/frame_sinks/begin_frame_source.h" #include "components/viz/service/display/display_compositor_memory_and_task_controller.h" -@@ -255,6 +256,20 @@ OutputSurfaceProviderImpl::CreateSoftwareOutputDeviceForPlatform( +@@ -246,6 +247,20 @@ OutputSurfaceProviderImpl::CreateSoftwareOutputDeviceForPlatform( if (headless_) return std::make_unique(); @@ -126,7 +126,7 @@ index 827084542417d..73f44ba997497 100644 return CreateSoftwareOutputDeviceWin(surface_handle, &output_device_backing_, display_client); diff --git components/viz/service/display_embedder/software_output_device_win.cc components/viz/service/display_embedder/software_output_device_win.cc -index 599b06c1765ef..e8ae98b0b1320 100644 +index 583e3e2525c75..e1836039ad8a5 100644 --- components/viz/service/display_embedder/software_output_device_win.cc +++ components/viz/service/display_embedder/software_output_device_win.cc @@ -191,8 +191,9 @@ void SoftwareOutputDeviceWinProxy::EndPaintDelegated( @@ -142,10 +142,10 @@ index 599b06c1765ef..e8ae98b0b1320 100644 TRACE_EVENT_ASYNC_BEGIN0("viz", "SoftwareOutputDeviceWinProxy::Draw", this); diff --git content/browser/compositor/viz_process_transport_factory.cc content/browser/compositor/viz_process_transport_factory.cc -index 50ff2c9facc2a..c34d1f28d2e90 100644 +index 53c23a97a54a4..080117e2c1fb5 100644 --- content/browser/compositor/viz_process_transport_factory.cc +++ content/browser/compositor/viz_process_transport_factory.cc -@@ -395,8 +395,13 @@ void VizProcessTransportFactory::OnEstablishedGpuChannel( +@@ -382,8 +382,13 @@ void VizProcessTransportFactory::OnEstablishedGpuChannel( compositor_data.display_private.reset(); root_params->display_private = compositor_data.display_private.BindNewEndpointAndPassReceiver(); @@ -162,7 +162,7 @@ index 50ff2c9facc2a..c34d1f28d2e90 100644 compositor_data.display_client->GetBoundRemote(resize_task_runner_); diff --git mojo/public/cpp/bindings/sync_call_restrictions.h mojo/public/cpp/bindings/sync_call_restrictions.h -index fc4142741f793..ae797aaeff5f2 100644 +index 986469b5c09c4..251cb9eb27ede 100644 --- mojo/public/cpp/bindings/sync_call_restrictions.h +++ mojo/public/cpp/bindings/sync_call_restrictions.h @@ -43,6 +43,7 @@ class Compositor; @@ -173,7 +173,7 @@ index fc4142741f793..ae797aaeff5f2 100644 class GpuHostImpl; class HostFrameSinkManager; class HostGpuMemoryBufferManager; -@@ -101,6 +102,8 @@ class COMPONENT_EXPORT(MOJO_CPP_BINDINGS) SyncCallRestrictions { +@@ -105,6 +106,8 @@ class COMPONENT_EXPORT(MOJO_CPP_BINDINGS) SyncCallRestrictions { // For preventing frame swaps of wrong size during resize on Windows. // (https://crbug.com/811945) friend class ui::Compositor; @@ -214,7 +214,7 @@ index 6b7fbb6cf13dc..e2af75168cb91 100644 + Draw(gfx.mojom.Rect damage_rect) => (); }; diff --git ui/compositor/compositor.h ui/compositor/compositor.h -index dfb0c89dc7bd8..4b54ea85c0298 100644 +index 6220caafb2cba..9a111be427d83 100644 --- ui/compositor/compositor.h +++ ui/compositor/compositor.h @@ -29,7 +29,9 @@ @@ -227,7 +227,7 @@ index dfb0c89dc7bd8..4b54ea85c0298 100644 #include "mojo/public/cpp/bindings/pending_remote.h" #include "services/viz/privileged/mojom/compositing/vsync_parameter_observer.mojom-forward.h" #include "skia/ext/skia_matrix_44.h" -@@ -137,6 +139,14 @@ class COMPOSITOR_EXPORT ContextFactory { +@@ -136,6 +138,14 @@ class COMPOSITOR_EXPORT ContextFactory { virtual viz::HostFrameSinkManager* GetHostFrameSinkManager() = 0; }; @@ -242,7 +242,7 @@ index dfb0c89dc7bd8..4b54ea85c0298 100644 // Compositor object to take care of GPU painting. // A Browser compositor object is responsible for generating the final // displayable form of pixels comprising a single widget's contents. It draws an -@@ -172,6 +182,9 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, +@@ -175,6 +185,9 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, // Schedules a redraw of the layer tree associated with this compositor. void ScheduleDraw(); @@ -252,7 +252,7 @@ index dfb0c89dc7bd8..4b54ea85c0298 100644 // Sets the root of the layer tree drawn by this Compositor. The root layer // must have no parent. The compositor's root layer is reset if the root layer // is destroyed. NULL can be passed to reset the root layer, in which case the -@@ -443,6 +456,8 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, +@@ -449,6 +462,8 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, std::unique_ptr pending_begin_frame_args_; diff --git a/patch/patches/web_contents_1257_1565.patch b/patch/patches/web_contents_1257_1565.patch index cf283b446..8e43d42bf 100644 --- a/patch/patches/web_contents_1257_1565.patch +++ b/patch/patches/web_contents_1257_1565.patch @@ -1,8 +1,8 @@ diff --git content/browser/web_contents/web_contents_impl.cc content/browser/web_contents/web_contents_impl.cc -index 55a636ca71a25..41dcccd02b4fa 100644 +index e7e2e3d3163bb..e12381457f0bb 100644 --- content/browser/web_contents/web_contents_impl.cc +++ content/browser/web_contents/web_contents_impl.cc -@@ -2881,6 +2881,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { +@@ -2899,6 +2899,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { frame_tree_.Init(site_instance.get(), params.renderer_initiated_creation, params.main_frame_name); @@ -15,7 +15,7 @@ index 55a636ca71a25..41dcccd02b4fa 100644 WebContentsViewDelegate* delegate = GetContentClient()->browser()->GetWebContentsViewDelegate(this); -@@ -2891,6 +2897,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { +@@ -2909,6 +2915,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { view_.reset(CreateWebContentsView(this, delegate, &render_view_host_delegate_view_)); } @@ -23,7 +23,7 @@ index 55a636ca71a25..41dcccd02b4fa 100644 CHECK(render_view_host_delegate_view_); CHECK(view_.get()); -@@ -3713,6 +3720,15 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -3739,6 +3746,15 @@ FrameTree* WebContentsImpl::CreateNewWindow( // objects. create_params.renderer_initiated_creation = !is_new_browsing_instance; @@ -39,7 +39,7 @@ index 55a636ca71a25..41dcccd02b4fa 100644 std::unique_ptr new_contents; if (!is_guest) { create_params.context = view_->GetNativeView(); -@@ -7500,6 +7516,9 @@ void WebContentsImpl::SetFocusedFrame(FrameTreeNode* node, +@@ -7526,6 +7542,9 @@ void WebContentsImpl::SetFocusedFrame(FrameTreeNode* node, // This is an outermost WebContents. SetAsFocusedWebContentsIfNecessary(); } @@ -50,22 +50,22 @@ index 55a636ca71a25..41dcccd02b4fa 100644 void WebContentsImpl::DidCallFocus() { diff --git content/public/browser/web_contents.cc content/public/browser/web_contents.cc -index e40e14fd4913f..2ca3b08277e3d 100644 +index c7302d7af6d8b..d19be54f36d39 100644 --- content/public/browser/web_contents.cc +++ content/public/browser/web_contents.cc -@@ -29,6 +29,7 @@ WebContents::CreateParams::CreateParams(BrowserContext* context, +@@ -31,6 +31,7 @@ WebContents::CreateParams::CreateParams(BrowserContext* context, renderer_initiated_creation(false), desired_renderer_state(kOkayToHaveRendererProcess), starting_sandbox_flags(network::mojom::WebSandboxFlags::kNone), + delegate_view(nullptr), - is_never_visible(false) {} + is_never_visible(false), + creator_location(creator_location) {} - WebContents::CreateParams::CreateParams(const CreateParams& other) = default; diff --git content/public/browser/web_contents.h content/public/browser/web_contents.h -index aa3ecdb440db8..bedc9eee352f0 100644 +index bfa0e468e11e6..31061d5821e60 100644 --- content/public/browser/web_contents.h +++ content/public/browser/web_contents.h -@@ -86,10 +86,12 @@ class BrowserContext; +@@ -88,10 +88,12 @@ class BrowserContext; class BrowserPluginGuestDelegate; class RenderFrameHost; class RenderViewHost; @@ -78,7 +78,7 @@ index aa3ecdb440db8..bedc9eee352f0 100644 class WebUI; struct DropData; struct MHTMLGenerationParams; -@@ -222,6 +224,10 @@ class WebContents : public PageNavigator, +@@ -228,6 +230,10 @@ class WebContents : public PageNavigator, // Sandboxing flags set on the new WebContents. network::mojom::WebSandboxFlags starting_sandbox_flags; @@ -122,10 +122,10 @@ index a0da74d5cbe4a..1d6e4673a610f 100644 // typically happens when popups are created. virtual void WebContentsCreated(WebContents* source_contents, diff --git content/public/browser/web_contents_observer.h content/public/browser/web_contents_observer.h -index d6f20a6c8d283..8cd985c25196b 100644 +index 6921e5e094cfd..cb199b2d405d6 100644 --- content/public/browser/web_contents_observer.h +++ content/public/browser/web_contents_observer.h -@@ -705,6 +705,10 @@ class CONTENT_EXPORT WebContentsObserver { +@@ -727,6 +727,10 @@ class CONTENT_EXPORT WebContentsObserver { // WebContents has gained/lost focus. virtual void OnFocusChangedInPage(FocusedNodeDetails* details) {} diff --git a/patch/patches/webkit_plugin_info_2015.patch b/patch/patches/webkit_plugin_info_2015.patch index fd58f8a06..0078b13b7 100644 --- a/patch/patches/webkit_plugin_info_2015.patch +++ b/patch/patches/webkit_plugin_info_2015.patch @@ -10,10 +10,10 @@ index ff7a8ed89e94a..77f44956ff22f 100644 + GetPlugins(bool refresh, bool is_main_frame, url.mojom.Origin main_frame_origin) => (array plugins); }; diff --git third_party/blink/public/platform/platform.h third_party/blink/public/platform/platform.h -index f9be3480ae7c9..913d327af7a85 100644 +index 757e70c8dc334..400fcc4a569ea 100644 --- third_party/blink/public/platform/platform.h +++ third_party/blink/public/platform/platform.h -@@ -872,6 +872,11 @@ class BLINK_PLATFORM_EXPORT Platform { +@@ -868,6 +868,11 @@ class BLINK_PLATFORM_EXPORT Platform { const WebURL& url, blink::WebVector* csp) {} @@ -44,10 +44,10 @@ index 463e3e5e73419..97aaf0da2b9a5 100644 DocumentInit& DocumentInit::WithTypeFrom(const String& mime_type) { diff --git third_party/blink/renderer/core/frame/local_frame.cc third_party/blink/renderer/core/frame/local_frame.cc -index cf505929c9f6e..ad6d5b603223f 100644 +index cc3b5af94302c..cf1442997e91d 100644 --- third_party/blink/renderer/core/frame/local_frame.cc +++ third_party/blink/renderer/core/frame/local_frame.cc -@@ -1853,7 +1853,7 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() { +@@ -1873,7 +1873,7 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() { PluginData* LocalFrame::GetPluginData() const { if (!Loader().AllowPlugins()) return nullptr; diff --git a/patch/patches/webkit_popups.patch b/patch/patches/webkit_popups.patch index 5a7785482..00a3a636d 100644 --- a/patch/patches/webkit_popups.patch +++ b/patch/patches/webkit_popups.patch @@ -11,7 +11,7 @@ index f54b993e9fb9f..ec081f68adddb 100644 // Cancels and hides the current popup (datetime, select...) if any. virtual void CancelPagePopup() = 0; diff --git third_party/blink/renderer/core/exported/web_view_impl.cc third_party/blink/renderer/core/exported/web_view_impl.cc -index 7995eb16a7cf6..1c007cbf08f32 100644 +index 44474a8e56c5f..5e667b6a45fe8 100644 --- third_party/blink/renderer/core/exported/web_view_impl.cc +++ third_party/blink/renderer/core/exported/web_view_impl.cc @@ -244,8 +244,13 @@ void WebView::SetUseExternalPopupMenus(bool use_external_popup_menus) { @@ -62,10 +62,10 @@ index 293e146acb025..67c265a64ad04 100644 TransformationMatrix device_emulation_transform_; diff --git third_party/blink/renderer/core/page/chrome_client_impl.cc third_party/blink/renderer/core/page/chrome_client_impl.cc -index 724a67a401175..a505e5ed16b9f 100644 +index 6214bbbd27ecc..0af1b63b0a3da 100644 --- third_party/blink/renderer/core/page/chrome_client_impl.cc +++ third_party/blink/renderer/core/page/chrome_client_impl.cc -@@ -851,7 +851,7 @@ bool ChromeClientImpl::HasOpenedPopup() const { +@@ -860,7 +860,7 @@ bool ChromeClientImpl::HasOpenedPopup() const { PopupMenu* ChromeClientImpl::OpenPopupMenu(LocalFrame& frame, HTMLSelectElement& select) { NotifyPopupOpeningObservers(); diff --git a/patch/patches/webui_2037.patch b/patch/patches/webui_2037.patch index d7d8a6aba..c2dd31f92 100644 --- a/patch/patches/webui_2037.patch +++ b/patch/patches/webui_2037.patch @@ -1,5 +1,5 @@ diff --git chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc -index 462eb546fbd94..f75ea77326f33 100644 +index 3f17a3f9182cc..2e0780aa9668f 100644 --- chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc +++ chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc @@ -10,6 +10,7 @@ @@ -62,7 +62,7 @@ index 462eb546fbd94..f75ea77326f33 100644 bool result = base::win::IsKeyboardPresentOnSlate(ui::GetHiddenWindow(), &reason); diff --git chrome/browser/memory_details.cc chrome/browser/memory_details.cc -index c4d7ed2be2287..cdb34057d7e43 100644 +index 77c9d430f6645..f5478b4ec6322 100644 --- chrome/browser/memory_details.cc +++ chrome/browser/memory_details.cc @@ -17,6 +17,7 @@ @@ -73,7 +73,7 @@ index c4d7ed2be2287..cdb34057d7e43 100644 #include "components/nacl/common/nacl_process_type.h" #include "components/strings/grit/components_strings.h" #include "content/public/browser/browser_child_process_host_iterator.h" -@@ -260,8 +261,11 @@ void MemoryDetails::CollectChildInfoOnUIThread() { +@@ -234,8 +235,11 @@ void MemoryDetails::CollectChildInfoOnUIThread() { #if BUILDFLAG(ENABLE_EXTENSIONS) // Determine if this is an extension process. diff --git a/patch/patches/webview_plugin_2020.patch b/patch/patches/webview_plugin_2020.patch index 0c4cb58cb..1c0d28ddf 100644 --- a/patch/patches/webview_plugin_2020.patch +++ b/patch/patches/webview_plugin_2020.patch @@ -1,8 +1,8 @@ diff --git chrome/app/generated_resources.grd chrome/app/generated_resources.grd -index 85b4e2ae58841..90f2db47a00bf 100644 +index 84a68402edbd8..8545827ce5682 100644 --- chrome/app/generated_resources.grd +++ chrome/app/generated_resources.grd -@@ -5318,7 +5318,7 @@ Keep your key file in a safe place. You will need it to create new versions of y +@@ -5372,7 +5372,7 @@ Keep your key file in a safe place. You will need it to create new versions of y