From 1a86240c9319e21ee20d5d3c01ce63c787ecb41e Mon Sep 17 00:00:00 2001 From: Alexander Guettler Date: Thu, 17 Jan 2019 10:56:52 +0100 Subject: [PATCH] Update to Chromium version 73.0.3665.0 (#620590) --- BUILD.gn | 5 + CHROMIUM_BUILD_COMPATIBILITY.txt | 2 +- include/internal/cef_types.h | 2 +- libcef/browser/browser_context_proxy.cc | 9 +- libcef/browser/browser_context_proxy.h | 4 +- .../chrome_crash_reporter_client_stub.cc | 15 ++ libcef/browser/content_browser_client.cc | 40 +++- libcef/browser/content_browser_client.h | 10 +- libcef/browser/download_manager_delegate.cc | 4 +- .../browser/extensions/api/tabs/tabs_api.cc | 12 -- libcef/browser/extensions/api/tabs/tabs_api.h | 3 - .../extension_web_contents_observer.cc | 2 + .../extension_web_contents_observer.h | 1 + .../browser/gpu/external_texture_manager.cc | 4 +- libcef/browser/net/chrome_scheme_handler.cc | 6 +- .../net/url_request_context_getter_impl.cc | 6 +- .../osr/render_widget_host_view_osr.cc | 31 +--- .../browser/osr/render_widget_host_view_osr.h | 2 +- libcef/browser/printing/print_view_manager.cc | 2 + libcef/browser/printing/print_view_manager.h | 2 +- libcef/browser/server_impl.cc | 11 +- libcef/browser/views/window_view.cc | 2 +- libcef/common/content_client.cc | 25 --- libcef/common/content_client.h | 3 - libcef/common/main_delegate.cc | 24 +++ libcef/common/request_impl.cc | 4 - libcef/common/response_impl.cc | 2 +- libcef/common/thread_impl.cc | 2 +- libcef/renderer/content_renderer_client.cc | 4 +- .../extensions/extensions_renderer_client.cc | 8 +- libcef/renderer/render_urlrequest_impl.cc | 17 +- libcef/renderer/v8_impl.cc | 20 +- libcef/utility/content_utility_client.cc | 78 +++++--- libcef/utility/content_utility_client.h | 7 +- patch/patch.cfg | 4 +- patch/patches/browser_child_frame_2507.patch | 8 +- patch/patches/browser_plugin_guest_1565.patch | 22 +-- .../{linux_build.patch => build.patch} | 11 +- patch/patches/chrome_browser.patch | 8 +- patch/patches/chrome_browser_net_export.patch | 6 +- patch/patches/chrome_browser_profiles.patch | 4 +- patch/patches/chrome_plugins.patch | 12 +- patch/patches/chrome_renderer.patch | 6 +- patch/patches/chrome_widevine.patch | 4 +- patch/patches/component_build_1617.patch | 2 +- patch/patches/content_2015.patch | 52 +++--- patch/patches/crashpad_1995.patch | 32 ++-- patch/patches/crashpad_tp_1995.patch | 10 +- patch/patches/devtools_product_2300.patch | 27 +-- patch/patches/extensions_1947.patch | 27 ++- patch/patches/external_textures_1006.patch | 175 +++++++++--------- patch/patches/gn_config.patch | 42 +---- patch/patches/gritsettings.patch | 4 +- patch/patches/ime_1610.patch | 2 +- patch/patches/linux_gtk_2014.patch | 14 +- patch/patches/message_loop.patch | 2 +- patch/patches/message_pump_mac_2495.patch | 8 +- patch/patches/net_filter_515.patch | 4 +- patch/patches/net_urlrequest_1327.patch | 4 +- patch/patches/pdfium_print_549365.patch | 6 +- patch/patches/prefs_content_1161.patch | 20 +- .../print_header_footer_1478_1565.patch | 46 ++--- .../renderer_preferences_util_545103.patch | 6 +- patch/patches/resource_bundle_2512.patch | 10 +- patch/patches/rwh_background_color_1984.patch | 4 +- patch/patches/service_manager_654986.patch | 32 ++-- patch/patches/storage_partition_1973.patch | 117 ++++++------ patch/patches/trace_event.patch | 4 +- patch/patches/views_1749_2102.patch | 68 +++---- ...views_widget_180_1481_1565_1677_1749.patch | 70 +++---- patch/patches/vr_build_873170.patch | 4 +- patch/patches/web_contents_1257_1565.patch | 18 +- patch/patches/webkit_plugin_info_2015.patch | 18 +- .../patches/webkit_pointer_event_781966.patch | 10 +- patch/patches/webkit_popups.patch | 44 ++--- patch/patches/webview_plugin_2020.patch | 4 +- patch/patches/win_rt_2274.patch | 2 +- 77 files changed, 685 insertions(+), 657 deletions(-) create mode 100644 libcef/browser/chrome_crash_reporter_client_stub.cc rename patch/patches/{linux_build.patch => build.patch} (63%) diff --git a/BUILD.gn b/BUILD.gn index 09904e3d6..609b724ba 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -314,6 +314,7 @@ static_library("libcef_static") { "libcef/browser/browser_util.h", "libcef/browser/chrome_browser_process_stub.cc", "libcef/browser/chrome_browser_process_stub.h", + "libcef/browser/chrome_crash_reporter_client_stub.cc", "libcef/browser/chrome_profile_manager_stub.cc", "libcef/browser/chrome_profile_manager_stub.h", "libcef/browser/chrome_profile_stub.cc", @@ -787,6 +788,10 @@ static_library("libcef_static") { # For D3D11_DECODER_PROFILE_H264_VLD_NOFGT. "dxguid.lib", ] + + data_deps = [ + "//chrome/elevation_service", + ] } if (is_linux) { diff --git a/CHROMIUM_BUILD_COMPATIBILITY.txt b/CHROMIUM_BUILD_COMPATIBILITY.txt index df4f81183..53c79898f 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/72.0.3626.0', + 'chromium_checkout': 'refs/tags/73.0.3665.0' } diff --git a/include/internal/cef_types.h b/include/internal/cef_types.h index d0d953a59..fb5f02cc6 100644 --- a/include/internal/cef_types.h +++ b/include/internal/cef_types.h @@ -2489,7 +2489,7 @@ typedef enum { REFERRER_POLICY_NO_REFERRER, // Always the last value in this enumeration. - REFERRER_POLICY_LAST_VALUE, + REFERRER_POLICY_LAST_VALUE = REFERRER_POLICY_NO_REFERRER, } cef_referrer_policy_t; /// diff --git a/libcef/browser/browser_context_proxy.cc b/libcef/browser/browser_context_proxy.cc index 70e16dfcc..a42ad2be5 100644 --- a/libcef/browser/browser_context_proxy.cc +++ b/libcef/browser/browser_context_proxy.cc @@ -19,6 +19,7 @@ #include "content/browser/streams/stream_context.h" #include "content/browser/webui/url_data_manager.h" #include "content/public/browser/storage_partition.h" +#include "services/service_manager/public/cpp/service.h" namespace { @@ -191,9 +192,11 @@ CefBrowserContextProxy::CreateRequestContextForStoragePartition( return nullptr; } -void CefBrowserContextProxy::RegisterInProcessServices( - StaticServiceMap* services) { - parent_->RegisterInProcessServices(services); +std::unique_ptr +CefBrowserContextProxy::HandleServiceRequest( + const std::string& service_name, + service_manager::mojom::ServiceRequest request) { + return parent_->HandleServiceRequest(service_name, std::move(request)); } PrefService* CefBrowserContextProxy::GetPrefs() { diff --git a/libcef/browser/browser_context_proxy.h b/libcef/browser/browser_context_proxy.h index 899609f91..cab9628fb 100644 --- a/libcef/browser/browser_context_proxy.h +++ b/libcef/browser/browser_context_proxy.h @@ -56,7 +56,9 @@ class CefBrowserContextProxy : public CefBrowserContext { bool in_memory, content::ProtocolHandlerMap* protocol_handlers, content::URLRequestInterceptorScopedVector request_interceptors) override; - void RegisterInProcessServices(StaticServiceMap* services) override; + std::unique_ptr HandleServiceRequest( + const std::string& service_name, + service_manager::mojom::ServiceRequest request) override; // Profile methods. PrefService* GetPrefs() override; diff --git a/libcef/browser/chrome_crash_reporter_client_stub.cc b/libcef/browser/chrome_crash_reporter_client_stub.cc new file mode 100644 index 000000000..837db315e --- /dev/null +++ b/libcef/browser/chrome_crash_reporter_client_stub.cc @@ -0,0 +1,15 @@ +// Copyright (c) 2019 The Chromium Embedded Framework Authors. +// Portions copyright (c) 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "build/build_config.h" + +#if defined(OS_MACOSX) + +#include "chrome/app/chrome_crash_reporter_client.h" + +// Required due to https://crrev.com/1c9f89a06f +void ChromeCrashReporterClient::Create() {} + +#endif // defined(OS_MACOSX) diff --git a/libcef/browser/content_browser_client.cc b/libcef/browser/content_browser_client.cc index 7baee884f..8e7a817e9 100644 --- a/libcef/browser/content_browser_client.cc +++ b/libcef/browser/content_browser_client.cc @@ -7,6 +7,7 @@ #include #include +#include "include/cef_version.h" #include "libcef/browser/browser_context_impl.h" #include "libcef/browser/browser_host_impl.h" #include "libcef/browser/browser_info.h" @@ -75,6 +76,7 @@ #include "content/public/common/content_switches.h" #include "content/public/common/service_names.mojom.h" #include "content/public/common/storage_quota_params.h" +#include "content/public/common/user_agent.h" #include "content/public/common/web_preferences.h" #include "extensions/browser/api/web_request/web_request_api.h" #include "extensions/browser/extension_message_filter.h" @@ -606,8 +608,7 @@ void CefContentBrowserClient::SiteInstanceDeleting( site_instance->GetId())); } -void CefContentBrowserClient::RegisterInProcessServices( - StaticServiceMap* services, +void CefContentBrowserClient::RegisterIOThreadServiceHandlers( content::ServiceManagerConnection* connection) { // For spell checking. connection->AddServiceRequestHandler( @@ -626,8 +627,8 @@ void CefContentBrowserClient::RegisterOutOfProcessServices( IDS_UTILITY_PROCESS_PROXY_RESOLVER_NAME); } -std::unique_ptr CefContentBrowserClient::GetServiceManifestOverlay( - base::StringPiece name) { +base::Optional +CefContentBrowserClient::GetServiceManifestOverlay(base::StringPiece name) { int id = -1; if (name == content::mojom::kBrowserServiceName) id = IDR_CEF_BROWSER_MANIFEST_OVERLAY; @@ -638,12 +639,13 @@ std::unique_ptr CefContentBrowserClient::GetServiceManifestOverlay( else if (name == content::mojom::kUtilityServiceName) id = IDR_CEF_UTILITY_MANIFEST_OVERLAY; if (id == -1) - return nullptr; + return {}; base::StringPiece manifest_contents = ui::ResourceBundle::GetSharedInstance().GetRawDataResourceForScale( id, ui::ScaleFactor::SCALE_FACTOR_NONE); - return base::JSONReader::Read(manifest_contents); + return service_manager::Manifest::FromValueDeprecated( + base::JSONReader::Read(manifest_contents)); } std::vector @@ -916,7 +918,7 @@ bool CefContentBrowserClient::CanCreateWindow( content::RenderFrameHost* opener, const GURL& opener_url, const GURL& opener_top_level_frame_url, - const GURL& source_origin, + const url::Origin& source_origin, content::mojom::WindowContainerType container_type, const GURL& target_url, const content::Referrer& referrer, @@ -1135,6 +1137,30 @@ bool CefContentBrowserClient::HandleExternalProtocol( return false; } +std::string CefContentBrowserClient::GetProduct() const { + const base::CommandLine* command_line = + base::CommandLine::ForCurrentProcess(); + if (command_line->HasSwitch(switches::kProductVersion)) + return command_line->GetSwitchValueASCII(switches::kProductVersion); + + return GetChromeProduct(); +} + +std::string CefContentBrowserClient::GetChromeProduct() const { + return base::StringPrintf("Chrome/%d.%d.%d.%d", CHROME_VERSION_MAJOR, + CHROME_VERSION_MINOR, CHROME_VERSION_BUILD, + CHROME_VERSION_PATCH); +} + +std::string CefContentBrowserClient::GetUserAgent() const { + const base::CommandLine* command_line = + base::CommandLine::ForCurrentProcess(); + if (command_line->HasSwitch(switches::kUserAgent)) + return command_line->GetSwitchValueASCII(switches::kUserAgent); + + return content::BuildUserAgentFromProduct(GetProduct()); +} + void CefContentBrowserClient::RegisterCustomScheme(const std::string& scheme) { // Register as a Web-safe scheme so that requests for the scheme from a // render process will be allowed in resource_dispatcher_host_impl.cc diff --git a/libcef/browser/content_browser_client.h b/libcef/browser/content_browser_client.h index 7523a20a6..bec9ff99b 100644 --- a/libcef/browser/content_browser_client.h +++ b/libcef/browser/content_browser_client.h @@ -51,11 +51,10 @@ class CefContentBrowserClient : public content::ContentBrowserClient { bool IsHandledURL(const GURL& url) override; void SiteInstanceGotProcess(content::SiteInstance* site_instance) override; void SiteInstanceDeleting(content::SiteInstance* site_instance) override; - void RegisterInProcessServices( - StaticServiceMap* services, + void RegisterIOThreadServiceHandlers( content::ServiceManagerConnection* connection) override; void RegisterOutOfProcessServices(OutOfProcessServiceMap* services) override; - std::unique_ptr GetServiceManifestOverlay( + base::Optional GetServiceManifestOverlay( base::StringPiece name) override; std::vector GetExtraServiceManifests() override; bool IsSameBrowserContext(content::BrowserContext* context1, @@ -92,7 +91,7 @@ class CefContentBrowserClient : public content::ContentBrowserClient { bool CanCreateWindow(content::RenderFrameHost* opener, const GURL& opener_url, const GURL& opener_top_level_frame_url, - const GURL& source_origin, + const url::Origin& source_origin, content::mojom::WindowContainerType container_type, const GURL& target_url, const content::Referrer& referrer, @@ -160,6 +159,9 @@ class CefContentBrowserClient : public content::ContentBrowserClient { bool has_user_gesture, const std::string& method, const net::HttpRequestHeaders& headers) override; + std::string GetProduct() const override; + std::string GetChromeProduct() const override; + std::string GetUserAgent() const override; // Perform browser process registration for the custom scheme. void RegisterCustomScheme(const std::string& scheme); diff --git a/libcef/browser/download_manager_delegate.cc b/libcef/browser/download_manager_delegate.cc index 0c46bbd78..49c8a3b3a 100644 --- a/libcef/browser/download_manager_delegate.cc +++ b/libcef/browser/download_manager_delegate.cc @@ -20,9 +20,9 @@ #include "net/base/filename_util.h" #include "third_party/blink/public/mojom/choosers/file_chooser.mojom.h" -using download::DownloadItem; using content::DownloadManager; using content::WebContents; +using download::DownloadItem; namespace { @@ -233,7 +233,7 @@ class CefDownloadItemCallbackImpl : public CefDownloadItemCallback { if (manager_) { DownloadItem* item = manager_->GetDownload(download_id_); if (item && item->CanResume()) - item->Resume(); + item->Resume(true); } } diff --git a/libcef/browser/extensions/api/tabs/tabs_api.cc b/libcef/browser/extensions/api/tabs/tabs_api.cc index 3d3a8e7ea..c0e128e4b 100644 --- a/libcef/browser/extensions/api/tabs/tabs_api.cc +++ b/libcef/browser/extensions/api/tabs/tabs_api.cc @@ -100,18 +100,6 @@ ExecuteCodeInTabFunction::ExecuteCodeInTabFunction() ExecuteCodeInTabFunction::~ExecuteCodeInTabFunction() {} -bool ExecuteCodeInTabFunction::HasPermission() { - if (Init() == SUCCESS && - // TODO(devlin/lazyboy): Consider removing the following check as it isn't - // doing anything. The fallback to ExtensionFunction::HasPermission() - // below dictates what this function returns. - extension_->permissions_data()->HasAPIPermissionForTab( - execute_tab_id_, APIPermission::kTab)) { - return true; - } - return ExtensionFunction::HasPermission(); -} - ExecuteCodeFunction::InitResult ExecuteCodeInTabFunction::Init() { if (init_result_) return init_result_.value(); diff --git a/libcef/browser/extensions/api/tabs/tabs_api.h b/libcef/browser/extensions/api/tabs/tabs_api.h index 857246320..13cff0270 100644 --- a/libcef/browser/extensions/api/tabs/tabs_api.h +++ b/libcef/browser/extensions/api/tabs/tabs_api.h @@ -50,9 +50,6 @@ class ExecuteCodeInTabFunction : public ExecuteCodeFunction { protected: ~ExecuteCodeInTabFunction() override; - // ExtensionFunction: - bool HasPermission() override; - // Initializes |execute_tab_id_| and |details_|. InitResult Init() override; bool CanExecuteScriptOnPage(std::string* error) override; diff --git a/libcef/browser/extensions/extension_web_contents_observer.cc b/libcef/browser/extensions/extension_web_contents_observer.cc index 215829b5c..1cdd0c12b 100644 --- a/libcef/browser/extensions/extension_web_contents_observer.cc +++ b/libcef/browser/extensions/extension_web_contents_observer.cc @@ -48,4 +48,6 @@ void CefExtensionWebContentsObserver::RenderFrameCreated( } } +WEB_CONTENTS_USER_DATA_KEY_IMPL(CefExtensionWebContentsObserver) + } // namespace extensions diff --git a/libcef/browser/extensions/extension_web_contents_observer.h b/libcef/browser/extensions/extension_web_contents_observer.h index a77c57f4b..742e53521 100644 --- a/libcef/browser/extensions/extension_web_contents_observer.h +++ b/libcef/browser/extensions/extension_web_contents_observer.h @@ -37,6 +37,7 @@ class CefExtensionWebContentsObserver std::unique_ptr script_executor_; + WEB_CONTENTS_USER_DATA_KEY_DECL(); DISALLOW_COPY_AND_ASSIGN(CefExtensionWebContentsObserver); }; diff --git a/libcef/browser/gpu/external_texture_manager.cc b/libcef/browser/gpu/external_texture_manager.cc index 4e46df486..08cd7da62 100644 --- a/libcef/browser/gpu/external_texture_manager.cc +++ b/libcef/browser/gpu/external_texture_manager.cc @@ -31,10 +31,10 @@ namespace { #if defined(OS_WIN) -class GLImageDXGISharedHandle : public gl::GLImageDXGIBase { +class GLImageDXGISharedHandle : public gl::GLImageDXGI { public: GLImageDXGISharedHandle(const gfx::Size& size) - : GLImageDXGIBase(size), + : GLImageDXGI(size, nullptr), handle_((HANDLE)0), surface_(EGL_NO_SURFACE), texture_id_(0) {} diff --git a/libcef/browser/net/chrome_scheme_handler.cc b/libcef/browser/net/chrome_scheme_handler.cc index bc79b9bd1..7658d7e3e 100644 --- a/libcef/browser/net/chrome_scheme_handler.cc +++ b/libcef/browser/net/chrome_scheme_handler.cc @@ -12,6 +12,7 @@ #include "include/cef_version.h" #include "include/cef_web_plugin.h" +#include "libcef/browser/content_browser_client.h" #include "libcef/browser/extensions/chrome_api_registration.h" #include "libcef/browser/frame_host_impl.h" #include "libcef/browser/net/internal_scheme_handler.h" @@ -83,7 +84,8 @@ const char* kAllowedWebUIHosts[] = { // Hosts that don't have useful output when linked directly. They'll be excluded // from the "chrome://webui-hosts" listing. const char* kUnlistedHosts[] = { - content::kChromeUINetworkErrorHost, content::kChromeUIResourcesHost, + content::kChromeUINetworkErrorHost, + content::kChromeUIResourcesHost, }; enum ChromeHostId { @@ -634,7 +636,7 @@ class Delegate : public InternalHandlerDelegate { parser.Add("WEBKIT", content::GetWebKitVersion()); parser.Add("JAVASCRIPT", v8::V8::GetVersion()); parser.Add("FLASH", std::string()); // Value populated asynchronously. - parser.Add("USERAGENT", CefContentClient::Get()->GetUserAgent()); + parser.Add("USERAGENT", CefContentClient::Get()->browser()->GetUserAgent()); parser.Add("COMMANDLINE", GetCommandLine()); parser.Add("MODULEPATH", GetModulePath()); parser.Add("CACHEPATH", diff --git a/libcef/browser/net/url_request_context_getter_impl.cc b/libcef/browser/net/url_request_context_getter_impl.cc index dd658df55..9ade79612 100644 --- a/libcef/browser/net/url_request_context_getter_impl.cc +++ b/libcef/browser/net/url_request_context_getter_impl.cc @@ -101,7 +101,7 @@ class CefHttpUserAgentSettings : public net::HttpUserAgentSettings { std::string GetUserAgent() const override { CEF_REQUIRE_IOT(); - return CefContentClient::Get()->GetUserAgent(); + return CefContentClient::Get()->browser()->GetUserAgent(); } private: @@ -405,7 +405,9 @@ net::URLRequestContext* CefURLRequestContextGetterImpl::GetURLRequestContext() { network_session_configurator::ParseCommandLineAndFieldTrials( *base::CommandLine::ForCurrentProcess(), false /* is_quic_force_disabled */, - CefContentClient::Get()->GetUserAgent() /* quic_user_agent_id */, + CefContentClient::Get() + ->browser() + ->GetUserAgent() /* quic_user_agent_id */, &network_session_params); network_session_params.ignore_certificate_errors = settings_.ignore_certificate_errors ? true : false; diff --git a/libcef/browser/osr/render_widget_host_view_osr.cc b/libcef/browser/osr/render_widget_host_view_osr.cc index db95b798c..73455d9e1 100644 --- a/libcef/browser/osr/render_widget_host_view_osr.cc +++ b/libcef/browser/osr/render_widget_host_view_osr.cc @@ -376,19 +376,14 @@ CefRenderWidgetHostViewOSR::CefRenderWidgetHostViewOSR( compositor_.reset(new ui::Compositor( context_factory_private->AllocateFrameSinkId(), content::GetContextFactory(), context_factory_private, - base::ThreadTaskRunnerHandle::Get(), - features::IsSurfaceSynchronizationEnabled(), - false /* enable_pixel_canvas */, use_external_begin_frame)); + base::ThreadTaskRunnerHandle::Get(), false /* enable_pixel_canvas */, + use_external_begin_frame ? this : nullptr, use_external_begin_frame)); compositor_->SetAcceleratedWidget(compositor_widget_); // Tell the compositor to use shared textures if the client can handle // OnAcceleratedPaint. compositor_->EnableSharedTexture(use_shared_texture); - if (use_external_begin_frame) { - compositor_->SetExternalBeginFrameClient(this); - } - compositor_->SetDelegate(this); compositor_->SetRootLayer(root_layer_.get()); #endif @@ -407,13 +402,6 @@ CefRenderWidgetHostViewOSR::~CefRenderWidgetHostViewOSR() { if (is_showing_) browser_compositor_->SetRenderWidgetHostIsHidden(true); #else - if (external_begin_frame_enabled_) { - ui::Compositor* compositor = GetCompositor(); - if (compositor) { - compositor->SetExternalBeginFrameClient(nullptr); - } - } - // Marking the DelegatedFrameHost as removed from the window hierarchy is // necessary to remove all connections to its old ui::Compositor. if (is_showing_) @@ -525,7 +513,7 @@ bool CefRenderWidgetHostViewOSR::IsShowing() { return is_showing_; } -void CefRenderWidgetHostViewOSR::EnsureSurfaceSynchronizedForLayoutTest() { +void CefRenderWidgetHostViewOSR::EnsureSurfaceSynchronizedForWebTest() { ++latest_capture_sequence_number_; SynchronizeVisualProperties(); } @@ -556,19 +544,14 @@ void CefRenderWidgetHostViewOSR::SetBackgroundColor(SkColor color) { DCHECK(SkColorGetA(color) == SK_AlphaOPAQUE || SkColorGetA(color) == SK_AlphaTRANSPARENT); - if (render_widget_host_) { - render_widget_host_->SetBackgroundOpaque(SkColorGetA(color) == - SK_AlphaOPAQUE); - } + content::RenderWidgetHostViewBase::SetBackgroundColor(color); } base::Optional CefRenderWidgetHostViewOSR::GetBackgroundColor() const { return background_color_; } -void CefRenderWidgetHostViewOSR::UpdateBackgroundColor() { - NOTREACHED(); -} +void CefRenderWidgetHostViewOSR::UpdateBackgroundColor() {} bool CefRenderWidgetHostViewOSR::LockMouse() { return false; @@ -724,7 +707,6 @@ void CefRenderWidgetHostViewOSR::SubmitCompositorFrame( AddDamageRect(presentation_token_, damage_rect); frame.metadata.frame_token = presentation_token_; - frame.metadata.request_presentation_feedback = true; } // We would normally call BrowserCompositorMac::SubmitCompositorFrame on @@ -1270,7 +1252,8 @@ void CefRenderWidgetHostViewOSR::SendExternalBeginFrame() { begin_frame_number_++; if (renderer_compositor_frame_sink_) { - GetCompositor()->IssueExternalBeginFrame(begin_frame_args); + GetCompositor()->context_factory_private()->IssueExternalBeginFrame( + GetCompositor(), begin_frame_args); renderer_compositor_frame_sink_->OnBeginFrame(begin_frame_args, {}); } diff --git a/libcef/browser/osr/render_widget_host_view_osr.h b/libcef/browser/osr/render_widget_host_view_osr.h index 2d21ff0f1..582bf5899 100644 --- a/libcef/browser/osr/render_widget_host_view_osr.h +++ b/libcef/browser/osr/render_widget_host_view_osr.h @@ -119,7 +119,7 @@ class CefRenderWidgetHostViewOSR : public content::RenderWidgetHostViewBase, void Show() override; void Hide() override; bool IsShowing() override; - void EnsureSurfaceSynchronizedForLayoutTest() override; + void EnsureSurfaceSynchronizedForWebTest() override; gfx::Rect GetViewBounds() const override; void SetBackgroundColor(SkColor color) override; base::Optional GetBackgroundColor() const override; diff --git a/libcef/browser/printing/print_view_manager.cc b/libcef/browser/printing/print_view_manager.cc index 435d65ddf..ae2488988 100644 --- a/libcef/browser/printing/print_view_manager.cc +++ b/libcef/browser/printing/print_view_manager.cc @@ -53,6 +53,7 @@ void FillInDictionaryFromPdfPrintSettings( print_settings.SetBoolean(kSettingPreviewModifiable, false); print_settings.SetInteger(kSettingDpiHorizontal, 0); print_settings.SetInteger(kSettingDpiVertical, 0); + print_settings.SetInteger(kSettingPagesPerSheet, 1); // User defined settings. print_settings.SetBoolean(kSettingLandscape, !!pdf_settings.landscape); @@ -285,4 +286,5 @@ void CefPrintViewManager::TerminatePdfPrintJob() { pdf_print_state_.reset(); } +WEB_CONTENTS_USER_DATA_KEY_IMPL(CefPrintViewManager) } // namespace printing diff --git a/libcef/browser/printing/print_view_manager.h b/libcef/browser/printing/print_view_manager.h index 8bd97872e..90d3c3984 100644 --- a/libcef/browser/printing/print_view_manager.h +++ b/libcef/browser/printing/print_view_manager.h @@ -63,7 +63,7 @@ class CefPrintViewManager int next_pdf_request_id_ = -1; struct PdfPrintState; std::unique_ptr pdf_print_state_; - + WEB_CONTENTS_USER_DATA_KEY_DECL(); DISALLOW_COPY_AND_ASSIGN(CefPrintViewManager); }; diff --git a/libcef/browser/server_impl.cc b/libcef/browser/server_impl.cc index 11e3589b3..6c9226900 100644 --- a/libcef/browser/server_impl.cc +++ b/libcef/browser/server_impl.cc @@ -597,8 +597,15 @@ void CefServerImpl::ShutdownOnUIThread() { if (thread_) { // Stop the handler thread as a background task so the UI thread isn't // blocked. - CEF_POST_BACKGROUND_TASK( - BindOnce([](std::unique_ptr) {}, std::move(thread_))); + CEF_POST_BACKGROUND_TASK(BindOnce( + [](std::unique_ptr thread) { + // Calling PlatformThread::Join() on the UI thread is otherwise + // disallowed. + base::ScopedAllowBaseSyncPrimitivesForTesting + scoped_allow_sync_primitives; + thread.reset(); + }, + std::move(thread_))); // Release the reference that was added in StartupOnUIThread(). Release(); diff --git a/libcef/browser/views/window_view.cc b/libcef/browser/views/window_view.cc index fd11e5062..462ae6523 100644 --- a/libcef/browser/views/window_view.cc +++ b/libcef/browser/views/window_view.cc @@ -149,7 +149,7 @@ class CaptionlessFrameView : public views::NonClientFrameView { return HTCAPTION; } - void GetWindowMask(const gfx::Size& size, gfx::Path* window_mask) override { + void GetWindowMask(const gfx::Size& size, SkPath* window_mask) override { // Nothing to do here. } diff --git a/libcef/common/content_client.cc b/libcef/common/content_client.cc index 3c06afe12..db4e2a518 100644 --- a/libcef/common/content_client.cc +++ b/libcef/common/content_client.cc @@ -33,7 +33,6 @@ #include "content/public/common/content_constants.h" #include "content/public/common/content_switches.h" #include "content/public/common/pepper_plugin_info.h" -#include "content/public/common/user_agent.h" #include "ppapi/shared_impl/ppapi_permissions.h" #include "third_party/widevine/cdm/buildflags.h" #include "ui/base/resource/resource_bundle.h" @@ -234,30 +233,6 @@ void CefContentClient::AddAdditionalSchemes(Schemes* schemes) { scheme_info_list_locked_ = true; } -std::string CefContentClient::GetProduct() const { - const base::CommandLine* command_line = - base::CommandLine::ForCurrentProcess(); - if (command_line->HasSwitch(switches::kProductVersion)) - return command_line->GetSwitchValueASCII(switches::kProductVersion); - - return GetChromeProduct(); -} - -std::string CefContentClient::GetChromeProduct() const { - return base::StringPrintf("Chrome/%d.%d.%d.%d", CHROME_VERSION_MAJOR, - CHROME_VERSION_MINOR, CHROME_VERSION_BUILD, - CHROME_VERSION_PATCH); -} - -std::string CefContentClient::GetUserAgent() const { - const base::CommandLine* command_line = - base::CommandLine::ForCurrentProcess(); - if (command_line->HasSwitch(switches::kUserAgent)) - return command_line->GetSwitchValueASCII(switches::kUserAgent); - - return content::BuildUserAgentFromProduct(GetProduct()); -} - base::string16 CefContentClient::GetLocalizedString(int message_id) const { base::string16 value = ui::ResourceBundle::GetSharedInstance().GetLocalizedString(message_id); diff --git a/libcef/common/content_client.h b/libcef/common/content_client.h index cb39ce560..2aefb4a96 100644 --- a/libcef/common/content_client.h +++ b/libcef/common/content_client.h @@ -37,9 +37,6 @@ class CefContentClient : public content::ContentClient, std::vector* cdms, std::vector* cdm_host_file_paths) override; void AddAdditionalSchemes(Schemes* schemes) override; - std::string GetProduct() const override; - std::string GetChromeProduct() const override; - std::string GetUserAgent() const override; base::string16 GetLocalizedString(int message_id) const override; base::StringPiece GetDataResource( int resource_id, diff --git a/libcef/common/main_delegate.cc b/libcef/common/main_delegate.cc index 257288d89..e981036cb 100644 --- a/libcef/common/main_delegate.cc +++ b/libcef/common/main_delegate.cc @@ -469,6 +469,30 @@ bool CefMainDelegate::BasicStartupComplete(int* exit_code) { switches::kUncaughtExceptionStackSize, base::IntToString(settings.uncaught_exception_stack_size)); } + + std::vector disable_features; + + if (settings.windowless_rendering_enabled) { + // Disable VizDisplayCompositor when OSR is enabled until + // we have implemented Viz support + if (features::kVizDisplayCompositor.default_state == + base::FEATURE_ENABLED_BY_DEFAULT) { + disable_features.push_back(features::kVizDisplayCompositor.name); + } + } + + if (!disable_features.empty()) { + DCHECK(!base::FeatureList::GetInstance()); + std::string disable_features_str = + command_line->GetSwitchValueASCII(switches::kDisableFeatures); + for (auto feature_str : disable_features) { + if (!disable_features_str.empty()) + disable_features_str += ","; + disable_features_str += feature_str; + } + command_line->AppendSwitchASCII(switches::kDisableFeatures, + disable_features_str); + } } if (content_client_.application().get()) { diff --git a/libcef/common/request_impl.cc b/libcef/common/request_impl.cc index e76c1caf2..e586c8107 100644 --- a/libcef/common/request_impl.cc +++ b/libcef/common/request_impl.cc @@ -35,7 +35,6 @@ #include "net/url_request/url_fetcher.h" #include "net/url_request/url_request.h" #include "services/network/public/cpp/network_switches.h" -#include "third_party/blink/public/platform/modules/fetch/fetch_api_request.mojom-shared.h" #include "third_party/blink/public/platform/web_security_origin.h" #include "third_party/blink/public/platform/web_string.h" #include "third_party/blink/public/platform/web_url.h" @@ -825,9 +824,6 @@ CefRequestImpl::NetReferrerPolicyToBlinkReferrerPolicy( return network::mojom::ReferrerPolicy::kStrictOrigin; case REFERRER_POLICY_NO_REFERRER: return network::mojom::ReferrerPolicy::kNever; - case REFERRER_POLICY_LAST_VALUE: - NOTREACHED(); - return network::mojom::ReferrerPolicy::kDefault; } NOTREACHED(); return network::mojom::ReferrerPolicy::kDefault; diff --git a/libcef/common/response_impl.cc b/libcef/common/response_impl.cc index 2e786836c..fd0f14a69 100644 --- a/libcef/common/response_impl.cc +++ b/libcef/common/response_impl.cc @@ -202,7 +202,7 @@ void CefResponseImpl::Set(const blink::WebURLResponse& response) { status_text_ = str.Utf16(); str = response.MimeType(); mime_type_ = str.Utf16(); - str = response.Url().GetString(); + str = response.CurrentRequestUrl().GetString(); url_ = str.Utf16(); class HeaderVisitor : public blink::WebHTTPHeaderVisitor { diff --git a/libcef/common/thread_impl.cc b/libcef/common/thread_impl.cc index 400f3ea01..e3929c94f 100644 --- a/libcef/common/thread_impl.cc +++ b/libcef/common/thread_impl.cc @@ -13,7 +13,7 @@ namespace { void StopAndDestroy(base::Thread* thread) { // Calling PlatformThread::Join() on the UI thread is otherwise disallowed. - base::ThreadRestrictions::ScopedAllowIO scoped_allow_io; + base::ScopedAllowBaseSyncPrimitivesForTesting scoped_allow_sync_primitives; // Deleting |thread| will implicitly stop and join it. delete thread; diff --git a/libcef/renderer/content_renderer_client.cc b/libcef/renderer/content_renderer_client.cc index d1289cde4..bdefce076 100644 --- a/libcef/renderer/content_renderer_client.cc +++ b/libcef/renderer/content_renderer_client.cc @@ -20,6 +20,7 @@ #endif #endif +#include "libcef/browser/content_browser_client.h" #include "libcef/browser/context.h" #include "libcef/common/cef_messages.h" #include "libcef/common/cef_switches.h" @@ -84,7 +85,6 @@ #include "printing/print_settings.h" #include "services/service_manager/public/cpp/connector.h" #include "services/service_manager/public/cpp/interface_provider.h" -#include "services/service_manager/public/cpp/service_context.h" #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h" #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/public/platform/scheduler/web_renderer_process_type.h" @@ -173,8 +173,6 @@ CefContentRendererClient::CefContentRendererClient() extensions::ExtensionsRendererClient::Set( extensions_renderer_client_.get()); } - - printing::SetAgent(CefContentClient::Get()->GetUserAgent()); } CefContentRendererClient::~CefContentRendererClient() {} diff --git a/libcef/renderer/extensions/extensions_renderer_client.cc b/libcef/renderer/extensions/extensions_renderer_client.cc index 59418055f..c753ecf9f 100644 --- a/libcef/renderer/extensions/extensions_renderer_client.cc +++ b/libcef/renderer/extensions/extensions_renderer_client.cc @@ -87,14 +87,8 @@ bool CrossesExtensionExtents(blink::WebLocalFrame* frame, return false; } - // Only consider keeping non-app URLs in an app process if this window - // has an opener (in which case it might be an OAuth popup that tries to - // script an iframe within the app). - bool should_consider_workaround = !!frame->Opener(); - return extensions::CrossesExtensionProcessBoundary( - *extension_registry->GetMainThreadExtensionSet(), old_url, new_url, - should_consider_workaround); + *extension_registry->GetMainThreadExtensionSet(), old_url, new_url); } } // namespace diff --git a/libcef/renderer/render_urlrequest_impl.cc b/libcef/renderer/render_urlrequest_impl.cc index e0b8dd8bb..ff8c387f7 100644 --- a/libcef/renderer/render_urlrequest_impl.cc +++ b/libcef/renderer/render_urlrequest_impl.cc @@ -55,13 +55,15 @@ class CefWebURLLoaderClient : public blink::WebURLLoaderClient { int64_t total_encoded_data_length, int64_t total_encoded_body_length, int64_t total_decoded_body_length) override; - bool WillFollowRedirect(const WebURL& new_url, - const WebURL& new_site_for_cookies, - const WebString& new_referrer, - network::mojom::ReferrerPolicy new_referrer_policy, - const WebString& new_method, - const WebURLResponse& passed_redirect_response, - bool& report_raw_headers) override; + bool WillFollowRedirect( + const WebURL& new_url, + const WebURL& new_site_for_cookies, + const base::Optional& new_top_frame_origin, + const WebString& new_referrer, + network::mojom::ReferrerPolicy new_referrer_policy, + const WebString& new_method, + const WebURLResponse& passed_redirect_response, + bool& report_raw_headers) override; protected: // The context_ pointer will outlive this object. @@ -315,6 +317,7 @@ void CefWebURLLoaderClient::DidFail(const WebURLError& error, bool CefWebURLLoaderClient::WillFollowRedirect( const WebURL& new_url, const WebURL& new_site_for_cookies, + const base::Optional& new_top_frame_origin, const WebString& new_referrer, network::mojom::ReferrerPolicy new_referrer_policy, const WebString& new_method, diff --git a/libcef/renderer/v8_impl.cc b/libcef/renderer/v8_impl.cc index 706028740..8c4e4ea35 100644 --- a/libcef/renderer/v8_impl.cc +++ b/libcef/renderer/v8_impl.cc @@ -59,10 +59,12 @@ void SetPrivate(v8::Local context, const char* key, v8::Local value) { v8::Isolate* isolate = context->GetIsolate(); - obj->SetPrivate( - context, - v8::Private::ForApi(isolate, v8::String::NewFromUtf8(isolate, key)), - value) + obj->SetPrivate(context, + v8::Private::ForApi( + isolate, v8::String::NewFromUtf8( + isolate, key, v8::NewStringType::kNormal) + .ToLocalChecked()), + value) .FromJust(); } @@ -72,8 +74,11 @@ bool GetPrivate(v8::Local context, v8::Local* result) { v8::Isolate* isolate = context->GetIsolate(); return obj - ->GetPrivate(context, v8::Private::ForApi( - isolate, v8::String::NewFromUtf8(isolate, key))) + ->GetPrivate(context, + v8::Private::ForApi( + isolate, v8::String::NewFromUtf8( + isolate, key, v8::NewStringType::kNormal) + .ToLocalChecked())) .ToLocal(result); } @@ -932,7 +937,8 @@ CefRefPtr CefV8Context::GetEnteredContext() { v8::Isolate* isolate = GetIsolateManager()->isolate(); if (isolate->InContext()) { v8::HandleScope handle_scope(isolate); - context = new CefV8ContextImpl(isolate, isolate->GetEnteredContext()); + context = + new CefV8ContextImpl(isolate, isolate->GetEnteredOrMicrotaskContext()); } return context; } diff --git a/libcef/utility/content_utility_client.cc b/libcef/utility/content_utility_client.cc index 3b3380af8..3ef26c06a 100644 --- a/libcef/utility/content_utility_client.cc +++ b/libcef/utility/content_utility_client.cc @@ -15,6 +15,7 @@ #include "content/public/child/child_thread.h" #include "content/public/common/service_manager_connection.h" #include "content/public/common/simple_connection_filter.h" +#include "content/public/utility/utility_thread.h" #include "mojo/public/cpp/bindings/strong_binding.h" #include "services/network/url_request_context_builder_mojo.h" #include "services/proxy_resolver/proxy_resolver_service.h" // nogncheck @@ -25,6 +26,41 @@ #include "chrome/utility/printing_handler.h" #endif +namespace { +void RunServiceAsyncThenTerminateProcess( + std::unique_ptr service) { + service_manager::Service::RunAsyncUntilTermination( + std::move(service), + base::BindOnce([] { content::UtilityThread::Get()->ReleaseProcess(); })); +} + +#if !defined(OS_ANDROID) +std::unique_ptr CreateProxyResolverService( + service_manager::mojom::ServiceRequest request) { + return std::make_unique( + std::move(request)); +} +#endif + +using ServiceFactory = + base::OnceCallback()>; +void RunServiceOnIOThread(ServiceFactory factory) { + base::OnceClosure terminate_process = base::BindOnce( + base::IgnoreResult(&base::SequencedTaskRunner::PostTask), + base::SequencedTaskRunnerHandle::Get(), FROM_HERE, + base::BindOnce([] { content::UtilityThread::Get()->ReleaseProcess(); })); + content::ChildThread::Get()->GetIOTaskRunner()->PostTask( + FROM_HERE, + base::BindOnce( + [](ServiceFactory factory, base::OnceClosure terminate_process) { + service_manager::Service::RunAsyncUntilTermination( + std::move(factory).Run(), std::move(terminate_process)); + }, + std::move(factory), std::move(terminate_process))); +} + +} // namespace + CefContentUtilityClient::CefContentUtilityClient() { #if defined(OS_WIN) printing_handler_ = std::make_unique(); @@ -59,31 +95,31 @@ bool CefContentUtilityClient::OnMessageReceived(const IPC::Message& message) { return handled; } -void CefContentUtilityClient::RegisterServices(StaticServiceMap* services) { - { - service_manager::EmbeddedServiceInfo printing_info; - printing_info.factory = - base::Bind(&printing::PrintingService::CreateService); - services->emplace(printing::mojom::kChromePrintingServiceName, - printing_info); - } - - service_manager::EmbeddedServiceInfo proxy_resolver_info; - proxy_resolver_info.task_runner = - content::ChildThread::Get()->GetIOTaskRunner(); - proxy_resolver_info.factory = - base::Bind(&proxy_resolver::ProxyResolverService::CreateService); - services->emplace(proxy_resolver::mojom::kProxyResolverServiceName, - proxy_resolver_info); -} - std::unique_ptr -CefContentUtilityClient::HandleServiceRequest( +CefContentUtilityClient::MaybeCreateMainThreadService( const std::string& service_name, service_manager::mojom::ServiceRequest request) { if (service_name == printing::mojom::kServiceName) { - return printing::CreatePdfCompositorService(std::string(), - std::move(request)); + return printing::CreatePdfCompositorService(std::move(request)); + } + if (service_name == printing::mojom::kChromePrintingServiceName) { + return std::make_unique(std::move(request)); } return nullptr; } + +bool CefContentUtilityClient::HandleServiceRequest( + const std::string& service_name, + service_manager::mojom::ServiceRequest request) { + if (service_name == proxy_resolver::mojom::kProxyResolverServiceName) { + RunServiceOnIOThread( + base::BindOnce(&CreateProxyResolverService, std::move(request))); + return true; + } + auto service = MaybeCreateMainThreadService(service_name, std::move(request)); + if (service) { + RunServiceAsyncThenTerminateProcess(std::move(service)); + return true; + } + return false; +} diff --git a/libcef/utility/content_utility_client.h b/libcef/utility/content_utility_client.h index af1f2e14e..3b3ab4953 100644 --- a/libcef/utility/content_utility_client.h +++ b/libcef/utility/content_utility_client.h @@ -24,12 +24,15 @@ class CefContentUtilityClient : public content::ContentUtilityClient { void UtilityThreadStarted() override; bool OnMessageReceived(const IPC::Message& message) override; - void RegisterServices(StaticServiceMap* services) override; - std::unique_ptr HandleServiceRequest( + bool HandleServiceRequest( const std::string& service_name, service_manager::mojom::ServiceRequest request) override; private: + std::unique_ptr MaybeCreateMainThreadService( + const std::string& service_name, + service_manager::mojom::ServiceRequest request); + #if defined(OS_WIN) std::unique_ptr printing_handler_; #endif diff --git a/patch/patch.cfg b/patch/patch.cfg index aa92a62f6..ee134847f 100644 --- a/patch/patch.cfg +++ b/patch/patch.cfg @@ -331,7 +331,9 @@ patches = [ # Linux: Fix 32-bit build fails with ld.gold: internal error in # get_section_contents, at icf.cc:467 # https://bitbucket.org/chromiumembedded/cef/issues/2256 - 'name': 'linux_build', + # Win: remove llvmlibthin as the combine_libs.py can't handle those + # https://bitbucket.org/chromiumembedded/cef/issues/2470 + 'name': 'build', }, { # Linux: Remove GTK build dependency. diff --git a/patch/patches/browser_child_frame_2507.patch b/patch/patches/browser_child_frame_2507.patch index c333a9448..e1fea64fb 100644 --- a/patch/patches/browser_child_frame_2507.patch +++ b/patch/patches/browser_child_frame_2507.patch @@ -1,8 +1,8 @@ diff --git content/browser/renderer_host/render_widget_host_view_child_frame.cc content/browser/renderer_host/render_widget_host_view_child_frame.cc -index 97c7697726d4..aa1bbc28cf54 100644 +index 347321e9de71..9c7a6967e95d 100644 --- content/browser/renderer_host/render_widget_host_view_child_frame.cc +++ content/browser/renderer_host/render_widget_host_view_child_frame.cc -@@ -633,6 +633,7 @@ void RenderWidgetHostViewChildFrame::SubmitCompositorFrame( +@@ -641,6 +641,7 @@ void RenderWidgetHostViewChildFrame::SubmitCompositorFrame( "RenderWidgetHostViewChildFrame::OnSwapCompositorFrame"); support_->SubmitCompositorFrame(local_surface_id, std::move(frame), std::move(hit_test_region_list)); @@ -10,7 +10,7 @@ index 97c7697726d4..aa1bbc28cf54 100644 } void RenderWidgetHostViewChildFrame::OnDidNotProduceFrame( -@@ -641,6 +642,15 @@ void RenderWidgetHostViewChildFrame::OnDidNotProduceFrame( +@@ -649,6 +650,15 @@ void RenderWidgetHostViewChildFrame::OnDidNotProduceFrame( support_->DidNotProduceFrame(ack); } @@ -26,7 +26,7 @@ index 97c7697726d4..aa1bbc28cf54 100644 void RenderWidgetHostViewChildFrame::TransformPointToRootSurface( gfx::PointF* point) { // This function is called by RenderWidgetHostInputEventRouter only for -@@ -826,6 +836,11 @@ void RenderWidgetHostViewChildFrame::ShowDefinitionForSelection() { +@@ -834,6 +844,11 @@ void RenderWidgetHostViewChildFrame::ShowDefinitionForSelection() { void RenderWidgetHostViewChildFrame::SpeakSelection() {} #endif // defined(OS_MACOSX) diff --git a/patch/patches/browser_plugin_guest_1565.patch b/patch/patches/browser_plugin_guest_1565.patch index 9da28f018..9d74df7ba 100644 --- a/patch/patches/browser_plugin_guest_1565.patch +++ b/patch/patches/browser_plugin_guest_1565.patch @@ -1,5 +1,5 @@ diff --git content/browser/browser_plugin/browser_plugin_guest.cc content/browser/browser_plugin/browser_plugin_guest.cc -index e706efbc6219..3b6f60660650 100644 +index fa03ea14330e..c1bd1b67ce21 100644 --- content/browser/browser_plugin/browser_plugin_guest.cc +++ content/browser/browser_plugin/browser_plugin_guest.cc @@ -347,8 +347,11 @@ void BrowserPluginGuest::InitInternal( @@ -79,10 +79,10 @@ index 5426d600906c..4bf4537514eb 100644 // Creates a new View that holds a non-top-level widget and receives messages // for it. diff --git content/browser/web_contents/web_contents_view_aura.cc content/browser/web_contents/web_contents_view_aura.cc -index 12d8f9bd7cc5..f228b39902bb 100644 +index 04cd7481f4e8..e80014d88d18 100644 --- content/browser/web_contents/web_contents_view_aura.cc +++ content/browser/web_contents/web_contents_view_aura.cc -@@ -809,7 +809,8 @@ void WebContentsViewAura::CreateView(const gfx::Size& initial_size, +@@ -867,7 +867,8 @@ void WebContentsViewAura::CreateView(const gfx::Size& initial_size, } RenderWidgetHostViewBase* WebContentsViewAura::CreateViewForWidget( @@ -92,7 +92,7 @@ index 12d8f9bd7cc5..f228b39902bb 100644 if (render_widget_host->GetView()) { // During testing, the view will already be set up in most cases to the // test view, so we don't want to clobber it with a real one. To verify that -@@ -821,6 +822,7 @@ RenderWidgetHostViewBase* WebContentsViewAura::CreateViewForWidget( +@@ -879,6 +880,7 @@ RenderWidgetHostViewBase* WebContentsViewAura::CreateViewForWidget( render_widget_host->GetView()); } @@ -101,10 +101,10 @@ index 12d8f9bd7cc5..f228b39902bb 100644 g_create_render_widget_host_view ? g_create_render_widget_host_view(render_widget_host, diff --git content/browser/web_contents/web_contents_view_aura.h content/browser/web_contents/web_contents_view_aura.h -index 3c0b73d6f72d..4c9e0f3b7d3a 100644 +index 5fdd86264d57..f023768a3d36 100644 --- content/browser/web_contents/web_contents_view_aura.h +++ content/browser/web_contents/web_contents_view_aura.h -@@ -121,7 +121,7 @@ class CONTENT_EXPORT WebContentsViewAura +@@ -110,7 +110,7 @@ class CONTENT_EXPORT WebContentsViewAura gfx::NativeView context) override; RenderWidgetHostViewBase* CreateViewForWidget( RenderWidgetHost* render_widget_host, @@ -208,10 +208,10 @@ index 1f0e661628aa..f896c842ff0d 100644 RenderWidgetHost* render_widget_host) override; void SetPageTitle(const base::string16& title) override; diff --git content/browser/web_contents/web_contents_view_mac.h content/browser/web_contents/web_contents_view_mac.h -index 5317a1895671..770d05a9c4a9 100644 +index 64fa2bfc20b4..4e1f9627fee8 100644 --- content/browser/web_contents/web_contents_view_mac.h +++ content/browser/web_contents/web_contents_view_mac.h -@@ -102,7 +102,7 @@ class WebContentsViewMac : public WebContentsView, +@@ -72,7 +72,7 @@ class WebContentsViewMac : public WebContentsView, gfx::NativeView context) override; RenderWidgetHostViewBase* CreateViewForWidget( RenderWidgetHost* render_widget_host, @@ -221,10 +221,10 @@ index 5317a1895671..770d05a9c4a9 100644 RenderWidgetHost* render_widget_host) override; void SetPageTitle(const base::string16& title) override; diff --git content/browser/web_contents/web_contents_view_mac.mm content/browser/web_contents/web_contents_view_mac.mm -index 18f85330beaf..bf220383e368 100644 +index 47cd17207819..480f6309969c 100644 --- content/browser/web_contents/web_contents_view_mac.mm +++ content/browser/web_contents/web_contents_view_mac.mm -@@ -337,7 +337,8 @@ void WebContentsViewMac::CreateView( +@@ -303,7 +303,8 @@ void WebContentsViewMac::CreateView( } RenderWidgetHostViewBase* WebContentsViewMac::CreateViewForWidget( @@ -234,7 +234,7 @@ index 18f85330beaf..bf220383e368 100644 if (render_widget_host->GetView()) { // During testing, the view will already be set up in most cases to the // test view, so we don't want to clobber it with a real one. To verify that -@@ -349,6 +350,7 @@ RenderWidgetHostViewBase* WebContentsViewMac::CreateViewForWidget( +@@ -315,6 +316,7 @@ RenderWidgetHostViewBase* WebContentsViewMac::CreateViewForWidget( render_widget_host->GetView()); } diff --git a/patch/patches/linux_build.patch b/patch/patches/build.patch similarity index 63% rename from patch/patches/linux_build.patch rename to patch/patches/build.patch index a606983e5..7592063a9 100644 --- a/patch/patches/linux_build.patch +++ b/patch/patches/build.patch @@ -1,5 +1,5 @@ diff --git build/config/compiler/BUILD.gn build/config/compiler/BUILD.gn -index 87968b38e005..e597aecf436d 100644 +index 91e3033ec161..fe01d2192b2c 100644 --- build/config/compiler/BUILD.gn +++ build/config/compiler/BUILD.gn @@ -163,7 +163,7 @@ declare_args() { @@ -11,3 +11,12 @@ index 87968b38e005..e597aecf436d 100644 !(current_cpu == "x86" || current_cpu == "x64")))) } +@@ -1693,8 +1693,6 @@ config("thin_archive") { + # archive names to 16 characters, which is not what we want). + if ((is_posix && !is_nacl && !is_mac && !is_ios) || is_fuchsia) { + arflags = [ "-T" ] +- } else if (is_win && use_lld) { +- arflags = [ "/llvmlibthin" ] + } + } + diff --git a/patch/patches/chrome_browser.patch b/patch/patches/chrome_browser.patch index c484549a9..709256cae 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 e0fd47a70c7b..d56e7a6b8bec 100644 +index 27bdf8f10885..bd49260e4aec 100644 --- chrome/browser/BUILD.gn +++ chrome/browser/BUILD.gn @@ -8,6 +8,7 @@ import("//build/config/features.gni") @@ -10,7 +10,7 @@ index e0fd47a70c7b..d56e7a6b8bec 100644 import("//chrome/common/features.gni") import("//components/feature_engagement/features.gni") import("//components/feed/features.gni") -@@ -1725,6 +1726,7 @@ jumbo_split_static_library("browser") { +@@ -1714,6 +1715,7 @@ jumbo_split_static_library("browser") { "//base:i18n", "//base/allocator:buildflags", "//cc", @@ -18,7 +18,7 @@ index e0fd47a70c7b..d56e7a6b8bec 100644 "//chrome:extra_resources", "//chrome:resources", "//chrome:strings", -@@ -2004,6 +2006,10 @@ jumbo_split_static_library("browser") { +@@ -1995,6 +1997,10 @@ jumbo_split_static_library("browser") { ] } @@ -29,7 +29,7 @@ index e0fd47a70c7b..d56e7a6b8bec 100644 if (is_android) { sources += [ "after_startup_task_utils_android.cc", -@@ -3629,7 +3635,7 @@ jumbo_split_static_library("browser") { +@@ -3661,7 +3667,7 @@ jumbo_split_static_library("browser") { ] } diff --git a/patch/patches/chrome_browser_net_export.patch b/patch/patches/chrome_browser_net_export.patch index fd3c2cfb4..07be26f23 100644 --- a/patch/patches/chrome_browser_net_export.patch +++ b/patch/patches/chrome_browser_net_export.patch @@ -24,10 +24,10 @@ index cac72c6a2fd1..2ed83a4af1b3 100644 // network quality change events. virtual network::NetworkQualityTracker* network_quality_tracker() = 0; diff --git chrome/browser/browser_process_impl.cc chrome/browser/browser_process_impl.cc -index 9178909e6ce3..7656cbbb99c0 100644 +index 5d549f53cffc..6757890a4aa2 100644 --- chrome/browser/browser_process_impl.cc +++ chrome/browser/browser_process_impl.cc -@@ -665,6 +665,10 @@ BrowserProcessImpl::system_network_context_manager() { +@@ -667,6 +667,10 @@ BrowserProcessImpl::system_network_context_manager() { return SystemNetworkContextManager::GetInstance(); } @@ -39,7 +39,7 @@ index 9178909e6ce3..7656cbbb99c0 100644 BrowserProcessImpl::shared_url_loader_factory() { return system_network_context_manager()->GetSharedURLLoaderFactory(); diff --git chrome/browser/browser_process_impl.h chrome/browser/browser_process_impl.h -index 143e7442ca05..896829d2836f 100644 +index 20aa225b9e55..34dbfdebf26e 100644 --- chrome/browser/browser_process_impl.h +++ chrome/browser/browser_process_impl.h @@ -140,6 +140,7 @@ class BrowserProcessImpl : public BrowserProcess, diff --git a/patch/patches/chrome_browser_profiles.patch b/patch/patches/chrome_browser_profiles.patch index 1c88aad04..f90d8648d 100644 --- a/patch/patches/chrome_browser_profiles.patch +++ b/patch/patches/chrome_browser_profiles.patch @@ -71,10 +71,10 @@ index e8e76ce5b954..1dd338dd0142 100644 content::BrowserContext* GetBrowserContextRedirectedInIncognito( content::BrowserContext* context); diff --git chrome/browser/profiles/profile_manager.cc chrome/browser/profiles/profile_manager.cc -index e00b581b90d3..1ffa2e8f18da 100644 +index 5d692b8227f7..16ac9c07d546 100644 --- chrome/browser/profiles/profile_manager.cc +++ chrome/browser/profiles/profile_manager.cc -@@ -381,7 +381,7 @@ ProfileManager::ProfileManager(const base::FilePath& user_data_dir) +@@ -386,7 +386,7 @@ ProfileManager::ProfileManager(const base::FilePath& user_data_dir) chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, content::NotificationService::AllSources()); diff --git a/patch/patches/chrome_plugins.patch b/patch/patches/chrome_plugins.patch index 97d620888..01a64852a 100644 --- a/patch/patches/chrome_plugins.patch +++ b/patch/patches/chrome_plugins.patch @@ -125,10 +125,10 @@ index 989d5d02cedb..e05810db6824 100644 // If we broke out of the loop, we have found an enabled plugin. bool enabled = i < matching_plugins.size(); diff --git chrome/renderer/chrome_content_renderer_client.cc chrome/renderer/chrome_content_renderer_client.cc -index 488d0ec60a81..9d817080555a 100644 +index 73052b8be6cd..afe5c11f5550 100644 --- chrome/renderer/chrome_content_renderer_client.cc +++ chrome/renderer/chrome_content_renderer_client.cc -@@ -804,6 +804,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( +@@ -789,6 +789,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( if ((status == chrome::mojom::PluginStatus::kUnauthorized || status == chrome::mojom::PluginStatus::kBlocked) && @@ -136,7 +136,7 @@ index 488d0ec60a81..9d817080555a 100644 observer->IsPluginTemporarilyAllowed(identifier)) { status = chrome::mojom::PluginStatus::kAllowed; } -@@ -991,7 +992,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( +@@ -976,7 +977,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( render_frame->GetRemoteAssociatedInterfaces()->GetInterface( &plugin_auth_host); plugin_auth_host->BlockedUnauthorizedPlugin(group_name, identifier); @@ -146,7 +146,7 @@ index 488d0ec60a81..9d817080555a 100644 break; } case chrome::mojom::PluginStatus::kBlocked: { -@@ -1000,7 +1002,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( +@@ -985,7 +987,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name)); placeholder->AllowLoading(); RenderThread::Get()->RecordAction(UserMetricsAction("Plugin_Blocked")); @@ -156,7 +156,7 @@ index 488d0ec60a81..9d817080555a 100644 break; } case chrome::mojom::PluginStatus::kBlockedByPolicy: { -@@ -1010,7 +1013,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( +@@ -995,7 +998,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( group_name)); RenderThread::Get()->RecordAction( UserMetricsAction("Plugin_BlockedByPolicy")); @@ -166,7 +166,7 @@ index 488d0ec60a81..9d817080555a 100644 break; } case chrome::mojom::PluginStatus::kBlockedNoLoading: { -@@ -1018,7 +1022,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( +@@ -1003,7 +1007,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( IDR_BLOCKED_PLUGIN_HTML, l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED_NO_LOADING, group_name)); diff --git a/patch/patches/chrome_renderer.patch b/patch/patches/chrome_renderer.patch index 1086e74a1..819ca7655 100644 --- a/patch/patches/chrome_renderer.patch +++ b/patch/patches/chrome_renderer.patch @@ -1,5 +1,5 @@ diff --git chrome/renderer/BUILD.gn chrome/renderer/BUILD.gn -index c5166e854238..e0493a44eb26 100644 +index c84975892678..66e26b943cd1 100644 --- chrome/renderer/BUILD.gn +++ chrome/renderer/BUILD.gn @@ -4,6 +4,7 @@ @@ -10,7 +10,7 @@ index c5166e854238..e0493a44eb26 100644 import("//chrome/common/features.gni") import("//components/nacl/features.gni") import("//components/offline_pages/buildflags/features.gni") -@@ -121,6 +122,7 @@ jumbo_static_library("renderer") { +@@ -123,6 +124,7 @@ jumbo_static_library("renderer") { defines = [] deps = [ @@ -18,7 +18,7 @@ index c5166e854238..e0493a44eb26 100644 "//chrome:resources", "//chrome:strings", "//chrome/common", -@@ -185,6 +187,10 @@ jumbo_static_library("renderer") { +@@ -187,6 +189,10 @@ jumbo_static_library("renderer") { configs += [ "//build/config/compiler:wexit_time_destructors" ] diff --git a/patch/patches/chrome_widevine.patch b/patch/patches/chrome_widevine.patch index 3dcd761ce..4853a47b4 100644 --- a/patch/patches/chrome_widevine.patch +++ b/patch/patches/chrome_widevine.patch @@ -1,8 +1,8 @@ diff --git chrome/common/chrome_content_client.cc chrome/common/chrome_content_client.cc -index 310971aadad2..1c9f77745f09 100644 +index b22c1ffaa216..f9d154b57827 100644 --- chrome/common/chrome_content_client.cc +++ chrome/common/chrome_content_client.cc -@@ -99,7 +99,8 @@ +@@ -97,7 +97,8 @@ // Registers Widevine CDM if Widevine is enabled, the Widevine CDM is // bundled and not a component. When the Widevine CDM is a component, it is // registered in widevine_cdm_component_installer.cc. diff --git a/patch/patches/component_build_1617.patch b/patch/patches/component_build_1617.patch index 259e47cd0..f244c0475 100644 --- a/patch/patches/component_build_1617.patch +++ b/patch/patches/component_build_1617.patch @@ -1,5 +1,5 @@ diff --git content/app/content_service_manager_main_delegate.h content/app/content_service_manager_main_delegate.h -index 6f32f97e3f92..66da6d5cec53 100644 +index 864f2a5a315a..78b71d523e86 100644 --- content/app/content_service_manager_main_delegate.h +++ content/app/content_service_manager_main_delegate.h @@ -18,7 +18,8 @@ namespace content { diff --git a/patch/patches/content_2015.patch b/patch/patches/content_2015.patch index ba37d1929..415dfb660 100644 --- a/patch/patches/content_2015.patch +++ b/patch/patches/content_2015.patch @@ -64,10 +64,10 @@ index 8b08e6168124..7ea95c421b91 100644 } diff --git content/browser/frame_host/navigation_handle_impl.cc content/browser/frame_host/navigation_handle_impl.cc -index b8e933d665cf..ef41dae49b39 100644 +index abbc4d829412..4aa18cbbd6db 100644 --- content/browser/frame_host/navigation_handle_impl.cc +++ content/browser/frame_host/navigation_handle_impl.cc -@@ -427,12 +427,6 @@ net::Error NavigationHandleImpl::GetNetErrorCode() { +@@ -431,12 +431,6 @@ net::Error NavigationHandleImpl::GetNetErrorCode() { } RenderFrameHostImpl* NavigationHandleImpl::GetRenderFrameHost() { @@ -81,10 +81,10 @@ index b8e933d665cf..ef41dae49b39 100644 "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 cd6c8652cd4f..5477372abb7e 100644 +index 5f4562c307b4..13daa725c7d3 100644 --- content/browser/frame_host/render_frame_host_impl.cc +++ content/browser/frame_host/render_frame_host_impl.cc -@@ -1998,6 +1998,7 @@ void RenderFrameHostImpl::OnDidFailProvisionalLoadWithError( +@@ -2131,6 +2131,7 @@ void RenderFrameHostImpl::OnDidFailProvisionalLoadWithError( if (GetNavigationHandle()) { GetNavigationHandle()->set_net_error_code( static_cast(params.error_code)); @@ -92,7 +92,7 @@ index cd6c8652cd4f..5477372abb7e 100644 } frame_tree_node_->navigator()->DidFailProvisionalLoadWithError(this, params); -@@ -4604,9 +4605,9 @@ void RenderFrameHostImpl::CommitNavigation( +@@ -4787,9 +4788,9 @@ void RenderFrameHostImpl::CommitNavigation( DCHECK(base::FeatureList::IsEnabled(network::features::kNetworkService) || base::FeatureList::IsEnabled( blink::features::kServiceWorkerServicification)); @@ -105,10 +105,10 @@ index cd6c8652cd4f..5477372abb7e 100644 FROM_HERE, {BrowserThread::IO}, base::BindOnce(&PrefetchURLLoaderService::GetFactory, diff --git content/browser/frame_host/render_frame_message_filter.cc content/browser/frame_host/render_frame_message_filter.cc -index 324ed2f8b851..8170ac190ea5 100644 +index 5ba72edd21cf..89a6dc5c1739 100644 --- content/browser/frame_host/render_frame_message_filter.cc +++ content/browser/frame_host/render_frame_message_filter.cc -@@ -658,6 +658,7 @@ void RenderFrameMessageFilter::GetCookies(int render_frame_id, +@@ -701,6 +701,7 @@ void RenderFrameMessageFilter::GetCookies(int render_frame_id, void RenderFrameMessageFilter::OnGetPluginInfo( int render_frame_id, const GURL& url, @@ -116,7 +116,7 @@ index 324ed2f8b851..8170ac190ea5 100644 const url::Origin& main_frame_origin, const std::string& mime_type, bool* found, -@@ -666,8 +667,8 @@ void RenderFrameMessageFilter::OnGetPluginInfo( +@@ -712,8 +713,8 @@ void RenderFrameMessageFilter::OnGetPluginInfo( bool allow_wildcard = true; *found = plugin_service_->GetPluginInfo( render_process_id_, render_frame_id, resource_context_, url, @@ -128,10 +128,10 @@ index 324ed2f8b851..8170ac190ea5 100644 void RenderFrameMessageFilter::OnOpenChannelToPepperPlugin( diff --git content/browser/frame_host/render_frame_message_filter.h content/browser/frame_host/render_frame_message_filter.h -index 91a7d32dbe78..f99bc501c8b1 100644 +index da3f345abfb1..e570f4aaf84c 100644 --- content/browser/frame_host/render_frame_message_filter.h +++ content/browser/frame_host/render_frame_message_filter.h -@@ -146,6 +146,7 @@ class CONTENT_EXPORT RenderFrameMessageFilter +@@ -148,6 +148,7 @@ class CONTENT_EXPORT RenderFrameMessageFilter #if BUILDFLAG(ENABLE_PLUGINS) void OnGetPluginInfo(int render_frame_id, const GURL& url, @@ -140,10 +140,10 @@ index 91a7d32dbe78..f99bc501c8b1 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 b228a7dd382f..7ac8b16deb9a 100644 +index 29fa240d62f0..5fac556426ba 100644 --- content/browser/loader/mime_sniffing_resource_handler.cc +++ content/browser/loader/mime_sniffing_resource_handler.cc -@@ -503,8 +503,8 @@ bool MimeSniffingResourceHandler::CheckForPluginHandler( +@@ -504,8 +504,8 @@ bool MimeSniffingResourceHandler::CheckForPluginHandler( WebPluginInfo plugin; bool has_plugin = plugin_service_->GetPluginInfo( info->GetChildID(), info->GetRenderFrameID(), info->GetContext(), @@ -261,10 +261,10 @@ index 3009401dac6b..b4c5a9e2db50 100644 }; diff --git content/common/frame_messages.h content/common/frame_messages.h -index 17be42a1b675..fb093e0edb23 100644 +index 391aca4c487a..53c1a2854f7d 100644 --- content/common/frame_messages.h +++ content/common/frame_messages.h -@@ -1349,9 +1349,10 @@ IPC_MESSAGE_ROUTED1(FrameHostMsg_PepperStopsPlayback, +@@ -1352,9 +1352,10 @@ IPC_MESSAGE_ROUTED1(FrameHostMsg_PepperStopsPlayback, // type. If there is no matching plugin, |found| is false. // |actual_mime_type| is the actual mime type supported by the // found plugin. @@ -301,10 +301,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 f3bd63d89128..cfe1b01313cb 100644 +index ab523326293b..9be2a229c0f4 100644 --- content/public/renderer/content_renderer_client.h +++ content/public/renderer/content_renderer_client.h -@@ -76,6 +76,9 @@ class CONTENT_EXPORT ContentRendererClient { +@@ -73,6 +73,9 @@ class CONTENT_EXPORT ContentRendererClient { // Notifies us that the RenderThread has been created. virtual void RenderThreadStarted() {} @@ -314,7 +314,7 @@ index f3bd63d89128..cfe1b01313cb 100644 // Notifies that a new RenderFrame has been created. virtual void RenderFrameCreated(RenderFrame* render_frame) {} -@@ -336,6 +339,10 @@ class CONTENT_EXPORT ContentRendererClient { +@@ -330,6 +333,10 @@ class CONTENT_EXPORT ContentRendererClient { // This method may invalidate the frame. virtual void RunScriptsAtDocumentIdle(RenderFrame* render_frame) {} @@ -340,10 +340,10 @@ index 8136604d267a..be7fde2f1a38 100644 virtual void FocusedNodeChanged(const blink::WebNode& node) {} diff --git content/renderer/render_frame_impl.cc content/renderer/render_frame_impl.cc -index 3448d04835df..ed625d890403 100644 +index f25ea89dd6a7..189875a1774d 100644 --- content/renderer/render_frame_impl.cc +++ content/renderer/render_frame_impl.cc -@@ -3645,7 +3645,8 @@ blink::WebPlugin* RenderFrameImpl::CreatePlugin( +@@ -3692,7 +3692,8 @@ blink::WebPlugin* RenderFrameImpl::CreatePlugin( std::string mime_type; bool found = false; Send(new FrameHostMsg_GetPluginInfo( @@ -353,7 +353,7 @@ index 3448d04835df..ed625d890403 100644 params.mime_type.Utf8(), &found, &info, &mime_type)); if (!found) return nullptr; -@@ -4032,6 +4033,8 @@ void RenderFrameImpl::FrameDetached(DetachType type) { +@@ -4107,6 +4108,8 @@ void RenderFrameImpl::FrameDetached(DetachType type) { void RenderFrameImpl::FrameFocused() { Send(new FrameHostMsg_FrameFocused(routing_id_)); @@ -363,10 +363,10 @@ index 3448d04835df..ed625d890403 100644 void RenderFrameImpl::WillCommitProvisionalLoad() { diff --git content/renderer/render_thread_impl.cc content/renderer/render_thread_impl.cc -index 68682fd876dd..8140654e82b1 100644 +index 2e17bf6f1522..477de7f3b9e6 100644 --- content/renderer/render_thread_impl.cc +++ content/renderer/render_thread_impl.cc -@@ -819,6 +819,8 @@ void RenderThreadImpl::Init() { +@@ -814,6 +814,8 @@ void RenderThreadImpl::Init() { StartServiceManagerConnection(); @@ -376,10 +376,10 @@ index 68682fd876dd..8140654e82b1 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 d80d269e5cb4..6444ad872a31 100644 +index e035093938a7..705bf26e714d 100644 --- content/renderer/renderer_blink_platform_impl.cc +++ content/renderer/renderer_blink_platform_impl.cc -@@ -1153,6 +1153,14 @@ void RendererBlinkPlatformImpl::SetMemoryPressureNotificationsSuppressed( +@@ -1046,6 +1046,14 @@ void RendererBlinkPlatformImpl::SetMemoryPressureNotificationsSuppressed( base::MemoryPressureListener::SetNotificationsSuppressed(suppressed); } @@ -395,10 +395,10 @@ index d80d269e5cb4..6444ad872a31 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 63e86af7430a..3c1286d7133b 100644 +index 0052cff07aec..e1920c231d9c 100644 --- content/renderer/renderer_blink_platform_impl.h +++ content/renderer/renderer_blink_platform_impl.h -@@ -232,6 +232,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { +@@ -229,6 +229,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { void RequestPurgeMemory() override; void SetMemoryPressureNotificationsSuppressed(bool suppressed) override; diff --git a/patch/patches/crashpad_1995.patch b/patch/patches/crashpad_1995.patch index d57ac691b..586998efa 100644 --- a/patch/patches/crashpad_1995.patch +++ b/patch/patches/crashpad_1995.patch @@ -1,5 +1,5 @@ diff --git chrome/common/crash_keys.cc chrome/common/crash_keys.cc -index c54f40f27fbd..b96946a1ad96 100644 +index e0a839813a07..5c0d05bcc78c 100644 --- chrome/common/crash_keys.cc +++ chrome/common/crash_keys.cc @@ -4,6 +4,8 @@ @@ -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 f69c6c3ff26e..e0d402abd3fd 100644 +index b3b09cee8d6f..4bc2afc7bd6e 100644 --- components/crash/content/app/crash_reporter_client.cc +++ components/crash/content/app/crash_reporter_client.cc @@ -88,7 +88,7 @@ int CrashReporterClient::GetResultCodeRespawnFailed() { @@ -300,9 +300,9 @@ index f69c6c3ff26e..e0d402abd3fd 100644 +#endif + #if defined(OS_ANDROID) - int CrashReporterClient::GetAndroidMinidumpDescriptor() { - return 0; -@@ -186,9 +214,11 @@ bool CrashReporterClient::ShouldMonitorCrashHandlerExpensively() { + unsigned int CrashReporterClient::GetCrashDumpPercentageForWebView() { + return 100; +@@ -194,9 +222,11 @@ bool CrashReporterClient::ShouldMonitorCrashHandlerExpensively() { return false; } @@ -318,7 +318,7 @@ index f69c6c3ff26e..e0d402abd3fd 100644 } // namespace crash_reporter diff --git components/crash/content/app/crash_reporter_client.h components/crash/content/app/crash_reporter_client.h -index 485c2c8bf638..7eb175c43b6c 100644 +index caebf67a7e0f..5e7cf3d8c1a6 100644 --- components/crash/content/app/crash_reporter_client.h +++ components/crash/content/app/crash_reporter_client.h @@ -5,7 +5,9 @@ @@ -356,7 +356,7 @@ index 485c2c8bf638..7eb175c43b6c 100644 #endif // The location where minidump files should be written. Returns true if -@@ -197,6 +201,30 @@ class CrashReporterClient { +@@ -206,6 +210,30 @@ class CrashReporterClient { // Returns true if breakpad should run in the given process type. virtual bool EnableBreakpadForProcess(const std::string& process_type); @@ -388,10 +388,10 @@ index 485c2c8bf638..7eb175c43b6c 100644 } // namespace crash_reporter diff --git components/crash/content/app/crashpad.cc components/crash/content/app/crashpad.cc -index 5cf5818c879d..c085c84c8a16 100644 +index a04a4d843004..366a687c352d 100644 --- components/crash/content/app/crashpad.cc +++ components/crash/content/app/crashpad.cc -@@ -149,7 +149,8 @@ void InitializeCrashpadImpl(bool initial_client, +@@ -150,7 +150,8 @@ void InitializeCrashpadImpl(bool initial_client, // fallback. Forwarding is turned off for debug-mode builds even for the // browser process, because the system's crash reporter can take a very long // time to chew on symbols. @@ -509,10 +509,10 @@ index f079174b3586..ff9a19e259fb 100644 handler_path, database_path, metrics_path, url, GetProcessSimpleAnnotations(), arguments, true, false); diff --git components/crash/content/app/crashpad_win.cc components/crash/content/app/crashpad_win.cc -index 8b55f0a521f1..d58dcbce5af4 100644 +index cc16c40ea320..3bb03459adf4 100644 --- components/crash/content/app/crashpad_win.cc +++ components/crash/content/app/crashpad_win.cc -@@ -34,8 +34,8 @@ void GetPlatformCrashpadAnnotations( +@@ -35,8 +35,8 @@ void GetPlatformCrashpadAnnotations( base::string16 product_name, version, special_build, channel_name; crash_reporter_client->GetProductNameAndVersion( exe_file, &product_name, &version, &special_build, &channel_name); @@ -523,7 +523,7 @@ index 8b55f0a521f1..d58dcbce5af4 100644 #if defined(GOOGLE_CHROME_BUILD) // Empty means stable. const bool allow_empty_channel = true; -@@ -47,9 +47,9 @@ void GetPlatformCrashpadAnnotations( +@@ -48,9 +48,9 @@ void GetPlatformCrashpadAnnotations( if (!special_build.empty()) (*annotations)["special"] = base::UTF16ToUTF8(special_build); #if defined(ARCH_CPU_X86) @@ -535,7 +535,7 @@ index 8b55f0a521f1..d58dcbce5af4 100644 #endif } -@@ -64,7 +64,9 @@ base::FilePath PlatformCrashpadInitialization( +@@ -65,7 +65,9 @@ base::FilePath PlatformCrashpadInitialization( base::FilePath metrics_path; // Only valid in the browser process. const char kPipeNameVar[] = "CHROME_CRASHPAD_PIPE_NAME"; @@ -545,7 +545,7 @@ index 8b55f0a521f1..d58dcbce5af4 100644 std::unique_ptr env(base::Environment::Create()); if (initial_client) { CrashReporterClient* crash_reporter_client = GetCrashReporterClient(); -@@ -84,13 +86,13 @@ base::FilePath PlatformCrashpadInitialization( +@@ -85,13 +87,13 @@ base::FilePath PlatformCrashpadInitialization( #if defined(GOOGLE_CHROME_BUILD) std::string url = "https://clients2.google.com/cr/report"; @@ -562,7 +562,7 @@ index 8b55f0a521f1..d58dcbce5af4 100644 base::FilePath exe_file(exe_path); if (exe_file.empty()) { -@@ -108,13 +110,14 @@ base::FilePath PlatformCrashpadInitialization( +@@ -109,13 +111,14 @@ base::FilePath PlatformCrashpadInitialization( crashpad::TriState::kEnabled, kIndirectMemoryLimit); } @@ -582,7 +582,7 @@ index 8b55f0a521f1..d58dcbce5af4 100644 if (!user_data_dir.empty()) { start_arguments.push_back(std::string("--user-data-dir=") + user_data_dir); -@@ -125,9 +128,12 @@ base::FilePath PlatformCrashpadInitialization( +@@ -126,9 +129,12 @@ base::FilePath PlatformCrashpadInitialization( start_arguments.push_back("/prefetch:7"); } else { base::FilePath exe_dir = exe_file.DirName(); diff --git a/patch/patches/crashpad_tp_1995.patch b/patch/patches/crashpad_tp_1995.patch index 8b989d62c..2aa052ee3 100644 --- a/patch/patches/crashpad_tp_1995.patch +++ b/patch/patches/crashpad_tp_1995.patch @@ -40,10 +40,10 @@ index 6dac5f3002b3..34f5ee111d3d 100644 virtual ~PruneCondition() {} diff --git third_party/crashpad/crashpad/client/settings.cc third_party/crashpad/crashpad/client/settings.cc -index 20bd2581cd97..16d63af65e2f 100644 +index f6db78dbb8ca..30b0cf88d47a 100644 --- third_party/crashpad/crashpad/client/settings.cc +++ third_party/crashpad/crashpad/client/settings.cc -@@ -85,7 +85,7 @@ void ScopedLockedFileHandleTraits::Free(FileHandle handle) { +@@ -86,7 +86,7 @@ void ScopedLockedFileHandleTraits::Free(FileHandle handle) { struct Settings::Data { static const uint32_t kSettingsMagic = 'CPds'; @@ -52,7 +52,7 @@ index 20bd2581cd97..16d63af65e2f 100644 enum Options : uint32_t { kUploadsEnabled = 1 << 0, -@@ -96,6 +96,9 @@ struct Settings::Data { +@@ -97,6 +97,9 @@ struct Settings::Data { options(0), padding_0(0), last_upload_attempt_time(0), @@ -62,7 +62,7 @@ index 20bd2581cd97..16d63af65e2f 100644 client_id() {} uint32_t magic; -@@ -103,6 +106,9 @@ struct Settings::Data { +@@ -104,6 +107,9 @@ struct Settings::Data { uint32_t options; uint32_t padding_0; int64_t last_upload_attempt_time; // time_t @@ -72,7 +72,7 @@ index 20bd2581cd97..16d63af65e2f 100644 UUID client_id; }; -@@ -186,6 +192,56 @@ bool Settings::SetLastUploadAttemptTime(time_t time) { +@@ -187,6 +193,56 @@ bool Settings::SetLastUploadAttemptTime(time_t time) { return WriteSettings(handle.get(), settings); } diff --git a/patch/patches/devtools_product_2300.patch b/patch/patches/devtools_product_2300.patch index dbe630ade..d7b3c10ee 100644 --- a/patch/patches/devtools_product_2300.patch +++ b/patch/patches/devtools_product_2300.patch @@ -1,28 +1,13 @@ diff --git content/browser/devtools/devtools_http_handler.cc content/browser/devtools/devtools_http_handler.cc -index 53a3e878241c..afcd9feb9d6b 100644 +index 2fab142b119d..14a851bb4f76 100644 --- content/browser/devtools/devtools_http_handler.cc +++ content/browser/devtools/devtools_http_handler.cc -@@ -569,7 +569,7 @@ void DevToolsHttpHandler::OnJsonRequest( +@@ -571,7 +571,7 @@ void DevToolsHttpHandler::OnJsonRequest( version.SetString("Protocol-Version", DevToolsAgentHost::GetProtocolVersion()); version.SetString("WebKit-Version", GetWebKitVersion()); -- version.SetString("Browser", GetContentClient()->GetProduct()); -+ version.SetString("Browser", GetContentClient()->GetChromeProduct()); - version.SetString("User-Agent", GetContentClient()->GetUserAgent()); +- version.SetString("Browser", GetContentClient()->browser()->GetProduct()); ++ version.SetString("Browser", GetContentClient()->browser()->GetChromeProduct()); + version.SetString("User-Agent", + GetContentClient()->browser()->GetUserAgent()); version.SetString("V8-Version", V8_VERSION_STRING); - std::string host = info.headers["host"]; -diff --git content/public/common/content_client.h content/public/common/content_client.h -index 618a328b4767..79aaa0fac1d2 100644 ---- content/public/common/content_client.h -+++ content/public/common/content_client.h -@@ -156,6 +156,10 @@ class CONTENT_EXPORT ContentClient { - // Used as part of the user agent string. - virtual std::string GetProduct() const; - -+ // Returns the Chrome-specific product string. This is used for compatibility -+ // purposes with external tools like Selenium. -+ virtual std::string GetChromeProduct() const { return GetProduct(); } -+ - // Returns the user agent. Content may cache this value. - // TODO(yhirano): Move this to ContentBrowserClient. - virtual std::string GetUserAgent() const; diff --git a/patch/patches/extensions_1947.patch b/patch/patches/extensions_1947.patch index a76cdfc54..56508c2bb 100644 --- a/patch/patches/extensions_1947.patch +++ b/patch/patches/extensions_1947.patch @@ -27,10 +27,10 @@ index 9e81f0a33ede..b796e79ae7ef 100644 auto* browser_context = web_contents->GetBrowserContext(); diff --git content/browser/frame_host/render_frame_host_manager.cc content/browser/frame_host/render_frame_host_manager.cc -index fd7d05e26fa5..2ddb3a8ec86f 100644 +index 5a0b3cf31119..625a7d1f07ad 100644 --- content/browser/frame_host/render_frame_host_manager.cc +++ content/browser/frame_host/render_frame_host_manager.cc -@@ -923,10 +923,11 @@ bool RenderFrameHostManager::ShouldSwapBrowsingInstancesForNavigation( +@@ -945,10 +945,11 @@ bool RenderFrameHostManager::ShouldSwapBrowsingInstancesForNavigation( // TODO(alexmos): This check should've been enforced earlier in the // navigation, in chrome::Navigate(). Verify this, and then convert this to // a CHECK and remove the fallback. @@ -46,7 +46,7 @@ index fd7d05e26fa5..2ddb3a8ec86f 100644 return true; } -@@ -1065,7 +1066,8 @@ RenderFrameHostManager::GetSiteInstanceForNavigation( +@@ -1087,7 +1088,8 @@ RenderFrameHostManager::GetSiteInstanceForNavigation( // Double-check that the new SiteInstance is associated with the right // BrowserContext. @@ -57,10 +57,10 @@ index fd7d05e26fa5..2ddb3a8ec86f 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 ff83421f2bb8..50bf5d594401 100644 +index cde35f745f61..7b2e477a6aae 100644 --- content/public/browser/content_browser_client.h +++ content/public/browser/content_browser_client.h -@@ -450,6 +450,13 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -452,6 +452,13 @@ class CONTENT_EXPORT ContentBrowserClient { // Returns true if error page should be isolated in its own process. virtual bool ShouldIsolateErrorPage(bool in_main_frame); @@ -74,6 +74,17 @@ index ff83421f2bb8..50bf5d594401 100644 // Returns true if the passed in URL should be assigned as the site of the // current SiteInstance, if it does not yet have a site. virtual bool ShouldAssignSiteForURL(const GURL& url); +@@ -1457,6 +1464,10 @@ class CONTENT_EXPORT ContentBrowserClient { + // Used as part of the user agent string. + virtual std::string GetProduct() const; + ++ // Returns the Chrome-specific product string. This is used for compatibility ++ // purposes with external tools like Selenium. ++ virtual std::string GetChromeProduct() const { return GetProduct(); } ++ + // Returns the user agent. Content may cache this value. + virtual std::string GetUserAgent() const; + }; diff --git extensions/browser/extension_host.cc extensions/browser/extension_host.cc index 6cf7f34bfbd7..a2dcdb88fbe3 100644 --- extensions/browser/extension_host.cc @@ -180,7 +191,7 @@ index ad1ef1bd0b8f..8014a61c5083 100644 // A weak pointer to the current or pending RenderViewHost. We don't access // this through the host_contents because we want to deal with the pending diff --git extensions/browser/extensions_browser_client.h extensions/browser/extensions_browser_client.h -index 5a2533dc788f..b21e25a9af25 100644 +index 380b2d3326f6..733918754949 100644 --- extensions/browser/extensions_browser_client.h +++ extensions/browser/extensions_browser_client.h @@ -61,6 +61,7 @@ class ComponentExtensionResourceManager; @@ -219,10 +230,10 @@ index 5a2533dc788f..b21e25a9af25 100644 // once each time the extensions system is loaded per browser_context. The // implementation may wish to use the BrowserContext to record the current diff --git extensions/browser/process_manager.cc extensions/browser/process_manager.cc -index fde870c09c6e..b5a285cecb86 100644 +index 67b3acf91900..e1200aa01778 100644 --- extensions/browser/process_manager.cc +++ extensions/browser/process_manager.cc -@@ -357,9 +357,16 @@ bool ProcessManager::CreateBackgroundHost(const Extension* extension, +@@ -359,9 +359,16 @@ bool ProcessManager::CreateBackgroundHost(const Extension* extension, return true; // TODO(kalman): return false here? It might break things... DVLOG(1) << "CreateBackgroundHost " << extension->id(); diff --git a/patch/patches/external_textures_1006.patch b/patch/patches/external_textures_1006.patch index ef319795f..2ea4cf1f6 100644 --- a/patch/patches/external_textures_1006.patch +++ b/patch/patches/external_textures_1006.patch @@ -27,7 +27,7 @@ index 941d70bd2a7e..ef14a7dd7d4f 100644 virtual void OnReflectorChanged(); diff --git content/browser/compositor/gpu_process_transport_factory.cc content/browser/compositor/gpu_process_transport_factory.cc -index 97d3236bed17..910dbf64a931 100644 +index 9d960547e17c..c5a24852224b 100644 --- content/browser/compositor/gpu_process_transport_factory.cc +++ content/browser/compositor/gpu_process_transport_factory.cc @@ -215,6 +215,18 @@ GpuProcessTransportFactory::~GpuProcessTransportFactory() { @@ -106,7 +106,7 @@ index 5653f31a8797..910de72d1543 100644 // ImageTransportFactory implementation. void DisableGpuCompositing() override; diff --git content/browser/compositor/offscreen_browser_compositor_output_surface.cc content/browser/compositor/offscreen_browser_compositor_output_surface.cc -index b5f5874e8fa2..c292a6b10269 100644 +index c4efbe76891c..dcb032242304 100644 --- content/browser/compositor/offscreen_browser_compositor_output_surface.cc +++ content/browser/compositor/offscreen_browser_compositor_output_surface.cc @@ -33,10 +33,12 @@ OffscreenBrowserCompositorOutputSurface:: @@ -292,22 +292,19 @@ index b5f5874e8fa2..c292a6b10269 100644 gpu::SyncToken sync_token; gl->GenUnverifiedSyncTokenCHROMIUM(sync_token.GetData()); context_provider_->ContextSupport()->SignalSyncToken( -@@ -195,8 +252,11 @@ void OffscreenBrowserCompositorOutputSurface::OnSwapBuffersComplete( - bool need_presentation_feedback) { +@@ -193,7 +250,9 @@ void OffscreenBrowserCompositorOutputSurface::OnSwapBuffersComplete( + const std::vector& latency_info) { latency_tracker_.OnGpuSwapBuffersCompleted(latency_info); client_->DidReceiveSwapBuffersAck(); -- if (need_presentation_feedback) -- client_->DidReceivePresentationFeedback(gfx::PresentationFeedback()); -+ if (need_presentation_feedback) { -+ gfx::PresentationFeedback feedback; -+ feedback.timestamp = base::TimeTicks::Now(); -+ client_->DidReceivePresentationFeedback(feedback); -+ } +- client_->DidReceivePresentationFeedback(gfx::PresentationFeedback()); ++ gfx::PresentationFeedback feedback; ++ feedback.timestamp = base::TimeTicks::Now(); ++ client_->DidReceivePresentationFeedback(feedback); } #if BUILDFLAG(ENABLE_VULKAN) diff --git content/browser/compositor/offscreen_browser_compositor_output_surface.h content/browser/compositor/offscreen_browser_compositor_output_surface.h -index 582388dd576c..103c9374e535 100644 +index b028dc136e7f..fa83865087dc 100644 --- content/browser/compositor/offscreen_browser_compositor_output_surface.h +++ content/browser/compositor/offscreen_browser_compositor_output_surface.h @@ -32,7 +32,8 @@ class OffscreenBrowserCompositorOutputSurface @@ -335,10 +332,10 @@ index 582388dd576c..103c9374e535 100644 + void NotifyRenderHost(const std::vector& latency_info); + - void OnSwapBuffersComplete(const std::vector& latency_info, - bool need_presentation_feedback); + void OnSwapBuffersComplete(const std::vector& latency_info); -@@ -71,6 +76,11 @@ class OffscreenBrowserCompositorOutputSurface + viz::OutputSurfaceClient* client_ = nullptr; +@@ -70,6 +75,11 @@ class OffscreenBrowserCompositorOutputSurface uint32_t fbo_ = 0; bool reflector_changed_ = false; std::unique_ptr reflector_texture_; @@ -351,10 +348,10 @@ index 582388dd576c..103c9374e535 100644 base::WeakPtrFactory weak_ptr_factory_; diff --git gpu/GLES2/gl2chromium_autogen.h gpu/GLES2/gl2chromium_autogen.h -index 0fafe61704a0..a9bb72f3494b 100644 +index e46e882a0f69..9b0ad1ee2bbc 100644 --- gpu/GLES2/gl2chromium_autogen.h +++ gpu/GLES2/gl2chromium_autogen.h -@@ -405,6 +405,10 @@ +@@ -409,6 +409,10 @@ GLES2_GET_FUN(CreateClientGpuFenceCHROMIUM) #define glWaitGpuFenceCHROMIUM GLES2_GET_FUN(WaitGpuFenceCHROMIUM) #define glDestroyGpuFenceCHROMIUM GLES2_GET_FUN(DestroyGpuFenceCHROMIUM) @@ -366,10 +363,10 @@ index 0fafe61704a0..a9bb72f3494b 100644 GLES2_GET_FUN(InvalidateReadbackBufferShadowDataCHROMIUM) #define glFramebufferTextureMultiviewLayeredANGLE \ diff --git gpu/command_buffer/build_gles2_cmd_buffer.py gpu/command_buffer/build_gles2_cmd_buffer.py -index 34e0d4529183..fa6a28461a73 100755 +index 2cc75e3b82b8..06e78c7064d8 100755 --- gpu/command_buffer/build_gles2_cmd_buffer.py +++ gpu/command_buffer/build_gles2_cmd_buffer.py -@@ -4085,6 +4085,35 @@ _FUNCTION_INFO = { +@@ -4190,6 +4190,35 @@ _FUNCTION_INFO = { 'extension': 'CHROMIUM_gpu_fence', 'extension_flag': 'chromium_gpu_fence', }, @@ -406,10 +403,10 @@ index 34e0d4529183..fa6a28461a73 100755 'decoder_func': 'DoUnpremultiplyAndDitherCopyCHROMIUM', 'cmd_args': 'GLuint source_id, GLuint dest_id, GLint x, GLint y, ' diff --git gpu/command_buffer/client/gles2_c_lib_autogen.h gpu/command_buffer/client/gles2_c_lib_autogen.h -index 74b68fa62a5f..42f7b3216c9d 100644 +index 0a8dab9b68b2..248693027d78 100644 --- gpu/command_buffer/client/gles2_c_lib_autogen.h +++ gpu/command_buffer/client/gles2_c_lib_autogen.h -@@ -1818,6 +1818,20 @@ void GL_APIENTRY GLES2WaitGpuFenceCHROMIUM(GLuint gpu_fence_id) { +@@ -1859,6 +1859,20 @@ void GL_APIENTRY GLES2WaitGpuFenceCHROMIUM(GLuint gpu_fence_id) { void GL_APIENTRY GLES2DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) { gles2::GetGLContext()->DestroyGpuFenceCHROMIUM(gpu_fence_id); } @@ -430,7 +427,7 @@ index 74b68fa62a5f..42f7b3216c9d 100644 void GL_APIENTRY GLES2InvalidateReadbackBufferShadowDataCHROMIUM(GLuint buffer_id) { gles2::GetGLContext()->InvalidateReadbackBufferShadowDataCHROMIUM(buffer_id); -@@ -3299,6 +3313,22 @@ extern const NameToFunc g_gles2_function_table[] = { +@@ -3351,6 +3365,22 @@ extern const NameToFunc g_gles2_function_table[] = { "glDestroyGpuFenceCHROMIUM", reinterpret_cast(glDestroyGpuFenceCHROMIUM), }, @@ -454,10 +451,10 @@ index 74b68fa62a5f..42f7b3216c9d 100644 "glInvalidateReadbackBufferShadowDataCHROMIUM", reinterpret_cast( diff --git gpu/command_buffer/client/gles2_cmd_helper_autogen.h gpu/command_buffer/client/gles2_cmd_helper_autogen.h -index f2da35b038e1..3989691bda6d 100644 +index 4b936cbc4d26..d78b47046a8a 100644 --- gpu/command_buffer/client/gles2_cmd_helper_autogen.h +++ gpu/command_buffer/client/gles2_cmd_helper_autogen.h -@@ -3364,6 +3364,42 @@ void DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) { +@@ -3441,6 +3441,42 @@ void DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) { } } @@ -501,10 +498,10 @@ index f2da35b038e1..3989691bda6d 100644 GLint shm_id, GLuint shm_offset, diff --git gpu/command_buffer/client/gles2_implementation.cc gpu/command_buffer/client/gles2_implementation.cc -index 0e1dd204db7d..c5fc6a8a82b6 100644 +index e857907ab719..c2b3c35fd23c 100644 --- gpu/command_buffer/client/gles2_implementation.cc +++ gpu/command_buffer/client/gles2_implementation.cc -@@ -7286,6 +7286,22 @@ void GLES2Implementation::Viewport(GLint x, +@@ -7456,6 +7456,22 @@ void GLES2Implementation::Viewport(GLint x, CheckGLError(); } @@ -528,10 +525,10 @@ index 0e1dd204db7d..c5fc6a8a82b6 100644 GLuint id, uint32_t sync_data_shm_id, diff --git gpu/command_buffer/client/gles2_implementation_autogen.h gpu/command_buffer/client/gles2_implementation_autogen.h -index b520b91d1398..d9c1a7ec7cf3 100644 +index 624ea51c8289..e2b2f61f1088 100644 --- gpu/command_buffer/client/gles2_implementation_autogen.h +++ gpu/command_buffer/client/gles2_implementation_autogen.h -@@ -1276,6 +1276,16 @@ void WaitGpuFenceCHROMIUM(GLuint gpu_fence_id) override; +@@ -1309,6 +1309,16 @@ void WaitGpuFenceCHROMIUM(GLuint gpu_fence_id) override; void DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) override; @@ -549,10 +546,10 @@ index b520b91d1398..d9c1a7ec7cf3 100644 void FramebufferTextureMultiviewLayeredANGLE(GLenum target, diff --git gpu/command_buffer/client/gles2_implementation_impl_autogen.h gpu/command_buffer/client/gles2_implementation_impl_autogen.h -index 45060ce79d7f..d83ce6e78a04 100644 +index b196b0a5879e..77b4a10e7396 100644 --- gpu/command_buffer/client/gles2_implementation_impl_autogen.h +++ gpu/command_buffer/client/gles2_implementation_impl_autogen.h -@@ -3675,6 +3675,30 @@ void GLES2Implementation::DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) { +@@ -3719,6 +3719,30 @@ void GLES2Implementation::DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) { CheckGLError(); } @@ -584,10 +581,10 @@ index 45060ce79d7f..d83ce6e78a04 100644 GLenum target, GLenum attachment, diff --git gpu/command_buffer/client/gles2_interface_autogen.h gpu/command_buffer/client/gles2_interface_autogen.h -index 181c4a60d294..4ce350b3633a 100644 +index 8f024988b3af..c8d9850217db 100644 --- gpu/command_buffer/client/gles2_interface_autogen.h +++ gpu/command_buffer/client/gles2_interface_autogen.h -@@ -950,6 +950,12 @@ virtual GLuint CreateGpuFenceCHROMIUM() = 0; +@@ -980,6 +980,12 @@ virtual GLuint CreateGpuFenceCHROMIUM() = 0; virtual GLuint CreateClientGpuFenceCHROMIUM(ClientGpuFence source) = 0; virtual void WaitGpuFenceCHROMIUM(GLuint gpu_fence_id) = 0; virtual void DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) = 0; @@ -601,10 +598,10 @@ index 181c4a60d294..4ce350b3633a 100644 virtual void FramebufferTextureMultiviewLayeredANGLE(GLenum target, GLenum attachment, diff --git gpu/command_buffer/client/gles2_interface_stub_autogen.h gpu/command_buffer/client/gles2_interface_stub_autogen.h -index 3d4833bb8ff0..43074fe25fd8 100644 +index 263313c515b8..2e9f44ac4f69 100644 --- gpu/command_buffer/client/gles2_interface_stub_autogen.h +++ gpu/command_buffer/client/gles2_interface_stub_autogen.h -@@ -920,6 +920,12 @@ GLuint CreateGpuFenceCHROMIUM() override; +@@ -950,6 +950,12 @@ GLuint CreateGpuFenceCHROMIUM() override; GLuint CreateClientGpuFenceCHROMIUM(ClientGpuFence source) override; void WaitGpuFenceCHROMIUM(GLuint gpu_fence_id) override; void DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) override; @@ -618,10 +615,10 @@ index 3d4833bb8ff0..43074fe25fd8 100644 void FramebufferTextureMultiviewLayeredANGLE(GLenum target, GLenum attachment, diff --git gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h -index f5ebca07a38f..94a0a254f5ba 100644 +index 81e592e25f73..df122ea5416b 100644 --- gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h +++ gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h -@@ -1235,6 +1235,14 @@ GLuint GLES2InterfaceStub::CreateClientGpuFenceCHROMIUM( +@@ -1266,6 +1266,14 @@ GLuint GLES2InterfaceStub::CreateClientGpuFenceCHROMIUM( } void GLES2InterfaceStub::WaitGpuFenceCHROMIUM(GLuint /* gpu_fence_id */) {} void GLES2InterfaceStub::DestroyGpuFenceCHROMIUM(GLuint /* gpu_fence_id */) {} @@ -637,10 +634,10 @@ index f5ebca07a38f..94a0a254f5ba 100644 GLuint /* buffer_id */) {} void GLES2InterfaceStub::FramebufferTextureMultiviewLayeredANGLE( diff --git gpu/command_buffer/client/gles2_trace_implementation_autogen.h gpu/command_buffer/client/gles2_trace_implementation_autogen.h -index caa12933ef3d..60e009ce03b9 100644 +index 61c2fa70d651..6e5f4ddacb86 100644 --- gpu/command_buffer/client/gles2_trace_implementation_autogen.h +++ gpu/command_buffer/client/gles2_trace_implementation_autogen.h -@@ -920,6 +920,12 @@ GLuint CreateGpuFenceCHROMIUM() override; +@@ -950,6 +950,12 @@ GLuint CreateGpuFenceCHROMIUM() override; GLuint CreateClientGpuFenceCHROMIUM(ClientGpuFence source) override; void WaitGpuFenceCHROMIUM(GLuint gpu_fence_id) override; void DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) override; @@ -654,10 +651,10 @@ index caa12933ef3d..60e009ce03b9 100644 void FramebufferTextureMultiviewLayeredANGLE(GLenum target, GLenum attachment, diff --git gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h -index 6ddd340314ad..3840254d80d7 100644 +index dcde091ee4b9..41f1eb704ab8 100644 --- gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h +++ gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h -@@ -2637,6 +2637,28 @@ void GLES2TraceImplementation::DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) { +@@ -2685,6 +2685,28 @@ void GLES2TraceImplementation::DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) { gl_->DestroyGpuFenceCHROMIUM(gpu_fence_id); } @@ -687,10 +684,10 @@ index 6ddd340314ad..3840254d80d7 100644 GLuint buffer_id) { TRACE_EVENT_BINARY_EFFICIENT0( diff --git gpu/command_buffer/common/gles2_cmd_format_autogen.h gpu/command_buffer/common/gles2_cmd_format_autogen.h -index 76ee6074b51a..1644f27a20d6 100644 +index d45e669919bb..fb71bf5d5093 100644 --- gpu/command_buffer/common/gles2_cmd_format_autogen.h +++ gpu/command_buffer/common/gles2_cmd_format_autogen.h -@@ -16576,6 +16576,193 @@ static_assert(offsetof(DestroyGpuFenceCHROMIUM, header) == 0, +@@ -16933,6 +16933,193 @@ static_assert(offsetof(DestroyGpuFenceCHROMIUM, header) == 0, static_assert(offsetof(DestroyGpuFenceCHROMIUM, gpu_fence_id) == 4, "offset of DestroyGpuFenceCHROMIUM gpu_fence_id should be 4"); @@ -885,10 +882,10 @@ index 76ee6074b51a..1644f27a20d6 100644 typedef SetReadbackBufferShadowAllocationINTERNAL ValueType; static const CommandId kCmdId = kSetReadbackBufferShadowAllocationINTERNAL; diff --git gpu/command_buffer/common/gles2_cmd_format_test_autogen.h gpu/command_buffer/common/gles2_cmd_format_test_autogen.h -index 52f445fe307f..97edefaffa39 100644 +index 62958cdf8a00..9e691beb6a46 100644 --- gpu/command_buffer/common/gles2_cmd_format_test_autogen.h +++ gpu/command_buffer/common/gles2_cmd_format_test_autogen.h -@@ -5514,6 +5514,52 @@ TEST_F(GLES2FormatTest, DestroyGpuFenceCHROMIUM) { +@@ -5610,6 +5610,52 @@ TEST_F(GLES2FormatTest, DestroyGpuFenceCHROMIUM) { CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); } @@ -942,27 +939,27 @@ index 52f445fe307f..97edefaffa39 100644 cmds::SetReadbackBufferShadowAllocationINTERNAL& cmd = *GetBufferAs(); diff --git gpu/command_buffer/common/gles2_cmd_ids_autogen.h gpu/command_buffer/common/gles2_cmd_ids_autogen.h -index 753b9c309604..6958e6c5cd00 100644 +index c3321ba34c63..db418228551b 100644 --- gpu/command_buffer/common/gles2_cmd_ids_autogen.h +++ gpu/command_buffer/common/gles2_cmd_ids_autogen.h -@@ -351,7 +351,11 @@ - OP(MaxShaderCompilerThreadsKHR) /* 592 */ \ - OP(CreateAndTexStorage2DSharedImageINTERNALImmediate) /* 593 */ \ - OP(BeginSharedImageAccessDirectCHROMIUM) /* 594 */ \ -- OP(EndSharedImageAccessDirectCHROMIUM) /* 595 */ -+ OP(EndSharedImageAccessDirectCHROMIUM) /* 595 */ \ -+ OP(CreateSharedTexture) /* 596 */ \ -+ OP(LockSharedTexture) /* 597 */ \ -+ OP(UnlockSharedTexture) /* 598 */ \ -+ OP(DeleteSharedTexture) /* 599 */ +@@ -355,7 +355,11 @@ + OP(MaxShaderCompilerThreadsKHR) /* 596 */ \ + OP(CreateAndTexStorage2DSharedImageINTERNALImmediate) /* 597 */ \ + OP(BeginSharedImageAccessDirectCHROMIUM) /* 598 */ \ +- OP(EndSharedImageAccessDirectCHROMIUM) /* 599 */ ++ OP(EndSharedImageAccessDirectCHROMIUM) /* 599 */ \ ++ OP(CreateSharedTexture) /* 600 */ \ ++ OP(LockSharedTexture) /* 601 */ \ ++ OP(UnlockSharedTexture) /* 602 */ \ ++ OP(DeleteSharedTexture) /* 603 */ enum CommandId { kOneBeforeStartPoint = diff --git gpu/command_buffer/gles2_cmd_buffer_functions.txt gpu/command_buffer/gles2_cmd_buffer_functions.txt -index 7a14db0357ad..89258f5ec0dd 100644 +index 740a8dcd3d8c..65c88077908e 100644 --- gpu/command_buffer/gles2_cmd_buffer_functions.txt +++ gpu/command_buffer/gles2_cmd_buffer_functions.txt -@@ -396,6 +396,12 @@ GL_APICALL GLuint GL_APIENTRY glCreateClientGpuFenceCHROMIUM (ClientGpuFen +@@ -409,6 +409,12 @@ GL_APICALL GLuint GL_APIENTRY glCreateClientGpuFenceCHROMIUM (ClientGpuFen GL_APICALL void GL_APIENTRY glWaitGpuFenceCHROMIUM (GLuint gpu_fence_id); GL_APICALL void GL_APIENTRY glDestroyGpuFenceCHROMIUM (GLuint gpu_fence_id); @@ -976,7 +973,7 @@ index 7a14db0357ad..89258f5ec0dd 100644 GL_APICALL void GL_APIENTRY glInvalidateReadbackBufferShadowDataCHROMIUM (GLidBuffer buffer_id); // (used for CHROMIUM_nonblocking_readback implementation) diff --git gpu/command_buffer/service/BUILD.gn gpu/command_buffer/service/BUILD.gn -index 73f1cd7a60af..2bde69b3842b 100644 +index bd70014dabac..dd2b46994692 100644 --- gpu/command_buffer/service/BUILD.gn +++ gpu/command_buffer/service/BUILD.gn @@ -106,6 +106,8 @@ target(link_target_type, "gles2_sources") { @@ -989,10 +986,10 @@ index 73f1cd7a60af..2bde69b3842b 100644 "buffer_manager.cc", "buffer_manager.h", diff --git gpu/command_buffer/service/gles2_cmd_decoder.cc gpu/command_buffer/service/gles2_cmd_decoder.cc -index e4be47a76448..4949935c2241 100644 +index 164f32146e32..59f7e3136a52 100644 --- gpu/command_buffer/service/gles2_cmd_decoder.cc +++ gpu/command_buffer/service/gles2_cmd_decoder.cc -@@ -34,6 +34,7 @@ +@@ -36,6 +36,7 @@ #include "base/strings/stringprintf.h" #include "base/trace_event/trace_event.h" #include "build/build_config.h" @@ -1000,7 +997,7 @@ index e4be47a76448..4949935c2241 100644 #include "gpu/command_buffer/common/debug_marker_manager.h" #include "gpu/command_buffer/common/gles2_cmd_format.h" #include "gpu/command_buffer/common/gles2_cmd_utils.h" -@@ -888,6 +889,13 @@ class GLES2DecoderImpl : public GLES2Decoder, public ErrorStateClient { +@@ -900,6 +901,13 @@ class GLES2DecoderImpl : public GLES2Decoder, public ErrorStateClient { return group_->mailbox_manager(); } @@ -1014,7 +1011,7 @@ index e4be47a76448..4949935c2241 100644 ImageManager* image_manager() { return group_->image_manager(); } VertexArrayManager* vertex_array_manager() { -@@ -2533,6 +2541,8 @@ class GLES2DecoderImpl : public GLES2Decoder, public ErrorStateClient { +@@ -2604,6 +2612,8 @@ class GLES2DecoderImpl : public GLES2Decoder, public ErrorStateClient { std::unique_ptr vertex_array_manager_; @@ -1023,7 +1020,7 @@ index e4be47a76448..4949935c2241 100644 base::flat_set> writes_submitted_but_not_completed_; // The format of the back buffer_ -@@ -5437,6 +5447,59 @@ error::Error GLES2DecoderImpl::HandleDestroyGpuFenceCHROMIUM( +@@ -5518,6 +5528,59 @@ error::Error GLES2DecoderImpl::HandleDestroyGpuFenceCHROMIUM( return error::kNoError; } @@ -1084,18 +1081,18 @@ index e4be47a76448..4949935c2241 100644 for (auto it = saved_back_textures_.begin(); it != saved_back_textures_.end(); ++it) { diff --git gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc -index b363a2f5849d..5e5404dfb1af 100644 +index 0a27c82ac77a..b9b52a766d51 100644 --- gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc +++ gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc -@@ -9,6 +9,7 @@ - +@@ -10,6 +10,7 @@ #include "base/callback.h" + #include "base/stl_util.h" #include "base/strings/string_split.h" +#include "cef/libcef/browser/gpu/external_texture_manager.h" #include "gpu/command_buffer/service/command_buffer_service.h" #include "gpu/command_buffer/service/decoder_client.h" #include "gpu/command_buffer/service/feature_info.h" -@@ -2478,6 +2479,67 @@ error::Error GLES2DecoderPassthroughImpl::CheckSwapBuffersResult( +@@ -2490,6 +2491,67 @@ error::Error GLES2DecoderPassthroughImpl::CheckSwapBuffersResult( return error::kNoError; } @@ -1164,7 +1161,7 @@ index b363a2f5849d..5e5404dfb1af 100644 GLES2DecoderPassthroughImpl::TextureTarget GLES2DecoderPassthroughImpl::GLenumToTextureTarget(GLenum target) { diff --git gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h -index 0a36589dc65d..d5f1732353b6 100644 +index c2d06e1300d8..0645f6ccd975 100644 --- gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h +++ gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h @@ -45,6 +45,7 @@ class SharedImageRepresentationGLTexturePassthrough; @@ -1173,9 +1170,9 @@ index 0a36589dc65d..d5f1732353b6 100644 class ContextGroup; +class ExternalTextureManager; class GPUTracer; + class MultiDrawManager; class PassthroughAbstractTextureImpl; - -@@ -374,6 +375,8 @@ class GPU_GLES2_EXPORT GLES2DecoderPassthroughImpl : public GLES2Decoder { +@@ -375,6 +376,8 @@ class GPU_GLES2_EXPORT GLES2DecoderPassthroughImpl : public GLES2Decoder { void SetOptionalExtensionsRequestedForTesting(bool request_extensions); @@ -1184,9 +1181,9 @@ index 0a36589dc65d..d5f1732353b6 100644 void* GetScratchMemory(size_t size); template -@@ -575,6 +578,8 @@ class GPU_GLES2_EXPORT GLES2DecoderPassthroughImpl : public GLES2Decoder { +@@ -578,6 +581,8 @@ class GPU_GLES2_EXPORT GLES2DecoderPassthroughImpl : public GLES2Decoder { - std::unique_ptr gpu_fence_manager_; + std::unique_ptr multi_draw_manager_; + std::unique_ptr external_texture_manager_; + @@ -1194,11 +1191,11 @@ index 0a36589dc65d..d5f1732353b6 100644 size_t active_texture_unit_; diff --git ui/compositor/compositor.cc ui/compositor/compositor.cc -index 5358941075a4..5ffd2284c437 100644 +index 5d3c2bf5cd8e..c6b20fa563ce 100644 --- ui/compositor/compositor.cc +++ ui/compositor/compositor.cc -@@ -535,6 +535,16 @@ void Compositor::OnNeedsExternalBeginFrames(bool needs_begin_frames) { - needs_external_begin_frames_ = needs_begin_frames; +@@ -502,6 +502,16 @@ scoped_refptr Compositor::vsync_manager() const { + return vsync_manager_; } +void* Compositor::GetSharedTexture() { @@ -1215,7 +1212,7 @@ index 5358941075a4..5ffd2284c437 100644 observer_list_.AddObserver(observer); } diff --git ui/compositor/compositor.h ui/compositor/compositor.h -index 6f46fd5b4b57..f3508ecb257f 100644 +index 3c19916a9c40..88ea3a3e8ba2 100644 --- ui/compositor/compositor.h +++ ui/compositor/compositor.h @@ -26,6 +26,7 @@ @@ -1253,7 +1250,7 @@ index 6f46fd5b4b57..f3508ecb257f 100644 // Compositor object to take care of GPU painting. // A Browser compositor object is responsible for generating the final // displayable form of pixels comprising a single widget's contents. It draws an -@@ -235,6 +249,9 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, +@@ -233,6 +247,9 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, // Schedules a redraw of the layer tree associated with this compositor. void ScheduleDraw(); @@ -1263,7 +1260,7 @@ index 6f46fd5b4b57..f3508ecb257f 100644 // Sets the root of the layer tree drawn by this Compositor. The root layer // must have no parent. The compositor's root layer is reset if the root layer // is destroyed. NULL can be passed to reset the root layer, in which case the -@@ -347,6 +364,10 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, +@@ -335,6 +352,10 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, return task_runner_; } @@ -1274,7 +1271,7 @@ index 6f46fd5b4b57..f3508ecb257f 100644 // Compositor does not own observers. It is the responsibility of the // observer to remove itself when it is done observing. void AddObserver(CompositorObserver* observer); -@@ -448,6 +469,8 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, +@@ -436,6 +457,8 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, ui::ContextFactory* context_factory_; ui::ContextFactoryPrivate* context_factory_private_; @@ -1283,9 +1280,9 @@ index 6f46fd5b4b57..f3508ecb257f 100644 // The root of the Layer tree drawn by this compositor. Layer* root_layer_ = nullptr; -@@ -484,6 +507,8 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, - ExternalBeginFrameClient* external_begin_frame_client_ = nullptr; - bool needs_external_begin_frames_ = false; +@@ -470,6 +493,8 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, + + ExternalBeginFrameClient* const external_begin_frame_client_; + bool shared_texture_enabled_ = false; + @@ -1293,10 +1290,10 @@ index 6f46fd5b4b57..f3508ecb257f 100644 // The device scale factor of the monitor that this compositor is compositing diff --git ui/compositor/host/host_context_factory_private.cc ui/compositor/host/host_context_factory_private.cc -index e16c5490bbcb..b4297261c397 100644 +index 40ec1e11cd9f..49ad034ebbf5 100644 --- ui/compositor/host/host_context_factory_private.cc +++ ui/compositor/host/host_context_factory_private.cc -@@ -248,6 +248,10 @@ void HostContextFactoryPrivate::SetOutputIsSecure(Compositor* compositor, +@@ -257,6 +257,10 @@ void HostContextFactoryPrivate::SetOutputIsSecure(Compositor* compositor, iter->second.display_private->SetOutputIsSecure(secure); } @@ -1308,15 +1305,15 @@ index e16c5490bbcb..b4297261c397 100644 // When running with viz there is no FrameSinkManagerImpl in the browser // process. FrameSinkManagerImpl runs in the GPU process instead. Anything in diff --git ui/compositor/host/host_context_factory_private.h ui/compositor/host/host_context_factory_private.h -index 69a441e9fbc0..818ffac9fb37 100644 +index a74630258fd5..3a370c422e21 100644 --- ui/compositor/host/host_context_factory_private.h +++ ui/compositor/host/host_context_factory_private.h -@@ -72,6 +72,8 @@ class HostContextFactoryPrivate : public ContextFactoryPrivate { - void SetOutputIsSecure(Compositor* compositor, bool secure) override; - viz::FrameSinkManagerImpl* GetFrameSinkManager() override; +@@ -50,6 +50,8 @@ class HostContextFactoryPrivate : public ContextFactoryPrivate { + + void UnconfigureCompositor(Compositor* compositor); + void* GetSharedTexture(ui::Compositor* compositor) override; + - protected: void set_is_gpu_compositing_disabled(bool value) { is_gpu_compositing_disabled_ = value; + } diff --git a/patch/patches/gn_config.patch b/patch/patches/gn_config.patch index dc79a22dd..190e24b0a 100644 --- a/patch/patches/gn_config.patch +++ b/patch/patches/gn_config.patch @@ -1,8 +1,8 @@ diff --git .gn .gn -index 6f2772973179..34099faa8a27 100644 +index ea7a2f467dc8..42c3557ad301 100644 --- .gn +++ .gn -@@ -677,6 +677,8 @@ exec_script_whitelist = +@@ -674,6 +674,8 @@ exec_script_whitelist = # in the Chromium repo outside of //build. "//build_overrides/build.gni", @@ -12,7 +12,7 @@ index 6f2772973179..34099faa8a27 100644 # https://crbug.com/474506. "//clank/java/BUILD.gn", diff --git BUILD.gn BUILD.gn -index dbe4b22ba39a..1cd9399196a7 100644 +index 662dea503b3d..767805033c69 100644 --- BUILD.gn +++ BUILD.gn @@ -185,6 +185,7 @@ group("gn_all") { @@ -55,36 +55,6 @@ 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 07319b798998..27118d68d109 100644 ---- build/toolchain/win/BUILD.gn -+++ build/toolchain/win/BUILD.gn -@@ -7,6 +7,7 @@ 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/cc_wrapper.gni") - import("//build/toolchain/clang_static_analyzer.gni") - import("//build/toolchain/goma.gni") - import("//build/toolchain/toolchain.gni") -@@ -30,6 +31,8 @@ if (use_goma) { - goma_prefix = "$goma_dir/gomacc " - } - clang_prefix = goma_prefix -+} else if (cc_wrapper != "") { -+ goma_prefix = "$cc_wrapper " - } else { - goma_prefix = "" - if (cc_wrapper != "") { -@@ -121,7 +124,7 @@ template("msvc_toolchain") { - - # lld-link includes a replacement for lib.exe that can produce thin - # archives and understands bitcode (for lto builds). -- lib = "$prefix/$lld_link /lib /llvmlibthin" -+ lib = "$prefix/$lld_link /lib" - link = "$prefix/$lld_link" - if (host_os != "win") { - # See comment adding --rsp-quoting to $cl above for more information. diff --git build/toolchain/win/setup_toolchain.py build/toolchain/win/setup_toolchain.py index 2c8675206f31..d3e419d8fe98 100644 --- build/toolchain/win/setup_toolchain.py @@ -130,7 +100,7 @@ index 2c8675206f31..d3e419d8fe98 100644 diff --git build/vs_toolchain.py build/vs_toolchain.py -index e613b88e5351..3f1d4f06f36a 100755 +index eb47863e6b22..5b8bedb6ab45 100755 --- build/vs_toolchain.py +++ build/vs_toolchain.py @@ -73,11 +73,18 @@ def SetEnvironmentAndGetRuntimeDllDirs(): @@ -166,10 +136,10 @@ index 8f2e40286155..42bb53db9aa8 100644 if (is_mac) { output_locales = locales_as_mac_outputs diff --git chrome/installer/mini_installer/BUILD.gn chrome/installer/mini_installer/BUILD.gn -index 931761ff27de..a181fbeadc86 100644 +index 8d19c74ebe9d..7470cc298e36 100644 --- chrome/installer/mini_installer/BUILD.gn +++ chrome/installer/mini_installer/BUILD.gn -@@ -133,7 +133,7 @@ template("generate_mini_installer") { +@@ -134,7 +134,7 @@ template("generate_mini_installer") { inputs = [ "$chrome_dll_file", "$root_out_dir/chrome.exe", diff --git a/patch/patches/gritsettings.patch b/patch/patches/gritsettings.patch index a1f3374fe..d2d987508 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 95e9bf70c41e..e5e6a8bd5df6 100644 +index b41d8cbc5150..dbd98d1c4058 100644 --- tools/gritsettings/resource_ids +++ tools/gritsettings/resource_ids -@@ -429,4 +429,11 @@ +@@ -432,4 +432,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 91dabf783..70533315d 100644 --- a/patch/patches/ime_1610.patch +++ b/patch/patches/ime_1610.patch @@ -1,5 +1,5 @@ diff --git ui/base/ime/input_method_win_base.cc ui/base/ime/input_method_win_base.cc -index 333607e76eae..0ffe991ef62b 100644 +index 6b7c3bef62ae..e731d5037a4e 100644 --- ui/base/ime/input_method_win_base.cc +++ ui/base/ime/input_method_win_base.cc @@ -267,8 +267,9 @@ bool InputMethodWinBase::IsWindowFocused(const TextInputClient* client) const { diff --git a/patch/patches/linux_gtk_2014.patch b/patch/patches/linux_gtk_2014.patch index 901526c51..260c533a4 100644 --- a/patch/patches/linux_gtk_2014.patch +++ b/patch/patches/linux_gtk_2014.patch @@ -68,10 +68,10 @@ index d44c7feaabec..5f1992335a38 100644 void ChromeBrowserMainExtraPartsViewsLinux::ToolkitInitialized() { diff --git chrome/test/BUILD.gn chrome/test/BUILD.gn -index 96a7dc9c5be9..12318f88f99d 100644 +index 50f4a0790071..2bc23912feb3 100644 --- chrome/test/BUILD.gn +++ chrome/test/BUILD.gn -@@ -3905,7 +3905,7 @@ test("unit_tests") { +@@ -3925,7 +3925,7 @@ test("unit_tests") { "../browser/ui/input_method/input_method_engine_unittest.cc", ] } @@ -80,7 +80,7 @@ index 96a7dc9c5be9..12318f88f99d 100644 sources += [ "../browser/ui/libgtkui/select_file_dialog_impl_gtk_unittest.cc" ] deps += [ "//build/config/linux/gtk" ] -@@ -3926,7 +3926,7 @@ test("unit_tests") { +@@ -3946,7 +3946,7 @@ test("unit_tests") { if (use_gio) { configs += [ "//build/linux:gio_config" ] } @@ -89,7 +89,7 @@ index 96a7dc9c5be9..12318f88f99d 100644 deps += [ "//chrome/browser/ui/libgtkui" ] } -@@ -4911,7 +4911,7 @@ if (!is_android) { +@@ -4943,7 +4943,7 @@ if (!is_android) { # suites, it seems like one or another starts timing out too. "../browser/ui/views/keyboard_access_browsertest.cc", ] @@ -99,10 +99,10 @@ index 96a7dc9c5be9..12318f88f99d 100644 "../browser/ui/libgtkui/select_file_dialog_interactive_uitest.cc", ] diff --git remoting/host/BUILD.gn remoting/host/BUILD.gn -index 67e7d8371649..98a8d379060d 100644 +index b6e72dd7b187..9d5cbf937225 100644 --- remoting/host/BUILD.gn +++ remoting/host/BUILD.gn -@@ -345,7 +345,7 @@ static_library("host") { +@@ -339,7 +339,7 @@ static_library("host") { "//build/config/linux:xrandr", ] deps += [ "//remoting/host/linux:x11" ] @@ -111,7 +111,7 @@ index 67e7d8371649..98a8d379060d 100644 deps += [ "//build/config/linux/gtk" ] } } else { -@@ -727,7 +727,7 @@ if (enable_me2me_host) { +@@ -719,7 +719,7 @@ if (enable_me2me_host) { deps += [ "//components/policy:generated" ] } diff --git a/patch/patches/message_loop.patch b/patch/patches/message_loop.patch index b930ef600..6a91d370e 100644 --- a/patch/patches/message_loop.patch +++ b/patch/patches/message_loop.patch @@ -1,5 +1,5 @@ diff --git base/message_loop/message_loop.cc base/message_loop/message_loop.cc -index dcc9f8d1163a..a0681ac47fc3 100644 +index f72f17d9317c..40c421ad4dcb 100644 --- base/message_loop/message_loop.cc +++ base/message_loop/message_loop.cc @@ -177,6 +177,9 @@ MessageLoopBase* MessageLoop::GetMessageLoopBase() { diff --git a/patch/patches/message_pump_mac_2495.patch b/patch/patches/message_pump_mac_2495.patch index 9ca8fe549..4c894f399 100644 --- a/patch/patches/message_pump_mac_2495.patch +++ b/patch/patches/message_pump_mac_2495.patch @@ -1,8 +1,8 @@ diff --git base/message_loop/message_pump_mac.mm base/message_loop/message_pump_mac.mm -index 855f77b77bad..da60dce71705 100644 +index 2f53a79c2362..2b22fd37bb0a 100644 --- base/message_loop/message_pump_mac.mm +++ base/message_loop/message_pump_mac.mm -@@ -762,7 +762,8 @@ void MessagePumpUIApplication::Attach(Delegate* delegate) { +@@ -798,7 +798,8 @@ void MessagePumpUIApplication::Attach(Delegate* delegate) { #else ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() { @@ -12,7 +12,7 @@ index 855f77b77bad..da60dce71705 100644 DCHECK_EQ(kNSApplicationModalSafeModeMask, g_app_pump->GetModeMask()); // Pumping events in private runloop modes is known to interact badly with // app modal windows like NSAlert. -@@ -771,7 +772,8 @@ ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() { +@@ -810,7 +811,8 @@ ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() { } ScopedPumpMessagesInPrivateModes::~ScopedPumpMessagesInPrivateModes() { @@ -20,5 +20,5 @@ index 855f77b77bad..da60dce71705 100644 + if (!g_app_pump) + return; g_app_pump->SetModeMask(kNSApplicationModalSafeModeMask); + g_app_pump->SetTimerInvalidationAllowed(true); } - diff --git a/patch/patches/net_filter_515.patch b/patch/patches/net_filter_515.patch index 6fa58e471..19d1d4960 100644 --- a/patch/patches/net_filter_515.patch +++ b/patch/patches/net_filter_515.patch @@ -22,10 +22,10 @@ index 49fe875c7d22..c1e3df840dc0 100644 THREAD_CHECKER(thread_checker_); diff --git net/url_request/url_request_job.cc net/url_request/url_request_job.cc -index fddd0be90686..5f93b1666ba7 100644 +index efcd4d5a5d4a..56f2ac5e3f7d 100644 --- net/url_request/url_request_job.cc +++ net/url_request/url_request_job.cc -@@ -466,6 +466,12 @@ void URLRequestJob::NotifyHeadersComplete() { +@@ -464,6 +464,12 @@ void URLRequestJob::NotifyHeadersComplete() { DCHECK(!source_stream_); source_stream_ = SetUpSourceStream(); diff --git a/patch/patches/net_urlrequest_1327.patch b/patch/patches/net_urlrequest_1327.patch index bedb79a8d..119fd4b90 100644 --- a/patch/patches/net_urlrequest_1327.patch +++ b/patch/patches/net_urlrequest_1327.patch @@ -1,8 +1,8 @@ diff --git net/url_request/url_request.h net/url_request/url_request.h -index 12ce9b653092..976a7a5a5ce9 100644 +index 9301dc42e121..9dbe0e83fc3a 100644 --- net/url_request/url_request.h +++ net/url_request/url_request.h -@@ -743,10 +743,10 @@ class NET_EXPORT URLRequest : public base::SupportsUserData { +@@ -753,10 +753,10 @@ class NET_EXPORT URLRequest : public base::SupportsUserData { base::WeakPtr GetWeakPtr(); diff --git a/patch/patches/pdfium_print_549365.patch b/patch/patches/pdfium_print_549365.patch index 94cf2649b..cd660b4f3 100644 --- a/patch/patches/pdfium_print_549365.patch +++ b/patch/patches/pdfium_print_549365.patch @@ -1,8 +1,8 @@ diff --git BUILD.gn BUILD.gn -index e9a87e03c..f4cd02c2d 100644 +index 3a2cf0a8f..b5d691e7f 100644 --- BUILD.gn +++ BUILD.gn -@@ -201,6 +201,10 @@ jumbo_static_library("pdfium") { +@@ -209,6 +209,10 @@ jumbo_static_library("pdfium") { complete_static_lib = true configs -= [ "//build/config/compiler:thin_archive" ] } @@ -14,7 +14,7 @@ index e9a87e03c..f4cd02c2d 100644 # Targets below this are only visible within this file (and to the diff --git fpdfsdk/fpdf_view.cpp fpdfsdk/fpdf_view.cpp -index bcb9e35c1..5df6e300c 100644 +index eb61c3ed1..968cd1926 100644 --- fpdfsdk/fpdf_view.cpp +++ fpdfsdk/fpdf_view.cpp @@ -38,6 +38,7 @@ diff --git a/patch/patches/prefs_content_1161.patch b/patch/patches/prefs_content_1161.patch index fca493fb6..6f8bd78b1 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 7772eb5cff36..909382b8e896 100644 +index 28e95a27e6fa..b61f074c9222 100644 --- content/public/common/common_param_traits_macros.h +++ content/public/common/common_param_traits_macros.h -@@ -188,6 +188,7 @@ IPC_STRUCT_TRAITS_BEGIN(content::WebPreferences) +@@ -185,6 +185,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,34 +11,34 @@ index 7772eb5cff36..909382b8e896 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 e648532ff596..570861ca3306 100644 +index 9b2926f7495c..88c854a84c22 100644 --- content/public/common/web_preferences.cc +++ content/public/common/web_preferences.cc -@@ -178,6 +178,7 @@ WebPreferences::WebPreferences() +@@ -167,6 +167,7 @@ WebPreferences::WebPreferences() spatial_navigation_enabled(false), use_solid_color_scrollbars(false), navigate_on_drag_drop(true), + base_background_color(0xFFFFFFFF), // Color::white v8_cache_options(V8_CACHE_OPTIONS_DEFAULT), record_whole_document(false), - save_previous_document_resources(SavePreviousDocumentResources::NEVER), + cookie_enabled(true), diff --git content/public/common/web_preferences.h content/public/common/web_preferences.h -index 40c92b166696..e59e73012b69 100644 +index 1e9d3ec160ac..cbff1daf09a8 100644 --- content/public/common/web_preferences.h +++ content/public/common/web_preferences.h -@@ -203,6 +203,7 @@ struct CONTENT_EXPORT WebPreferences { +@@ -191,6 +191,7 @@ struct CONTENT_EXPORT WebPreferences { bool spatial_navigation_enabled; bool use_solid_color_scrollbars; bool navigate_on_drag_drop; + uint32_t base_background_color; V8CacheOptions v8_cache_options; bool record_whole_document; - SavePreviousDocumentResources save_previous_document_resources; + diff --git content/renderer/render_view_impl.cc content/renderer/render_view_impl.cc -index 5e97250f926d..c68129d1c24e 100644 +index 14ee16470b6f..2dd37b26171f 100644 --- content/renderer/render_view_impl.cc +++ content/renderer/render_view_impl.cc -@@ -1007,6 +1007,8 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs, +@@ -1006,6 +1006,8 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs, #endif WebRuntimeFeatures::EnableTranslateService(prefs.translate_service_available); diff --git a/patch/patches/print_header_footer_1478_1565.patch b/patch/patches/print_header_footer_1478_1565.patch index 08a6f8077..1cb9ea5fb 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 8e91c8afab3d..3805f5080227 100644 +index 634443661e23..5a9130704d90 100644 --- chrome/browser/ui/BUILD.gn +++ chrome/browser/ui/BUILD.gn -@@ -370,6 +370,7 @@ jumbo_split_static_library("ui") { +@@ -360,6 +360,7 @@ jumbo_split_static_library("ui") { "//base:i18n", "//base/allocator:buildflags", "//cc/paint", @@ -10,7 +10,7 @@ index 8e91c8afab3d..3805f5080227 100644 "//chrome:extra_resources", "//chrome:resources", "//chrome:strings", -@@ -2267,7 +2268,7 @@ jumbo_split_static_library("ui") { +@@ -2289,7 +2290,7 @@ jumbo_split_static_library("ui") { "views/frame/native_browser_frame_factory_ozone.cc", ] } else { @@ -262,10 +262,10 @@ index 7dd892feb181..daa097e62ba2 100644 #endif // COMPONENTS_PRINTING_COMMON_PRINT_MESSAGES_H_ diff --git components/printing/renderer/print_render_frame_helper.cc components/printing/renderer/print_render_frame_helper.cc -index 9fb226cdf1db..79708b42a71c 100644 +index 02d4b6fecf72..63b0ef046b15 100644 --- components/printing/renderer/print_render_frame_helper.cc +++ components/printing/renderer/print_render_frame_helper.cc -@@ -344,7 +344,6 @@ bool PrintingNodeOrPdfFrame(const blink::WebLocalFrame* frame, +@@ -345,7 +345,6 @@ bool PrintingNodeOrPdfFrame(const blink::WebLocalFrame* frame, return plugin && plugin->SupportsPaginatedPrint(); } @@ -273,7 +273,7 @@ index 9fb226cdf1db..79708b42a71c 100644 // Returns true if the current destination printer is PRINT_TO_PDF. bool IsPrintToPdfRequested(const base::DictionaryValue& job_settings) { bool print_to_pdf = false; -@@ -366,7 +365,6 @@ bool PrintingFrameHasPageSizeStyle(blink::WebLocalFrame* frame, +@@ -367,7 +366,6 @@ bool PrintingFrameHasPageSizeStyle(blink::WebLocalFrame* frame, } return frame_has_custom_page_size_style; } @@ -281,7 +281,7 @@ index 9fb226cdf1db..79708b42a71c 100644 #if BUILDFLAG(ENABLE_PRINTING) // Disable scaling when either: -@@ -421,7 +419,6 @@ MarginType GetMarginsForPdf(blink::WebLocalFrame* frame, +@@ -422,7 +420,6 @@ MarginType GetMarginsForPdf(blink::WebLocalFrame* frame, : PRINTABLE_AREA_MARGINS; } @@ -289,7 +289,7 @@ index 9fb226cdf1db..79708b42a71c 100644 gfx::Size GetPdfPageSize(const gfx::Size& page_size, int dpi) { return gfx::Size(ConvertUnit(page_size.width(), dpi, kPointsPerInch), ConvertUnit(page_size.height(), dpi, kPointsPerInch)); -@@ -468,7 +465,6 @@ blink::WebPrintScalingOption GetPrintScalingOption( +@@ -469,7 +466,6 @@ blink::WebPrintScalingOption GetPrintScalingOption( } return blink::kWebPrintScalingOptionFitToPrintableArea; } @@ -297,7 +297,7 @@ index 9fb226cdf1db..79708b42a71c 100644 // Helper function to scale and round an integer value with a double valued // scaling. -@@ -1123,10 +1119,8 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) { +@@ -1100,10 +1096,8 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) { return; if (g_is_preview_enabled) { @@ -308,7 +308,7 @@ index 9fb226cdf1db..79708b42a71c 100644 } else { auto weak_this = weak_ptr_factory_.GetWeakPtr(); web_frame->DispatchBeforePrintEvent(); -@@ -1154,10 +1148,10 @@ bool PrintRenderFrameHelper::OnMessageReceived(const IPC::Message& message) { +@@ -1131,10 +1125,10 @@ bool PrintRenderFrameHelper::OnMessageReceived(const IPC::Message& message) { IPC_BEGIN_MESSAGE_MAP(PrintRenderFrameHelper, message) IPC_MESSAGE_HANDLER(PrintMsg_PrintPages, OnPrintPages) IPC_MESSAGE_HANDLER(PrintMsg_PrintForSystemDialog, OnPrintForSystemDialog) @@ -320,7 +320,7 @@ index 9fb226cdf1db..79708b42a71c 100644 IPC_MESSAGE_HANDLER(PrintMsg_ClosePrintPreviewDialog, OnClosePrintPreviewDialog) #endif // BUILDFLAG(ENABLE_PRINT_PREVIEW) -@@ -1240,7 +1234,6 @@ void PrintRenderFrameHelper::UpdateFrameMarginsCssInfo( +@@ -1217,7 +1211,6 @@ void PrintRenderFrameHelper::UpdateFrameMarginsCssInfo( ignore_css_margins_ = (margins_type != DEFAULT_MARGINS); } @@ -328,7 +328,7 @@ index 9fb226cdf1db..79708b42a71c 100644 void PrintRenderFrameHelper::OnPrintPreview( const base::DictionaryValue& settings) { if (ipc_nesting_level_ > 1) -@@ -1497,7 +1490,6 @@ int PrintRenderFrameHelper::GetFitToPageScaleFactor( +@@ -1474,7 +1467,6 @@ int PrintRenderFrameHelper::GetFitToPageScaleFactor( printable_height / static_cast(uniform_page_size.height); return static_cast(100.0f * std::min(scale_width, scale_height)); } @@ -336,7 +336,7 @@ index 9fb226cdf1db..79708b42a71c 100644 void PrintRenderFrameHelper::OnPrintingDone(bool success) { if (ipc_nesting_level_ > 1) -@@ -1512,7 +1504,6 @@ void PrintRenderFrameHelper::OnSetPrintingEnabled(bool enabled) { +@@ -1489,7 +1481,6 @@ void PrintRenderFrameHelper::OnSetPrintingEnabled(bool enabled) { is_printing_enabled_ = enabled; } @@ -344,7 +344,7 @@ index 9fb226cdf1db..79708b42a71c 100644 void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) { if (ipc_nesting_level_ > 1) return; -@@ -1523,7 +1514,9 @@ void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) { +@@ -1500,7 +1491,9 @@ void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) { // that instead. auto plugin = delegate_->GetPdfElement(frame); if (!plugin.IsNull()) { @@ -354,7 +354,7 @@ index 9fb226cdf1db..79708b42a71c 100644 return; } print_preview_context_.InitWithFrame(frame); -@@ -1532,6 +1525,7 @@ void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) { +@@ -1509,6 +1502,7 @@ void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) { : PRINT_PREVIEW_USER_INITIATED_ENTIRE_FRAME); } @@ -362,7 +362,7 @@ index 9fb226cdf1db..79708b42a71c 100644 void PrintRenderFrameHelper::OnClosePrintPreviewDialog() { print_preview_context_.source_frame()->DispatchAfterPrintEvent(); } -@@ -1619,11 +1613,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { +@@ -1596,11 +1590,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { print_node_in_progress_ = true; @@ -375,7 +375,7 @@ index 9fb226cdf1db..79708b42a71c 100644 } else { // Make a copy of the node, in case RenderView::OnContextMenuClosed() resets // its |context_menu_node_|. -@@ -1699,13 +1691,11 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, +@@ -1676,13 +1668,11 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, void PrintRenderFrameHelper::DidFinishPrinting(PrintingResult result) { int cookie = print_pages_params_ ? print_pages_params_->params.document_cookie : 0; @@ -389,7 +389,7 @@ index 9fb226cdf1db..79708b42a71c 100644 switch (result) { case OK: break; -@@ -1720,7 +1710,6 @@ void PrintRenderFrameHelper::DidFinishPrinting(PrintingResult result) { +@@ -1697,7 +1687,6 @@ void PrintRenderFrameHelper::DidFinishPrinting(PrintingResult result) { } break; @@ -397,7 +397,7 @@ index 9fb226cdf1db..79708b42a71c 100644 case FAIL_PREVIEW: if (!is_print_ready_metafile_sent_) { if (notify_browser_of_print_failure_) { -@@ -1738,7 +1727,6 @@ void PrintRenderFrameHelper::DidFinishPrinting(PrintingResult result) { +@@ -1715,7 +1704,6 @@ void PrintRenderFrameHelper::DidFinishPrinting(PrintingResult result) { cookie, ids)); print_preview_context_.Failed(false); break; @@ -405,7 +405,7 @@ index 9fb226cdf1db..79708b42a71c 100644 } prep_frame_view_.reset(); print_pages_params_.reset(); -@@ -1913,7 +1901,6 @@ bool PrintRenderFrameHelper::CalculateNumberOfPages(blink::WebLocalFrame* frame, +@@ -1890,7 +1878,6 @@ bool PrintRenderFrameHelper::CalculateNumberOfPages(blink::WebLocalFrame* frame, return true; } @@ -413,7 +413,7 @@ index 9fb226cdf1db..79708b42a71c 100644 bool PrintRenderFrameHelper::SetOptionsFromPdfDocument( PrintHostMsg_SetOptionsFromDocument_Params* options) { blink::WebLocalFrame* source_frame = print_preview_context_.source_frame(); -@@ -2006,7 +1993,6 @@ bool PrintRenderFrameHelper::UpdatePrintSettings( +@@ -1983,7 +1970,6 @@ bool PrintRenderFrameHelper::UpdatePrintSettings( print_preview_context_.set_error(PREVIEW_ERROR_INVALID_PRINTER_SETTINGS); return false; } @@ -421,7 +421,7 @@ index 9fb226cdf1db..79708b42a71c 100644 void PrintRenderFrameHelper::GetPrintSettingsFromUser( blink::WebLocalFrame* frame, -@@ -2158,7 +2144,6 @@ bool PrintRenderFrameHelper::CopyMetafileDataToReadOnlySharedMem( +@@ -2135,7 +2121,6 @@ bool PrintRenderFrameHelper::CopyMetafileDataToReadOnlySharedMem( return true; } @@ -429,7 +429,7 @@ index 9fb226cdf1db..79708b42a71c 100644 void PrintRenderFrameHelper::ShowScriptedPrintPreview() { if (is_scripted_preview_delayed_) { is_scripted_preview_delayed_ = false; -@@ -2284,7 +2269,6 @@ bool PrintRenderFrameHelper::PreviewPageRendered( +@@ -2261,7 +2246,6 @@ bool PrintRenderFrameHelper::PreviewPageRendered( Send(new PrintHostMsg_DidPreviewPage(routing_id(), preview_page_params, ids)); return true; } diff --git a/patch/patches/renderer_preferences_util_545103.patch b/patch/patches/renderer_preferences_util_545103.patch index 8590217e2..01c24686a 100644 --- a/patch/patches/renderer_preferences_util_545103.patch +++ b/patch/patches/renderer_preferences_util_545103.patch @@ -1,8 +1,8 @@ diff --git chrome/browser/renderer_preferences_util.cc chrome/browser/renderer_preferences_util.cc -index bfaec640fadb..2a9009bac996 100644 +index 1779a41590c3..364c96265fe9 100644 --- chrome/browser/renderer_preferences_util.cc +++ chrome/browser/renderer_preferences_util.cc -@@ -32,7 +32,8 @@ +@@ -28,7 +28,8 @@ #include "ui/base/cocoa/defaults_utils.h" #endif @@ -12,7 +12,7 @@ index bfaec640fadb..2a9009bac996 100644 #include "chrome/browser/themes/theme_service.h" #include "chrome/browser/themes/theme_service_factory.h" #include "ui/views/linux_ui/linux_ui.h" -@@ -131,7 +132,8 @@ void UpdateFromSystemSettings(content::RendererPreferences* prefs, +@@ -127,7 +128,8 @@ void UpdateFromSystemSettings(content::RendererPreferences* prefs, prefs->caret_blink_interval = interval; #endif diff --git a/patch/patches/resource_bundle_2512.patch b/patch/patches/resource_bundle_2512.patch index 2083d0e41..60a627b81 100644 --- a/patch/patches/resource_bundle_2512.patch +++ b/patch/patches/resource_bundle_2512.patch @@ -1,8 +1,8 @@ diff --git ui/base/resource/resource_bundle.cc ui/base/resource/resource_bundle.cc -index c371212e0cec..7020914bf15e 100644 +index ffbb5fae5ecc..cc0e038ebad8 100644 --- ui/base/resource/resource_bundle.cc +++ ui/base/resource/resource_bundle.cc -@@ -693,6 +693,12 @@ ResourceBundle::ResourceBundle(Delegate* delegate) +@@ -692,6 +692,12 @@ ResourceBundle::ResourceBundle(Delegate* delegate) : delegate_(delegate), locale_resources_data_lock_(new base::Lock), max_scale_factor_(SCALE_FACTOR_100P) { @@ -15,7 +15,7 @@ index c371212e0cec..7020914bf15e 100644 mangle_localized_strings_ = base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kMangleLocalizedStrings); } -@@ -702,6 +708,11 @@ ResourceBundle::~ResourceBundle() { +@@ -701,6 +707,11 @@ ResourceBundle::~ResourceBundle() { UnloadLocaleResources(); } @@ -28,10 +28,10 @@ index c371212e0cec..7020914bf15e 100644 void ResourceBundle::InitSharedInstance(Delegate* delegate) { DCHECK(g_shared_instance_ == NULL) << "ResourceBundle initialized twice"; diff --git ui/base/resource/resource_bundle.h ui/base/resource/resource_bundle.h -index c24fcf0ba3c9..2c9ca937bbe7 100644 +index de3828434fd5..491d877dd3ab 100644 --- ui/base/resource/resource_bundle.h +++ ui/base/resource/resource_bundle.h -@@ -150,6 +150,11 @@ class UI_BASE_EXPORT ResourceBundle { +@@ -151,6 +151,11 @@ class UI_BASE_EXPORT ResourceBundle { // Return the global resource loader instance. static ResourceBundle& GetSharedInstance(); diff --git a/patch/patches/rwh_background_color_1984.patch b/patch/patches/rwh_background_color_1984.patch index 07a15b824..6f24161c3 100644 --- a/patch/patches/rwh_background_color_1984.patch +++ b/patch/patches/rwh_background_color_1984.patch @@ -1,5 +1,5 @@ diff --git content/browser/renderer_host/render_widget_host_view_aura.cc content/browser/renderer_host/render_widget_host_view_aura.cc -index 45fa02465929..26ecdddcd135 100644 +index 3b67a5ba02e9..6c00ead42d26 100644 --- content/browser/renderer_host/render_widget_host_view_aura.cc +++ content/browser/renderer_host/render_widget_host_view_aura.cc @@ -727,10 +727,12 @@ gfx::Rect RenderWidgetHostViewAura::GetViewBounds() const { @@ -19,7 +19,7 @@ index 45fa02465929..26ecdddcd135 100644 } void RenderWidgetHostViewAura::WindowTitleChanged() { -@@ -2001,6 +2003,15 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) { +@@ -2011,6 +2013,15 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) { if (frame_sink_id_.is_valid()) window_->SetEmbedFrameSinkId(frame_sink_id_); diff --git a/patch/patches/service_manager_654986.patch b/patch/patches/service_manager_654986.patch index b19039745..b9dd08fd5 100644 --- a/patch/patches/service_manager_654986.patch +++ b/patch/patches/service_manager_654986.patch @@ -1,9 +1,9 @@ diff --git services/service_manager/embedder/main.cc services/service_manager/embedder/main.cc -index bc7399c23728..b0e3867ea39f 100644 +index 06e62473c316..a2b545246009 100644 --- services/service_manager/embedder/main.cc +++ services/service_manager/embedder/main.cc -@@ -300,22 +300,36 @@ int RunService(MainDelegate* delegate) { - return exit_code; +@@ -289,22 +289,36 @@ int RunService(MainDelegate* delegate) { + return 0; } +ProcessType GetProcessType(MainDelegate* delegate, @@ -43,7 +43,7 @@ index bc7399c23728..b0e3867ea39f 100644 // A flag to indicate whether Main() has been called before. On Android, we // may re-run Main() without restarting the browser process. This flag -@@ -391,12 +405,7 @@ int Main(const MainParams& params) { +@@ -380,12 +394,7 @@ int Main(const MainParams& params) { MainDelegate::InitializeParams init_params; #if defined(OS_MACOSX) @@ -57,7 +57,7 @@ index bc7399c23728..b0e3867ea39f 100644 InitializeMac(); #endif -@@ -440,18 +449,16 @@ int Main(const MainParams& params) { +@@ -429,18 +438,16 @@ int Main(const MainParams& params) { } } @@ -85,7 +85,7 @@ index bc7399c23728..b0e3867ea39f 100644 switch (process_type) { case ProcessType::kDefault: NOTREACHED(); -@@ -473,6 +480,8 @@ int Main(const MainParams& params) { +@@ -462,6 +469,8 @@ int Main(const MainParams& params) { break; } @@ -94,7 +94,7 @@ index bc7399c23728..b0e3867ea39f 100644 if (tracker) { if (exit_code == 0) { tracker->SetProcessPhaseIfEnabled( -@@ -484,13 +493,38 @@ int Main(const MainParams& params) { +@@ -473,13 +482,38 @@ int Main(const MainParams& params) { } } @@ -135,7 +135,7 @@ index bc7399c23728..b0e3867ea39f 100644 } diff --git services/service_manager/embedder/main.h services/service_manager/embedder/main.h -index d2359a7723df..14cc0078619a 100644 +index 57e88aa85dfe..5ed6ec2abfda 100644 --- services/service_manager/embedder/main.h +++ services/service_manager/embedder/main.h @@ -5,9 +5,15 @@ @@ -144,8 +144,8 @@ index d2359a7723df..14cc0078619a 100644 +#include + + #include "base/component_export.h" #include "build/build_config.h" - #include "services/service_manager/embedder/service_manager_embedder_export.h" +#if defined(OS_MACOSX) +#include "base/mac/scoped_nsautorelease_pool.h" @@ -154,7 +154,7 @@ index d2359a7723df..14cc0078619a 100644 namespace service_manager { class MainDelegate; -@@ -22,11 +28,20 @@ struct SERVICE_MANAGER_EMBEDDER_EXPORT MainParams { +@@ -22,11 +28,22 @@ struct COMPONENT_EXPORT(SERVICE_MANAGER_EMBEDDER) MainParams { int argc = 0; const char** argv = nullptr; #endif @@ -165,14 +165,16 @@ index d2359a7723df..14cc0078619a 100644 }; +// Split Main() into separate stages. -+int SERVICE_MANAGER_EMBEDDER_EXPORT MainInitialize(MainParams& params); -+int SERVICE_MANAGER_EMBEDDER_EXPORT MainRun(MainParams& params); -+void SERVICE_MANAGER_EMBEDDER_EXPORT MainShutdown(MainParams& params); ++int COMPONENT_EXPORT(SERVICE_MANAGER_EMBEDDER) ++ MainInitialize(MainParams& params); ++int COMPONENT_EXPORT(SERVICE_MANAGER_EMBEDDER) MainRun(MainParams& params); ++void COMPONENT_EXPORT(SERVICE_MANAGER_EMBEDDER) ++ MainShutdown(MainParams& params); + // Main function which should be called as early as possible by any executable // embedding the service manager. --int SERVICE_MANAGER_EMBEDDER_EXPORT Main(const MainParams& params); -+int SERVICE_MANAGER_EMBEDDER_EXPORT Main(MainParams& params); +-int COMPONENT_EXPORT(SERVICE_MANAGER_EMBEDDER) Main(const MainParams& params); ++int COMPONENT_EXPORT(SERVICE_MANAGER_EMBEDDER) Main(MainParams& params); } // namespace service_manager diff --git a/patch/patches/storage_partition_1973.patch b/patch/patches/storage_partition_1973.patch index cd822a52f..c1223bb12 100644 --- a/patch/patches/storage_partition_1973.patch +++ b/patch/patches/storage_partition_1973.patch @@ -14,10 +14,10 @@ index 80198d013f0a..583edc8df4ed 100644 } diff --git content/browser/background_fetch/background_fetch_service_impl.cc content/browser/background_fetch/background_fetch_service_impl.cc -index 96deec645d8f..82eea5b2c6e2 100644 +index d56cc6909782..69c4e8c2877e 100644 --- content/browser/background_fetch/background_fetch_service_impl.cc +++ content/browser/background_fetch/background_fetch_service_impl.cc -@@ -46,8 +46,7 @@ void BackgroundFetchServiceImpl::CreateForWorker( +@@ -47,8 +47,7 @@ void BackgroundFetchServiceImpl::CreateForWorker( FROM_HERE, {BrowserThread::IO}, base::BindOnce( BackgroundFetchServiceImpl::CreateOnIoThread, @@ -25,9 +25,9 @@ index 96deec645d8f..82eea5b2c6e2 100644 - render_process_host->GetStoragePartition()) + WrapRefCounted(render_process_host->GetStoragePartition() ->GetBackgroundFetchContext()), - origin, nullptr /* render_frame_host */, std::move(request))); - } -@@ -68,8 +67,7 @@ void BackgroundFetchServiceImpl::CreateForFrame( + origin, /* render_frame_tree_node_id= */ 0, + /* wc_getter= */ base::NullCallback(), std::move(request))); +@@ -79,8 +78,7 @@ void BackgroundFetchServiceImpl::CreateForFrame( FROM_HERE, {BrowserThread::IO}, base::BindOnce( BackgroundFetchServiceImpl::CreateOnIoThread, @@ -35,8 +35,8 @@ index 96deec645d8f..82eea5b2c6e2 100644 - render_process_host->GetStoragePartition()) + WrapRefCounted(render_process_host->GetStoragePartition() ->GetBackgroundFetchContext()), - render_frame_host->GetLastCommittedOrigin(), render_frame_host, - std::move(request))); + render_frame_host->GetLastCommittedOrigin(), + render_frame_host->GetFrameTreeNodeId(), std::move(wc_getter), diff --git content/browser/blob_storage/chrome_blob_storage_context.cc content/browser/blob_storage/chrome_blob_storage_context.cc index 31bad2ca4cc8..1f8c2c00e427 100644 --- content/browser/blob_storage/chrome_blob_storage_context.cc @@ -67,10 +67,10 @@ index 26cf1ebfdffc..f6de541d25d1 100644 static ChromeBlobStorageContext* GetFor( BrowserContext* browser_context); diff --git content/browser/bluetooth/web_bluetooth_service_impl.cc content/browser/bluetooth/web_bluetooth_service_impl.cc -index f061eca7c86b..0fc07c9c4eb8 100644 +index 771083c375b8..b04254cb727c 100644 --- content/browser/bluetooth/web_bluetooth_service_impl.cc +++ content/browser/bluetooth/web_bluetooth_service_impl.cc -@@ -1233,9 +1233,9 @@ url::Origin WebBluetoothServiceImpl::GetOrigin() { +@@ -1391,9 +1391,9 @@ url::Origin WebBluetoothServiceImpl::GetOrigin() { } BluetoothAllowedDevices& WebBluetoothServiceImpl::allowed_devices() { @@ -83,10 +83,10 @@ index f061eca7c86b..0fc07c9c4eb8 100644 partition->GetBluetoothAllowedDevicesMap(); return allowed_devices_map->GetOrCreateAllowedDevices(GetOrigin()); diff --git content/browser/browser_context.cc content/browser/browser_context.cc -index f37ebdb29896..03448e9fcec0 100644 +index 617683c9e47e..9ad01edc2ea7 100644 --- content/browser/browser_context.cc +++ content/browser/browser_context.cc -@@ -208,11 +208,18 @@ StoragePartition* GetStoragePartitionFromConfig( +@@ -257,11 +257,18 @@ StoragePartition* GetStoragePartitionFromConfig( StoragePartitionImplMap* partition_map = GetStoragePartitionMap(browser_context); @@ -108,7 +108,7 @@ index f37ebdb29896..03448e9fcec0 100644 } void SaveSessionStateOnIOThread( -@@ -746,6 +753,11 @@ BrowserContext::BrowserContext() +@@ -821,6 +828,11 @@ BrowserContext::BrowserContext() new SharedCorsOriginAccessListImpl())); } @@ -121,7 +121,7 @@ index f37ebdb29896..03448e9fcec0 100644 CHECK(GetUserData(kServiceInstanceGroup)) << "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 492f013e7c20..e84b6cd4c4aa 100644 +index 714a1b956c09..990f038d47d9 100644 --- content/browser/devtools/protocol/network_handler.cc +++ content/browser/devtools/protocol/network_handler.cc @@ -805,8 +805,7 @@ class BackgroundSyncRestorer { @@ -171,7 +171,7 @@ index ec9ab86d0ca6..0fe5219f1e84 100644 base::WeakPtrFactory weak_factory_; diff --git content/browser/download/download_manager_impl.cc content/browser/download/download_manager_impl.cc -index a2d4e5187819..c61088e48747 100644 +index 644ddcb990e5..7cb7b03f1fcd 100644 --- content/browser/download/download_manager_impl.cc +++ content/browser/download/download_manager_impl.cc @@ -99,9 +99,9 @@ void DeleteDownloadedFileOnUIThread(const base::FilePath& file_path) { @@ -197,7 +197,7 @@ index a2d4e5187819..c61088e48747 100644 } void OnDownloadStarted( -@@ -268,7 +267,7 @@ base::FilePath GetTemporaryDownloadDirectory() { +@@ -270,7 +269,7 @@ base::FilePath GetTemporaryDownloadDirectory() { #endif scoped_refptr @@ -206,7 +206,7 @@ index a2d4e5187819..c61088e48747 100644 RenderFrameHost* rfh, bool is_download) { network::mojom::URLLoaderFactoryPtrInfo proxy_factory_ptr_info; -@@ -285,7 +284,7 @@ CreateDownloadURLLoaderFactoryGetter(StoragePartitionImpl* storage_partition, +@@ -287,7 +286,7 @@ CreateDownloadURLLoaderFactoryGetter(StoragePartitionImpl* storage_partition, } } return base::MakeRefCounted( @@ -215,7 +215,7 @@ index a2d4e5187819..c61088e48747 100644 std::move(proxy_factory_ptr_info), std::move(proxy_factory_request)); } -@@ -1196,7 +1195,7 @@ void DownloadManagerImpl::InterceptNavigationOnChecksComplete( +@@ -1203,7 +1202,7 @@ void DownloadManagerImpl::InterceptNavigationOnChecksComplete( tab_referrer_url = entry->GetReferrer().url; } } @@ -224,7 +224,7 @@ index a2d4e5187819..c61088e48747 100644 GetStoragePartition(browser_context_, render_process_id, render_frame_id); in_progress_manager_->InterceptDownloadFromNavigation( std::move(resource_request), render_process_id, render_frame_id, site_url, -@@ -1246,10 +1245,8 @@ void DownloadManagerImpl::BeginResourceDownloadOnChecksComplete( +@@ -1254,10 +1253,8 @@ void DownloadManagerImpl::BeginResourceDownloadOnChecksComplete( base::MakeRefCounted( rfh, params->url()); } else if (rfh && params->url().SchemeIsFileSystem()) { @@ -237,7 +237,7 @@ index a2d4e5187819..c61088e48747 100644 std::string storage_domain; auto* site_instance = rfh->GetSiteInstance(); if (site_instance) { -@@ -1264,10 +1261,8 @@ void DownloadManagerImpl::BeginResourceDownloadOnChecksComplete( +@@ -1272,10 +1269,8 @@ void DownloadManagerImpl::BeginResourceDownloadOnChecksComplete( params->url(), rfh, /*is_navigation=*/false, storage_partition->GetFileSystemContext(), storage_domain); } else { @@ -251,10 +251,10 @@ index a2d4e5187819..c61088e48747 100644 CreateDownloadURLLoaderFactoryGetter(storage_partition, rfh, true); } diff --git content/browser/loader/navigation_url_loader_impl.cc content/browser/loader/navigation_url_loader_impl.cc -index 686e303e0230..e458b78fdf7a 100644 +index e399585bcab0..ba922d93d58e 100644 --- content/browser/loader/navigation_url_loader_impl.cc +++ content/browser/loader/navigation_url_loader_impl.cc -@@ -376,7 +376,7 @@ class AboutURLLoaderFactory : public network::mojom::URLLoaderFactory { +@@ -387,7 +387,7 @@ class AboutURLLoaderFactory : public network::mojom::URLLoaderFactory { std::unique_ptr CreateNetworkFactoryInfoWithHeaderClient( network::mojom::TrustedURLLoaderHeaderClientPtrInfo header_client, @@ -263,7 +263,7 @@ index 686e303e0230..e458b78fdf7a 100644 DCHECK_CURRENTLY_ON(BrowserThread::UI); network::mojom::URLLoaderFactoryPtrInfo factory_info; network::mojom::URLLoaderFactoryParamsPtr params = -@@ -1239,7 +1239,7 @@ class NavigationURLLoaderImpl::URLLoaderRequestController +@@ -1257,7 +1257,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_, @@ -328,10 +328,10 @@ index d821dc59609c..58ff1bc59fed 100644 partition->GetPaymentAppContext(); diff --git content/browser/renderer_host/render_process_host_impl.cc content/browser/renderer_host/render_process_host_impl.cc -index d1823ebdeee9..4c80df77e27f 100644 +index aac3f0505472..0ffa78434737 100644 --- content/browser/renderer_host/render_process_host_impl.cc +++ content/browser/renderer_host/render_process_host_impl.cc -@@ -749,11 +749,10 @@ class DefaultSubframeProcessHostHolder : public base::SupportsUserData::Data, +@@ -747,11 +747,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) { @@ -347,7 +347,7 @@ index d1823ebdeee9..4c80df77e27f 100644 // Is this the default storage partition? If it isn't, then just give it its // own non-shared process. -@@ -1499,7 +1498,7 @@ int RenderProcessHost::GetCurrentRenderProcessCountForTesting() { +@@ -1505,7 +1504,7 @@ int RenderProcessHost::GetCurrentRenderProcessCountForTesting() { // static RenderProcessHost* RenderProcessHostImpl::CreateRenderProcessHost( BrowserContext* browser_context, @@ -356,7 +356,7 @@ index d1823ebdeee9..4c80df77e27f 100644 SiteInstance* site_instance, bool is_for_guests_only) { if (g_render_process_host_factory_) { -@@ -1508,8 +1507,8 @@ RenderProcessHost* RenderProcessHostImpl::CreateRenderProcessHost( +@@ -1514,8 +1513,8 @@ RenderProcessHost* RenderProcessHostImpl::CreateRenderProcessHost( } if (!storage_partition_impl) { @@ -367,7 +367,7 @@ index d1823ebdeee9..4c80df77e27f 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 -@@ -1534,7 +1533,7 @@ const unsigned int RenderProcessHostImpl::kMaxFrameDepthForPriority = +@@ -1540,7 +1539,7 @@ const unsigned int RenderProcessHostImpl::kMaxFrameDepthForPriority = RenderProcessHostImpl::RenderProcessHostImpl( BrowserContext* browser_context, @@ -376,7 +376,7 @@ index d1823ebdeee9..4c80df77e27f 100644 bool is_for_guests_only) : fast_shutdown_started_(false), deleting_soon_(false), -@@ -1585,10 +1584,12 @@ RenderProcessHostImpl::RenderProcessHostImpl( +@@ -1591,10 +1590,12 @@ RenderProcessHostImpl::RenderProcessHostImpl( permission_service_context_(new PermissionServiceContext(this)), indexed_db_factory_(new IndexedDBDispatcherHost( id_, @@ -391,7 +391,7 @@ index d1823ebdeee9..4c80df77e27f 100644 id_)), channel_connected_(false), sent_render_process_ready_(false), -@@ -1621,7 +1622,8 @@ RenderProcessHostImpl::RenderProcessHostImpl( +@@ -1628,7 +1629,8 @@ RenderProcessHostImpl::RenderProcessHostImpl( } push_messaging_manager_.reset(new PushMessagingManager( @@ -401,7 +401,7 @@ index d1823ebdeee9..4c80df77e27f 100644 AddObserver(indexed_db_factory_.get()); AddObserver(service_worker_dispatcher_host_.get()); -@@ -1950,6 +1952,15 @@ void RenderProcessHostImpl::ResetChannelProxy() { +@@ -1953,6 +1955,15 @@ void RenderProcessHostImpl::ResetChannelProxy() { void RenderProcessHostImpl::CreateMessageFilters() { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -417,7 +417,7 @@ index d1823ebdeee9..4c80df77e27f 100644 MediaInternals* media_internals = MediaInternals::GetInstance(); // Add BrowserPluginMessageFilter to ensure it gets the first stab at messages // from guests. -@@ -1989,10 +2000,10 @@ void RenderProcessHostImpl::CreateMessageFilters() { +@@ -1992,10 +2003,10 @@ void RenderProcessHostImpl::CreateMessageFilters() { media_request_context)); resource_message_filter_ = new ResourceMessageFilter( @@ -430,7 +430,7 @@ index d1823ebdeee9..4c80df77e27f 100644 storage_partition_impl_->GetPrefetchURLLoaderService(), BrowserContext::GetSharedCorsOriginAccessList(browser_context), std::move(get_contexts_callback), -@@ -2001,8 +2012,7 @@ void RenderProcessHostImpl::CreateMessageFilters() { +@@ -2004,8 +2015,7 @@ void RenderProcessHostImpl::CreateMessageFilters() { AddFilter(resource_message_filter_.get()); } @@ -440,7 +440,7 @@ index d1823ebdeee9..4c80df77e27f 100644 peer_connection_tracker_host_ = new PeerConnectionTrackerHost(GetID()); AddFilter(peer_connection_tracker_host_.get()); -@@ -2019,10 +2029,6 @@ void RenderProcessHostImpl::CreateMessageFilters() { +@@ -2022,10 +2032,6 @@ void RenderProcessHostImpl::CreateMessageFilters() { AddFilter(new TraceMessageFilter(GetID())); AddFilter(new ResolveProxyMsgHelper(GetID())); @@ -451,7 +451,7 @@ index d1823ebdeee9..4c80df77e27f 100644 } void RenderProcessHostImpl::BindCacheStorage( -@@ -2034,7 +2040,8 @@ void RenderProcessHostImpl::BindCacheStorage( +@@ -2037,7 +2043,8 @@ void RenderProcessHostImpl::BindCacheStorage( cache_storage_dispatcher_host_ = base::MakeRefCounted(); cache_storage_dispatcher_host_->Init( @@ -461,7 +461,7 @@ index d1823ebdeee9..4c80df77e27f 100644 } // Send the binding to IO thread, because Cache Storage handles Mojo IPC on IO // thread entirely. -@@ -2218,7 +2225,8 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() { +@@ -2231,7 +2238,8 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() { registry->AddInterface(base::BindRepeating( &CodeCacheHostImpl::Create, GetID(), @@ -471,7 +471,7 @@ index d1823ebdeee9..4c80df77e27f 100644 base::RetainedRef( storage_partition_impl_->GetGeneratedCodeCacheContext()))); -@@ -2230,7 +2238,8 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() { +@@ -2243,7 +2251,8 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() { registry->AddInterface(base::BindRepeating( &AppCacheDispatcherHost::Create, @@ -481,7 +481,7 @@ index d1823ebdeee9..4c80df77e27f 100644 GetID())); AddUIThreadInterface( -@@ -2283,6 +2292,9 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() { +@@ -2288,6 +2297,9 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() { plugin_registry_.reset( new PluginRegistryImpl(GetBrowserContext()->GetResourceContext())); } @@ -492,10 +492,10 @@ index d1823ebdeee9..4c80df77e27f 100644 &PluginRegistryImpl::Bind, base::Unretained(plugin_registry_.get()))); #endif diff --git content/browser/renderer_host/render_process_host_impl.h content/browser/renderer_host/render_process_host_impl.h -index 8b2915483c25..86ba4fab4ee5 100644 +index efaf56d47ec6..1be61f1467af 100644 --- content/browser/renderer_host/render_process_host_impl.h +++ content/browser/renderer_host/render_process_host_impl.h -@@ -98,7 +98,6 @@ class ServiceWorkerDispatcherHost; +@@ -99,7 +99,6 @@ class ServiceWorkerDispatcherHost; class SiteInstance; class SiteInstanceImpl; class StoragePartition; @@ -503,7 +503,7 @@ index 8b2915483c25..86ba4fab4ee5 100644 struct ChildProcessTerminationInfo; typedef base::Thread* (*RendererMainThreadFactoryFunction)( -@@ -140,7 +139,7 @@ class CONTENT_EXPORT RenderProcessHostImpl +@@ -141,7 +140,7 @@ class CONTENT_EXPORT RenderProcessHostImpl // null. static RenderProcessHost* CreateRenderProcessHost( BrowserContext* browser_context, @@ -512,7 +512,7 @@ index 8b2915483c25..86ba4fab4ee5 100644 SiteInstance* site_instance, bool is_for_guests_only); -@@ -491,7 +490,7 @@ class CONTENT_EXPORT RenderProcessHostImpl +@@ -495,7 +494,7 @@ class CONTENT_EXPORT RenderProcessHostImpl // Use CreateRenderProcessHost() instead of calling this constructor // directly. RenderProcessHostImpl(BrowserContext* browser_context, @@ -521,7 +521,7 @@ index 8b2915483c25..86ba4fab4ee5 100644 bool is_for_guests_only); // Initializes a new IPC::ChannelProxy in |channel_|, which will be connected -@@ -746,10 +745,10 @@ class CONTENT_EXPORT RenderProcessHostImpl +@@ -759,10 +758,10 @@ class CONTENT_EXPORT RenderProcessHostImpl // The globally-unique identifier for this RPH. const int id_; @@ -535,7 +535,7 @@ index 8b2915483c25..86ba4fab4ee5 100644 // The observers watching our lifetime. base::ObserverList::Unchecked observers_; diff --git content/browser/renderer_interface_binders.cc content/browser/renderer_interface_binders.cc -index 5a6e7ed16110..d20a8e216f57 100644 +index 87ecafbac4bd..ea76b7e8c6cb 100644 --- content/browser/renderer_interface_binders.cc +++ content/browser/renderer_interface_binders.cc @@ -140,7 +140,7 @@ void RendererInterfaceBinders::InitializeParameterizedBinderRegistry() { @@ -547,7 +547,7 @@ index 5a6e7ed16110..d20a8e216f57 100644 ->GetPaymentAppContext() ->CreatePaymentManager(std::move(request)); })); -@@ -167,15 +167,16 @@ void RendererInterfaceBinders::InitializeParameterizedBinderRegistry() { +@@ -173,15 +173,16 @@ void RendererInterfaceBinders::InitializeParameterizedBinderRegistry() { parameterized_binder_registry_.AddInterface(base::BindRepeating( [](blink::mojom::LockManagerRequest request, RenderProcessHost* host, const url::Origin& origin) { @@ -567,7 +567,7 @@ index 5a6e7ed16110..d20a8e216f57 100644 ->CreateService(origin, std::move(request)); })); parameterized_binder_registry_.AddInterface( -@@ -187,7 +188,7 @@ void RendererInterfaceBinders::InitializeParameterizedBinderRegistry() { +@@ -193,7 +194,7 @@ void RendererInterfaceBinders::InitializeParameterizedBinderRegistry() { parameterized_binder_registry_.AddInterface(base::BindRepeating( [](blink::mojom::CookieStoreRequest request, RenderProcessHost* host, const url::Origin& origin) { @@ -711,7 +711,7 @@ index 63fe0125ca1c..698378600723 100644 RenderFrameHost* render_frame_host_; diff --git content/browser/worker_host/shared_worker_connector_impl.cc content/browser/worker_host/shared_worker_connector_impl.cc -index 69e9a943310b..fabdba322870 100644 +index 9ec4836022bb..57a6480bfd95 100644 --- content/browser/worker_host/shared_worker_connector_impl.cc +++ content/browser/worker_host/shared_worker_connector_impl.cc @@ -52,8 +52,8 @@ void SharedWorkerConnectorImpl::Connect( @@ -726,10 +726,10 @@ index 69e9a943310b..fabdba322870 100644 std::move(client), creation_context_type, blink::MessagePortChannel(std::move(message_port)), diff --git content/browser/worker_host/worker_script_fetch_initiator.cc content/browser/worker_host/worker_script_fetch_initiator.cc -index cf47bcfcecb0..a22dc17ed0c6 100644 +index 2f4be80c04e8..6d77a31c4077 100644 --- content/browser/worker_host/worker_script_fetch_initiator.cc +++ content/browser/worker_host/worker_script_fetch_initiator.cc -@@ -97,7 +97,7 @@ void WorkerScriptFetchInitiator::Start( +@@ -98,7 +98,7 @@ void WorkerScriptFetchInitiator::Start( base::BindOnce( &WorkerScriptFetchInitiator::CreateScriptLoaderOnIO, process_id, std::move(resource_request), @@ -739,7 +739,7 @@ index cf47bcfcecb0..a22dc17ed0c6 100644 std::move(subresource_loader_factories), std::move(service_worker_context), appcache_handle_core, diff --git content/public/browser/browser_context.h content/public/browser/browser_context.h -index b6181e5c68a8..2c77bc6cbd18 100644 +index 9f562fd96d48..a97e9113c6c0 100644 --- content/public/browser/browser_context.h +++ content/public/browser/browser_context.h @@ -242,6 +242,8 @@ class CONTENT_EXPORT BrowserContext : public base::SupportsUserData { @@ -751,9 +751,9 @@ index b6181e5c68a8..2c77bc6cbd18 100644 ~BrowserContext() override; // Shuts down the storage partitions associated to this browser context. -@@ -333,6 +335,14 @@ class CONTENT_EXPORT BrowserContext : public base::SupportsUserData { - const base::FilePath& partition_path, - bool in_memory) = 0; +@@ -362,6 +364,13 @@ class CONTENT_EXPORT BrowserContext : public base::SupportsUserData { + virtual download::InProgressDownloadManager* + RetriveInProgressDownloadManager(); + // CEF returns a proxy object that forwards method calls to |partition_impl|. + virtual content::StoragePartition* GetStoragePartitionProxy( @@ -762,12 +762,11 @@ index b6181e5c68a8..2c77bc6cbd18 100644 + NOTREACHED(); + return nullptr; + } -+ - using StaticServiceMap = - std::map; - + private: + const std::string unique_id_; + bool was_notify_will_be_destroyed_called_ = false; diff --git content/public/browser/storage_partition.h content/public/browser/storage_partition.h -index 713e4ae698c7..6a75d629e268 100644 +index 6fe4d0bd6cdd..a7ea20c6f12a 100644 --- content/public/browser/storage_partition.h +++ content/public/browser/storage_partition.h @@ -14,8 +14,10 @@ @@ -810,7 +809,7 @@ index 713e4ae698c7..6a75d629e268 100644 // Defines what persistent state a child process can access. // // The StoragePartition defines the view each child process has of the -@@ -102,6 +120,7 @@ class CONTENT_EXPORT StoragePartition { +@@ -104,6 +122,7 @@ class CONTENT_EXPORT StoragePartition { virtual storage::FileSystemContext* GetFileSystemContext() = 0; virtual storage::DatabaseTracker* GetDatabaseTracker() = 0; virtual DOMStorageContext* GetDOMStorageContext() = 0; @@ -818,7 +817,7 @@ index 713e4ae698c7..6a75d629e268 100644 virtual IndexedDBContext* GetIndexedDBContext() = 0; virtual ServiceWorkerContext* GetServiceWorkerContext() = 0; virtual SharedWorkerService* GetSharedWorkerService() = 0; -@@ -232,6 +251,26 @@ class CONTENT_EXPORT StoragePartition { +@@ -234,6 +253,26 @@ class CONTENT_EXPORT StoragePartition { // Wait until all deletions tasks are finished. For test use only. virtual void WaitForDeletionTasksForTesting() = 0; diff --git a/patch/patches/trace_event.patch b/patch/patches/trace_event.patch index c98497ad5..2ed455597 100644 --- a/patch/patches/trace_event.patch +++ b/patch/patches/trace_event.patch @@ -1,8 +1,8 @@ diff --git base/trace_event/builtin_categories.h base/trace_event/builtin_categories.h -index e362ff543b4c..a88ad19bebee 100644 +index fbe58b6830c4..1fe4a1dab356 100644 --- base/trace_event/builtin_categories.h +++ base/trace_event/builtin_categories.h -@@ -46,6 +46,8 @@ +@@ -47,6 +47,8 @@ X("cc") \ X("cc.debug") \ X("cdp.perf") \ diff --git a/patch/patches/views_1749_2102.patch b/patch/patches/views_1749_2102.patch index ec5d2397b..9ec10cd42 100644 --- a/patch/patches/views_1749_2102.patch +++ b/patch/patches/views_1749_2102.patch @@ -39,10 +39,10 @@ index fb958b187f0b..131f2fe7490e 100644 virtual void MenuWillShow() {} diff --git ui/gfx/render_text.cc ui/gfx/render_text.cc -index 46dd6934bdac..f99138041495 100644 +index 974d8069e3a2..f3867546bb79 100644 --- ui/gfx/render_text.cc +++ ui/gfx/render_text.cc -@@ -509,6 +509,14 @@ void RenderText::SetElideBehavior(ElideBehavior elide_behavior) { +@@ -508,6 +508,14 @@ void RenderText::SetElideBehavior(ElideBehavior elide_behavior) { } } @@ -57,7 +57,7 @@ index 46dd6934bdac..f99138041495 100644 void RenderText::SetDisplayRect(const Rect& r) { if (r != display_rect_) { display_rect_ = r; -@@ -1503,6 +1511,19 @@ void RenderText::OnTextAttributeChanged() { +@@ -1504,6 +1512,19 @@ void RenderText::OnTextAttributeChanged() { if (!multiline_ && replace_newline_chars_with_symbols_) base::ReplaceChars(layout_text_, kNewline, kNewlineSymbol, &layout_text_); @@ -78,7 +78,7 @@ index 46dd6934bdac..f99138041495 100644 } diff --git ui/gfx/render_text.h ui/gfx/render_text.h -index 50eaca5b18eb..038d866fd8d1 100644 +index 6eaea6c52ccc..a3ddc5a441db 100644 --- ui/gfx/render_text.h +++ ui/gfx/render_text.h @@ -307,6 +307,10 @@ class GFX_EXPORT RenderText { @@ -92,7 +92,7 @@ index 50eaca5b18eb..038d866fd8d1 100644 const Rect& display_rect() const { return display_rect_; } void SetDisplayRect(const Rect& r); -@@ -906,6 +910,8 @@ class GFX_EXPORT RenderText { +@@ -916,6 +920,8 @@ class GFX_EXPORT RenderText { // Extra spacing placed between glyphs; used for obscured text styling. int glyph_spacing_ = 0; @@ -102,10 +102,10 @@ index 50eaca5b18eb..038d866fd8d1 100644 }; diff --git ui/views/animation/ink_drop_host_view.h ui/views/animation/ink_drop_host_view.h -index 282d1136b02c..e70023d433a1 100644 +index b137d7ff80e3..d6aefad0affb 100644 --- ui/views/animation/ink_drop_host_view.h +++ ui/views/animation/ink_drop_host_view.h -@@ -116,6 +116,8 @@ class VIEWS_EXPORT InkDropHostView : public View { +@@ -119,6 +119,8 @@ class VIEWS_EXPORT InkDropHostView : public View { // them. void AnimateInkDrop(InkDropState state, const ui::LocatedEvent* event); @@ -115,10 +115,10 @@ index 282d1136b02c..e70023d433a1 100644 // Size used for the default SquareInkDropRipple. static constexpr int kDefaultInkDropSize = 24; diff --git ui/views/controls/button/label_button.cc ui/views/controls/button/label_button.cc -index 8fd404aa2395..e82b1a9708b7 100644 +index 79b6dca32725..9dbb179ee3a4 100644 --- ui/views/controls/button/label_button.cc +++ ui/views/controls/button/label_button.cc -@@ -192,6 +192,7 @@ gfx::Size LabelButton::CalculatePreferredSize() const { +@@ -185,6 +185,7 @@ gfx::Size LabelButton::CalculatePreferredSize() const { Label label(GetText(), {label_->font_list()}); label.SetLineHeight(label_->line_height()); label.SetShadows(label_->shadows()); @@ -126,7 +126,7 @@ index 8fd404aa2395..e82b1a9708b7 100644 if (style_ == STYLE_BUTTON) { // Some text appears wider when rendered normally than when rendered bold. -@@ -424,6 +425,12 @@ void LabelButton::GetAccessibleNodeData(ui::AXNodeData* node_data) { +@@ -380,6 +381,12 @@ void LabelButton::GetAccessibleNodeData(ui::AXNodeData* node_data) { Button::GetAccessibleNodeData(node_data); } @@ -140,11 +140,11 @@ index 8fd404aa2395..e82b1a9708b7 100644 const gfx::Size previous_image_size(image_->GetPreferredSize()); UpdateImage(); diff --git ui/views/controls/button/label_button.h ui/views/controls/button/label_button.h -index 1a1ab365ad7c..7b4bb7fc87b1 100644 +index 0200201196b2..6e1617c927ba 100644 --- ui/views/controls/button/label_button.h +++ ui/views/controls/button/label_button.h -@@ -100,6 +100,9 @@ class VIEWS_EXPORT LabelButton : public Button, public NativeThemeDelegate { - std::unique_ptr CreateInkDropHighlight() const override; +@@ -97,6 +97,9 @@ class VIEWS_EXPORT LabelButton : public Button, public NativeThemeDelegate { + void RemoveInkDropLayer(ui::Layer* ink_drop_layer) override; void GetAccessibleNodeData(ui::AXNodeData* node_data) override; + // Sets the font list used by this button. @@ -154,14 +154,14 @@ index 1a1ab365ad7c..7b4bb7fc87b1 100644 ImageView* image() const { return image_; } Label* label() const; diff --git ui/views/controls/label.cc ui/views/controls/label.cc -index b5baab3cbb18..ee82e1b05b60 100644 +index faa027d58c0f..d80e80830fd9 100644 --- ui/views/controls/label.cc +++ ui/views/controls/label.cc -@@ -41,6 +41,20 @@ namespace { - gfx::Insets NonBorderInsets(const Label& label) { - return label.GetInsets() - label.View::GetInsets(); - } -+ +@@ -35,6 +35,22 @@ + + namespace views { + ++namespace { +// Strips accelerator character prefixes in |text| if needed, based on |flags|. +// Returns a range in |text| to underline or Range::InvalidRange() if +// underlining is not needed. @@ -173,12 +173,14 @@ index b5baab3cbb18..ee82e1b05b60 100644 + if ((flags & gfx::Canvas::SHOW_PREFIX) && char_pos != -1) + return gfx::Range(char_pos, char_pos + char_span); + } -+ return gfx::Range::InvalidRange(); ++ return gfx::Range::InvalidRange(); +} - } // namespace - ++} // namespace ++ const char Label::kViewClassName[] = "Label"; -@@ -202,6 +216,14 @@ void Label::SetElideBehavior(gfx::ElideBehavior elide_behavior) { + + Label::Label() : Label(base::string16()) { +@@ -194,6 +210,14 @@ void Label::SetElideBehavior(gfx::ElideBehavior elide_behavior) { ResetLayout(); } @@ -193,7 +195,7 @@ index b5baab3cbb18..ee82e1b05b60 100644 void Label::SetTooltipText(const base::string16& tooltip_text) { DCHECK(handles_tooltips_); tooltip_text_ = tooltip_text; -@@ -430,7 +452,19 @@ std::unique_ptr Label::CreateRenderText() const { +@@ -422,7 +446,19 @@ std::unique_ptr Label::CreateRenderText() const { render_text->SetFontList(font_list()); render_text->set_shadows(shadows()); render_text->SetCursorEnabled(false); @@ -215,7 +217,7 @@ index b5baab3cbb18..ee82e1b05b60 100644 render_text->SetMaxLines(multi_line() ? max_lines() : 0); render_text->SetWordWrapBehavior(full_text_->word_wrap_behavior()); diff --git ui/views/controls/label.h ui/views/controls/label.h -index 9c78b30ab3a0..999eb4048f5c 100644 +index 1c88fb1930ae..0d53ec1236b0 100644 --- ui/views/controls/label.h +++ ui/views/controls/label.h @@ -153,6 +153,10 @@ class VIEWS_EXPORT Label : public View, @@ -229,7 +231,7 @@ index 9c78b30ab3a0..999eb4048f5c 100644 // Sets the tooltip text. Default behavior for a label (single-line) is to // show the full text if it is wider than its bounds. Calling this overrides // the default behavior and lets you set a custom tooltip. To revert to -@@ -370,6 +374,7 @@ class VIEWS_EXPORT Label : public View, +@@ -373,6 +377,7 @@ class VIEWS_EXPORT Label : public View, bool collapse_when_hidden_; int fixed_width_; int max_width_; @@ -308,10 +310,10 @@ index 69a8ed510b6e..3917e7e17fc7 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 c26f578b8c62..660095409e0b 100644 +index ebe01b0dc296..5aa42127583d 100644 --- ui/views/controls/menu/menu_item_view.cc +++ ui/views/controls/menu/menu_item_view.cc -@@ -1011,6 +1011,15 @@ void MenuItemView::PaintBackground(gfx::Canvas* canvas, +@@ -1020,6 +1020,15 @@ void MenuItemView::PaintBackground(gfx::Canvas* canvas, spilling_rect.set_y(spilling_rect.y() - corner_radius_); spilling_rect.set_height(spilling_rect.height() + corner_radius_); canvas->DrawRoundRect(spilling_rect, corner_radius_, flags); @@ -327,7 +329,7 @@ index c26f578b8c62..660095409e0b 100644 } else if (render_selection) { gfx::Rect item_bounds = GetLocalBounds(); if (type_ == ACTIONABLE_SUBMENU) { -@@ -1077,6 +1086,13 @@ void MenuItemView::PaintMinorIconAndText( +@@ -1086,6 +1095,13 @@ void MenuItemView::PaintMinorIconAndText( } SkColor MenuItemView::GetTextColor(bool minor, bool render_selection) const { @@ -449,7 +451,7 @@ index e52edfe5edd7..ab23f3df914e 100644 void WillHideMenu(MenuItemView* menu) override; void OnMenuClosed(MenuItemView* menu) override; diff --git ui/views/controls/menu/menu_scroll_view_container.cc ui/views/controls/menu/menu_scroll_view_container.cc -index 0ad986a75c37..504a66d6a7fc 100644 +index 43752f51ba8e..f15197713548 100644 --- ui/views/controls/menu/menu_scroll_view_container.cc +++ ui/views/controls/menu/menu_scroll_view_container.cc @@ -181,6 +181,11 @@ MenuScrollViewContainer::MenuScrollViewContainer(SubmenuView* content_view) @@ -480,7 +482,7 @@ index 0180b30d383a..c0724b6b80a7 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 998c87a3d6f9..0a587a4b7221 100644 +index a46a3b0f795e..45f265ef98ed 100644 --- ui/views/view.h +++ ui/views/view.h @@ -19,6 +19,7 @@ @@ -489,9 +491,9 @@ index 998c87a3d6f9..0a587a4b7221 100644 #include "base/macros.h" +#include "base/supports_user_data.h" #include "build/build_config.h" + #include "third_party/skia/include/core/SkPath.h" #include "ui/accessibility/ax_enums.mojom.h" - #include "ui/base/accelerators/accelerator.h" -@@ -119,7 +120,8 @@ class VIEWS_EXPORT View : public ui::LayerDelegate, +@@ -118,7 +119,8 @@ class VIEWS_EXPORT View : public ui::LayerDelegate, public ui::AcceleratorTarget, public ui::EventTarget, public ui::EventHandler, 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 78dc2f889..3ecbbc61d 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 20733af1a1d9..7d7c6735d83b 100644 +index 7e2761a4afb1..ee8e65f743f7 100644 --- content/browser/renderer_host/render_widget_host_view_base.cc +++ content/browser/renderer_host/render_widget_host_view_base.cc -@@ -576,6 +576,14 @@ float RenderWidgetHostViewBase::GetDeviceScaleFactor() const { +@@ -589,6 +589,14 @@ float RenderWidgetHostViewBase::GetDeviceScaleFactor() const { return screen_info.device_scale_factor; } @@ -18,7 +18,7 @@ index 20733af1a1d9..7d7c6735d83b 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 62bc30a0539f..82912856b949 100644 +index b7febba61de2..ce9de3b369f9 100644 --- content/browser/renderer_host/render_widget_host_view_base.h +++ content/browser/renderer_host/render_widget_host_view_base.h @@ -84,6 +84,7 @@ class CursorManager; @@ -48,7 +48,7 @@ index 62bc30a0539f..82912856b949 100644 TouchSelectionControllerClientManager* GetTouchSelectionControllerClientManager() override; -@@ -488,6 +494,12 @@ class CONTENT_EXPORT RenderWidgetHostViewBase +@@ -490,6 +496,12 @@ class CONTENT_EXPORT RenderWidgetHostViewBase // helps to position the full screen widget on the correct monitor. virtual void InitAsFullscreen(RenderWidgetHostView* reference_host_view) = 0; @@ -61,7 +61,7 @@ index 62bc30a0539f..82912856b949 100644 // Sets the cursor for this view to the one associated with the specified // cursor_type. virtual void UpdateCursor(const WebCursor& cursor) = 0; -@@ -689,6 +701,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase +@@ -691,6 +703,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase bool is_currently_scrolling_viewport_ = false; @@ -103,10 +103,10 @@ index 1191efc74c2b..d7b133791c97 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 116465bc4465..884e0964b00a 100644 +index b2ee7df96f71..1113d1bc38b7 100644 --- content/public/browser/render_widget_host_view.h +++ content/public/browser/render_widget_host_view.h -@@ -247,6 +247,14 @@ class CONTENT_EXPORT RenderWidgetHostView { +@@ -248,6 +248,14 @@ class CONTENT_EXPORT RenderWidgetHostView { // This must always return the same device scale factor as GetScreenInfo. virtual float GetDeviceScaleFactor() const = 0; @@ -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 13328844822d..39120a96bed8 100644 +index e43193ea912c..457f019db4c4 100644 --- ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc +++ ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc @@ -89,6 +89,7 @@ DesktopWindowTreeHostWin::DesktopWindowTreeHostWin( @@ -160,7 +160,7 @@ index 13328844822d..39120a96bed8 100644 remove_standard_frame_ = params.remove_standard_frame; has_non_client_view_ = Widget::RequiresNonClientView(params.type); -@@ -889,11 +894,15 @@ void DesktopWindowTreeHostWin::HandleFrameChanged() { +@@ -894,11 +899,15 @@ void DesktopWindowTreeHostWin::HandleFrameChanged() { } void DesktopWindowTreeHostWin::HandleNativeFocus(HWND last_focused_window) { @@ -179,10 +179,10 @@ index 13328844822d..39120a96bed8 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 1def35f1eb39..360d10ce2927 100644 +index 57fdabdb047a..db7c6b027452 100644 --- ui/views/widget/desktop_aura/desktop_window_tree_host_win.h +++ ui/views/widget/desktop_aura/desktop_window_tree_host_win.h -@@ -286,6 +286,10 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin +@@ -287,6 +287,10 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin // True if the window should have the frame removed. bool remove_standard_frame_; @@ -194,10 +194,10 @@ index 1def35f1eb39..360d10ce2927 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 5e46a4f6908b..fb9b5e2e8ce9 100644 +index c2ea66ff7552..d90cd3538a40 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( +@@ -145,6 +145,7 @@ DesktopWindowTreeHostX11::DesktopWindowTreeHostX11( use_native_frame_(false), should_maximize_after_map_(false), use_argb_visual_(false), @@ -205,7 +205,7 @@ index 5e46a4f6908b..fb9b5e2e8ce9 100644 drag_drop_client_(NULL), native_widget_delegate_(native_widget_delegate), desktop_native_widget_aura_(desktop_native_widget_aura), -@@ -158,6 +159,7 @@ DesktopWindowTreeHostX11::DesktopWindowTreeHostX11( +@@ -157,6 +158,7 @@ DesktopWindowTreeHostX11::DesktopWindowTreeHostX11( has_window_focus_(false), has_pointer_focus_(false), modal_dialog_counter_(0), @@ -213,7 +213,7 @@ index 5e46a4f6908b..fb9b5e2e8ce9 100644 close_widget_factory_(this), weak_factory_(this) {} -@@ -193,6 +195,8 @@ std::vector DesktopWindowTreeHostX11::GetAllOpenWindows() { +@@ -192,6 +194,8 @@ std::vector DesktopWindowTreeHostX11::GetAllOpenWindows() { } gfx::Rect DesktopWindowTreeHostX11::GetX11RootWindowBounds() const { @@ -222,7 +222,7 @@ index 5e46a4f6908b..fb9b5e2e8ce9 100644 return bounds_in_pixels_; } -@@ -503,7 +507,8 @@ void DesktopWindowTreeHostX11::CloseNow() { +@@ -502,7 +506,8 @@ void DesktopWindowTreeHostX11::CloseNow() { // Actually free our native resources. if (ui::PlatformEventSource::GetInstance()) ui::PlatformEventSource::GetInstance()->RemovePlatformEventDispatcher(this); @@ -232,7 +232,7 @@ index 5e46a4f6908b..fb9b5e2e8ce9 100644 xwindow_ = x11::None; desktop_native_widget_aura_->OnHostClosed(); -@@ -645,6 +650,8 @@ void DesktopWindowTreeHostX11::GetWindowPlacement( +@@ -644,6 +649,8 @@ void DesktopWindowTreeHostX11::GetWindowPlacement( } gfx::Rect DesktopWindowTreeHostX11::GetWindowBoundsInScreen() const { @@ -241,7 +241,7 @@ index 5e46a4f6908b..fb9b5e2e8ce9 100644 return ToDIPRect(bounds_in_pixels_); } -@@ -1272,6 +1279,8 @@ void DesktopWindowTreeHostX11::SetBoundsInPixels( +@@ -1271,6 +1278,8 @@ void DesktopWindowTreeHostX11::SetBoundsInPixels( } gfx::Point DesktopWindowTreeHostX11::GetLocationOnScreenInPixels() const { @@ -250,7 +250,7 @@ index 5e46a4f6908b..fb9b5e2e8ce9 100644 return bounds_in_pixels_.origin(); } -@@ -1412,7 +1421,6 @@ void DesktopWindowTreeHostX11::InitX11Window( +@@ -1411,7 +1420,6 @@ void DesktopWindowTreeHostX11::InitX11Window( XAtom window_type; switch (params.type) { case Widget::InitParams::TYPE_MENU: @@ -258,7 +258,7 @@ index 5e46a4f6908b..fb9b5e2e8ce9 100644 window_type = gfx::GetAtom("_NET_WM_WINDOW_TYPE_MENU"); break; case Widget::InitParams::TYPE_TOOLTIP: -@@ -1468,9 +1476,15 @@ void DesktopWindowTreeHostX11::InitX11Window( +@@ -1467,9 +1475,15 @@ void DesktopWindowTreeHostX11::InitX11Window( attribute_mask |= CWBorderPixel; swa.border_pixel = 0; @@ -275,7 +275,7 @@ index 5e46a4f6908b..fb9b5e2e8ce9 100644 bounds_in_pixels_.y(), bounds_in_pixels_.width(), bounds_in_pixels_.height(), 0, // border width -@@ -2091,6 +2105,10 @@ uint32_t DesktopWindowTreeHostX11::DispatchEvent( +@@ -2090,6 +2104,10 @@ uint32_t DesktopWindowTreeHostX11::DispatchEvent( } break; } @@ -335,10 +335,10 @@ index c547609abf03..5092e2a38b67 100644 base::WeakPtrFactory weak_factory_; diff --git ui/views/widget/widget.cc ui/views/widget/widget.cc -index fff5a5d1556a..f936eaffbbbd 100644 +index 16d18d4bdbc6..ecd276fbeceb 100644 --- ui/views/widget/widget.cc +++ ui/views/widget/widget.cc -@@ -137,6 +137,7 @@ Widget::InitParams::InitParams(Type type) +@@ -138,6 +138,7 @@ Widget::InitParams::InitParams(Type type) use_system_default_icon(false), show_state(ui::SHOW_STATE_DEFAULT), parent(nullptr), @@ -346,7 +346,7 @@ index fff5a5d1556a..f936eaffbbbd 100644 native_widget(nullptr), desktop_window_tree_host(nullptr), layer_type(ui::LAYER_TEXTURED), -@@ -311,7 +312,7 @@ void Widget::Init(const InitParams& in_params) { +@@ -310,7 +311,7 @@ void Widget::Init(const InitParams& in_params) { params.name = params.delegate->GetContentsView()->GetClassName(); params.child |= (params.type == InitParams::TYPE_CONTROL); @@ -354,8 +354,8 @@ index fff5a5d1556a..f936eaffbbbd 100644 + is_top_level_ = !params.child || params.parent_widget; if (params.opacity == views::Widget::InitParams::INFER_OPACITY && - params.type != views::Widget::InitParams::TYPE_WINDOW && -@@ -376,7 +377,12 @@ void Widget::Init(const InitParams& in_params) { + params.type != views::Widget::InitParams::TYPE_WINDOW) { +@@ -375,7 +376,12 @@ void Widget::Init(const InitParams& in_params) { } } else if (params.delegate) { SetContentsView(params.delegate->GetContentsView()); @@ -369,7 +369,7 @@ index fff5a5d1556a..f936eaffbbbd 100644 } // This must come after SetContentsView() or it might not be able to find // the correct NativeTheme (on Linux). See http://crbug.com/384492 -@@ -1118,10 +1124,16 @@ void Widget::OnNativeWidgetDestroyed() { +@@ -1126,10 +1132,16 @@ void Widget::OnNativeWidgetDestroyed() { } gfx::Size Widget::GetMinimumSize() const { @@ -387,10 +387,10 @@ index fff5a5d1556a..f936eaffbbbd 100644 } diff --git ui/views/widget/widget.h ui/views/widget/widget.h -index 30a7c67d7566..92b71e568b63 100644 +index b46f249e8027..9276f5bc9d1c 100644 --- ui/views/widget/widget.h +++ ui/views/widget/widget.h -@@ -240,6 +240,7 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -255,6 +255,7 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, // Whether the widget should be maximized or minimized. ui::WindowShowState show_state; gfx::NativeView parent; @@ -399,10 +399,10 @@ index 30a7c67d7566..92b71e568b63 100644 // the NativeWidget may specify a default size. If the parent is specified, // |bounds| is in the parent's coordinate system. If the parent is not diff --git ui/views/widget/widget_delegate.h ui/views/widget/widget_delegate.h -index 5e394416c1ee..65c61cc29d23 100644 +index 186a5509c13f..557c4f6d38a6 100644 --- ui/views/widget/widget_delegate.h +++ ui/views/widget/widget_delegate.h -@@ -183,6 +183,10 @@ class VIEWS_EXPORT WidgetDelegate { +@@ -192,6 +192,10 @@ class VIEWS_EXPORT WidgetDelegate { // be cycled through with keyboard focus. virtual void GetAccessiblePanes(std::vector* panes) {} @@ -414,10 +414,10 @@ index 5e394416c1ee..65c61cc29d23 100644 virtual ~WidgetDelegate(); diff --git ui/views/widget/widget_hwnd_utils.cc ui/views/widget/widget_hwnd_utils.cc -index c7296fed234d..244d0034a1c4 100644 +index 5bcb8d8b9bae..020fa85573aa 100644 --- ui/views/widget/widget_hwnd_utils.cc +++ ui/views/widget/widget_hwnd_utils.cc -@@ -73,7 +73,7 @@ void CalculateWindowStylesFromInitParams( +@@ -66,7 +66,7 @@ void CalculateWindowStylesFromInitParams( if (!widget_delegate->CanResize()) *style &= ~(WS_THICKFRAME | WS_MAXIMIZEBOX); if (params.remove_standard_frame) @@ -427,10 +427,10 @@ index c7296fed234d..244d0034a1c4 100644 if (native_widget_delegate->IsDialogBox()) { *style |= DS_MODALFRAME; diff --git ui/views/win/hwnd_message_handler.cc ui/views/win/hwnd_message_handler.cc -index 97448327fa37..e69b494dbfeb 100644 +index a15550b204e8..dbf3d981cafd 100644 --- ui/views/win/hwnd_message_handler.cc +++ ui/views/win/hwnd_message_handler.cc -@@ -2895,10 +2895,13 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message, +@@ -2904,10 +2904,13 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message, } else if (event.type() == ui::ET_MOUSEWHEEL) { ui::MouseWheelEvent mouse_wheel_event(msg); // Reroute the mouse wheel to the window under the pointer if applicable. diff --git a/patch/patches/vr_build_873170.patch b/patch/patches/vr_build_873170.patch index 5f78e3ad4..20b5227d7 100644 --- a/patch/patches/vr_build_873170.patch +++ b/patch/patches/vr_build_873170.patch @@ -1,8 +1,8 @@ diff --git chrome/browser/vr/BUILD.gn chrome/browser/vr/BUILD.gn -index b62afd67f585..39dbd57df47a 100644 +index 82b0a808ccea..1e849902a706 100644 --- chrome/browser/vr/BUILD.gn +++ chrome/browser/vr/BUILD.gn -@@ -419,6 +419,7 @@ source_set("vr_base") { +@@ -411,6 +411,7 @@ component("vr_base") { ] deps = [ diff --git a/patch/patches/web_contents_1257_1565.patch b/patch/patches/web_contents_1257_1565.patch index 189cd4141..f9631ff20 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 8d1eaa3e779c..2ccd1ac08b69 100644 +index 2b435929ac89..78418193cac8 100644 --- content/browser/web_contents/web_contents_impl.cc +++ content/browser/web_contents/web_contents_impl.cc -@@ -1973,21 +1973,30 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { +@@ -2026,21 +2026,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 8d1eaa3e779c..2ccd1ac08b69 100644 CHECK(render_view_host_delegate_view_); CHECK(view_.get()); -@@ -2681,6 +2690,15 @@ void WebContentsImpl::CreateNewWindow( +@@ -2734,6 +2743,15 @@ void WebContentsImpl::CreateNewWindow( create_params.renderer_initiated_creation = main_frame_route_id != MSG_ROUTING_NONE; @@ -61,7 +61,7 @@ index 8d1eaa3e779c..2ccd1ac08b69 100644 std::unique_ptr new_contents; if (!is_guest) { create_params.context = view_->GetNativeView(); -@@ -2713,7 +2731,7 @@ void WebContentsImpl::CreateNewWindow( +@@ -2766,7 +2784,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 8d1eaa3e779c..2ccd1ac08b69 100644 } // Save the created window associated with the route so we can show it // later. -@@ -6157,7 +6175,7 @@ InterstitialPageImpl* WebContentsImpl::GetInterstitialForRenderManager() { +@@ -6259,7 +6277,7 @@ InterstitialPageImpl* WebContentsImpl::GetInterstitialForRenderManager() { void WebContentsImpl::CreateRenderWidgetHostViewForRenderManager( RenderViewHost* render_view_host) { RenderWidgetHostViewBase* rwh_view = @@ -95,7 +95,7 @@ index df508da0aef2..f6f4bf42b108 100644 WebContents::CreateParams::CreateParams(const CreateParams& other) = default; diff --git content/public/browser/web_contents.h content/public/browser/web_contents.h -index 060e2194d9ea..7a81678de3d4 100644 +index e6b4cd044895..3d7e8bb57f45 100644 --- content/public/browser/web_contents.h +++ content/public/browser/web_contents.h @@ -73,9 +73,11 @@ class BrowserPluginGuestDelegate; @@ -122,10 +122,10 @@ index 060e2194d9ea..7a81678de3d4 100644 // the value that'll be returned by GetLastActiveTime(). If this is left // default initialized then the value is not passed on to the WebContents diff --git content/public/browser/web_contents_delegate.h content/public/browser/web_contents_delegate.h -index b26e4ea873f6..d07e068233b2 100644 +index 2c162df8ccea..5ea120f7e521 100644 --- content/public/browser/web_contents_delegate.h +++ content/public/browser/web_contents_delegate.h -@@ -54,10 +54,12 @@ class FileSelectListener; +@@ -55,10 +55,12 @@ class FileSelectListener; class JavaScriptDialogManager; class RenderFrameHost; class RenderProcessHost; @@ -138,7 +138,7 @@ index b26e4ea873f6..d07e068233b2 100644 struct ContextMenuParams; struct DropData; struct NativeWebKeyboardEvent; -@@ -318,6 +320,14 @@ class CONTENT_EXPORT WebContentsDelegate { +@@ -319,6 +321,14 @@ class CONTENT_EXPORT WebContentsDelegate { const std::string& partition_id, SessionStorageNamespace* session_storage_namespace); diff --git a/patch/patches/webkit_plugin_info_2015.patch b/patch/patches/webkit_plugin_info_2015.patch index 293e51f81..4273e2ec6 100644 --- a/patch/patches/webkit_plugin_info_2015.patch +++ b/patch/patches/webkit_plugin_info_2015.patch @@ -10,10 +10,10 @@ index 92e9cb865204..4628c56882b4 100644 + GetPlugins(bool refresh, bool is_main_frame, url.mojom.Origin main_frame_origin) => (array plugins); }; diff --git third_party/blink/public/platform/platform.h third_party/blink/public/platform/platform.h -index e3f1a22160b6..9c34940d429e 100644 +index bfc4a95febcf..1d06dbbb09b0 100644 --- third_party/blink/public/platform/platform.h +++ third_party/blink/public/platform/platform.h -@@ -763,6 +763,11 @@ class BLINK_PLATFORM_EXPORT Platform { +@@ -754,6 +754,11 @@ class BLINK_PLATFORM_EXPORT Platform { // runs during Chromium's build step). virtual bool IsTakingV8ContextSnapshot() { return false; } @@ -44,10 +44,10 @@ index 3dac1a5a6f61..4fff23e66f2c 100644 .Top() .GetSecurityContext() diff --git third_party/blink/renderer/core/frame/local_frame.cc third_party/blink/renderer/core/frame/local_frame.cc -index 2f30ff7b0c74..9299e580e113 100644 +index 49b450b48616..712c619c566b 100644 --- third_party/blink/renderer/core/frame/local_frame.cc +++ third_party/blink/renderer/core/frame/local_frame.cc -@@ -1307,7 +1307,7 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() { +@@ -1322,7 +1322,7 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() { PluginData* LocalFrame::GetPluginData() const { if (!Loader().AllowPlugins(kNotAboutToInstantiatePlugin)) return nullptr; @@ -85,7 +85,7 @@ index 347b9a74d341..aa71fb8de4a4 100644 void DevToolsSession::FlushProtocolNotifications() { diff --git third_party/blink/renderer/core/page/page.cc third_party/blink/renderer/core/page/page.cc -index bee3dcd9beb8..ccc38bdc2ca8 100644 +index 20b9122919b3..54b35153c528 100644 --- third_party/blink/renderer/core/page/page.cc +++ third_party/blink/renderer/core/page/page.cc @@ -168,7 +168,8 @@ Page::Page(PageClients& page_clients) @@ -148,7 +148,7 @@ index bee3dcd9beb8..ccc38bdc2ca8 100644 page->NotifyPluginsChanged(); } } -@@ -721,7 +741,8 @@ void Page::Trace(blink::Visitor* visitor) { +@@ -716,7 +736,8 @@ void Page::Trace(blink::Visitor* visitor) { visitor->Trace(overscroll_controller_); visitor->Trace(link_highlights_); visitor->Trace(main_frame_); @@ -159,10 +159,10 @@ index bee3dcd9beb8..ccc38bdc2ca8 100644 visitor->Trace(plugins_changed_observers_); visitor->Trace(next_related_page_); diff --git third_party/blink/renderer/core/page/page.h third_party/blink/renderer/core/page/page.h -index 676f1c715ea8..bf6c9d1c261c 100644 +index f315b62643fd..69acf15ee1f9 100644 --- third_party/blink/renderer/core/page/page.h +++ third_party/blink/renderer/core/page/page.h -@@ -138,7 +138,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized, +@@ -135,7 +135,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized, ViewportDescription GetViewportDescription() const; // Returns the plugin data associated with |main_frame_origin|. @@ -172,7 +172,7 @@ index 676f1c715ea8..bf6c9d1c261c 100644 // Resets the plugin data for all pages in the renderer process and notifies // PluginsChangedObservers. -@@ -363,7 +364,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized, +@@ -353,7 +354,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized, const Member overscroll_controller_; const Member link_highlights_; diff --git a/patch/patches/webkit_pointer_event_781966.patch b/patch/patches/webkit_pointer_event_781966.patch index 72051f469..84199fa97 100644 --- a/patch/patches/webkit_pointer_event_781966.patch +++ b/patch/patches/webkit_pointer_event_781966.patch @@ -1,13 +1,13 @@ diff --git third_party/blink/renderer/core/input/pointer_event_manager.cc third_party/blink/renderer/core/input/pointer_event_manager.cc -index fffde3296b65..c57f7ec9f148 100644 +index d8aadfc7f5bf..d4f538172a1f 100644 --- third_party/blink/renderer/core/input/pointer_event_manager.cc +++ third_party/blink/renderer/core/input/pointer_event_manager.cc @@ -281,7 +281,7 @@ void PointerEventManager::HandlePointerInterruption( for (auto pointer_event : canceled_pointer_events) { // If we are sending a pointercancel we have sent the pointerevent to some // target before. -- DCHECK(node_under_pointer_.Contains(pointer_event->pointerId())); -+ // DCHECK(node_under_pointer_.Contains(pointer_event->pointerId())); - EventTarget* target = - node_under_pointer_.at(pointer_event->pointerId()).target; +- DCHECK(element_under_pointer_.Contains(pointer_event->pointerId())); ++ // DCHECK(element_under_pointer_.Contains(pointer_event->pointerId())); + Element* target = + element_under_pointer_.at(pointer_event->pointerId()).target; diff --git a/patch/patches/webkit_popups.patch b/patch/patches/webkit_popups.patch index 2d6e6c002..1b266ed74 100644 --- a/patch/patches/webkit_popups.patch +++ b/patch/patches/webkit_popups.patch @@ -1,29 +1,20 @@ diff --git third_party/blink/public/web/web_view.h third_party/blink/public/web/web_view.h -index e14420e78971..04bcef2abebf 100644 +index 8d2733739f0e..3d82c096be58 100644 --- third_party/blink/public/web/web_view.h +++ third_party/blink/public/web/web_view.h -@@ -329,6 +329,7 @@ class WebView { +@@ -338,6 +338,7 @@ class WebView { // Sets whether select popup menus should be rendered by the browser. BLINK_EXPORT static void SetUseExternalPopupMenus(bool); + virtual void SetUseExternalPopupMenusThisInstance(bool) = 0; - // Hides any popup (suggestions, selects...) that might be showing. - virtual void HidePopups() = 0; -@@ -353,6 +354,8 @@ class WebView { - unsigned inactive_background_color, - unsigned inactive_foreground_color) = 0; - -+ virtual void SetBaseBackgroundColor(SkColor color) = 0; -+ - // Modal dialog support ------------------------------------------------ - - // Call these methods before and after running a nested, modal event loop + // Cancels and hides the current popup (datetime, select...) if any. + virtual void CancelPagePopup() = 0; diff --git third_party/blink/renderer/core/exported/web_view_impl.cc third_party/blink/renderer/core/exported/web_view_impl.cc -index 9246cf14bcae..73af3c519b82 100644 +index 29cf8ebbb260..ce102fd3a9f4 100644 --- third_party/blink/renderer/core/exported/web_view_impl.cc +++ third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -234,8 +234,13 @@ void WebView::SetUseExternalPopupMenus(bool use_external_popup_menus) { +@@ -235,8 +235,13 @@ void WebView::SetUseExternalPopupMenus(bool use_external_popup_menus) { g_should_use_external_popup_menus = use_external_popup_menus; } @@ -48,10 +39,10 @@ index 9246cf14bcae..73af3c519b82 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 a3c6109531c1..d3a605ff2f09 100644 +index c258d4b6a5c3..932ecbbccd9e 100644 --- third_party/blink/renderer/core/exported/web_view_impl.h +++ third_party/blink/renderer/core/exported/web_view_impl.h -@@ -107,7 +107,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -108,7 +108,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, static HashSet& AllInstances(); // Returns true if popup menus should be rendered by the browser, false if // they should be rendered by WebKit (which is the default). @@ -59,18 +50,9 @@ index a3c6109531c1..d3a605ff2f09 100644 + void SetUseExternalPopupMenusThisInstance(bool) override; + bool UseExternalPopupMenus() const; - // WebWidget methods: - void SetLayerTreeView(WebLayerTreeView*) override; -@@ -250,7 +251,7 @@ class CORE_EXPORT WebViewImpl final : public WebView, - HitTestResult CoreHitTestResultAt(const gfx::Point&); - void InvalidateRect(const IntRect&); - -- void SetBaseBackgroundColor(SkColor); -+ void SetBaseBackgroundColor(SkColor) override; - void SetBaseBackgroundColorOverride(SkColor); - void ClearBaseBackgroundColorOverride(); - void SetBackgroundColorOverride(SkColor); -@@ -599,6 +600,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, + // WebView methods: + void SetPrerendererClient(WebPrerendererClient*) override; +@@ -612,6 +613,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, float fake_page_scale_animation_page_scale_factor_; bool fake_page_scale_animation_use_anchor_; @@ -80,10 +62,10 @@ index a3c6109531c1..d3a605ff2f09 100644 TransformationMatrix device_emulation_transform_; diff --git third_party/blink/renderer/core/page/chrome_client_impl.cc third_party/blink/renderer/core/page/chrome_client_impl.cc -index c7b9280cc19c..b8e22e79f957 100644 +index 07371aae5776..a2a31493c10c 100644 --- third_party/blink/renderer/core/page/chrome_client_impl.cc +++ third_party/blink/renderer/core/page/chrome_client_impl.cc -@@ -801,7 +801,7 @@ bool ChromeClientImpl::HasOpenedPopup() const { +@@ -809,7 +809,7 @@ bool ChromeClientImpl::HasOpenedPopup() const { PopupMenu* ChromeClientImpl::OpenPopupMenu(LocalFrame& frame, HTMLSelectElement& select) { NotifyPopupOpeningObservers(); diff --git a/patch/patches/webview_plugin_2020.patch b/patch/patches/webview_plugin_2020.patch index 93c567a6d..e98126d86 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 1ee0b0b636ca..478f1ee0f12e 100644 +index c57c1bfb287a..1df87e28acd4 100644 --- chrome/app/generated_resources.grd +++ chrome/app/generated_resources.grd -@@ -4517,7 +4517,7 @@ Keep your key file in a safe place. You will need it to create new versions of y +@@ -4535,7 +4535,7 @@ Keep your key file in a safe place. You will need it to create new versions of y diff --git a/patch/patches/win_rt_2274.patch b/patch/patches/win_rt_2274.patch index fae67ac9b..91c935ba4 100644 --- a/patch/patches/win_rt_2274.patch +++ b/patch/patches/win_rt_2274.patch @@ -1,5 +1,5 @@ diff --git services/service_manager/sandbox/win/sandbox_win.cc services/service_manager/sandbox/win/sandbox_win.cc -index 8d7453d37d63..4bb0d6e48d61 100644 +index f4c3eeda2285..7fbd7921be0b 100644 --- services/service_manager/sandbox/win/sandbox_win.cc +++ services/service_manager/sandbox/win/sandbox_win.cc @@ -917,8 +917,11 @@ sandbox::ResultCode SandboxWin::StartSandboxedProcess(