diff --git a/BUILD.gn b/BUILD.gn index 7c4923873..017aecd85 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -657,6 +657,7 @@ static_library("libcef_static") { "//chrome/services/printing:lib", "//chrome/utility", "//components/cdm/renderer", + "//components/certificate_transparency", "//components/content_settings/core/browser", "//components/content_settings/core/common", "//components/crx_file", diff --git a/CHROMIUM_BUILD_COMPATIBILITY.txt b/CHROMIUM_BUILD_COMPATIBILITY.txt index 4e3d92cb1..f1e53066c 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/68.0.3425.0', + 'chromium_checkout': 'refs/tags/68.0.3433.0', } diff --git a/libcef/browser/browser_main.cc b/libcef/browser/browser_main.cc index abe2aec33..3872e69dc 100644 --- a/libcef/browser/browser_main.cc +++ b/libcef/browser/browser_main.cc @@ -30,10 +30,10 @@ #include "chrome/browser/chrome_browser_main_extra_parts.h" #include "chrome/browser/plugins/plugin_finder.h" #include "content/public/browser/gpu_data_manager.h" -#include "content/public/common/result_codes.h" #include "extensions/browser/extension_system.h" #include "extensions/common/constants.h" #include "net/base/net_module.h" +#include "services/service_manager/embedder/result_codes.h" #include "ui/base/resource/resource_bundle.h" #if defined(USE_AURA) @@ -80,7 +80,7 @@ int CefBrowserMainParts::PreEarlyInitialization() { for (size_t i = 0; i < chrome_extra_parts_.size(); ++i) chrome_extra_parts_[i]->PreEarlyInitialization(); - return content::RESULT_CODE_NORMAL_EXIT; + return service_manager::RESULT_CODE_NORMAL_EXIT; } void CefBrowserMainParts::PostEarlyInitialization() { diff --git a/libcef/browser/browser_main.h b/libcef/browser/browser_main.h index 66aeb1dee..563274f87 100644 --- a/libcef/browser/browser_main.h +++ b/libcef/browser/browser_main.h @@ -54,7 +54,7 @@ class CefBrowserMainParts : public content::BrowserMainParts { void PostMainMessageLoopStart() override; int PreCreateThreads() override; void ServiceManagerConnectionStarted( - content::ServiceManagerConnection* connection); + content::ServiceManagerConnection* connection) override; void PreMainMessageLoopRun() override; void PostMainMessageLoopRun() override; void PostDestroyThreads() override; diff --git a/libcef/browser/content_browser_client.cc b/libcef/browser/content_browser_client.cc index edbb712a7..14a828a4e 100644 --- a/libcef/browser/content_browser_client.cc +++ b/libcef/browser/content_browser_client.cc @@ -81,11 +81,13 @@ #include "extensions/browser/extension_registry.h" #include "extensions/browser/extensions_browser_client.h" #include "extensions/browser/guest_view/extensions_guest_view_message_filter.h" +#include "extensions/browser/guest_view/web_view/web_view_guest.h" #include "extensions/browser/io_thread_extension_message_filter.h" #include "extensions/common/constants.h" #include "extensions/common/switches.h" #include "net/ssl/ssl_cert_request_info.h" #include "ppapi/host/ppapi_host.h" +#include "services/service_manager/embedder/switches.h" #include "services/service_manager/public/mojom/connector.mojom.h" #include "services/service_manager/sandbox/switches.h" #include "storage/browser/quota/quota_settings.h" @@ -720,7 +722,7 @@ void CefContentBrowserClient::AppendExtraCommandLineSwitches( } #if defined(OS_LINUX) - if (process_type == switches::kZygoteProcess) { + if (process_type == service_manager::switches::kZygoteProcess) { // Propagate the following switches to the zygote command line (along with // any associated values) if present in the browser command line. static const char* const kSwitchNames[] = { @@ -982,7 +984,7 @@ void CefContentBrowserClient::GetAdditionalMappedFilesForChildProcess( content::PosixFileDescriptorInfo* mappings) { int crash_signal_fd = GetCrashSignalFD(command_line); if (crash_signal_fd >= 0) { - mappings->Share(kCrashDumpSignal, crash_signal_fd); + mappings->Share(service_manager::kCrashDumpSignal, crash_signal_fd); } } #endif // defined(OS_LINUX) @@ -1029,34 +1031,29 @@ CefContentBrowserClient::CreateClientCertStore( } void CefContentBrowserClient::RegisterNonNetworkNavigationURLLoaderFactories( + int frame_tree_node_id, + NonNetworkURLLoaderFactoryMap* factories) { + if (!extensions::ExtensionsEnabled()) + return; + + content::WebContents* web_contents = + content::WebContents::FromFrameTreeNodeId(frame_tree_node_id); + factories->emplace( + extensions::kExtensionScheme, + extensions::CreateExtensionNavigationURLLoaderFactory( + web_contents->GetBrowserContext(), + !!extensions::WebViewGuest::FromWebContents(web_contents))); +} + +void CefContentBrowserClient::RegisterNonNetworkSubresourceURLLoaderFactories( int render_process_id, int render_frame_id, NonNetworkURLLoaderFactoryMap* factories) { if (!extensions::ExtensionsEnabled()) return; - content::RenderProcessHost* process_host = - content::RenderProcessHost::FromID(render_process_id); - content::BrowserContext* browser_context = process_host->GetBrowserContext(); - factories->emplace( - extensions::kExtensionScheme, - extensions::CreateExtensionNavigationURLLoaderFactory( - render_process_id, render_frame_id, - extensions::ExtensionSystem::Get(browser_context)->info_map())); -} - -void CefContentBrowserClient::RegisterNonNetworkSubresourceURLLoaderFactories( - content::RenderFrameHost* frame_host, - const GURL& frame_url, - NonNetworkURLLoaderFactoryMap* factories) { - if (!extensions::ExtensionsEnabled()) - return; - - content::RenderProcessHost* process_host = frame_host->GetProcess(); - content::BrowserContext* browser_context = process_host->GetBrowserContext(); - auto factory = extensions::MaybeCreateExtensionSubresourceURLLoaderFactory( - process_host->GetID(), frame_host->GetRoutingID(), frame_url, - extensions::ExtensionSystem::Get(browser_context)->info_map()); + auto factory = extensions::CreateExtensionURLLoaderFactory(render_process_id, + render_frame_id); if (factory) factories->emplace(extensions::kExtensionScheme, std::move(factory)); } diff --git a/libcef/browser/content_browser_client.h b/libcef/browser/content_browser_client.h index 31e5ccd4b..d54066051 100644 --- a/libcef/browser/content_browser_client.h +++ b/libcef/browser/content_browser_client.h @@ -128,12 +128,11 @@ class CefContentBrowserClient : public content::ContentBrowserClient { content::ResourceContext* resource_context) override; void RegisterNonNetworkNavigationURLLoaderFactories( - int render_process_id, - int render_frame_id, + int frame_tree_node_id, NonNetworkURLLoaderFactoryMap* factories) override; void RegisterNonNetworkSubresourceURLLoaderFactories( - content::RenderFrameHost* frame_host, - const GURL& frame_url, + int render_process_id, + int render_frame_id, NonNetworkURLLoaderFactoryMap* factories) override; bool WillCreateURLLoaderFactory( content::RenderFrameHost* frame, diff --git a/libcef/browser/extensions/api/tabs/tabs_api.cc b/libcef/browser/extensions/api/tabs/tabs_api.cc index 1fc1419f9..1077cd344 100644 --- a/libcef/browser/extensions/api/tabs/tabs_api.cc +++ b/libcef/browser/extensions/api/tabs/tabs_api.cc @@ -289,7 +289,7 @@ bool TabsSetZoomFunction::RunAsync() { return false; GURL url(web_contents->GetVisibleURL()); - if (extensions::PermissionsData::IsRestrictedUrl(url, extension(), &error_)) + if (extension()->permissions_data()->IsRestrictedUrl(url, &error_)) return false; zoom::ZoomController* zoom_controller = @@ -341,7 +341,7 @@ bool TabsSetZoomSettingsFunction::RunAsync() { return false; GURL url(web_contents->GetVisibleURL()); - if (PermissionsData::IsRestrictedUrl(url, extension(), &error_)) + if (extension()->permissions_data()->IsRestrictedUrl(url, &error_)) return false; // "per-origin" scope is only available in "automatic" mode. diff --git a/libcef/browser/net/url_request_context_getter_impl.cc b/libcef/browser/net/url_request_context_getter_impl.cc index ebae38918..b468c64d8 100644 --- a/libcef/browser/net/url_request_context_getter_impl.cc +++ b/libcef/browser/net/url_request_context_getter_impl.cc @@ -28,6 +28,8 @@ #include "chrome/browser/browser_process.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/pref_names.h" +#include "components/certificate_transparency/chrome_ct_policy_enforcer.h" +#include "components/certificate_transparency/ct_known_logs.h" #include "components/net_log/chrome_net_log.h" #include "components/network_session_configurator/browser/network_session_configurator.h" #include "components/prefs/pref_registry_simple.h" @@ -37,9 +39,7 @@ #include "content/public/common/content_switches.h" #include "content/public/common/url_constants.h" #include "net/cert/cert_verifier.h" -#include "net/cert/ct_known_logs.h" #include "net/cert/ct_log_verifier.h" -#include "net/cert/ct_policy_enforcer.h" #include "net/cert/multi_log_ct_verifier.h" #include "net/cookies/cookie_monster.h" #include "net/dns/host_resolver.h" @@ -155,6 +155,27 @@ std::unique_ptr CreateProxyResolutionService( return proxy_service; } +// Based on net::ct::CreateLogVerifiersForKnownLogs which was deleted in +// https://crrev.com/24711fe395. +std::vector> +CreateLogVerifiersForKnownLogs() { + std::vector> verifiers; + + for (const auto& log : certificate_transparency::GetKnownLogs()) { + scoped_refptr log_verifier = + net::CTLogVerifier::Create( + base::StringPiece(log.log_key, log.log_key_length), log.log_name, + log.log_dns_domain); + // Make sure no null logs enter verifiers. Parsing of all statically + // configured logs should always succeed, unless there has been binary or + // memory corruption. + CHECK(log_verifier); + verifiers.push_back(std::move(log_verifier)); + } + + return verifiers; +} + } // namespace CefURLRequestContextGetterImpl::CefURLRequestContextGetterImpl( @@ -304,14 +325,15 @@ net::URLRequestContext* CefURLRequestContextGetterImpl::GetURLRequestContext() { std::move(transport_security_state)); std::vector> ct_logs( - net::ct::CreateLogVerifiersForKnownLogs()); + CreateLogVerifiersForKnownLogs()); std::unique_ptr ct_verifier( new net::MultiLogCTVerifier()); ct_verifier->AddLogs(ct_logs); io_state_->storage_->set_cert_transparency_verifier(std::move(ct_verifier)); - std::unique_ptr ct_policy_enforcer( - new net::CTPolicyEnforcer); + std::unique_ptr + ct_policy_enforcer( + new certificate_transparency::ChromeCTPolicyEnforcer); ct_policy_enforcer->set_enforce_net_security_expiration( settings_.enable_net_security_expiration ? true : false); io_state_->storage_->set_ct_policy_enforcer(std::move(ct_policy_enforcer)); diff --git a/libcef/browser/osr/render_widget_host_view_osr.cc b/libcef/browser/osr/render_widget_host_view_osr.cc index 34e33e342..5f3a7dbc2 100644 --- a/libcef/browser/osr/render_widget_host_view_osr.cc +++ b/libcef/browser/osr/render_widget_host_view_osr.cc @@ -429,10 +429,14 @@ void CefRenderWidgetHostViewOSR::SetBackgroundColor(SkColor color) { } } -SkColor CefRenderWidgetHostViewOSR::background_color() const { +base::Optional CefRenderWidgetHostViewOSR::GetBackgroundColor() const { return background_color_; } +void CefRenderWidgetHostViewOSR::UpdateBackgroundColor() { + NOTREACHED(); +} + bool CefRenderWidgetHostViewOSR::LockMouse() { return false; } @@ -447,7 +451,7 @@ void CefRenderWidgetHostViewOSR::TakeFallbackContentFrom( ->IsRenderWidgetHostViewGuest()); CefRenderWidgetHostViewOSR* view_cef = static_cast(view); - SetBackgroundColor(view_cef->background_color()); + SetBackgroundColor(view_cef->background_color_); if (GetDelegatedFrameHost() && view_cef->GetDelegatedFrameHost()) { GetDelegatedFrameHost()->TakeFallbackContentFrom( view_cef->GetDelegatedFrameHost()); @@ -928,7 +932,7 @@ CefRenderWidgetHostViewOSR::CreateSoftwareOutputDevice( DCHECK(!copy_frame_generator_); DCHECK(!software_output_device_); software_output_device_ = new CefSoftwareOutputDeviceOSR( - compositor, background_color() == SK_ColorTRANSPARENT, + compositor, background_color_ == SK_ColorTRANSPARENT, base::Bind(&CefRenderWidgetHostViewOSR::OnPaint, weak_ptr_factory_.GetWeakPtr())); return base::WrapUnique(software_output_device_); @@ -976,25 +980,15 @@ void CefRenderWidgetHostViewOSR::DidReceiveFirstFrameAfterNavigation() { render_widget_host_->DidReceiveFirstFrameAfterNavigation(); } -std::unique_ptr -CefRenderWidgetHostViewOSR::GetCompositorLock( - ui::CompositorLockClient* client) { - return GetCompositor()->GetCompositorLock(client); -} - -void CefRenderWidgetHostViewOSR::CompositorResizeLockEnded() { - ReleaseResize(); -} - #endif // !defined(OS_MACOSX) bool CefRenderWidgetHostViewOSR::InstallTransparency() { - if (background_color() == SK_ColorTRANSPARENT) { - SetBackgroundColor(background_color()); + if (background_color_ == SK_ColorTRANSPARENT) { + SetBackgroundColor(background_color_); #if defined(OS_MACOSX) - browser_compositor_->SetBackgroundColor(background_color()); + browser_compositor_->SetBackgroundColor(background_color_); #else - compositor_->SetBackgroundColor(background_color()); + compositor_->SetBackgroundColor(background_color_); #endif return true; } @@ -1548,7 +1542,7 @@ viz::FrameSinkId CefRenderWidgetHostViewOSR::AllocateFrameSinkId( void CefRenderWidgetHostViewOSR::UpdateBackgroundColorFromRenderer( SkColor color) { - if (color == background_color()) + if (color == background_color_) return; background_color_ = color; diff --git a/libcef/browser/osr/render_widget_host_view_osr.h b/libcef/browser/osr/render_widget_host_view_osr.h index fcbd5050e..70bdb4347 100644 --- a/libcef/browser/osr/render_widget_host_view_osr.h +++ b/libcef/browser/osr/render_widget_host_view_osr.h @@ -17,7 +17,6 @@ #include "build/build_config.h" #include "components/viz/common/frame_sinks/begin_frame_source.h" #include "components/viz/common/surfaces/parent_local_surface_id_allocator.h" -#include "content/browser/renderer_host/compositor_resize_lock.h" #include "content/browser/renderer_host/delegated_frame_host.h" #include "content/browser/renderer_host/render_widget_host_view_base.h" #include "ui/compositor/compositor.h" @@ -87,8 +86,7 @@ class CefRenderWidgetHostViewOSR : public content::RenderWidgetHostViewBase, public ui::CompositorDelegate #if !defined(OS_MACOSX) , - public content::DelegatedFrameHostClient, - public content::CompositorResizeLockClient + public content::DelegatedFrameHostClient #endif { public: @@ -114,7 +112,8 @@ class CefRenderWidgetHostViewOSR : public content::RenderWidgetHostViewBase, void EnsureSurfaceSynchronizedForLayoutTest() override; gfx::Rect GetViewBounds() const override; void SetBackgroundColor(SkColor color) override; - SkColor background_color() const override; + base::Optional GetBackgroundColor() const override; + void UpdateBackgroundColor() override; bool LockMouse() override; void UnlockMouse() override; void TakeFallbackContentFrom(content::RenderWidgetHostView* view) override; @@ -202,11 +201,6 @@ class CefRenderWidgetHostViewOSR : public content::RenderWidgetHostViewBase, void OnBeginFrame(base::TimeTicks frame_time) override; void OnFrameTokenChanged(uint32_t frame_token) override; void DidReceiveFirstFrameAfterNavigation() override; - - // CompositorResizeLockClient implementation. - std::unique_ptr GetCompositorLock( - ui::CompositorLockClient* client) override; - void CompositorResizeLockEnded() override; #endif // !defined(OS_MACOSX) bool InstallTransparency(); @@ -238,7 +232,7 @@ class CefRenderWidgetHostViewOSR : public content::RenderWidgetHostViewBase, const CefRange& replacement_range, int relative_cursor_pos); void ImeFinishComposingText(bool keep_selection); - void ImeCancelComposition(); + void ImeCancelComposition() override; CefRefPtr browser_impl() const { return browser_impl_; } void set_browser_impl(CefRefPtr browser) { diff --git a/libcef/browser/osr/render_widget_host_view_osr_mac.mm b/libcef/browser/osr/render_widget_host_view_osr_mac.mm index f85103d54..61181b0d2 100644 --- a/libcef/browser/osr/render_widget_host_view_osr_mac.mm +++ b/libcef/browser/osr/render_widget_host_view_osr_mac.mm @@ -44,7 +44,7 @@ class MacHelper : public content::BrowserCompositorMacClient, view_->render_widget_host()->delegate()->IsFullscreenForCurrentTab()) { return SK_ColorBLACK; } - return view_->background_color(); + return *view_->GetBackgroundColor(); } void BrowserCompositorMacOnBeginFrame(base::TimeTicks frame_time) override {} diff --git a/libcef/browser/storage_partition_proxy.cc b/libcef/browser/storage_partition_proxy.cc index 772e65636..0f6072d65 100644 --- a/libcef/browser/storage_partition_proxy.cc +++ b/libcef/browser/storage_partition_proxy.cc @@ -207,6 +207,10 @@ CefStoragePartitionProxy::GetPrefetchURLLoaderService() { return parent_->GetPrefetchURLLoaderService(); } +content::CookieStoreContext* CefStoragePartitionProxy::GetCookieStoreContext() { + return parent_->GetCookieStoreContext(); +} + content::URLLoaderFactoryGetter* CefStoragePartitionProxy::url_loader_factory_getter() { return parent_->url_loader_factory_getter(); diff --git a/libcef/browser/storage_partition_proxy.h b/libcef/browser/storage_partition_proxy.h index e46f07e00..079ec67e7 100644 --- a/libcef/browser/storage_partition_proxy.h +++ b/libcef/browser/storage_partition_proxy.h @@ -80,6 +80,7 @@ class CefStoragePartitionProxy : public content::StoragePartition { content::BlobURLLoaderFactory* GetBlobURLLoaderFactory() override; content::BlobRegistryWrapper* GetBlobRegistry() override; content::PrefetchURLLoaderService* GetPrefetchURLLoaderService() override; + content::CookieStoreContext* GetCookieStoreContext() override; content::URLLoaderFactoryGetter* url_loader_factory_getter() override; content::BrowserContext* browser_context() const override; mojo::BindingId Bind( diff --git a/libcef/browser/views/label_button_view.h b/libcef/browser/views/label_button_view.h index 3c326c442..e159724ee 100644 --- a/libcef/browser/views/label_button_view.h +++ b/libcef/browser/views/label_button_view.h @@ -45,7 +45,7 @@ CEF_LABEL_BUTTON_VIEW_T class CefLabelButtonView : public CEF_BUTTON_VIEW_D { } // CefViewView methods: - bool HasMinimumSize() const { return true; } + bool HasMinimumSize() const override { return true; } }; #endif // CEF_LIBCEF_BROWSER_VIEWS_LABEL_BUTTON_VIEW_H_ diff --git a/libcef/common/crash_reporter_client.cc b/libcef/common/crash_reporter_client.cc index 4038eaff6..9dc1b4830 100644 --- a/libcef/common/crash_reporter_client.cc +++ b/libcef/common/crash_reporter_client.cc @@ -18,6 +18,7 @@ #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "components/crash/core/common/crash_key.h" +#include "services/service_manager/embedder/switches.h" #include "third_party/crashpad/crashpad/client/annotation.h" #if defined(OS_MACOSX) @@ -603,16 +604,17 @@ bool CefCrashReporterClient::GetCrashMetricsLocation( void CefCrashReporterClient::GetProductNameAndVersion(const char** product_name, const char** version) { - GetProductNameAndVersion(product_name, version, nullptr); -} - -void CefCrashReporterClient::GetProductNameAndVersion(const char** product_name, - const char** version, - const char** channel) { *product_name = product_name_.c_str(); *version = product_version_.c_str(); } +void CefCrashReporterClient::GetProductNameAndVersion(std::string* product_name, + std::string* version, + std::string* channel) { + *product_name = product_name_; + *version = product_version_; +} + #if !defined(OS_MACOSX) base::FilePath CefCrashReporterClient::GetReporterLogFilename() { @@ -623,7 +625,7 @@ bool CefCrashReporterClient::EnableBreakpadForProcess( const std::string& process_type) { return process_type == switches::kRendererProcess || process_type == switches::kPpapiPluginProcess || - process_type == switches::kZygoteProcess || + process_type == service_manager::switches::kZygoteProcess || process_type == switches::kGpuProcess; } diff --git a/libcef/common/crash_reporter_client.h b/libcef/common/crash_reporter_client.h index 09ef62b82..bd15540dc 100644 --- a/libcef/common/crash_reporter_client.h +++ b/libcef/common/crash_reporter_client.h @@ -53,9 +53,9 @@ class CefCrashReporterClient : public crash_reporter::CrashReporterClient { #elif defined(OS_POSIX) void GetProductNameAndVersion(const char** product_name, const char** version) override; - void GetProductNameAndVersion(const char** product_name, - const char** version, - const char** channel) override; + void GetProductNameAndVersion(std::string* product_name, + std::string* version, + std::string* channel) override; #if !defined(OS_MACOSX) base::FilePath GetReporterLogFilename() override; bool EnableBreakpadForProcess(const std::string& process_type) override; diff --git a/libcef/common/crash_reporting.cc b/libcef/common/crash_reporting.cc index d01f3c265..a5660b0a9 100644 --- a/libcef/common/crash_reporting.cc +++ b/libcef/common/crash_reporting.cc @@ -16,6 +16,7 @@ #include "components/crash/core/common/crash_key.h" #include "components/crash/core/common/crash_keys.h" #include "content/public/common/content_switches.h" +#include "services/service_manager/embedder/switches.h" #if defined(OS_MACOSX) #include "base/mac/foundation_util.h" @@ -130,7 +131,7 @@ void InitCrashReporter(const base::CommandLine& command_line, #else // !defined(OS_MACOSX) breakpad::SetCrashServerURL(crash_client->GetCrashServerURL()); - if (process_type != switches::kZygoteProcess) { + if (process_type != service_manager::switches::kZygoteProcess) { // Crash reporting for subprocesses created using the zygote will be // initialized in ZygoteForked. breakpad::InitCrashReporter(process_type); diff --git a/libcef/common/service_manifests/browser_manifest_overlay.json b/libcef/common/service_manifests/browser_manifest_overlay.json index c8430b5a2..41e13a9e3 100644 --- a/libcef/common/service_manifests/browser_manifest_overlay.json +++ b/libcef/common/service_manifests/browser_manifest_overlay.json @@ -5,9 +5,9 @@ "service_manager:connector": { "provides": { "renderer": [ - "blink::mojom::BudgetService", - "metrics::mojom::LeakDetector", - "mojom::ModuleEventSink" + "blink.mojom.BudgetService", + "metrics.mojom.LeakDetector", + "mojom.ModuleEventSink" ] }, "requires": { @@ -18,9 +18,9 @@ "navigation:frame": { "provides": { "renderer": [ - "blink::mojom::BudgetService", - "extensions::KeepAlive", - "extensions::mime_handler::MimeHandlerService" + "blink.mojom.BudgetService", + "extensions.KeepAlive", + "extensions.mime_handler.MimeHandlerService" ] } } diff --git a/libcef/common/service_manifests/renderer_manifest_overlay.json b/libcef/common/service_manifests/renderer_manifest_overlay.json index 2d3535cc9..9dccc37cb 100644 --- a/libcef/common/service_manifests/renderer_manifest_overlay.json +++ b/libcef/common/service_manifests/renderer_manifest_overlay.json @@ -4,7 +4,7 @@ "service_manager:connector": { "provides": { "browser": [ - "spellcheck::mojom::SpellChecker" + "spellcheck.mojom.SpellChecker" ] }, "requires": { diff --git a/libcef/common/service_manifests/utility_manifest_overlay.json b/libcef/common/service_manifests/utility_manifest_overlay.json index c4f9b0d5e..a364a3fee 100644 --- a/libcef/common/service_manifests/utility_manifest_overlay.json +++ b/libcef/common/service_manifests/utility_manifest_overlay.json @@ -4,7 +4,7 @@ "service_manager:connector": { "provides": { "browser": [ - "net::interfaces::ProxyResolverFactory" + "net.interfaces.ProxyResolverFactory" ] } } diff --git a/libcef/common/widevine_loader.cc b/libcef/common/widevine_loader.cc index ef2c679bd..749431953 100644 --- a/libcef/common/widevine_loader.cc +++ b/libcef/common/widevine_loader.cc @@ -25,6 +25,7 @@ #include "content/public/common/content_switches.h" #include "media/cdm/cdm_host_file.h" #include "media/cdm/supported_cdm_versions.h" +#include "services/service_manager/embedder/switches.h" #include "services/service_manager/sandbox/switches.h" namespace { @@ -430,7 +431,7 @@ void CefWidevineLoader::AddContentDecryptionModules( // errors during plugin loading. This is because the Zygote process must pre- // load all plugins before initializing the sandbox. if (command_line.GetSwitchValueASCII(switches::kProcessType) != - switches::kZygoteProcess || + service_manager::switches::kZygoteProcess || command_line.HasSwitch(service_manager::switches::kNoSandbox)) { return; } diff --git a/libcef/renderer/render_urlrequest_impl.cc b/libcef/renderer/render_urlrequest_impl.cc index aaac43fb2..afe85d122 100644 --- a/libcef/renderer/render_urlrequest_impl.cc +++ b/libcef/renderer/render_urlrequest_impl.cc @@ -44,7 +44,7 @@ class CefWebURLLoaderClient : public blink::WebURLLoaderClient { unsigned long long totalBytesToBeSent) override; void DidReceiveResponse(const WebURLResponse& response) override; void DidReceiveData(const char* data, int dataLength) override; - void DidFinishLoading(double finish_time, + void DidFinishLoading(base::TimeTicks finish_time, int64_t total_encoded_data_length, int64_t total_encoded_body_length, int64_t total_decoded_body_length, @@ -292,7 +292,7 @@ void CefWebURLLoaderClient::DidReceiveData(const char* data, int dataLength) { context_->OnDownloadData(data, dataLength); } -void CefWebURLLoaderClient::DidFinishLoading(double finishTime, +void CefWebURLLoaderClient::DidFinishLoading(base::TimeTicks finish_time, int64_t total_encoded_data_length, int64_t total_encoded_body_length, int64_t total_decoded_body_length, diff --git a/patch/patch.cfg b/patch/patch.cfg index d45bbad2f..49fa752de 100644 --- a/patch/patch.cfg +++ b/patch/patch.cfg @@ -31,6 +31,9 @@ patches = [ # # Write environment.* files with the correct SDK version on Windows. # https://bugs.chromium.org/p/chromium/issues/detail?id=634788 + # + # Windows: Add cc_wrapper support for sccache builds. + # https://bitbucket.org/chromiumembedded/cef/issues/2432 'name': 'gn_config', }, { diff --git a/patch/patches/browser_compositor_mac.patch b/patch/patches/browser_compositor_mac.patch index 32f37eb86..63e99fc25 100644 --- a/patch/patches/browser_compositor_mac.patch +++ b/patch/patches/browser_compositor_mac.patch @@ -1,5 +1,5 @@ diff --git content/browser/renderer_host/browser_compositor_view_mac.h content/browser/renderer_host/browser_compositor_view_mac.h -index f823af11a791..2c08bf522a10 100644 +index 3f720471d006..c9ab4c924b1b 100644 --- content/browser/renderer_host/browser_compositor_view_mac.h +++ content/browser/renderer_host/browser_compositor_view_mac.h @@ -56,6 +56,7 @@ class CONTENT_EXPORT BrowserCompositorMac : public DelegatedFrameHostClient { @@ -19,10 +19,10 @@ index f823af11a791..2c08bf522a10 100644 void DidCreateNewRendererCompositorFrameSink( viz::mojom::CompositorFrameSinkClient* renderer_compositor_frame_sink); diff --git content/browser/renderer_host/browser_compositor_view_mac.mm content/browser/renderer_host/browser_compositor_view_mac.mm -index a03b35dbad92..d8938fb0562c 100644 +index affefec39dd6..c0359a5ce62b 100644 --- content/browser/renderer_host/browser_compositor_view_mac.mm +++ content/browser/renderer_host/browser_compositor_view_mac.mm -@@ -248,6 +248,12 @@ BrowserCompositorMac::~BrowserCompositorMac() { +@@ -247,6 +247,12 @@ BrowserCompositorMac::~BrowserCompositorMac() { g_spare_recyclable_compositors.Get().clear(); } diff --git a/patch/patches/browser_plugin_guest_1565.patch b/patch/patches/browser_plugin_guest_1565.patch index f388e9efe..045f1c25a 100644 --- a/patch/patches/browser_plugin_guest_1565.patch +++ b/patch/patches/browser_plugin_guest_1565.patch @@ -1,8 +1,8 @@ diff --git content/browser/browser_plugin/browser_plugin_guest.cc content/browser/browser_plugin/browser_plugin_guest.cc -index 6f3759f4d66f..c7d7188444b1 100644 +index a0bc9305e62d..0c8d42c55302 100644 --- content/browser/browser_plugin/browser_plugin_guest.cc +++ content/browser/browser_plugin/browser_plugin_guest.cc -@@ -314,8 +314,11 @@ void BrowserPluginGuest::InitInternal( +@@ -313,8 +313,11 @@ void BrowserPluginGuest::InitInternal( static_cast(GetWebContents()->GetView()); } @@ -15,7 +15,7 @@ index 6f3759f4d66f..c7d7188444b1 100644 // Once a BrowserPluginGuest has an embedder WebContents, it's considered to // be attached. -@@ -790,10 +793,19 @@ void BrowserPluginGuest::OnWillAttachComplete( +@@ -789,10 +792,19 @@ void BrowserPluginGuest::OnWillAttachComplete( static_cast(GetWebContents()->GetView()); if (!web_contents()->GetRenderViewHost()->GetWidget()->GetView()) { web_contents_view->CreateViewForWidget( diff --git a/patch/patches/chrome_browser.patch b/patch/patches/chrome_browser.patch index 8e30f41c8..7ac3b385e 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 69d42d094933..96383d6f94d7 100644 +index 7407d48e9104..8c4f03f2f551 100644 --- chrome/browser/BUILD.gn +++ chrome/browser/BUILD.gn @@ -8,6 +8,7 @@ import("//build/config/features.gni") @@ -10,7 +10,7 @@ index 69d42d094933..96383d6f94d7 100644 import("//chrome/common/features.gni") import("//components/feature_engagement/features.gni") import("//components/feed/features.gni") -@@ -1600,6 +1601,7 @@ jumbo_split_static_library("browser") { +@@ -1595,6 +1596,7 @@ jumbo_split_static_library("browser") { "//base:i18n", "//base/allocator:buildflags", "//cc", @@ -18,7 +18,7 @@ index 69d42d094933..96383d6f94d7 100644 "//chrome:extra_resources", "//chrome:resources", "//chrome:strings", -@@ -1866,6 +1868,10 @@ jumbo_split_static_library("browser") { +@@ -1861,6 +1863,10 @@ jumbo_split_static_library("browser") { ] } diff --git a/patch/patches/chrome_widevine.patch b/patch/patches/chrome_widevine.patch index f78987c28..e29c53218 100644 --- a/patch/patches/chrome_widevine.patch +++ b/patch/patches/chrome_widevine.patch @@ -1,5 +1,5 @@ diff --git chrome/common/chrome_content_client.cc chrome/common/chrome_content_client.cc -index da90176ea5a9..34da381c00e2 100644 +index 231520b1bb17..e1a0128d258a 100644 --- chrome/common/chrome_content_client.cc +++ chrome/common/chrome_content_client.cc @@ -94,7 +94,8 @@ diff --git a/patch/patches/component_build_1617.patch b/patch/patches/component_build_1617.patch index d2bbff731..455f82e70 100644 --- a/patch/patches/component_build_1617.patch +++ b/patch/patches/component_build_1617.patch @@ -13,7 +13,7 @@ index 4393a8fac233..860715e86900 100644 explicit ContentServiceManagerMainDelegate(const ContentMainParams& params); ~ContentServiceManagerMainDelegate() override; diff --git third_party/blink/renderer/controller/BUILD.gn third_party/blink/renderer/controller/BUILD.gn -index 1aaa34c60ac9..c9c9a430f6b0 100644 +index 3df8b9c94f17..a16461d8d729 100644 --- third_party/blink/renderer/controller/BUILD.gn +++ third_party/blink/renderer/controller/BUILD.gn @@ -25,6 +25,7 @@ component("controller") { @@ -24,7 +24,7 @@ index 1aaa34c60ac9..c9c9a430f6b0 100644 "//third_party/blink/renderer:config", "//third_party/blink/renderer:inside_blink", "//third_party/blink/renderer:non_test_config", -@@ -43,6 +44,8 @@ component("controller") { +@@ -45,6 +46,8 @@ component("controller") { "dev_tools_frontend_impl.h", "oom_intervention_impl.cc", "oom_intervention_impl.h", diff --git a/patch/patches/compositor_1368.patch b/patch/patches/compositor_1368.patch index 7caa42b32..fe57497f1 100644 --- a/patch/patches/compositor_1368.patch +++ b/patch/patches/compositor_1368.patch @@ -1,8 +1,8 @@ diff --git content/browser/compositor/gpu_process_transport_factory.cc content/browser/compositor/gpu_process_transport_factory.cc -index 2775fd430e02..f066901641e0 100644 +index 1eae7a5d3354..999afbf1cc60 100644 --- content/browser/compositor/gpu_process_transport_factory.cc +++ content/browser/compositor/gpu_process_transport_factory.cc -@@ -504,9 +504,19 @@ void GpuProcessTransportFactory::EstablishedGpuChannel( +@@ -514,10 +514,20 @@ void GpuProcessTransportFactory::EstablishedGpuChannel( // surfaces as they are not following the correct mode. DisableGpuCompositing(compositor.get()); } @@ -13,14 +13,16 @@ index 2775fd430e02..f066901641e0 100644 + compositor.get()); + } + if (!output_device) { -+ output_device = CreateSoftwareOutputDevice(compositor->widget()); ++ output_device = CreateSoftwareOutputDevice(compositor->widget(), ++ compositor->task_runner()); + } + display_output_surface = std::make_unique( -- CreateSoftwareOutputDevice(compositor->widget()), +- CreateSoftwareOutputDevice(compositor->widget(), +- compositor->task_runner()), + std::move(output_device), - std::move(vsync_callback), compositor->task_runner()); + std::move(vsync_callback)); } else { DCHECK(context_provider); diff --git ui/compositor/compositor.h ui/compositor/compositor.h diff --git a/patch/patches/content_2015.patch b/patch/patches/content_2015.patch index 52c7a06c2..892c7b267 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 cbc50ff93650..c91171abf5b0 100644 +index 82eee2a72cc4..6e02d9fcce1c 100644 --- chrome/browser/download/download_target_determiner.cc +++ chrome/browser/download/download_target_determiner.cc @@ -571,8 +571,8 @@ void IsHandledBySafePlugin(content::ResourceContext* resource_context, @@ -77,27 +77,27 @@ index d544c9ec13a3..b15c5b13d902 100644 } diff --git content/browser/frame_host/navigation_handle_impl.cc content/browser/frame_host/navigation_handle_impl.cc -index df35ab90fa05..3835d6d76a06 100644 +index b23698013a09..d60eb48c6efd 100644 --- content/browser/frame_host/navigation_handle_impl.cc +++ content/browser/frame_host/navigation_handle_impl.cc @@ -380,12 +380,6 @@ net::Error NavigationHandleImpl::GetNetErrorCode() { } RenderFrameHostImpl* NavigationHandleImpl::GetRenderFrameHost() { -- // TODO(mkwst): Change this to check against 'READY_TO_COMMIT' once -- // ReadyToCommitNavigation is available whether or not PlzNavigate is -- // enabled. https://crbug.com/621856 -- CHECK_GE(state_, WILL_PROCESS_RESPONSE) -- << "This accessor should only be called after a response has been " -- "delivered for processing."; +- // Only allow the RenderFrameHost to be retrieved once it has been set for +- // this navigation. This will happens either at WillProcessResponse time for +- // regular navigations or at WillFailRequest time for error pages. +- CHECK_GE(state_, WILL_FAIL_REQUEST) +- << "This accessor should only be called after a RenderFrameHost has been " +- "picked for this navigation."; + static_assert(WILL_FAIL_REQUEST < WILL_PROCESS_RESPONSE, + "WillFailRequest state should come before WillProcessResponse"); return render_frame_host_; - } - diff --git content/browser/frame_host/render_frame_host_impl.cc content/browser/frame_host/render_frame_host_impl.cc -index f289fb7cfd49..d7512011539b 100644 +index e16c62d0f36d..73698f6847a6 100644 --- content/browser/frame_host/render_frame_host_impl.cc +++ content/browser/frame_host/render_frame_host_impl.cc -@@ -1551,6 +1551,7 @@ void RenderFrameHostImpl::OnDidFailProvisionalLoadWithError( +@@ -1552,6 +1552,7 @@ void RenderFrameHostImpl::OnDidFailProvisionalLoadWithError( if (GetNavigationHandle()) { GetNavigationHandle()->set_net_error_code( static_cast(params.error_code)); @@ -105,7 +105,7 @@ index f289fb7cfd49..d7512011539b 100644 } frame_tree_node_->navigator()->DidFailProvisionalLoadWithError(this, params); -@@ -3449,9 +3450,9 @@ void RenderFrameHostImpl::RegisterMojoInterfaces() { +@@ -3317,9 +3318,9 @@ void RenderFrameHostImpl::RegisterMojoInterfaces() { BrowserThread::GetTaskRunnerForThread(BrowserThread::IO)); if (base::FeatureList::IsEnabled(network::features::kNetworkService)) { @@ -118,7 +118,7 @@ index f289fb7cfd49..d7512011539b 100644 // TODO(https://crbug.com/813479): Investigate why we need to explicitly // specify task runner for BrowserThread::IO here. // Bind calls to the BindRegistry should come on to the IO thread by -@@ -3724,9 +3725,9 @@ void RenderFrameHostImpl::CommitNavigation( +@@ -3594,9 +3595,9 @@ void RenderFrameHostImpl::CommitNavigation( // however only do this for cross-document navigations, because the // alternative would be redundant effort. network::mojom::URLLoaderFactoryPtrInfo default_factory_info; @@ -131,7 +131,7 @@ index f289fb7cfd49..d7512011539b 100644 if (subresource_loader_params && subresource_loader_params->loader_factory_info.is_valid()) { // If the caller has supplied a default URLLoaderFactory override (for -@@ -4369,8 +4370,8 @@ void RenderFrameHostImpl::CreateNetworkServiceDefaultFactoryAndObserve( +@@ -4265,8 +4266,8 @@ void RenderFrameHostImpl::CreateNetworkServiceDefaultFactoryAndObserve( RenderFrameDevToolsAgentHost::WillCreateURLLoaderFactory( this, false /* is_navigation */, false /* is_download */, &default_factory_request); @@ -226,10 +226,10 @@ index 7f3ab224bd15..7fb3e94d8756 100644 const std::string& mime_type, bool* found, diff --git content/browser/loader/mime_sniffing_resource_handler.cc content/browser/loader/mime_sniffing_resource_handler.cc -index 305f48e69dad..8bf94749e7d6 100644 +index bed70acf54df..3985020b3423 100644 --- content/browser/loader/mime_sniffing_resource_handler.cc +++ content/browser/loader/mime_sniffing_resource_handler.cc -@@ -494,8 +494,8 @@ bool MimeSniffingResourceHandler::CheckForPluginHandler( +@@ -495,8 +495,8 @@ bool MimeSniffingResourceHandler::CheckForPluginHandler( WebPluginInfo plugin; bool has_plugin = plugin_service_->GetPluginInfo( info->GetChildID(), info->GetRenderFrameID(), info->GetContext(), @@ -275,10 +275,10 @@ index 4e11056a3dc9..973ad50975e1 100644 const std::string& mime_type, bool allow_wildcard, diff --git content/common/frame_messages.h content/common/frame_messages.h -index 1b5b3ad3dbbc..468289370554 100644 +index f6d2a1f492f3..6cdeb0aa8bcb 100644 --- content/common/frame_messages.h +++ content/common/frame_messages.h -@@ -1384,8 +1384,9 @@ IPC_MESSAGE_ROUTED1(FrameHostMsg_PepperStopsPlayback, +@@ -1393,8 +1393,9 @@ IPC_MESSAGE_ROUTED1(FrameHostMsg_PepperStopsPlayback, // Used to get the list of plugins. |main_frame_origin| is used to handle // exceptions for plugin content settings. @@ -289,7 +289,7 @@ index 1b5b3ad3dbbc..468289370554 100644 url::Origin /* main_frame_origin */, std::vector /* plugins */) -@@ -1393,9 +1394,10 @@ IPC_SYNC_MESSAGE_CONTROL2_1(FrameHostMsg_GetPlugins, +@@ -1402,9 +1403,10 @@ IPC_SYNC_MESSAGE_CONTROL2_1(FrameHostMsg_GetPlugins, // type. If there is no matching plugin, |found| is false. // |actual_mime_type| is the actual mime type supported by the // found plugin. @@ -302,10 +302,10 @@ index 1b5b3ad3dbbc..468289370554 100644 std::string /* mime_type */, bool /* found */, diff --git content/ppapi_plugin/ppapi_blink_platform_impl.cc content/ppapi_plugin/ppapi_blink_platform_impl.cc -index 0128170c0aa0..0b5e4afcd91c 100644 +index cdfffa0cab11..5b61d86d5d42 100644 --- content/ppapi_plugin/ppapi_blink_platform_impl.cc +++ content/ppapi_plugin/ppapi_blink_platform_impl.cc -@@ -194,6 +194,7 @@ blink::WebThemeEngine* PpapiBlinkPlatformImpl::ThemeEngine() { +@@ -189,6 +189,7 @@ blink::WebThemeEngine* PpapiBlinkPlatformImpl::ThemeEngine() { void PpapiBlinkPlatformImpl::GetPluginList( bool refresh, @@ -314,10 +314,10 @@ index 0128170c0aa0..0b5e4afcd91c 100644 blink::WebPluginListBuilder* builder) { NOTREACHED(); diff --git content/ppapi_plugin/ppapi_blink_platform_impl.h content/ppapi_plugin/ppapi_blink_platform_impl.h -index 676ce592da16..acb36c5b2a5f 100644 +index 5f245c7d85d3..a6546c33f6f4 100644 --- content/ppapi_plugin/ppapi_blink_platform_impl.h +++ content/ppapi_plugin/ppapi_blink_platform_impl.h -@@ -39,6 +39,7 @@ class PpapiBlinkPlatformImpl : public BlinkPlatformImpl { +@@ -38,6 +38,7 @@ class PpapiBlinkPlatformImpl : public BlinkPlatformImpl { blink::WebString DefaultLocale() override; blink::WebThemeEngine* ThemeEngine() override; void GetPluginList(bool refresh, @@ -350,10 +350,10 @@ index 3b610b1f554e..7c439e060779 100644 WebPluginInfo* plugin) = 0; diff --git content/public/renderer/content_renderer_client.h content/public/renderer/content_renderer_client.h -index e62a17b09f8e..f57d547d9e1a 100644 +index 59aba6d7b4a2..ee51dd460f32 100644 --- content/public/renderer/content_renderer_client.h +++ content/public/renderer/content_renderer_client.h -@@ -77,6 +77,9 @@ class CONTENT_EXPORT ContentRendererClient { +@@ -76,6 +76,9 @@ class CONTENT_EXPORT ContentRendererClient { // Notifies us that the RenderThread has been created. virtual void RenderThreadStarted() {} @@ -363,7 +363,7 @@ index e62a17b09f8e..f57d547d9e1a 100644 // Notifies that a new RenderFrame has been created. virtual void RenderFrameCreated(RenderFrame* render_frame) {} -@@ -363,6 +366,10 @@ class CONTENT_EXPORT ContentRendererClient { +@@ -358,6 +361,10 @@ class CONTENT_EXPORT ContentRendererClient { // This method may invalidate the frame. virtual void RunScriptsAtDocumentIdle(RenderFrame* render_frame) {} @@ -389,10 +389,10 @@ index 74a031ad10c3..3b3f9e292f4b 100644 virtual void FocusedNodeChanged(const blink::WebNode& node) {} diff --git content/renderer/render_frame_impl.cc content/renderer/render_frame_impl.cc -index cba2c9ccd1d6..c2b272dee124 100644 +index 013bc7b2833b..8789a6b3a4e8 100644 --- content/renderer/render_frame_impl.cc +++ content/renderer/render_frame_impl.cc -@@ -3273,7 +3273,8 @@ blink::WebPlugin* RenderFrameImpl::CreatePlugin( +@@ -3250,7 +3250,8 @@ blink::WebPlugin* RenderFrameImpl::CreatePlugin( std::string mime_type; bool found = false; Send(new FrameHostMsg_GetPluginInfo( @@ -402,7 +402,7 @@ index cba2c9ccd1d6..c2b272dee124 100644 params.mime_type.Utf8(), &found, &info, &mime_type)); if (!found) return nullptr; -@@ -3638,6 +3639,8 @@ void RenderFrameImpl::FrameDetached(DetachType type) { +@@ -3606,6 +3607,8 @@ void RenderFrameImpl::FrameDetached(DetachType type) { void RenderFrameImpl::FrameFocused() { Send(new FrameHostMsg_FrameFocused(routing_id_)); @@ -412,10 +412,10 @@ index cba2c9ccd1d6..c2b272dee124 100644 void RenderFrameImpl::WillCommitProvisionalLoad() { diff --git content/renderer/render_thread_impl.cc content/renderer/render_thread_impl.cc -index 03b9de4df7e9..db2e2407b6b1 100644 +index 64d044cafe64..78d24df85614 100644 --- content/renderer/render_thread_impl.cc +++ content/renderer/render_thread_impl.cc -@@ -893,6 +893,8 @@ void RenderThreadImpl::Init( +@@ -884,6 +884,8 @@ void RenderThreadImpl::Init( StartServiceManagerConnection(); @@ -425,10 +425,10 @@ index 03b9de4df7e9..db2e2407b6b1 100644 base::Bind(&RenderThreadImpl::OnRendererInterfaceRequest, base::Unretained(this))); diff --git content/renderer/renderer_blink_platform_impl.cc content/renderer/renderer_blink_platform_impl.cc -index 23d5d95ecd03..609fd81e7c27 100644 +index 14d17e4257f4..65362ec1c609 100644 --- content/renderer/renderer_blink_platform_impl.cc +++ content/renderer/renderer_blink_platform_impl.cc -@@ -788,6 +788,7 @@ RendererBlinkPlatformImpl::CreateMIDIAccessor( +@@ -764,6 +764,7 @@ RendererBlinkPlatformImpl::CreateMIDIAccessor( void RendererBlinkPlatformImpl::GetPluginList( bool refresh, @@ -436,7 +436,7 @@ index 23d5d95ecd03..609fd81e7c27 100644 const blink::WebSecurityOrigin& mainFrameOrigin, blink::WebPluginListBuilder* builder) { #if BUILDFLAG(ENABLE_PLUGINS) -@@ -795,7 +796,8 @@ void RendererBlinkPlatformImpl::GetPluginList( +@@ -771,7 +772,8 @@ void RendererBlinkPlatformImpl::GetPluginList( if (!plugin_refresh_allowed_) refresh = false; RenderThread::Get()->Send( @@ -446,7 +446,7 @@ index 23d5d95ecd03..609fd81e7c27 100644 for (const WebPluginInfo& plugin : plugins) { builder->AddPlugin(WebString::FromUTF16(plugin.name), WebString::FromUTF16(plugin.desc), -@@ -1329,6 +1331,14 @@ void RendererBlinkPlatformImpl::RequestPurgeMemory() { +@@ -1287,6 +1289,14 @@ void RendererBlinkPlatformImpl::RequestPurgeMemory() { base::MemoryCoordinatorClientRegistry::GetInstance()->PurgeMemory(); } @@ -462,10 +462,10 @@ index 23d5d95ecd03..609fd81e7c27 100644 if (!web_database_host_) { web_database_host_ = blink::mojom::ThreadSafeWebDatabaseHostPtr::Create( diff --git content/renderer/renderer_blink_platform_impl.h content/renderer/renderer_blink_platform_impl.h -index 43df1974aee9..22e5bcae18a2 100644 +index 325f0382d858..d3eab3839f9a 100644 --- content/renderer/renderer_blink_platform_impl.h +++ content/renderer/renderer_blink_platform_impl.h -@@ -124,6 +124,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { +@@ -120,6 +120,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { viz::FrameSinkId GenerateFrameSinkId() override; void GetPluginList(bool refresh, @@ -473,7 +473,7 @@ index 43df1974aee9..22e5bcae18a2 100644 const blink::WebSecurityOrigin& mainFrameOrigin, blink::WebPluginListBuilder* builder) override; blink::WebPublicSuffixList* PublicSuffixList() override; -@@ -247,6 +248,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { +@@ -239,6 +240,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { mojo::ScopedDataPipeConsumerHandle handle) override; void RequestPurgeMemory() override; @@ -532,10 +532,10 @@ index 84bed37848d9..1a66c0757437 100644 const std::string& mime_type, bool allow_wildcard, diff --git content/test/test_blink_web_unit_test_support.cc content/test/test_blink_web_unit_test_support.cc -index a681ff9fe740..9cec8e2f19cd 100644 +index 5b474d9f8c65..33be6755d2ea 100644 --- content/test/test_blink_web_unit_test_support.cc +++ content/test/test_blink_web_unit_test_support.cc -@@ -310,6 +310,7 @@ blink::WebThread* TestBlinkWebUnitTestSupport::CurrentThread() { +@@ -338,6 +338,7 @@ blink::WebThread* TestBlinkWebUnitTestSupport::CurrentThread() { void TestBlinkWebUnitTestSupport::GetPluginList( bool refresh, @@ -544,10 +544,10 @@ index a681ff9fe740..9cec8e2f19cd 100644 blink::WebPluginListBuilder* builder) { builder->AddPlugin("pdf", "pdf", "pdf-files", SkColorSetRGB(38, 38, 38)); diff --git content/test/test_blink_web_unit_test_support.h content/test/test_blink_web_unit_test_support.h -index 869f24db0169..d35ca78e1fad 100644 +index 3e9fdf28d72f..94880b599ada 100644 --- content/test/test_blink_web_unit_test_support.h +++ content/test/test_blink_web_unit_test_support.h -@@ -63,6 +63,7 @@ class TestBlinkWebUnitTestSupport : public BlinkPlatformImpl { +@@ -62,6 +62,7 @@ class TestBlinkWebUnitTestSupport : public BlinkPlatformImpl { blink::WebThread* CurrentThread() override; void GetPluginList(bool refresh, diff --git a/patch/patches/crashpad_1995.patch b/patch/patches/crashpad_1995.patch index 28e4ae877..1ba109ed0 100644 --- a/patch/patches/crashpad_1995.patch +++ b/patch/patches/crashpad_1995.patch @@ -127,7 +127,7 @@ index fdc51ab22807..cb0a99dd190c 100644 g_crash_helper_enabled = true; return true; diff --git components/crash/content/app/breakpad_linux.cc components/crash/content/app/breakpad_linux.cc -index e57c54b9cf6c..caee714efe38 100644 +index 76f15cb5b511..7cf4cb636a2e 100644 --- components/crash/content/app/breakpad_linux.cc +++ components/crash/content/app/breakpad_linux.cc @@ -28,6 +28,7 @@ @@ -155,7 +155,7 @@ index e57c54b9cf6c..caee714efe38 100644 info.process_start_time = g_process_start_time; info.oom_size = base::g_oom_size; info.pid = g_pid; -@@ -1342,7 +1344,7 @@ void ExecUploadProcessOrTerminate(const BreakpadInfo& info, +@@ -1341,7 +1343,7 @@ void ExecUploadProcessOrTerminate(const BreakpadInfo& info, header_content_encoding, header_content_type, post_file, @@ -164,7 +164,7 @@ index e57c54b9cf6c..caee714efe38 100644 "--timeout=10", // Set a timeout so we don't hang forever. "--tries=1", // Don't retry if the upload fails. "-O", // Output reply to the file descriptor path. -@@ -1682,10 +1684,19 @@ void HandleCrashDump(const BreakpadInfo& info) { +@@ -1681,10 +1683,19 @@ void HandleCrashDump(const BreakpadInfo& info) { GetCrashReporterClient()->GetProductNameAndVersion(&product_name, &version); writer.AddBoundary(); @@ -186,7 +186,7 @@ index e57c54b9cf6c..caee714efe38 100644 if (info.pid > 0) { char pid_value_buf[kUint64StringSize]; uint64_t pid_value_len = my_uint64_len(info.pid); -@@ -1803,10 +1814,20 @@ void HandleCrashDump(const BreakpadInfo& info) { +@@ -1802,10 +1813,20 @@ void HandleCrashDump(const BreakpadInfo& info) { crash_reporter::internal::TransitionalCrashKeyStorage; CrashKeyStorage::Iterator crash_key_iterator(*info.crash_keys); const CrashKeyStorage::Entry* entry; @@ -208,7 +208,7 @@ index e57c54b9cf6c..caee714efe38 100644 writer.AddBoundary(); writer.Flush(); } -@@ -2016,6 +2037,17 @@ void SetChannelCrashKey(const std::string& channel) { +@@ -2015,6 +2036,17 @@ void SetChannelCrashKey(const std::string& channel) { channel_key.Set(channel); } @@ -241,7 +241,7 @@ index 9ee85554812c..7af55ddda8fe 100644 extern void InitCrashKeysForTesting(); diff --git components/crash/content/app/crash_reporter_client.cc components/crash/content/app/crash_reporter_client.cc -index 4ec26a2a487a..0eba6a25009c 100644 +index 464fe2efc0db..dcc8d69bdd3a 100644 --- components/crash/content/app/crash_reporter_client.cc +++ components/crash/content/app/crash_reporter_client.cc @@ -88,7 +88,7 @@ int CrashReporterClient::GetResultCodeRespawnFailed() { @@ -253,9 +253,9 @@ index 4ec26a2a487a..0eba6a25009c 100644 void CrashReporterClient::GetProductNameAndVersion(const char** product_name, const char** version) { } -@@ -97,6 +97,7 @@ void CrashReporterClient::GetProductNameAndVersion(const char** product_name, - const char** version, - const char** channel) {} +@@ -97,6 +97,7 @@ void CrashReporterClient::GetProductNameAndVersion(std::string* product_name, + std::string* version, + std::string* channel) {} +#if !defined(OS_MACOSX) base::FilePath CrashReporterClient::GetReporterLogFilename() { @@ -318,7 +318,7 @@ index 4ec26a2a487a..0eba6a25009c 100644 } // namespace crash_reporter diff --git components/crash/content/app/crash_reporter_client.h components/crash/content/app/crash_reporter_client.h -index 94cdee55b87c..4612a6a6461a 100644 +index e6a09126bdb9..8052e323a5e3 100644 --- components/crash/content/app/crash_reporter_client.h +++ components/crash/content/app/crash_reporter_client.h @@ -5,7 +5,9 @@ @@ -341,8 +341,8 @@ index 94cdee55b87c..4612a6a6461a 100644 // in the crash report. Neither out parameter should be set to NULL. // TODO(jperaza): Remove the 2-parameter overload of this method once all @@ -102,6 +104,7 @@ class CrashReporterClient { - const char** version, - const char** channel); + std::string* version, + std::string* channel); +#if !defined(OS_MACOSX) virtual base::FilePath GetReporterLogFilename(); @@ -388,7 +388,7 @@ index 94cdee55b87c..4612a6a6461a 100644 } // namespace crash_reporter diff --git components/crash/content/app/crashpad.cc components/crash/content/app/crashpad.cc -index a5f6b2e6f423..b3892d3743ff 100644 +index c6a98292bb5e..7cf360d3b340 100644 --- components/crash/content/app/crashpad.cc +++ components/crash/content/app/crashpad.cc @@ -147,7 +147,8 @@ void InitializeCrashpadImpl(bool initial_client, @@ -402,7 +402,7 @@ index a5f6b2e6f423..b3892d3743ff 100644 ->set_system_crash_reporter_forwarding(crashpad::TriState::kDisabled); } diff --git components/crash/content/app/crashpad_mac.mm components/crash/content/app/crashpad_mac.mm -index eb82f44053ce..73cfcc15998d 100644 +index 91aaa801f951..1f138f38487d 100644 --- components/crash/content/app/crashpad_mac.mm +++ components/crash/content/app/crashpad_mac.mm @@ -16,11 +16,14 @@ @@ -420,7 +420,7 @@ index eb82f44053ce..73cfcc15998d 100644 #include "third_party/crashpad/crashpad/client/crash_report_database.h" #include "third_party/crashpad/crashpad/client/crashpad_client.h" #include "third_party/crashpad/crashpad/client/crashpad_info.h" -@@ -42,9 +45,10 @@ base::FilePath PlatformCrashpadInitialization(bool initial_client, +@@ -73,9 +76,10 @@ base::FilePath PlatformCrashpadInitialization(bool initial_client, if (initial_client) { @autoreleasepool { @@ -434,7 +434,7 @@ index eb82f44053ce..73cfcc15998d 100644 // Is there a way to recover if this fails? CrashReporterClient* crash_reporter_client = GetCrashReporterClient(); -@@ -56,16 +60,27 @@ base::FilePath PlatformCrashpadInitialization(bool initial_client, +@@ -87,16 +91,27 @@ base::FilePath PlatformCrashpadInitialization(bool initial_client, // crash server won't have symbols for any other build types. std::string url = "https://clients2.google.com/cr/report"; #else @@ -467,7 +467,7 @@ index eb82f44053ce..73cfcc15998d 100644 #if defined(GOOGLE_CHROME_BUILD) // Empty means stable. -@@ -81,12 +96,16 @@ base::FilePath PlatformCrashpadInitialization(bool initial_client, +@@ -112,12 +127,16 @@ base::FilePath PlatformCrashpadInitialization(bool initial_client, process_annotations["channel"] = ""; } @@ -489,7 +489,7 @@ index eb82f44053ce..73cfcc15998d 100644 std::vector arguments; -@@ -108,6 +127,12 @@ base::FilePath PlatformCrashpadInitialization(bool initial_client, +@@ -139,6 +158,12 @@ base::FilePath PlatformCrashpadInitialization(bool initial_client, "--reset-own-crash-exception-port-to-system-default"); } diff --git a/patch/patches/crashpad_tp_1995.patch b/patch/patches/crashpad_tp_1995.patch index 580490ca5..8e795d2d5 100644 --- a/patch/patches/crashpad_tp_1995.patch +++ b/patch/patches/crashpad_tp_1995.patch @@ -146,7 +146,7 @@ index a2b0c74636f4..01370fdc20d9 100644 struct Data; diff --git third_party/crashpad/crashpad/handler/BUILD.gn third_party/crashpad/crashpad/handler/BUILD.gn -index 78a4b092d8a8..c2d3acfab889 100644 +index f94e4e744e96..91786643298f 100644 --- third_party/crashpad/crashpad/handler/BUILD.gn +++ third_party/crashpad/crashpad/handler/BUILD.gn @@ -12,6 +12,7 @@ @@ -243,7 +243,7 @@ index 2ec1147d2620..8ff9a72e0bd7 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 dd7adf6503fd..4ae51a58aa6e 100644 +index 70192cf4dd47..37a4380c65ba 100644 --- third_party/crashpad/crashpad/handler/handler_main.cc +++ third_party/crashpad/crashpad/handler/handler_main.cc @@ -36,8 +36,10 @@ @@ -257,7 +257,7 @@ index dd7adf6503fd..4ae51a58aa6e 100644 #include "client/crash_report_database.h" #include "client/crashpad_client.h" #include "client/crashpad_info.h" -@@ -90,6 +92,10 @@ +@@ -93,6 +95,10 @@ #include "handler/linux/exception_handler_server.h" #endif // OS_MACOSX @@ -268,7 +268,7 @@ index dd7adf6503fd..4ae51a58aa6e 100644 namespace crashpad { namespace { -@@ -173,6 +179,9 @@ struct Options { +@@ -176,6 +182,9 @@ struct Options { bool periodic_tasks; bool rate_limit; bool upload_gzip; @@ -278,7 +278,7 @@ index dd7adf6503fd..4ae51a58aa6e 100644 }; // Splits |key_value| on '=' and inserts the resulting key and value into |map|. -@@ -532,6 +541,9 @@ int HandlerMain(int argc, +@@ -537,6 +546,9 @@ int HandlerMain(int argc, kOptionInitialClientFD, #endif kOptionURL, @@ -288,7 +288,7 @@ index dd7adf6503fd..4ae51a58aa6e 100644 // Standard options. kOptionHelp = -2, -@@ -589,6 +601,9 @@ int HandlerMain(int argc, +@@ -594,6 +606,9 @@ int HandlerMain(int argc, {"url", required_argument, nullptr, kOptionURL}, {"help", no_argument, nullptr, kOptionHelp}, {"version", no_argument, nullptr, kOptionVersion}, @@ -298,7 +298,7 @@ index dd7adf6503fd..4ae51a58aa6e 100644 {nullptr, 0, nullptr, 0}, }; -@@ -714,6 +729,27 @@ int HandlerMain(int argc, +@@ -719,6 +734,27 @@ int HandlerMain(int argc, options.url = optarg; break; } @@ -326,7 +326,7 @@ index dd7adf6503fd..4ae51a58aa6e 100644 case kOptionHelp: { Usage(me); MetricsRecordExit(Metrics::LifetimeMilestone::kExitedEarly); -@@ -822,8 +858,14 @@ int HandlerMain(int argc, +@@ -827,8 +863,14 @@ int HandlerMain(int argc, upload_thread_options.upload_gzip = options.upload_gzip; upload_thread_options.watch_pending_reports = options.periodic_tasks; @@ -341,7 +341,7 @@ index dd7adf6503fd..4ae51a58aa6e 100644 upload_thread.Get()->Start(); } -@@ -844,7 +886,8 @@ int HandlerMain(int argc, +@@ -849,7 +891,8 @@ int HandlerMain(int argc, ScopedStoppable prune_thread; if (options.periodic_tasks) { prune_thread.Reset(new PruneCrashReportThread( diff --git a/patch/patches/devtools_product_2300.patch b/patch/patches/devtools_product_2300.patch index e54f6c61b..c24c6b358 100644 --- a/patch/patches/devtools_product_2300.patch +++ b/patch/patches/devtools_product_2300.patch @@ -1,5 +1,5 @@ diff --git content/browser/devtools/devtools_http_handler.cc content/browser/devtools/devtools_http_handler.cc -index cae7c566146e..95b4c23c53c9 100644 +index c9187e774953..72dc4a43c3f0 100644 --- content/browser/devtools/devtools_http_handler.cc +++ content/browser/devtools/devtools_http_handler.cc @@ -564,7 +564,7 @@ void DevToolsHttpHandler::OnJsonRequest( diff --git a/patch/patches/extensions_1947.patch b/patch/patches/extensions_1947.patch index c5677404d..fb1736c69 100644 --- a/patch/patches/extensions_1947.patch +++ b/patch/patches/extensions_1947.patch @@ -27,7 +27,7 @@ index 53c7404ef1f9..ac33df7cfe0e 100644 auto* browser_context = web_contents->GetBrowserContext(); StreamsPrivateAPI* streams_private = GetStreamsPrivateAPI(browser_context); diff --git content/browser/frame_host/render_frame_host_manager.cc content/browser/frame_host/render_frame_host_manager.cc -index 73b66a56be83..3f60cbf1a727 100644 +index 7f6e27181267..26080b6d61e0 100644 --- content/browser/frame_host/render_frame_host_manager.cc +++ content/browser/frame_host/render_frame_host_manager.cc @@ -897,10 +897,11 @@ bool RenderFrameHostManager::ShouldSwapBrowsingInstancesForNavigation( @@ -57,10 +57,10 @@ index 73b66a56be83..3f60cbf1a727 100644 // If |new_instance| is a new SiteInstance for a subframe that requires a // dedicated process, set its process reuse policy so that such subframes are diff --git content/public/browser/content_browser_client.h content/public/browser/content_browser_client.h -index 2dc3bf7a8006..034598edfada 100644 +index d6799f4e2d07..d8b3cc177c44 100644 --- content/public/browser/content_browser_client.h +++ content/public/browser/content_browser_client.h -@@ -371,6 +371,13 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -372,6 +372,13 @@ class CONTENT_EXPORT ContentBrowserClient { // Returns true if error page should be isolated in its own process. virtual bool ShouldIsolateErrorPage(bool in_main_frame); diff --git a/patch/patches/gn_config.patch b/patch/patches/gn_config.patch index 161914175..f34937ce1 100644 --- a/patch/patches/gn_config.patch +++ b/patch/patches/gn_config.patch @@ -1,8 +1,8 @@ diff --git .gn .gn -index 36b54aca866c..06337f3f3086 100644 +index 65c8804cc47c..f3a9a704abec 100644 --- .gn +++ .gn -@@ -245,6 +245,8 @@ exec_script_whitelist = +@@ -246,6 +246,8 @@ exec_script_whitelist = # in the Chromium repo outside of //build. "//build_overrides/build.gni", @@ -12,7 +12,7 @@ index 36b54aca866c..06337f3f3086 100644 # https://crbug.com/474506. "//clank/java/BUILD.gn", diff --git BUILD.gn BUILD.gn -index 9dec8407e62d..f3355fe8fc3e 100644 +index 29915efe706f..68e11a68576d 100644 --- BUILD.gn +++ BUILD.gn @@ -192,6 +192,7 @@ group("gn_all") { @@ -55,11 +55,32 @@ index 982fbe8d3f0d..e757be4688f1 100644 + "You must set the visual_studio_runtime_dirs if you set the visual " + + "studio path") } +diff --git build/toolchain/win/BUILD.gn build/toolchain/win/BUILD.gn +index 4d9d1f45f870..c668f93a50f3 100644 +--- build/toolchain/win/BUILD.gn ++++ build/toolchain/win/BUILD.gn +@@ -6,6 +6,7 @@ import("//build/config/clang/clang.gni") + import("//build/config/compiler/compiler.gni") + import("//build/config/sanitizers/sanitizers.gni") + import("//build/config/win/visual_studio_version.gni") ++import("//build/toolchain/cc_wrapper.gni") + import("//build/toolchain/clang_static_analyzer.gni") + import("//build/toolchain/goma.gni") + import("//build/toolchain/toolchain.gni") +@@ -28,6 +29,8 @@ if (use_goma) { + } else { + goma_prefix = "$goma_dir/gomacc " + } ++} else if (cc_wrapper != "") { ++ goma_prefix = "$cc_wrapper " + } else { + goma_prefix = "" + } diff --git build/toolchain/win/setup_toolchain.py build/toolchain/win/setup_toolchain.py -index 5f51eadb13b2..aa7ab8dbb16d 100644 +index d63b131aea35..6aca4e2cc56e 100644 --- build/toolchain/win/setup_toolchain.py +++ build/toolchain/win/setup_toolchain.py -@@ -134,26 +134,29 @@ def _LoadToolchainEnv(cpu, sdk_dir, target_store): +@@ -134,25 +134,28 @@ def _LoadToolchainEnv(cpu, sdk_dir, target_store): # variable. if 'VSINSTALLDIR' in os.environ: del os.environ['VSINSTALLDIR'] @@ -78,10 +99,9 @@ index 5f51eadb13b2..aa7ab8dbb16d 100644 - # Store target must come before any SDK version declaration - if (target_store): - args.append(['store']) -- # Chromium requires the 10.0.15063.468 SDK - previous versions don't have -- # all of the required declarations and 10.0.16299.0 has some -- # incompatibilities (crbug.com/773476). -- args.append('10.0.15063.0') +- # Chromium requires the 10.0.17134.0 SDK - previous versions don't have +- # all of the required declarations. +- args.append('10.0.17134.0') - variables = _LoadEnvFromBat(args) + script_path = os.path.normpath(os.path.join( + os.environ['GYP_MSVS_OVERRIDE_PATH'], @@ -95,10 +115,9 @@ index 5f51eadb13b2..aa7ab8dbb16d 100644 + # Store target must come before any SDK version declaration + if (target_store): + args.append(['store']) -+ # Chromium requires the 10.0.15063.468 SDK - previous versions don't have -+ # all of the required declarations and 10.0.16299.0 has some -+ # incompatibilities (crbug.com/773476). -+ args.append('10.0.15063.0') ++ # Chromium requires the 10.0.17134.0 SDK - previous versions don't have ++ # all of the required declarations. ++ args.append('10.0.17134.0') + variables = _LoadEnvFromBat(args) + else: + variables = [] @@ -110,7 +129,7 @@ index 5f51eadb13b2..aa7ab8dbb16d 100644 diff --git build/vs_toolchain.py build/vs_toolchain.py -index d5999f71ca7b..d630585ecd2f 100755 +index 0abf143029cc..7e163f846982 100755 --- build/vs_toolchain.py +++ build/vs_toolchain.py @@ -82,11 +82,18 @@ def SetEnvironmentAndGetRuntimeDllDirs(): @@ -133,10 +152,10 @@ index d5999f71ca7b..d630585ecd2f 100755 # directory in order to run binaries locally, but they are needed in order # to create isolates or the mini_installer. Copying them to the output diff --git chrome/chrome_paks.gni chrome/chrome_paks.gni -index 9c2c9cbddc57..4ff2c6367217 100644 +index fde31eb044ed..b4fd21636719 100644 --- chrome/chrome_paks.gni +++ chrome/chrome_paks.gni -@@ -259,7 +259,7 @@ template("chrome_paks") { +@@ -257,7 +257,7 @@ template("chrome_paks") { } input_locales = locales diff --git a/patch/patches/gritsettings.patch b/patch/patches/gritsettings.patch index 8a4d2708b..3561fc5ac 100644 --- a/patch/patches/gritsettings.patch +++ b/patch/patches/gritsettings.patch @@ -1,8 +1,8 @@ diff --git tools/gritsettings/resource_ids tools/gritsettings/resource_ids -index 7e838ac964fc..184708195c52 100644 +index fc16a42e623e..2dd0879350ee 100644 --- tools/gritsettings/resource_ids +++ tools/gritsettings/resource_ids -@@ -417,4 +417,11 @@ +@@ -414,4 +414,11 @@ # Please read the header and find the right section above instead. # Resource ids starting at 31000 are reserved for projects built on Chromium. diff --git a/patch/patches/ime_1610.patch b/patch/patches/ime_1610.patch index 762bea3e2..55e8592cb 100644 --- a/patch/patches/ime_1610.patch +++ b/patch/patches/ime_1610.patch @@ -1,8 +1,8 @@ diff --git ui/base/ime/input_method_win_base.cc ui/base/ime/input_method_win_base.cc -index 1040d54fa088..a5e72467610e 100644 +index 499a1b11d221..39d05334d0af 100644 --- ui/base/ime/input_method_win_base.cc +++ ui/base/ime/input_method_win_base.cc -@@ -66,8 +66,9 @@ bool InputMethodWinBase::IsWindowFocused(const TextInputClient* client) const { +@@ -72,8 +72,9 @@ bool InputMethodWinBase::IsWindowFocused(const TextInputClient* client) const { // receiving keyboard input as long as it is an active window. This works well // even when the |attached_window_handle| becomes active but has not received // WM_FOCUS yet. diff --git a/patch/patches/linux_build.patch b/patch/patches/linux_build.patch index b5588f87f..1f34dccd0 100644 --- a/patch/patches/linux_build.patch +++ b/patch/patches/linux_build.patch @@ -1,5 +1,5 @@ diff --git build/config/compiler/BUILD.gn build/config/compiler/BUILD.gn -index e4e0775ff9ee..03d4123187cf 100644 +index ed5e65477539..14142d80161e 100644 --- build/config/compiler/BUILD.gn +++ build/config/compiler/BUILD.gn @@ -153,7 +153,7 @@ declare_args() { diff --git a/patch/patches/message_loop_443_1992243003.patch b/patch/patches/message_loop_443_1992243003.patch index c92648d6b..f7a57fb96 100644 --- a/patch/patches/message_loop_443_1992243003.patch +++ b/patch/patches/message_loop_443_1992243003.patch @@ -1,5 +1,5 @@ diff --git base/message_loop/message_loop_current.h base/message_loop/message_loop_current.h -index cf30bae0b202..009574ff488b 100644 +index 3631a8ff2b81..988b3edb404b 100644 --- base/message_loop/message_loop_current.h +++ base/message_loop/message_loop_current.h @@ -126,6 +126,16 @@ class BASE_EXPORT MessageLoopCurrent { diff --git a/patch/patches/net_security_expiration_1994.patch b/patch/patches/net_security_expiration_1994.patch index 3ee83b116..4dcba8777 100644 --- a/patch/patches/net_security_expiration_1994.patch +++ b/patch/patches/net_security_expiration_1994.patch @@ -1,8 +1,8 @@ -diff --git net/cert/ct_policy_enforcer.cc net/cert/ct_policy_enforcer.cc -index 0f7778089273..40111e89a2e0 100644 ---- net/cert/ct_policy_enforcer.cc -+++ net/cert/ct_policy_enforcer.cc -@@ -35,15 +35,6 @@ namespace net { +diff --git components/certificate_transparency/chrome_ct_policy_enforcer.cc components/certificate_transparency/chrome_ct_policy_enforcer.cc +index a2e2b493def0..c08872260c68 100644 +--- components/certificate_transparency/chrome_ct_policy_enforcer.cc ++++ components/certificate_transparency/chrome_ct_policy_enforcer.cc +@@ -36,15 +36,6 @@ namespace certificate_transparency { namespace { @@ -18,11 +18,14 @@ index 0f7778089273..40111e89a2e0 100644 // Returns a rounded-down months difference of |start| and |end|, // together with an indication of whether the last month was // a full month, because the range starts specified in the policy -@@ -302,4 +293,13 @@ ct::CTPolicyCompliance CTPolicyEnforcer::CheckCompliance( +@@ -304,4 +295,16 @@ CTPolicyCompliance ChromeCTPolicyEnforcer::CheckCompliance( return compliance; } -+bool CTPolicyEnforcer::IsBuildTimely() const { ++// Returns true if the current build is recent enough to ensure that ++// built-in security information (e.g. CT Logs) is fresh enough. ++// TODO(eranm): Move to base or net/base ++bool ChromeCTPolicyEnforcer::IsBuildTimely() const { + if (!enforce_net_security_expiration_) + return true; + @@ -31,15 +34,15 @@ index 0f7778089273..40111e89a2e0 100644 + return (base::Time::Now() - build_time).InDays() < 70 /* 10 weeks */; +} + - } // namespace net -diff --git net/cert/ct_policy_enforcer.h net/cert/ct_policy_enforcer.h -index fb6f4847cfe9..aa4c1cdafb9f 100644 ---- net/cert/ct_policy_enforcer.h -+++ net/cert/ct_policy_enforcer.h -@@ -42,6 +42,17 @@ class NET_EXPORT CTPolicyEnforcer { - X509Certificate* cert, - const SCTList& verified_scts, - const NetLogWithSource& net_log); + } // namespace certificate_transparency +diff --git components/certificate_transparency/chrome_ct_policy_enforcer.h components/certificate_transparency/chrome_ct_policy_enforcer.h +index f61ff0d0564a..e6727c7b1cbc 100644 +--- components/certificate_transparency/chrome_ct_policy_enforcer.h ++++ components/certificate_transparency/chrome_ct_policy_enforcer.h +@@ -26,6 +26,17 @@ class ChromeCTPolicyEnforcer : public net::CTPolicyEnforcer { + net::X509Certificate* cert, + const net::ct::SCTList& verified_scts, + const net::NetLogWithSource& net_log) override; + + void set_enforce_net_security_expiration(bool enforce) { + enforce_net_security_expiration_ = enforce; @@ -53,12 +56,12 @@ index fb6f4847cfe9..aa4c1cdafb9f 100644 + bool enforce_net_security_expiration_ = true; }; - } // namespace net + } // namespace certificate_transparency diff --git net/http/transport_security_state.cc net/http/transport_security_state.cc -index 3802937bc0c4..941cf0007fd6 100644 +index 5177ef21fdfe..5a98b43c9512 100644 --- net/http/transport_security_state.cc +++ net/http/transport_security_state.cc -@@ -1559,8 +1559,10 @@ void TransportSecurityState::ClearReportCachesForTesting() { +@@ -1562,8 +1562,10 @@ void TransportSecurityState::ClearReportCachesForTesting() { sent_expect_ct_reports_cache_.Clear(); } diff --git a/patch/patches/pdfium_print_549365.patch b/patch/patches/pdfium_print_549365.patch index 03ef47721..b02a97bda 100644 --- a/patch/patches/pdfium_print_549365.patch +++ b/patch/patches/pdfium_print_549365.patch @@ -1,5 +1,5 @@ diff --git BUILD.gn BUILD.gn -index 874a8f7d8..8a11f125c 100644 +index 784642042..ea62b408b 100644 --- BUILD.gn +++ BUILD.gn @@ -244,6 +244,10 @@ jumbo_static_library("pdfium") { diff --git a/patch/patches/prefs_content_1161.patch b/patch/patches/prefs_content_1161.patch index 42772b58b..ad3db453c 100644 --- a/patch/patches/prefs_content_1161.patch +++ b/patch/patches/prefs_content_1161.patch @@ -1,8 +1,8 @@ diff --git content/public/common/common_param_traits_macros.h content/public/common/common_param_traits_macros.h -index b297eae01757..65b4ac6ded54 100644 +index c241d7b56549..081e1a3c6a81 100644 --- content/public/common/common_param_traits_macros.h +++ content/public/common/common_param_traits_macros.h -@@ -185,6 +185,7 @@ IPC_STRUCT_TRAITS_BEGIN(content::WebPreferences) +@@ -187,6 +187,7 @@ IPC_STRUCT_TRAITS_BEGIN(content::WebPreferences) IPC_STRUCT_TRAITS_MEMBER(main_frame_resizes_are_orientation_changes) IPC_STRUCT_TRAITS_MEMBER(initialize_at_minimum_page_scale) IPC_STRUCT_TRAITS_MEMBER(smart_insert_delete_enabled) @@ -11,10 +11,10 @@ index b297eae01757..65b4ac6ded54 100644 IPC_STRUCT_TRAITS_MEMBER(navigate_on_drag_drop) IPC_STRUCT_TRAITS_MEMBER(spatial_navigation_enabled) diff --git content/public/common/web_preferences.cc content/public/common/web_preferences.cc -index 53bc2c0a9711..d070118f34cf 100644 +index a288caad850e..b4518162ec1e 100644 --- content/public/common/web_preferences.cc +++ content/public/common/web_preferences.cc -@@ -174,6 +174,7 @@ WebPreferences::WebPreferences() +@@ -176,6 +176,7 @@ WebPreferences::WebPreferences() spatial_navigation_enabled(false), use_solid_color_scrollbars(false), navigate_on_drag_drop(true), @@ -23,10 +23,10 @@ index 53bc2c0a9711..d070118f34cf 100644 record_whole_document(false), save_previous_document_resources(SavePreviousDocumentResources::NEVER), diff --git content/public/common/web_preferences.h content/public/common/web_preferences.h -index e4fc39c60fd7..f19fccf47261 100644 +index a1e9fba06a66..c37d89755744 100644 --- content/public/common/web_preferences.h +++ content/public/common/web_preferences.h -@@ -190,6 +190,7 @@ struct CONTENT_EXPORT WebPreferences { +@@ -198,6 +198,7 @@ struct CONTENT_EXPORT WebPreferences { bool spatial_navigation_enabled; bool use_solid_color_scrollbars; bool navigate_on_drag_drop; @@ -35,10 +35,10 @@ index e4fc39c60fd7..f19fccf47261 100644 bool record_whole_document; SavePreviousDocumentResources save_previous_document_resources; diff --git content/renderer/render_view_impl.cc content/renderer/render_view_impl.cc -index 2533785a1911..3518aba46aef 100644 +index f17c11ec869d..493c8117fb7e 100644 --- content/renderer/render_view_impl.cc +++ content/renderer/render_view_impl.cc -@@ -1201,6 +1201,7 @@ void RenderViewImpl::ApplyWebPreferencesInternal( +@@ -1204,6 +1204,7 @@ void RenderViewImpl::ApplyWebPreferencesInternal( blink::WebView* web_view, CompositorDependencies* compositor_deps) { ApplyWebPreferences(prefs, web_view); diff --git a/patch/patches/print_header_footer_1478_1565.patch b/patch/patches/print_header_footer_1478_1565.patch index 51f9eef09..dd19f5604 100644 --- a/patch/patches/print_header_footer_1478_1565.patch +++ b/patch/patches/print_header_footer_1478_1565.patch @@ -1,8 +1,8 @@ diff --git chrome/browser/ui/BUILD.gn chrome/browser/ui/BUILD.gn -index e7da097d25f4..8ca569703b26 100644 +index 78dd59c790a9..a7eacdf4c193 100644 --- chrome/browser/ui/BUILD.gn +++ chrome/browser/ui/BUILD.gn -@@ -892,6 +892,7 @@ split_static_library("ui") { +@@ -894,6 +894,7 @@ split_static_library("ui") { "//base:i18n", "//base/allocator:buildflags", "//cc/paint", @@ -11,7 +11,7 @@ index e7da097d25f4..8ca569703b26 100644 "//chrome:resources", "//chrome:strings", diff --git chrome/browser/ui/cocoa/applescript/tab_applescript.mm chrome/browser/ui/cocoa/applescript/tab_applescript.mm -index 33216fef9a1b..c84572425a8d 100644 +index f0a489a0c3af..1bd1259e47e3 100644 --- chrome/browser/ui/cocoa/applescript/tab_applescript.mm +++ chrome/browser/ui/cocoa/applescript/tab_applescript.mm @@ -9,7 +9,7 @@ @@ -34,7 +34,7 @@ index 33216fef9a1b..c84572425a8d 100644 using content::NavigationController; using content::NavigationEntry; using content::OpenURLParams; -@@ -231,11 +235,15 @@ void ResumeAppleEventAndSendReply(NSAppleEventManagerSuspensionID suspension_id, +@@ -233,11 +237,15 @@ void ResumeAppleEventAndSendReply(NSAppleEventManagerSuspensionID suspension_id, - (void)handlesPrintScriptCommand:(NSScriptCommand*)command { AppleScript::LogAppleScriptUMA(AppleScript::AppleScriptCommand::TAB_PRINT); @@ -116,10 +116,10 @@ index 006966fd1c58..db9cd49af2a4 100644 #endif diff --git components/printing/common/print_messages.cc components/printing/common/print_messages.cc -index f4647d65aeda..1716d5ce956b 100644 +index 8b6f52b3f80a..d88865648117 100644 --- components/printing/common/print_messages.cc +++ components/printing/common/print_messages.cc -@@ -150,7 +150,6 @@ PrintMsg_PrintFrame_Params::PrintMsg_PrintFrame_Params() {} +@@ -140,7 +140,6 @@ PrintMsg_PrintFrame_Params::PrintMsg_PrintFrame_Params() {} PrintMsg_PrintFrame_Params::~PrintMsg_PrintFrame_Params() {} @@ -127,7 +127,7 @@ index f4647d65aeda..1716d5ce956b 100644 PrintHostMsg_RequestPrintPreview_Params:: PrintHostMsg_RequestPrintPreview_Params() : is_modifiable(false), -@@ -172,4 +171,3 @@ PrintHostMsg_SetOptionsFromDocument_Params:: +@@ -162,4 +161,3 @@ PrintHostMsg_SetOptionsFromDocument_Params:: PrintHostMsg_SetOptionsFromDocument_Params:: ~PrintHostMsg_SetOptionsFromDocument_Params() { } diff --git a/patch/patches/rwh_background_color_1984.patch b/patch/patches/rwh_background_color_1984.patch index d940972ce..4caca00f3 100644 --- a/patch/patches/rwh_background_color_1984.patch +++ b/patch/patches/rwh_background_color_1984.patch @@ -1,15 +1,17 @@ diff --git content/browser/renderer_host/render_widget_host_view_aura.cc content/browser/renderer_host/render_widget_host_view_aura.cc -index 6a0753f3f3b8..f567fee075e4 100644 +index 64cf9df83085..23745cd77082 100644 --- content/browser/renderer_host/render_widget_host_view_aura.cc +++ content/browser/renderer_host/render_widget_host_view_aura.cc -@@ -744,9 +744,11 @@ void RenderWidgetHostViewAura::UpdateBackgroundColorFromRenderer( - return; - background_color_ = color; +@@ -726,10 +726,12 @@ gfx::Rect RenderWidgetHostViewAura::GetViewBounds() const { + void RenderWidgetHostViewAura::UpdateBackgroundColor() { + DCHECK(GetBackgroundColor()); +- SkColor color = *GetBackgroundColor(); - bool opaque = SkColorGetA(color) == SK_AlphaOPAQUE; - window_->layer()->SetFillsBoundsOpaquely(opaque); - window_->layer()->SetColor(color); + if (window_) { ++ SkColor color = *GetBackgroundColor(); + bool opaque = SkColorGetA(color) == SK_AlphaOPAQUE; + window_->layer()->SetFillsBoundsOpaquely(opaque); + window_->layer()->SetColor(color); @@ -17,7 +19,7 @@ index 6a0753f3f3b8..f567fee075e4 100644 } void RenderWidgetHostViewAura::WindowTitleChanged() { -@@ -1935,6 +1937,15 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) { +@@ -1925,6 +1927,15 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) { if (frame_sink_id_.is_valid()) window_->SetEmbedFrameSinkId(frame_sink_id_); diff --git a/patch/patches/storage_partition_1973.patch b/patch/patches/storage_partition_1973.patch index f0fbea2a0..d2d877cfe 100644 --- a/patch/patches/storage_partition_1973.patch +++ b/patch/patches/storage_partition_1973.patch @@ -111,10 +111,10 @@ index af7cced24feb..6a228c204912 100644 CHECK(GetUserData(kMojoWasInitialized)) << "Attempting to destroy a BrowserContext that never called " diff --git content/browser/devtools/protocol/network_handler.cc content/browser/devtools/protocol/network_handler.cc -index 65963b26bb4b..df4ea08a9588 100644 +index 114a65623106..be16268a89f5 100644 --- content/browser/devtools/protocol/network_handler.cc +++ content/browser/devtools/protocol/network_handler.cc -@@ -889,8 +889,7 @@ class BackgroundSyncRestorer { +@@ -900,8 +900,7 @@ class BackgroundSyncRestorer { scoped_refptr service_worker_host = static_cast(host.get()); scoped_refptr sync_context = @@ -265,11 +265,11 @@ index b62b8ae7eb8a..3f4d01b03ebb 100644 void InterceptNavigationOnChecksComplete( ResourceRequestInfo::WebContentsGetter web_contents_getter, -diff --git content/browser/loader/navigation_url_loader_network_service.cc content/browser/loader/navigation_url_loader_network_service.cc -index 3cc782fcc7dd..653706abe893 100644 ---- content/browser/loader/navigation_url_loader_network_service.cc -+++ content/browser/loader/navigation_url_loader_network_service.cc -@@ -884,7 +884,7 @@ class NavigationURLLoaderNetworkService::URLLoaderRequestController +diff --git content/browser/loader/navigation_url_loader_impl.cc content/browser/loader/navigation_url_loader_impl.cc +index 8b06869fa95a..073d006b4e5d 100644 +--- content/browser/loader/navigation_url_loader_impl.cc ++++ content/browser/loader/navigation_url_loader_impl.cc +@@ -938,7 +938,7 @@ class NavigationURLLoaderImpl::URLLoaderRequestController // path does as well for navigations. bool has_plugin = PluginService::GetInstance()->GetPluginInfo( -1 /* render_process_id */, -1 /* render_frame_id */, resource_context_, @@ -278,7 +278,7 @@ index 3cc782fcc7dd..653706abe893 100644 false /* allow_wildcard */, &stale, &plugin, nullptr); if (stale) { -@@ -1241,7 +1241,7 @@ NavigationURLLoaderNetworkService::NavigationURLLoaderNetworkService( +@@ -1292,7 +1292,7 @@ NavigationURLLoaderImpl::NavigationURLLoaderImpl( } } @@ -287,7 +287,7 @@ index 3cc782fcc7dd..653706abe893 100644 non_network_url_loader_factories_[url::kFileScheme] = std::make_unique( partition->browser_context()->GetPath(), -@@ -1255,7 +1255,8 @@ NavigationURLLoaderNetworkService::NavigationURLLoaderNetworkService( +@@ -1306,7 +1306,8 @@ NavigationURLLoaderImpl::NavigationURLLoaderImpl( DCHECK(!request_controller_); request_controller_ = std::make_unique( std::move(initial_interceptors), std::move(new_request), resource_context, @@ -344,10 +344,10 @@ index dd0af046aec4..f5ad5b37c1f3 100644 partition->GetPaymentAppContext(); diff --git content/browser/renderer_host/render_process_host_impl.cc content/browser/renderer_host/render_process_host_impl.cc -index 8a5c3e12a938..5c87e5cfffbe 100644 +index f41a38484759..3ff02d0fa2e1 100644 --- content/browser/renderer_host/render_process_host_impl.cc +++ content/browser/renderer_host/render_process_host_impl.cc -@@ -733,11 +733,10 @@ class DefaultSubframeProcessHostHolder : public base::SupportsUserData::Data, +@@ -730,11 +730,10 @@ class DefaultSubframeProcessHostHolder : public base::SupportsUserData::Data, // Gets the correct render process to use for this SiteInstance. RenderProcessHost* GetProcessHost(SiteInstance* site_instance, bool is_for_guests_only) { @@ -363,7 +363,7 @@ index 8a5c3e12a938..5c87e5cfffbe 100644 // Is this the default storage partition? If it isn't, then just give it its // own non-shared process. -@@ -1344,7 +1343,7 @@ int RenderProcessHost::GetCurrentRenderProcessCountForTesting() { +@@ -1341,7 +1340,7 @@ int RenderProcessHost::GetCurrentRenderProcessCountForTesting() { // static RenderProcessHost* RenderProcessHostImpl::CreateRenderProcessHost( BrowserContext* browser_context, @@ -372,7 +372,7 @@ index 8a5c3e12a938..5c87e5cfffbe 100644 SiteInstance* site_instance, bool is_for_guests_only) { if (g_render_process_host_factory_) { -@@ -1353,8 +1352,8 @@ RenderProcessHost* RenderProcessHostImpl::CreateRenderProcessHost( +@@ -1350,8 +1349,8 @@ RenderProcessHost* RenderProcessHostImpl::CreateRenderProcessHost( } if (!storage_partition_impl) { @@ -383,7 +383,7 @@ index 8a5c3e12a938..5c87e5cfffbe 100644 } // If we've made a StoragePartition for guests (e.g., for the tag), // stash the Site URL on it. This way, when we start a service worker inside -@@ -1379,7 +1378,7 @@ const unsigned int RenderProcessHostImpl::kMaxFrameDepthForPriority = +@@ -1376,7 +1375,7 @@ const unsigned int RenderProcessHostImpl::kMaxFrameDepthForPriority = RenderProcessHostImpl::RenderProcessHostImpl( BrowserContext* browser_context, @@ -392,7 +392,7 @@ index 8a5c3e12a938..5c87e5cfffbe 100644 bool is_for_guests_only) : fast_shutdown_started_(false), deleting_soon_(false), -@@ -1412,7 +1411,8 @@ RenderProcessHostImpl::RenderProcessHostImpl( +@@ -1409,7 +1408,8 @@ RenderProcessHostImpl::RenderProcessHostImpl( indexed_db_factory_(new IndexedDBDispatcherHost( id_, storage_partition_impl_->GetURLRequestContext(), @@ -402,7 +402,7 @@ index 8a5c3e12a938..5c87e5cfffbe 100644 ChromeBlobStorageContext::GetFor(browser_context_))), channel_connected_(false), sent_render_process_ready_(false), -@@ -1447,7 +1447,8 @@ RenderProcessHostImpl::RenderProcessHostImpl( +@@ -1444,7 +1444,8 @@ RenderProcessHostImpl::RenderProcessHostImpl( } push_messaging_manager_.reset(new PushMessagingManager( @@ -412,7 +412,7 @@ index 8a5c3e12a938..5c87e5cfffbe 100644 AddObserver(indexed_db_factory_.get()); #if defined(OS_MACOSX) -@@ -1775,6 +1776,20 @@ void RenderProcessHostImpl::ResetChannelProxy() { +@@ -1772,6 +1773,17 @@ void RenderProcessHostImpl::ResetChannelProxy() { void RenderProcessHostImpl::CreateMessageFilters() { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -426,14 +426,11 @@ index 8a5c3e12a938..5c87e5cfffbe 100644 + storage_partition_impl_->GetCacheStorageContext()); + auto service_worker_context = static_cast( + storage_partition_impl_->GetServiceWorkerContext()); -+ auto platform_notification_context = -+ static_cast( -+ storage_partition_impl_->GetPlatformNotificationContext()); + AddFilter(new ResourceSchedulerFilter(GetID())); MediaInternals* media_internals = MediaInternals::GetInstance(); // Add BrowserPluginMessageFilter to ensure it gets the first stab at messages -@@ -1788,8 +1803,8 @@ void RenderProcessHostImpl::CreateMessageFilters() { +@@ -1785,8 +1797,8 @@ void RenderProcessHostImpl::CreateMessageFilters() { new RenderMessageFilter( GetID(), GetBrowserContext(), request_context.get(), widget_helper_.get(), media_internals, @@ -444,7 +441,7 @@ index 8a5c3e12a938..5c87e5cfffbe 100644 AddFilter(render_message_filter.get()); render_frame_message_filter_ = new RenderFrameMessageFilter( -@@ -1816,10 +1831,10 @@ void RenderProcessHostImpl::CreateMessageFilters() { +@@ -1813,10 +1825,10 @@ void RenderProcessHostImpl::CreateMessageFilters() { ChromeBlobStorageContext::GetFor(browser_context); resource_message_filter_ = new ResourceMessageFilter( @@ -457,7 +454,7 @@ index 8a5c3e12a938..5c87e5cfffbe 100644 storage_partition_impl_->GetPrefetchURLLoaderService(), std::move(get_contexts_callback), BrowserThread::GetTaskRunnerForThread(BrowserThread::IO)); -@@ -1828,8 +1843,7 @@ void RenderProcessHostImpl::CreateMessageFilters() { +@@ -1825,8 +1837,7 @@ void RenderProcessHostImpl::CreateMessageFilters() { AddFilter( new MidiHost(GetID(), BrowserMainLoop::GetInstance()->midi_service())); @@ -467,7 +464,7 @@ index 8a5c3e12a938..5c87e5cfffbe 100644 #if BUILDFLAG(ENABLE_WEBRTC) peer_connection_tracker_host_ = new PeerConnectionTrackerHost(GetID()); -@@ -1849,8 +1863,7 @@ void RenderProcessHostImpl::CreateMessageFilters() { +@@ -1846,8 +1857,7 @@ void RenderProcessHostImpl::CreateMessageFilters() { scoped_refptr service_worker_filter = new ServiceWorkerDispatcherHost(GetID(), resource_context); @@ -477,20 +474,18 @@ index 8a5c3e12a938..5c87e5cfffbe 100644 AddFilter(service_worker_filter.get()); #if BUILDFLAG(ENABLE_WEBRTC) -@@ -1862,11 +1875,8 @@ void RenderProcessHostImpl::CreateMessageFilters() { +@@ -1858,10 +1868,6 @@ void RenderProcessHostImpl::CreateMessageFilters() { + AddFilter(new TraceMessageFilter(GetID())); AddFilter(new ResolveProxyMsgHelper(request_context.get())); - +- - scoped_refptr service_worker_context( - static_cast( - storage_partition_impl_->GetServiceWorkerContext())); - notification_message_filter_ = new NotificationMessageFilter( -- GetID(), storage_partition_impl_->GetPlatformNotificationContext(), -+ GetID(), platform_notification_context, - resource_context, service_worker_context, browser_context); - AddFilter(notification_message_filter_.get()); } -@@ -1880,7 +1890,8 @@ void RenderProcessHostImpl::BindCacheStorage( + + void RenderProcessHostImpl::BindCacheStorage( +@@ -1873,7 +1879,8 @@ void RenderProcessHostImpl::BindCacheStorage( cache_storage_dispatcher_host_ = base::MakeRefCounted(); cache_storage_dispatcher_host_->Init( @@ -500,7 +495,7 @@ index 8a5c3e12a938..5c87e5cfffbe 100644 } // Send the binding to IO thread, because Cache Storage handles Mojo IPC on IO // thread entirely. -@@ -2013,7 +2024,8 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() { +@@ -2006,7 +2013,8 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() { registry->AddInterface(base::BindRepeating( &AppCacheDispatcherHost::Create, @@ -511,10 +506,10 @@ index 8a5c3e12a938..5c87e5cfffbe 100644 AddUIThreadInterface(registry.get(), base::Bind(&FieldTrialRecorder::Create)); diff --git content/browser/renderer_host/render_process_host_impl.h content/browser/renderer_host/render_process_host_impl.h -index 403fcc676b0f..886f62977604 100644 +index 3d2cc7cb7e0c..f20125fced66 100644 --- content/browser/renderer_host/render_process_host_impl.h +++ content/browser/renderer_host/render_process_host_impl.h -@@ -88,7 +88,6 @@ class ResourceMessageFilter; +@@ -87,7 +87,6 @@ class ResourceMessageFilter; class SiteInstance; class SiteInstanceImpl; class StoragePartition; @@ -522,7 +517,7 @@ index 403fcc676b0f..886f62977604 100644 struct ChildProcessTerminationInfo; #if BUILDFLAG(ENABLE_WEBRTC) -@@ -136,7 +135,7 @@ class CONTENT_EXPORT RenderProcessHostImpl +@@ -135,7 +134,7 @@ class CONTENT_EXPORT RenderProcessHostImpl // null. static RenderProcessHost* CreateRenderProcessHost( BrowserContext* browser_context, @@ -531,7 +526,7 @@ index 403fcc676b0f..886f62977604 100644 SiteInstance* site_instance, bool is_for_guests_only); -@@ -445,7 +444,7 @@ class CONTENT_EXPORT RenderProcessHostImpl +@@ -440,7 +439,7 @@ class CONTENT_EXPORT RenderProcessHostImpl // Use CreateRenderProcessHost() instead of calling this constructor // directly. RenderProcessHostImpl(BrowserContext* browser_context, @@ -540,7 +535,7 @@ index 403fcc676b0f..886f62977604 100644 bool is_for_guests_only); // Initializes a new IPC::ChannelProxy in |channel_|, which will be connected -@@ -716,10 +715,10 @@ class CONTENT_EXPORT RenderProcessHostImpl +@@ -707,10 +706,10 @@ class CONTENT_EXPORT RenderProcessHostImpl // called. int instance_id_ = 1; @@ -554,10 +549,10 @@ index 403fcc676b0f..886f62977604 100644 // The observers watching our lifetime. base::ObserverList observers_; diff --git content/browser/renderer_interface_binders.cc content/browser/renderer_interface_binders.cc -index 74a060efdc5c..548feab31a42 100644 +index e306536aa57e..e8e860b6bb7a 100644 --- content/browser/renderer_interface_binders.cc +++ content/browser/renderer_interface_binders.cc -@@ -143,7 +143,7 @@ void RendererInterfaceBinders::InitializeParameterizedBinderRegistry() { +@@ -145,7 +145,7 @@ void RendererInterfaceBinders::InitializeParameterizedBinderRegistry() { parameterized_binder_registry_.AddInterface( base::Bind([](payments::mojom::PaymentManagerRequest request, RenderProcessHost* host, const url::Origin& origin) { @@ -566,7 +561,7 @@ index 74a060efdc5c..548feab31a42 100644 ->GetPaymentAppContext() ->CreatePaymentManager(std::move(request)); })); -@@ -163,16 +163,17 @@ void RendererInterfaceBinders::InitializeParameterizedBinderRegistry() { +@@ -165,16 +165,17 @@ void RendererInterfaceBinders::InitializeParameterizedBinderRegistry() { parameterized_binder_registry_.AddInterface(base::BindRepeating( [](blink::mojom::LockManagerRequest request, RenderProcessHost* host, const url::Origin& origin) { @@ -588,6 +583,15 @@ index 74a060efdc5c..548feab31a42 100644 })); parameterized_binder_registry_.AddInterface( base::BindRepeating(&BackgroundFetchServiceImpl::Create)); +@@ -185,7 +186,7 @@ void RendererInterfaceBinders::InitializeParameterizedBinderRegistry() { + parameterized_binder_registry_.AddInterface(base::BindRepeating( + [](blink::mojom::CookieStoreRequest request, RenderProcessHost* host, + const url::Origin& origin) { +- static_cast(host->GetStoragePartition()) ++ host->GetStoragePartition() + ->GetCookieStoreContext() + ->CreateService(std::move(request), origin); + })); diff --git content/browser/shared_worker/shared_worker_connector_impl.cc content/browser/shared_worker/shared_worker_connector_impl.cc index 4b08ffd8b662..a09bdc7cb892 100644 --- content/browser/shared_worker/shared_worker_connector_impl.cc @@ -604,7 +608,7 @@ index 4b08ffd8b662..a09bdc7cb892 100644 std::move(client), creation_context_type, blink::MessagePortChannel(std::move(message_port))); diff --git content/browser/shared_worker/shared_worker_service_impl.cc content/browser/shared_worker/shared_worker_service_impl.cc -index 597e99215428..29c6ba3049b7 100644 +index 5b5d3a790ebb..d5af1985df27 100644 --- content/browser/shared_worker/shared_worker_service_impl.cc +++ content/browser/shared_worker/shared_worker_service_impl.cc @@ -206,8 +206,8 @@ void SharedWorkerServiceImpl::CreateWorker( @@ -619,10 +623,10 @@ index 597e99215428..29c6ba3049b7 100644 base::BindOnce(&SharedWorkerServiceImpl::StartWorker, weak_factory_.GetWeakPtr(), std::move(instance), diff --git content/browser/storage_partition_impl.h content/browser/storage_partition_impl.h -index 07992017538c..94d6dcd425a1 100644 +index 102e3ff8e474..382162210f9a 100644 --- content/browser/storage_partition_impl.h +++ content/browser/storage_partition_impl.h -@@ -95,7 +95,7 @@ class CONTENT_EXPORT StoragePartitionImpl +@@ -96,7 +96,7 @@ class CONTENT_EXPORT StoragePartitionImpl storage::FileSystemContext* GetFileSystemContext() override; storage::DatabaseTracker* GetDatabaseTracker() override; DOMStorageContextWrapper* GetDOMStorageContext() override; @@ -631,7 +635,7 @@ index 07992017538c..94d6dcd425a1 100644 IndexedDBContextImpl* GetIndexedDBContext() override; CacheStorageContextImpl* GetCacheStorageContext() override; ServiceWorkerContextWrapper* GetServiceWorkerContext() override; -@@ -134,14 +134,14 @@ class CONTENT_EXPORT StoragePartitionImpl +@@ -135,15 +135,15 @@ class CONTENT_EXPORT StoragePartitionImpl void FlushNetworkInterfaceForTesting() override; void WaitForDeletionTasksForTesting() override; @@ -643,6 +647,7 @@ index 07992017538c..94d6dcd425a1 100644 - BlobURLLoaderFactory* GetBlobURLLoaderFactory(); - BlobRegistryWrapper* GetBlobRegistry(); - PrefetchURLLoaderService* GetPrefetchURLLoaderService(); +- CookieStoreContext* GetCookieStoreContext(); + BackgroundFetchContext* GetBackgroundFetchContext() override; + BackgroundSyncContext* GetBackgroundSyncContext() override; + PaymentAppContextImpl* GetPaymentAppContext() override; @@ -651,10 +656,11 @@ index 07992017538c..94d6dcd425a1 100644 + BlobURLLoaderFactory* GetBlobURLLoaderFactory() override; + BlobRegistryWrapper* GetBlobRegistry() override; + PrefetchURLLoaderService* GetPrefetchURLLoaderService() override; ++ CookieStoreContext* GetCookieStoreContext() override; // mojom::StoragePartitionService interface. void OpenLocalStorage(const url::Origin& origin, -@@ -150,18 +150,18 @@ class CONTENT_EXPORT StoragePartitionImpl +@@ -152,18 +152,18 @@ class CONTENT_EXPORT StoragePartitionImpl const std::string& namespace_id, mojom::SessionStorageNamespaceRequest request) override; @@ -677,7 +683,7 @@ index 07992017538c..94d6dcd425a1 100644 auto& bindings_for_testing() { return bindings_; } -@@ -172,10 +172,11 @@ class CONTENT_EXPORT StoragePartitionImpl +@@ -174,10 +174,11 @@ class CONTENT_EXPORT StoragePartitionImpl // one must use the "chrome-guest://blahblah" site URL to ensure that the // service worker stays in this StoragePartition. This is an empty GURL if // this StoragePartition is not for guests. @@ -751,10 +757,10 @@ index 187bde2d1cca..b86e9c943f01 100644 RenderFrameHost* render_frame_host_; diff --git content/public/browser/browser_context.h content/public/browser/browser_context.h -index dffff04f6f86..29a0653b8fa5 100644 +index b5cad2b73640..da041c3faf19 100644 --- content/public/browser/browser_context.h +++ content/public/browser/browser_context.h -@@ -197,6 +197,8 @@ class CONTENT_EXPORT BrowserContext : public base::SupportsUserData { +@@ -199,6 +199,8 @@ class CONTENT_EXPORT BrowserContext : public base::SupportsUserData { BrowserContext(); @@ -763,7 +769,7 @@ index dffff04f6f86..29a0653b8fa5 100644 ~BrowserContext() override; // Shuts down the storage partitions associated to this browser context. -@@ -285,6 +287,14 @@ class CONTENT_EXPORT BrowserContext : public base::SupportsUserData { +@@ -287,6 +289,14 @@ class CONTENT_EXPORT BrowserContext : public base::SupportsUserData { const base::FilePath& partition_path, bool in_memory) = 0; @@ -779,7 +785,7 @@ index dffff04f6f86..29a0653b8fa5 100644 std::map; diff --git content/public/browser/storage_partition.h content/public/browser/storage_partition.h -index db26f7cfcef9..3a46d95fc6f3 100644 +index db26f7cfcef9..b358ff381eeb 100644 --- content/public/browser/storage_partition.h +++ content/public/browser/storage_partition.h @@ -14,6 +14,7 @@ @@ -790,7 +796,7 @@ index db26f7cfcef9..3a46d95fc6f3 100644 #include "services/network/public/cpp/shared_url_loader_factory.h" #include "services/network/public/mojom/cookie_manager.mojom.h" -@@ -59,12 +60,27 @@ class ServiceWorkerContext; +@@ -59,12 +60,28 @@ class ServiceWorkerContext; class SharedWorkerService; class WebPackageContext; @@ -800,6 +806,7 @@ index db26f7cfcef9..3a46d95fc6f3 100644 +class BlobURLLoaderFactory; +class BluetoothAllowedDevicesMap; +class BroadcastChannelProvider; ++class CookieStoreContext; +class LockManager; +class PaymentAppContextImpl; +class PrefetchURLLoaderService; @@ -818,7 +825,7 @@ index db26f7cfcef9..3a46d95fc6f3 100644 // Defines what persistent state a child process can access. // // The StoragePartition defines the view each child process has of the -@@ -102,6 +118,7 @@ class CONTENT_EXPORT StoragePartition { +@@ -102,6 +119,7 @@ class CONTENT_EXPORT StoragePartition { virtual storage::FileSystemContext* GetFileSystemContext() = 0; virtual storage::DatabaseTracker* GetDatabaseTracker() = 0; virtual DOMStorageContext* GetDOMStorageContext() = 0; @@ -826,7 +833,7 @@ index db26f7cfcef9..3a46d95fc6f3 100644 virtual IndexedDBContext* GetIndexedDBContext() = 0; virtual ServiceWorkerContext* GetServiceWorkerContext() = 0; virtual SharedWorkerService* GetSharedWorkerService() = 0; -@@ -223,6 +240,26 @@ class CONTENT_EXPORT StoragePartition { +@@ -223,6 +241,27 @@ class CONTENT_EXPORT StoragePartition { // Wait until all deletions tasks are finished. For test use only. virtual void WaitForDeletionTasksForTesting() = 0; @@ -838,6 +845,7 @@ index db26f7cfcef9..3a46d95fc6f3 100644 + virtual BlobURLLoaderFactory* GetBlobURLLoaderFactory() = 0; + virtual BlobRegistryWrapper* GetBlobRegistry() = 0; + virtual PrefetchURLLoaderService* GetPrefetchURLLoaderService() = 0; ++ virtual CookieStoreContext* GetCookieStoreContext() = 0; + + virtual URLLoaderFactoryGetter* url_loader_factory_getter() = 0; + virtual BrowserContext* browser_context() const = 0; diff --git a/patch/patches/views_1749_2102.patch b/patch/patches/views_1749_2102.patch index bf9452db8..076622d03 100644 --- a/patch/patches/views_1749_2102.patch +++ b/patch/patches/views_1749_2102.patch @@ -373,10 +373,10 @@ index 4dea63f9f286..ef50b710c5af 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 4eb50c922aa4..52a3b414a017 100644 +index b410d39d786e..f0efe213acb8 100644 --- ui/views/controls/menu/menu_item_view.cc +++ ui/views/controls/menu/menu_item_view.cc -@@ -896,7 +896,12 @@ void MenuItemView::PaintButton(gfx::Canvas* canvas, PaintButtonMode mode) { +@@ -900,7 +900,12 @@ void MenuItemView::PaintButton(gfx::Canvas* canvas, PaintButtonMode mode) { // only need the background when we want it to look different, as when we're // selected. ui::NativeTheme* native_theme = GetNativeTheme(); @@ -390,7 +390,7 @@ index 4eb50c922aa4..52a3b414a017 100644 gfx::Rect item_bounds(0, 0, width(), height()); if (type_ == ACTIONABLE_SUBMENU) { if (submenu_area_of_actionable_submenu_selected_) { -@@ -1015,6 +1020,13 @@ void MenuItemView::PaintMinorIconAndText(gfx::Canvas* canvas, SkColor color) { +@@ -1019,6 +1024,13 @@ void MenuItemView::PaintMinorIconAndText(gfx::Canvas* canvas, SkColor color) { SkColor MenuItemView::GetTextColor(bool minor, bool render_selection, bool emphasized) const { @@ -543,7 +543,7 @@ index 9e16b4c88177..3d660e406709 100644 // Move the cursor because EnterNotify/LeaveNotify are generated with the // current mouse position as a result of XGrabPointer() diff --git ui/views/view.h ui/views/view.h -index 8b874876b89f..1fe8a762b6c8 100644 +index 463438a3d774..39894b612984 100644 --- ui/views/view.h +++ ui/views/view.h @@ -19,6 +19,7 @@ diff --git a/patch/patches/views_widget_180_1481_1565_1677_1749.patch b/patch/patches/views_widget_180_1481_1565_1677_1749.patch index 38599f0a7..9e6c3fdc6 100644 --- a/patch/patches/views_widget_180_1481_1565_1677_1749.patch +++ b/patch/patches/views_widget_180_1481_1565_1677_1749.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 8dfffd595a2a..757e7ef538f7 100644 +index 705bc2a1dd4d..5ddd0cf5af8d 100644 --- content/browser/renderer_host/render_widget_host_view_base.cc +++ content/browser/renderer_host/render_widget_host_view_base.cc -@@ -395,6 +395,14 @@ float RenderWidgetHostViewBase::GetDeviceScaleFactor() const { +@@ -415,6 +415,14 @@ float RenderWidgetHostViewBase::GetDeviceScaleFactor() const { return screen_info.device_scale_factor; } @@ -18,7 +18,7 @@ index 8dfffd595a2a..757e7ef538f7 100644 return renderer_frame_number_; } diff --git content/browser/renderer_host/render_widget_host_view_base.h content/browser/renderer_host/render_widget_host_view_base.h -index 5e762d94c6ba..57c51ab01a5b 100644 +index f02cd3ca380a..84ae0c9eebf8 100644 --- content/browser/renderer_host/render_widget_host_view_base.h +++ content/browser/renderer_host/render_widget_host_view_base.h @@ -83,6 +83,7 @@ class CursorManager; @@ -39,7 +39,7 @@ index 5e762d94c6ba..57c51ab01a5b 100644 // Returns the focused RenderWidgetHost inside this |view|'s RWH. RenderWidgetHostImpl* GetFocusedWidget() const; -@@ -136,6 +140,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase +@@ -137,6 +141,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase void DisableAutoResize(const gfx::Size& new_size) override; bool IsScrollOffsetAtTop() const override; float GetDeviceScaleFactor() const final; @@ -61,7 +61,7 @@ index 5e762d94c6ba..57c51ab01a5b 100644 // Sets the cursor for this view to the one associated with the specified // cursor_type. virtual void UpdateCursor(const WebCursor& cursor) = 0; -@@ -622,6 +634,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase +@@ -635,6 +647,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase bool use_viz_hit_test_ = false; @@ -70,10 +70,10 @@ index 5e762d94c6ba..57c51ab01a5b 100644 + bool has_external_parent_; + private: - #if defined(USE_AURA) - void OnDidScheduleEmbed(int routing_id, + void SynchronizeVisualProperties(); + diff --git content/browser/renderer_host/render_widget_host_view_event_handler.cc content/browser/renderer_host/render_widget_host_view_event_handler.cc -index e9bef08d3222..09bae481b663 100644 +index af9912a5f02a..ce0952342e8c 100644 --- content/browser/renderer_host/render_widget_host_view_event_handler.cc +++ content/browser/renderer_host/render_widget_host_view_event_handler.cc @@ -30,6 +30,10 @@ @@ -87,7 +87,7 @@ index e9bef08d3222..09bae481b663 100644 #if defined(OS_WIN) #include "content/browser/frame_host/render_frame_host_impl.h" #include "content/public/common/context_menu_params.h" -@@ -882,6 +886,14 @@ void RenderWidgetHostViewEventHandler::SetKeyboardFocus() { +@@ -887,6 +891,14 @@ void RenderWidgetHostViewEventHandler::SetKeyboardFocus() { ::SetFocus(hwnd); } } @@ -103,7 +103,7 @@ index e9bef08d3222..09bae481b663 100644 // TODO(wjmaclean): can host_ ever be null? if (host_ && set_focus_on_mouse_down_or_key_event_) { diff --git content/public/browser/render_widget_host_view.h content/public/browser/render_widget_host_view.h -index c36409dbbcc3..b12f0a737081 100644 +index 573acec9b64e..1d3146dea051 100644 --- content/public/browser/render_widget_host_view.h +++ content/public/browser/render_widget_host_view.h @@ -253,6 +253,14 @@ class CONTENT_EXPORT RenderWidgetHostView { @@ -135,7 +135,7 @@ index f772f64d656e..7d13f9f81b6c 100644 return host ? host->GetAcceleratedWidget() : NULL; } 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 88bebe016729..95345ae3c53a 100644 +index 288b92c3eadf..e9689bddfab9 100644 --- ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc +++ ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc @@ -86,6 +86,7 @@ DesktopWindowTreeHostWin::DesktopWindowTreeHostWin( @@ -160,7 +160,7 @@ index 88bebe016729..95345ae3c53a 100644 remove_standard_frame_ = params.remove_standard_frame; has_non_client_view_ = Widget::RequiresNonClientView(params.type); -@@ -858,11 +863,15 @@ void DesktopWindowTreeHostWin::HandleFrameChanged() { +@@ -865,11 +870,15 @@ void DesktopWindowTreeHostWin::HandleFrameChanged() { } void DesktopWindowTreeHostWin::HandleNativeFocus(HWND last_focused_window) { @@ -179,10 +179,10 @@ index 88bebe016729..95345ae3c53a 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 dd3784c0fe87..ad4fd65b80e5 100644 +index 327e4fb5df8d..625d1f2cb50c 100644 --- ui/views/widget/desktop_aura/desktop_window_tree_host_win.h +++ ui/views/widget/desktop_aura/desktop_window_tree_host_win.h -@@ -282,6 +282,10 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin +@@ -283,6 +283,10 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin // True if the window should have the frame removed. bool remove_standard_frame_; @@ -194,7 +194,7 @@ index dd3784c0fe87..ad4fd65b80e5 100644 // a reference. corewm::TooltipWin* tooltip_; diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc -index 3393e97a2c44..7fb817a9ac54 100644 +index cbfbfcbdcdb7..e7f0280bb4e7 100644 --- ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc +++ ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc @@ -146,6 +146,7 @@ DesktopWindowTreeHostX11::DesktopWindowTreeHostX11( @@ -250,7 +250,7 @@ index 3393e97a2c44..7fb817a9ac54 100644 return bounds_in_pixels_.origin(); } -@@ -1376,7 +1385,6 @@ void DesktopWindowTreeHostX11::InitX11Window( +@@ -1405,7 +1414,6 @@ void DesktopWindowTreeHostX11::InitX11Window( ::Atom window_type; switch (params.type) { case Widget::InitParams::TYPE_MENU: @@ -258,7 +258,7 @@ index 3393e97a2c44..7fb817a9ac54 100644 window_type = gfx::GetAtom("_NET_WM_WINDOW_TYPE_MENU"); break; case Widget::InitParams::TYPE_TOOLTIP: -@@ -1432,9 +1440,15 @@ void DesktopWindowTreeHostX11::InitX11Window( +@@ -1461,9 +1469,15 @@ void DesktopWindowTreeHostX11::InitX11Window( attribute_mask |= CWBorderPixel; swa.border_pixel = 0; @@ -275,7 +275,7 @@ index 3393e97a2c44..7fb817a9ac54 100644 bounds_in_pixels_.y(), bounds_in_pixels_.width(), bounds_in_pixels_.height(), 0, // border width -@@ -2032,6 +2046,10 @@ uint32_t DesktopWindowTreeHostX11::DispatchEvent( +@@ -2061,6 +2075,10 @@ uint32_t DesktopWindowTreeHostX11::DispatchEvent( } break; } @@ -287,12 +287,12 @@ index 3393e97a2c44..7fb817a9ac54 100644 case x11::FocusOut: OnFocusEvent(xev->type == x11::FocusIn, event->xfocus.mode, diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h -index cf991151505b..85b8e5844d63 100644 +index f424728b9679..319ec6834262 100644 --- ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h +++ ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h -@@ -88,6 +88,12 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 - // Disables event listening to make |dialog| modal. - std::unique_ptr DisableEventListening(); +@@ -91,6 +91,12 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 + // Returns a map of KeyboardEvent code to KeyboardEvent key values. + base::flat_map GetKeyboardLayoutMap() override; + void set_screen_bounds(const gfx::Rect& bounds) { screen_bounds_ = bounds; } + @@ -303,7 +303,7 @@ index cf991151505b..85b8e5844d63 100644 protected: // Overridden from DesktopWindowTreeHost: void Init(const Widget::InitParams& params) override; -@@ -311,6 +317,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 +@@ -314,6 +320,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 // The bounds of |xwindow_|. gfx::Rect bounds_in_pixels_; @@ -313,7 +313,7 @@ index cf991151505b..85b8e5844d63 100644 // Whenever the bounds are set, we keep the previous set of bounds around so // we can have a better chance of getting the real // |restored_bounds_in_pixels_|. Window managers tend to send a Configure -@@ -351,6 +360,10 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 +@@ -354,6 +363,10 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 // Whether we used an ARGB visual for our window. bool use_argb_visual_; @@ -324,7 +324,7 @@ index cf991151505b..85b8e5844d63 100644 DesktopDragDropClientAuraX11* drag_drop_client_; std::unique_ptr x11_non_client_event_filter_; -@@ -439,6 +452,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 +@@ -442,6 +455,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 uint32_t modal_dialog_counter_; diff --git a/patch/patches/web_contents_1257_1565.patch b/patch/patches/web_contents_1257_1565.patch index 26f69fefc..6d20c356b 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 189b3f0ec944..0dcd5620f9c0 100644 +index d0d68b49a735..80d4cc330f5e 100644 --- content/browser/web_contents/web_contents_impl.cc +++ content/browser/web_contents/web_contents_impl.cc -@@ -1782,21 +1782,30 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { +@@ -1784,21 +1784,30 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { std::string unique_name; frame_tree_.root()->SetFrameName(params.main_frame_name, unique_name); @@ -45,7 +45,7 @@ index 189b3f0ec944..0dcd5620f9c0 100644 CHECK(render_view_host_delegate_view_); CHECK(view_.get()); -@@ -2403,6 +2412,15 @@ void WebContentsImpl::CreateNewWindow( +@@ -2405,6 +2414,15 @@ void WebContentsImpl::CreateNewWindow( create_params.renderer_initiated_creation = main_frame_route_id != MSG_ROUTING_NONE; @@ -61,7 +61,7 @@ index 189b3f0ec944..0dcd5620f9c0 100644 std::unique_ptr new_contents; if (!is_guest) { create_params.context = view_->GetNativeView(); -@@ -2433,7 +2451,7 @@ void WebContentsImpl::CreateNewWindow( +@@ -2435,7 +2453,7 @@ void WebContentsImpl::CreateNewWindow( // TODO(brettw): It seems bogus that we have to call this function on the // newly created object and give it one of its own member variables. new_view->CreateViewForWidget( @@ -70,7 +70,7 @@ index 189b3f0ec944..0dcd5620f9c0 100644 } // Save the created window associated with the route so we can show it // later. -@@ -5749,7 +5767,7 @@ InterstitialPageImpl* WebContentsImpl::GetInterstitialForRenderManager() { +@@ -5735,7 +5753,7 @@ InterstitialPageImpl* WebContentsImpl::GetInterstitialForRenderManager() { void WebContentsImpl::CreateRenderWidgetHostViewForRenderManager( RenderViewHost* render_view_host) { RenderWidgetHostViewBase* rwh_view = diff --git a/patch/patches/webkit_plugin_info_2015.patch b/patch/patches/webkit_plugin_info_2015.patch index a86416a12..fc5ae18c6 100644 --- a/patch/patches/webkit_plugin_info_2015.patch +++ b/patch/patches/webkit_plugin_info_2015.patch @@ -1,8 +1,8 @@ diff --git third_party/blink/public/platform/platform.h third_party/blink/public/platform/platform.h -index 3ab92de1a98b..89f115e689c6 100644 +index 5eac7f13d083..9e74a22c5796 100644 --- third_party/blink/public/platform/platform.h +++ third_party/blink/public/platform/platform.h -@@ -368,6 +368,7 @@ class BLINK_PLATFORM_EXPORT Platform { +@@ -357,6 +357,7 @@ class BLINK_PLATFORM_EXPORT Platform { // satisfy this call. mainFrameOrigin is used by the browser process to // filter plugins from the plugin list based on content settings. virtual void GetPluginList(bool refresh, @@ -10,7 +10,7 @@ index 3ab92de1a98b..89f115e689c6 100644 const WebSecurityOrigin& main_frame_origin, WebPluginListBuilder*) {} -@@ -727,6 +728,11 @@ class BLINK_PLATFORM_EXPORT Platform { +@@ -714,6 +715,11 @@ class BLINK_PLATFORM_EXPORT Platform { // runs during Chromium's build step). virtual bool IsTakingV8ContextSnapshot() { return false; } @@ -41,10 +41,10 @@ index 8c40eef254a8..b9ac9f2a3472 100644 .Top() .GetSecurityContext() diff --git third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.cc third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.cc -index 114b6830844a..7d64147fc62e 100644 +index f98ae01cd46d..bba0b1930bff 100644 --- third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.cc +++ third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.cc -@@ -323,6 +323,8 @@ WebDevToolsAgentImpl::Session::Session( +@@ -325,6 +325,8 @@ WebDevToolsAgentImpl::Session::Session( &WebDevToolsAgentImpl::Session::Detach, WrapWeakPersistent(this))); InitializeInspectorSession(reattach_state); @@ -53,7 +53,7 @@ index 114b6830844a..7d64147fc62e 100644 } WebDevToolsAgentImpl::Session::~Session() { -@@ -348,6 +350,7 @@ void WebDevToolsAgentImpl::Session::Detach() { +@@ -350,6 +352,7 @@ void WebDevToolsAgentImpl::Session::Detach() { io_session_->DeleteSoon(); io_session_ = nullptr; inspector_session_->Dispose(); @@ -62,10 +62,10 @@ index 114b6830844a..7d64147fc62e 100644 void WebDevToolsAgentImpl::Session::SendProtocolResponse(int session_id, diff --git third_party/blink/renderer/core/frame/local_frame.cc third_party/blink/renderer/core/frame/local_frame.cc -index 60caa00ec723..5d37ee2552a1 100644 +index 2c6e6b9dccc3..fd957c70922a 100644 --- third_party/blink/renderer/core/frame/local_frame.cc +++ third_party/blink/renderer/core/frame/local_frame.cc -@@ -1224,7 +1224,7 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() { +@@ -1217,7 +1217,7 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() { PluginData* LocalFrame::GetPluginData() const { if (!Loader().AllowPlugins(kNotAboutToInstantiatePlugin)) return nullptr; @@ -75,10 +75,10 @@ index 60caa00ec723..5d37ee2552a1 100644 } diff --git third_party/blink/renderer/core/page/page.cc third_party/blink/renderer/core/page/page.cc -index dc89b93741bd..399a33e9d4d7 100644 +index 1c299e2ad3a8..17dc5045895a 100644 --- third_party/blink/renderer/core/page/page.cc +++ third_party/blink/renderer/core/page/page.cc -@@ -153,7 +153,8 @@ Page::Page(PageClients& page_clients) +@@ -154,7 +154,8 @@ Page::Page(PageClients& page_clients) overscroll_controller_( OverscrollController::Create(GetVisualViewport(), GetChromeClient())), main_frame_(nullptr), @@ -88,7 +88,7 @@ index dc89b93741bd..399a33e9d4d7 100644 use_counter_(page_clients.chrome_client && page_clients.chrome_client->IsSVGImageChromeClient() ? UseCounter::kSVGImageContext -@@ -331,21 +332,40 @@ void Page::RefreshPlugins() { +@@ -333,21 +334,40 @@ void Page::RefreshPlugins() { PluginData::RefreshBrowserSidePluginCache(); } @@ -138,7 +138,7 @@ index dc89b93741bd..399a33e9d4d7 100644 page->NotifyPluginsChanged(); } } -@@ -718,7 +738,8 @@ void Page::Trace(blink::Visitor* visitor) { +@@ -720,7 +740,8 @@ void Page::Trace(blink::Visitor* visitor) { visitor->Trace(visual_viewport_); visitor->Trace(overscroll_controller_); visitor->Trace(main_frame_); diff --git a/patch/patches/webkit_pointer_event_781966.patch b/patch/patches/webkit_pointer_event_781966.patch index 382001fe9..ac0f55cc7 100644 --- a/patch/patches/webkit_pointer_event_781966.patch +++ b/patch/patches/webkit_pointer_event_781966.patch @@ -1,5 +1,5 @@ diff --git third_party/blink/renderer/core/input/pointer_event_manager.cc third_party/blink/renderer/core/input/pointer_event_manager.cc -index 57f9b8e60b80..b0fcb8681d93 100644 +index 79f04a72bcd1..bdc815172425 100644 --- third_party/blink/renderer/core/input/pointer_event_manager.cc +++ third_party/blink/renderer/core/input/pointer_event_manager.cc @@ -285,7 +285,7 @@ void PointerEventManager::HandlePointerInterruption( diff --git a/patch/patches/webkit_popups.patch b/patch/patches/webkit_popups.patch index 6adf6c9ba..005c8e437 100644 --- a/patch/patches/webkit_popups.patch +++ b/patch/patches/webkit_popups.patch @@ -20,10 +20,10 @@ index d9cea512dfc0..5a75a1ee5205 100644 // Call these methods before and after running a nested, modal event loop diff --git third_party/blink/renderer/core/exported/web_view_impl.cc third_party/blink/renderer/core/exported/web_view_impl.cc -index b6d1e6c88e47..70e250fc0c76 100644 +index 8064140d0a08..98eca1ccbe64 100644 --- third_party/blink/renderer/core/exported/web_view_impl.cc +++ third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -251,8 +251,13 @@ void WebView::SetUseExternalPopupMenus(bool use_external_popup_menus) { +@@ -250,8 +250,13 @@ void WebView::SetUseExternalPopupMenus(bool use_external_popup_menus) { g_should_use_external_popup_menus = use_external_popup_menus; } @@ -39,7 +39,7 @@ index b6d1e6c88e47..70e250fc0c76 100644 } namespace { -@@ -343,6 +348,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client, +@@ -342,6 +347,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client, enable_fake_page_scale_animation_for_testing_(false), fake_page_scale_animation_page_scale_factor_(0), fake_page_scale_animation_use_anchor_(false), @@ -48,7 +48,7 @@ index b6d1e6c88e47..70e250fc0c76 100644 suppress_next_keypress_event_(false), ime_accept_events_(true), diff --git third_party/blink/renderer/core/exported/web_view_impl.h third_party/blink/renderer/core/exported/web_view_impl.h -index 8d945bba1818..9081f247934c 100644 +index 8a8c01289cf2..18bc70273c4d 100644 --- third_party/blink/renderer/core/exported/web_view_impl.h +++ third_party/blink/renderer/core/exported/web_view_impl.h @@ -102,7 +102,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, @@ -56,7 +56,7 @@ index 8d945bba1818..9081f247934c 100644 // Returns true if popup menus should be rendered by the browser, false if // they should be rendered by WebKit (which is the default). - static bool UseExternalPopupMenus(); -+ void SetUseExternalPopupMenusThisInstance(bool); ++ void SetUseExternalPopupMenusThisInstance(bool) override; + bool UseExternalPopupMenus() const; // WebWidget methods: @@ -70,7 +70,7 @@ index 8d945bba1818..9081f247934c 100644 void SetBaseBackgroundColorOverride(SkColor); void ClearBaseBackgroundColorOverride(); void SetBackgroundColorOverride(SkColor); -@@ -620,6 +621,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -619,6 +620,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, float fake_page_scale_animation_page_scale_factor_; bool fake_page_scale_animation_use_anchor_; diff --git a/patch/patches/webui_2037.patch b/patch/patches/webui_2037.patch index b3708e70c..7fe7c2f0b 100644 --- a/patch/patches/webui_2037.patch +++ b/patch/patches/webui_2037.patch @@ -35,7 +35,7 @@ index 7742a5367ff0..0ec2381dc558 100644 extensions::ExtensionRegistry::Get(profile); std::string extensions_list; diff --git chrome/browser/memory_details.cc chrome/browser/memory_details.cc -index 4c0434b3c6ff..d92a70ce8ead 100644 +index 509b62c78375..f48dd53e30c3 100644 --- chrome/browser/memory_details.cc +++ chrome/browser/memory_details.cc @@ -16,6 +16,7 @@ diff --git a/patch/patches/webview_plugin_2020.patch b/patch/patches/webview_plugin_2020.patch index d309ce255..2b7fde032 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 0eeacabd76db..8a4216196bcd 100644 +index 46fe1e49d3f5..aea793e9ebeb 100644 --- chrome/app/generated_resources.grd +++ chrome/app/generated_resources.grd -@@ -4661,7 +4661,7 @@ Keep your key file in a safe place. You will need it to create new versions of y +@@ -4660,7 +4660,7 @@ Keep your key file in a safe place. You will need it to create new versions of y diff --git a/tests/ceftests/v8_unittest.cc b/tests/ceftests/v8_unittest.cc index ad6982304..3e9d24751 100644 --- a/tests/ceftests/v8_unittest.cc +++ b/tests/ceftests/v8_unittest.cc @@ -562,7 +562,9 @@ class V8RendererTest : public ClientAppRenderer::Delegate, ~TestArrayBufferReleaseCallback() { *destructorCalled_ = true; } - void ReleaseBuffer(void* buffer) { *releaseBufferCalled_ = true; } + void ReleaseBuffer(void* buffer) override { + *releaseBufferCalled_ = true; + } IMPLEMENT_REFCOUNTING(TestArrayBufferReleaseCallback); @@ -624,7 +626,7 @@ class V8RendererTest : public ClientAppRenderer::Delegate, ~TestArrayBufferReleaseCallback() {} - void ReleaseBuffer(void* buffer) {} + void ReleaseBuffer(void* buffer) override {} IMPLEMENT_REFCOUNTING(TestArrayBufferReleaseCallback); }; diff --git a/tools/patch_updater.py b/tools/patch_updater.py index 0a562b5ae..02abd6885 100644 --- a/tools/patch_updater.py +++ b/tools/patch_updater.py @@ -317,6 +317,9 @@ if len(failed_patches) > 0: for name in sorted(failed_patches.keys()): sys.stdout.write("%s:\n" % name) for line in failed_patches[name]: + if sys.platform == 'win32' and line.find('.rej') > 0: + # Convert paths to use Windows-style separator. + line = line.replace('/', '\\') sys.stdout.write(" %s\n" % line) linebreak() sys.exit(1)