From da53451f9702250f811a3493035d3a585dde6819 Mon Sep 17 00:00:00 2001 From: Marshall Greenblatt Date: Tue, 2 Oct 2018 15:14:11 +0300 Subject: [PATCH] Update to Chromium version 71.0.3567.0 (#595360) - Configuration of OSR VSync interval is currently missing (issue #2517) - Rename VERSION to VERSION.in to fix libc++ compile error (issue #2518) --- BUILD.gn | 4 +- CHROMIUM_BUILD_COMPATIBILITY.txt | 2 +- VERSION => VERSION.in | 0 include/capi/cef_render_handler_capi.h | 15 +- libcef/browser/browser_context_impl.cc | 6 +- libcef/browser/browser_host_impl.cc | 20 +- libcef/browser/browser_host_impl.h | 2 +- libcef/browser/browser_urlrequest_impl.cc | 6 +- libcef/browser/chrome_profile_stub.cc | 21 +- libcef/browser/chrome_profile_stub.h | 4 +- libcef/browser/content_browser_client.cc | 15 +- libcef/browser/content_browser_client.h | 5 +- libcef/browser/context.cc | 2 +- libcef/browser/cookie_manager_impl.cc | 39 ++-- libcef/browser/devtools_frontend.cc | 12 +- libcef/browser/download_manager_delegate.cc | 4 +- libcef/browser/extensions/extension_system.cc | 10 +- .../extensions/extensions_browser_client.cc | 5 + .../extensions/extensions_browser_client.h | 1 + libcef/browser/file_dialog_manager.cc | 36 ++-- libcef/browser/file_dialog_manager.h | 8 +- libcef/browser/file_dialog_runner.h | 6 +- .../browser_platform_delegate_native_linux.cc | 3 - .../browser/native/file_dialog_runner_mac.mm | 31 +-- .../browser/native/file_dialog_runner_win.cc | 10 +- libcef/browser/net/network_delegate.cc | 10 +- libcef/browser/net/network_delegate.h | 6 +- .../net/url_request_context_getter_impl.cc | 8 +- libcef/browser/osr/osr_accessibility_util.cc | 21 +- .../osr/render_widget_host_view_osr.cc | 17 +- .../browser/osr/render_widget_host_view_osr.h | 5 +- libcef/browser/osr/web_contents_view_osr.cc | 8 +- libcef/browser/osr/web_contents_view_osr.h | 4 +- libcef/browser/printing/print_view_manager.cc | 40 ++-- .../printing/print_view_manager_base.cc | 26 +-- .../printing/print_view_manager_base.h | 4 +- .../printing/printing_message_filter.cc | 8 +- libcef/browser/request_context_impl.cc | 15 +- .../resource_dispatcher_host_delegate.cc | 6 +- .../speech_recognition_manager_delegate.cc | 6 +- libcef/browser/thread_util.h | 10 +- libcef/browser/trace_subscriber.cc | 4 +- libcef/browser/web_plugin_impl.cc | 6 +- libcef/common/content_client.cc | 3 +- .../extensions/extensions_api_provider.cc | 18 +- .../extensions/extensions_api_provider.h | 5 +- libcef/common/extensions/extensions_client.cc | 1 - libcef/common/task_runner_impl.cc | 7 +- libcef/common/widevine_loader.cc | 5 +- libcef/common/widevine_loader.h | 8 +- libcef/renderer/blink_glue.cc | 4 +- libcef/renderer/browser_impl.cc | 3 +- libcef/renderer/content_renderer_client.cc | 19 +- .../extensions_dispatcher_delegate.cc | 2 +- .../extensions/extensions_renderer_client.cc | 12 -- libcef/renderer/frame_impl.cc | 13 +- libcef/renderer/render_frame_observer.cc | 16 +- libcef/renderer/render_frame_observer.h | 4 +- libcef/renderer/render_message_filter.cc | 6 +- libcef/renderer/v8_impl.cc | 19 +- patch/patches/browser_child_frame_2507.patch | 2 +- patch/patches/browser_plugin_guest_1565.patch | 68 +++---- patch/patches/chrome_browser.patch | 8 +- patch/patches/chrome_browser_profiles.patch | 4 +- patch/patches/chrome_plugins.patch | 30 +-- patch/patches/chrome_renderer.patch | 6 +- patch/patches/chrome_widevine.patch | 35 ++-- patch/patches/content_2015.patch | 76 +++---- patch/patches/crashpad_1995.patch | 6 +- patch/patches/crashpad_tp_1995.patch | 2 +- patch/patches/devtools_product_2300.patch | 4 +- patch/patches/extensions_1947.patch | 18 +- patch/patches/external_textures_1006.patch | 140 ++++++------- patch/patches/gn_config.patch | 10 +- patch/patches/gritsettings.patch | 2 +- patch/patches/ime_1610.patch | 4 +- patch/patches/linux_build.patch | 2 +- patch/patches/linux_gtk_2014.patch | 26 +-- patch/patches/linux_poll_2466.patch | 9 +- patch/patches/message_loop.patch | 6 +- patch/patches/message_pump_mac_2495.patch | 4 +- patch/patches/net_filter_515.patch | 8 +- .../net_security_expiration_1994.patch | 4 +- patch/patches/net_urlrequest_1327.patch | 4 +- patch/patches/pdfium_print_549365.patch | 4 +- patch/patches/prefs_content_1161.patch | 12 +- .../print_header_footer_1478_1565.patch | 88 ++++----- patch/patches/printing_context_2196.patch | 4 +- .../renderer_preferences_util_545103.patch | 2 +- patch/patches/resource_bundle_2512.patch | 4 +- patch/patches/rwh_background_color_1984.patch | 8 +- patch/patches/storage_partition_1973.patch | 185 +++++++++--------- patch/patches/views_1749_2102.patch | 20 +- ...views_widget_180_1481_1565_1677_1749.patch | 50 ++--- patch/patches/vr_build_873170.patch | 4 +- patch/patches/web_contents_1257_1565.patch | 22 +-- patch/patches/webkit_plugin_info_2015.patch | 36 ++-- .../patches/webkit_pointer_event_781966.patch | 4 +- patch/patches/webkit_popups.patch | 18 +- patch/patches/webui_2037.patch | 92 +-------- patch/patches/webview_plugin_2020.patch | 4 +- patch/patches/win_rt_2274.patch | 2 +- tests/ceftests/plugin_unittest.cc | 4 - tests/ceftests/request_unittest.cc | 4 +- tests/ceftests/scheme_handler_unittest.cc | 33 ++-- tests/ceftests/webui_unittest.cc | 13 +- tools/gclient_hook.py | 2 +- tools/make_distrib.py | 2 +- tools/make_version_header.bat | 2 +- tools/make_version_header.sh | 2 +- 110 files changed, 836 insertions(+), 879 deletions(-) rename VERSION => VERSION.in (100%) diff --git a/BUILD.gn b/BUILD.gn index 02d0d0f9c..d4f4944de 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -173,7 +173,7 @@ if (is_mac) { [ rebase_path("//cef", root_build_dir) ], "trim string", []) - cef_version_file = "//cef/VERSION" + cef_version_file = "//cef/VERSION.in" # The tweak_info_plist.py script requires a version number with 4 parts. CEF # uses a version number with 3 parts so just set the last part to 0. @@ -679,7 +679,7 @@ static_library("libcef_static") { "//components/printing/renderer", "//components/safe_browsing/db:test_database_manager", "//components/services/pdf_compositor:pdf_compositor_manifest", - "//components/services/pdf_compositor/public/cpp:utils", + "//components/services/pdf_compositor/public/cpp:factory", "//components/services/pdf_compositor/public/interfaces", "//components/proxy_config", "//components/update_client", diff --git a/CHROMIUM_BUILD_COMPATIBILITY.txt b/CHROMIUM_BUILD_COMPATIBILITY.txt index 2e7394b3f..b1780a257 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/70.0.3538.0', + 'chromium_checkout': 'refs/tags/71.0.3567.0', } diff --git a/VERSION b/VERSION.in similarity index 100% rename from VERSION rename to VERSION.in diff --git a/include/capi/cef_render_handler_capi.h b/include/capi/cef_render_handler_capi.h index 581c08224..8bb8c3c2e 100644 --- a/include/capi/cef_render_handler_capi.h +++ b/include/capi/cef_render_handler_capi.h @@ -33,7 +33,7 @@ // by hand. See the translator.README.txt file in the tools directory for // more information. // -// $hash=ef8abd4a01fe1047abc0d2ab1c359704611a60ac$ +// $hash=13ef0e12e6fdc3a0be38656c71b913a4eaaab61b$ // #ifndef CEF_INCLUDE_CAPI_CEF_RENDER_HANDLER_CAPI_H_ @@ -131,7 +131,8 @@ typedef struct _cef_render_handler_t { // contains the pixel data for the whole image. |dirtyRects| contains the set // of rectangles in pixel coordinates that need to be repainted. |buffer| will // be |width|*|height|*4 bytes in size and represents a BGRA image with an - // upper-left origin. + // upper-left origin. This function is only called when + // cef_window_tInfo::shared_texture_enabled is set to false (0). /// void(CEF_CALLBACK* on_paint)(struct _cef_render_handler_t* self, struct _cef_browser_t* browser, @@ -143,9 +144,13 @@ typedef struct _cef_render_handler_t { int height); /// - // Called when an view has been rendered to the given shared texture handle. - // Currently, the shared handle represents a D3D11 Texture2D that can be - // accessed with the OpenSharedResource function available from a ID3D11Device + // Called when an element has been rendered to the shared texture handle. + // |type| indicates whether the element is the view or the popup widget. + // |dirtyRects| contains the set of rectangles in pixel coordinates that need + // to be repainted. |shared_handle| is the handle for a D3D11 Texture2D that + // can be accessed via ID3D11Device using the OpenSharedResource function. + // This function is only called when cef_window_tInfo::shared_texture_enabled + // is set to true (1), and is currently only supported on Windows. /// void(CEF_CALLBACK* on_accelerated_paint)(struct _cef_render_handler_t* self, struct _cef_browser_t* browser, diff --git a/libcef/browser/browser_context_impl.cc b/libcef/browser/browser_context_impl.cc index 68bd2dbc4..a6e8d019d 100644 --- a/libcef/browser/browser_context_impl.cc +++ b/libcef/browser/browser_context_impl.cc @@ -34,6 +34,7 @@ #include "components/visitedlink/browser/visitedlink_event_listener.h" #include "components/visitedlink/browser/visitedlink_master.h" #include "components/zoom/zoom_event_manager.h" +#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/download_manager.h" #include "content/public/browser/storage_partition.h" @@ -284,7 +285,8 @@ void CefBrowserContextImpl::Initialize() { // Initialize proxy configuration tracker. pref_proxy_config_tracker_.reset(new PrefProxyConfigTrackerImpl( - GetPrefs(), BrowserThread::GetTaskRunnerForThread(BrowserThread::IO))); + GetPrefs(), + base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO}))); CefBrowserContext::PostInitialize(); @@ -445,7 +447,7 @@ net::URLRequestContextGetter* CefBrowserContextImpl::CreateRequestContext( DCHECK(!url_request_getter_.get()); auto io_thread_runner = - content::BrowserThread::GetTaskRunnerForThread(BrowserThread::IO); + base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO}); // Initialize the proxy configuration service. // TODO(cef): Determine if we can use the Chrome/Mojo implementation from diff --git a/libcef/browser/browser_host_impl.cc b/libcef/browser/browser_host_impl.cc index b5317efe0..016802e87 100644 --- a/libcef/browser/browser_host_impl.cc +++ b/libcef/browser/browser_host_impl.cc @@ -50,7 +50,7 @@ #include "components/zoom/zoom_controller.h" #include "content/browser/gpu/compositor_util.h" #include "content/browser/web_contents/web_contents_impl.h" -#include "content/common/view_messages.h" +#include "content/common/widget_messages.h" #include "content/public/browser/desktop_media_id.h" #include "content/public/browser/download_manager.h" #include "content/public/browser/download_request_utils.h" @@ -71,7 +71,7 @@ #include "content/public/common/favicon_url.h" #include "extensions/browser/process_manager.h" #include "net/base/net_errors.h" -#include "third_party/blink/public/web/web_find_options.h" +#include "third_party/blink/public/mojom/frame/find_in_page.mojom.h" #include "ui/events/base_event_utils.h" #if defined(OS_MACOSX) @@ -622,7 +622,7 @@ void CefBrowserHostImpl::CloseBrowser(bool force_close) { if (contents && contents->NeedToFireBeforeUnload()) { // Will result in a call to BeforeUnloadFired() and, if the close isn't // canceled, CloseContents(). - contents->DispatchBeforeUnload(); + contents->DispatchBeforeUnload(false /* auto_cancel */); } else { CloseContents(contents); } @@ -846,11 +846,11 @@ void CefBrowserHostImpl::Find(int identifier, else find_request_id_counter_ = identifier; - blink::WebFindOptions options; - options.forward = forward; - options.match_case = matchCase; - options.find_next = findNext; - web_contents()->Find(identifier, searchText, options); + auto options = blink::mojom::FindOptions::New(); + options->forward = forward; + options->match_case = matchCase; + options->find_next = findNext; + web_contents()->Find(identifier, searchText, std::move(options)); } else { CEF_POST_TASK(CEF_UIT, base::BindOnce(&CefBrowserHostImpl::Find, this, identifier, @@ -2566,7 +2566,7 @@ CefBrowserHostImpl::GetJavaScriptDialogManager(content::WebContents* source) { void CefBrowserHostImpl::RunFileChooser( content::RenderFrameHost* render_frame_host, - const content::FileChooserParams& params) { + const blink::mojom::FileChooserParams& params) { EnsureFileDialogManager(); file_dialog_manager_->RunFileChooser(render_frame_host, params); } @@ -2929,7 +2929,7 @@ void CefBrowserHostImpl::DidUpdateFaviconURL( bool CefBrowserHostImpl::OnMessageReceived(const IPC::Message& message) { // Handle the cursor message here if mouse cursor change is disabled instead // of propegating the message to the normal handler. - if (message.type() == ViewHostMsg_SetCursor::ID) + if (message.type() == WidgetHostMsg_SetCursor::ID) return IsMouseCursorChangeDisabled(); bool handled = true; diff --git a/libcef/browser/browser_host_impl.h b/libcef/browser/browser_host_impl.h index e2aeeb520..e0dc160fb 100644 --- a/libcef/browser/browser_host_impl.h +++ b/libcef/browser/browser_host_impl.h @@ -451,7 +451,7 @@ class CefBrowserHostImpl : public CefBrowserHost, content::JavaScriptDialogManager* GetJavaScriptDialogManager( content::WebContents* source) override; void RunFileChooser(content::RenderFrameHost* render_frame_host, - const content::FileChooserParams& params) override; + const blink::mojom::FileChooserParams& params) override; bool EmbedsFullscreenWidget() const override; void EnterFullscreenModeForTab( content::WebContents* web_contents, diff --git a/libcef/browser/browser_urlrequest_impl.cc b/libcef/browser/browser_urlrequest_impl.cc index 2ad7c3be2..9e8f90698 100644 --- a/libcef/browser/browser_urlrequest_impl.cc +++ b/libcef/browser/browser_urlrequest_impl.cc @@ -19,6 +19,8 @@ #include "base/logging.h" #include "base/message_loop/message_loop.h" #include "base/strings/string_util.h" +#include "base/task/post_task.h" +#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "net/base/io_buffer.h" #include "net/base/net_errors.h" @@ -173,8 +175,8 @@ class CefBrowserURLRequest::Context return false; } - BrowserThread::PostTaskAndReply( - BrowserThread::UI, FROM_HERE, + base::PostTaskWithTraitsAndReply( + FROM_HERE, {BrowserThread::UI}, base::Bind(&CefBrowserURLRequest::Context::GetRequestContextOnUIThread, this), base::Bind(&CefBrowserURLRequest::Context::ContinueOnOriginatingThread, diff --git a/libcef/browser/chrome_profile_stub.cc b/libcef/browser/chrome_profile_stub.cc index e19d96773..7f1f84241 100644 --- a/libcef/browser/chrome_profile_stub.cc +++ b/libcef/browser/chrome_profile_stub.cc @@ -5,6 +5,9 @@ #include "libcef/browser/chrome_profile_stub.h" +#include "content/public/browser/resource_context.h" +#include "net/url_request/url_request_context.h" + ChromeProfileStub::ChromeProfileStub() {} ChromeProfileStub::~ChromeProfileStub() {} @@ -53,7 +56,6 @@ bool ChromeProfileStub::IsChild() const { } bool ChromeProfileStub::IsLegacySupervised() const { - NOTREACHED(); return false; } @@ -68,11 +70,13 @@ PrefService* ChromeProfileStub::GetOffTheRecordPrefs() { return NULL; } -net::URLRequestContextGetter* -ChromeProfileStub::GetRequestContextForExtensions() { - // TODO(cef): Consider creating a separate context for extensions to match - // Chrome behavior. - return GetRequestContext(); +base::OnceCallback +ChromeProfileStub::GetExtensionsCookieStoreGetter() { + return base::BindOnce( + [](content::ResourceContext* context) { + return context->GetRequestContext()->cookie_store(); + }, + GetResourceContext()); } bool ChromeProfileStub::IsSameProfile(Profile* profile) { @@ -95,11 +99,6 @@ void ChromeProfileStub::set_last_selected_directory( NOTREACHED(); } -chrome_browser_net::Predictor* ChromeProfileStub::GetNetworkPredictor() { - NOTREACHED(); - return NULL; -} - GURL ChromeProfileStub::GetHomePage() { NOTREACHED(); return GURL(); diff --git a/libcef/browser/chrome_profile_stub.h b/libcef/browser/chrome_profile_stub.h index 421faf3bd..635ff24bd 100644 --- a/libcef/browser/chrome_profile_stub.h +++ b/libcef/browser/chrome_profile_stub.h @@ -33,12 +33,12 @@ class ChromeProfileStub : public Profile { bool IsLegacySupervised() const override; ExtensionSpecialStoragePolicy* GetExtensionSpecialStoragePolicy() override; PrefService* GetOffTheRecordPrefs() override; - net::URLRequestContextGetter* GetRequestContextForExtensions() override; + base::OnceCallback GetExtensionsCookieStoreGetter() + override; bool IsSameProfile(Profile* profile) override; base::Time GetStartTime() const override; base::FilePath last_selected_directory() override; void set_last_selected_directory(const base::FilePath& path) override; - chrome_browser_net::Predictor* GetNetworkPredictor() override; GURL GetHomePage() override; bool WasCreatedByVersionOrLater(const std::string& version) override; void SetExitType(ExitType exit_type) override; diff --git a/libcef/browser/content_browser_client.cc b/libcef/browser/content_browser_client.cc index 8fd56f513..4fc21bcd5 100644 --- a/libcef/browser/content_browser_client.cc +++ b/libcef/browser/content_browser_client.cc @@ -93,6 +93,7 @@ #include "services/service_manager/sandbox/switches.h" #include "storage/browser/quota/quota_settings.h" #include "third_party/blink/public/web/web_window_features.h" +#include "third_party/widevine/cdm/buildflags.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/resource/resource_bundle.h" #include "ui/base/ui_base_switches.h" @@ -739,7 +740,7 @@ void CefContentBrowserClient::AppendExtraCommandLineSwitches( command_line->CopySwitchesFrom(*browser_cmd, kSwitchNames, arraysize(kSwitchNames)); -#if defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) +#if BUILDFLAG(ENABLE_WIDEVINE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) if (!browser_cmd->HasSwitch(service_manager::switches::kNoSandbox)) { // Pass the Widevine CDM path to the Zygote process. See comments in // CefWidevineLoader::AddContentDecryptionModules. @@ -1085,16 +1086,20 @@ bool CefContentBrowserClient::WillCreateURLLoaderFactory( content::BrowserContext* browser_context, content::RenderFrameHost* frame, bool is_navigation, - const GURL& url, - network::mojom::URLLoaderFactoryRequest* factory_request) { + const url::Origin& request_initiator, + network::mojom::URLLoaderFactoryRequest* factory_request, + bool* bypass_redirect_checks) { if (!extensions::ExtensionsEnabled()) return false; auto* web_request_api = extensions::BrowserContextKeyedAPIFactory::Get( browser_context); - return web_request_api->MaybeProxyURLLoaderFactory(frame, is_navigation, - factory_request); + bool use_proxy = web_request_api->MaybeProxyURLLoaderFactory( + frame, is_navigation, factory_request); + if (bypass_redirect_checks) + *bypass_redirect_checks = use_proxy; + return use_proxy; } bool CefContentBrowserClient::HandleExternalProtocol( diff --git a/libcef/browser/content_browser_client.h b/libcef/browser/content_browser_client.h index 4c0070e72..e2df01382 100644 --- a/libcef/browser/content_browser_client.h +++ b/libcef/browser/content_browser_client.h @@ -142,8 +142,9 @@ class CefContentBrowserClient : public content::ContentBrowserClient { content::BrowserContext* browser_context, content::RenderFrameHost* frame, bool is_navigation, - const GURL& url, - network::mojom::URLLoaderFactoryRequest* factory_request) override; + const url::Origin& request_initiator, + network::mojom::URLLoaderFactoryRequest* factory_request, + bool* bypass_redirect_checks) override; bool HandleExternalProtocol( const GURL& url, diff --git a/libcef/browser/context.cc b/libcef/browser/context.cc index c3a16585f..82eee87c8 100644 --- a/libcef/browser/context.cc +++ b/libcef/browser/context.cc @@ -515,7 +515,7 @@ void CefContext::OnContextInitialized() { static_cast(g_browser_process) ->OnContextInitialized(); -#if defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) +#if BUILDFLAG(ENABLE_WIDEVINE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) CefWidevineLoader::GetInstance()->OnContextInitialized(); #endif diff --git a/libcef/browser/cookie_manager_impl.cc b/libcef/browser/cookie_manager_impl.cc index 2d4061a04..245ff9657 100644 --- a/libcef/browser/cookie_manager_impl.cc +++ b/libcef/browser/cookie_manager_impl.cc @@ -22,6 +22,7 @@ #include "chrome/browser/browser_process.h" #include "components/net_log/chrome_net_log.h" #include "content/browser/storage_partition_impl.h" +#include "content/public/browser/browser_task_traits.h" #include "net/cookies/cookie_util.h" #include "net/cookies/parsed_cookie.h" #include "net/extras/sqlite/sqlite_persistent_cookie_store.h" @@ -138,7 +139,7 @@ void CefCookieManagerImpl::Initialize( if (request_context.get()) { request_context_ = request_context; request_context_->GetRequestContextImpl( - BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), + base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO}), base::Bind(&CefCookieManagerImpl::InitWithContext, this, callback)); } else { SetStoragePath(path, persist_session_cookies, callback); @@ -222,9 +223,10 @@ void CefCookieManagerImpl::SetSupportedSchemes( bool CefCookieManagerImpl::VisitAllCookies( CefRefPtr visitor) { - GetCookieStore(BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), - base::Bind(&CefCookieManagerImpl::VisitAllCookiesInternal, - this, visitor)); + GetCookieStore( + base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO}), + base::Bind(&CefCookieManagerImpl::VisitAllCookiesInternal, this, + visitor)); return true; } @@ -232,9 +234,10 @@ bool CefCookieManagerImpl::VisitUrlCookies( const CefString& url, bool includeHttpOnly, CefRefPtr visitor) { - GetCookieStore(BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), - base::Bind(&CefCookieManagerImpl::VisitUrlCookiesInternal, - this, url, includeHttpOnly, visitor)); + GetCookieStore( + base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO}), + base::Bind(&CefCookieManagerImpl::VisitUrlCookiesInternal, this, url, + includeHttpOnly, visitor)); return true; } @@ -245,9 +248,10 @@ bool CefCookieManagerImpl::SetCookie(const CefString& url, if (!gurl.is_valid()) return false; - GetCookieStore(BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), - base::Bind(&CefCookieManagerImpl::SetCookieInternal, this, - gurl, cookie, callback)); + GetCookieStore( + base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO}), + base::Bind(&CefCookieManagerImpl::SetCookieInternal, this, gurl, cookie, + callback)); return true; } @@ -260,9 +264,10 @@ bool CefCookieManagerImpl::DeleteCookies( if (!gurl.is_empty() && !gurl.is_valid()) return false; - GetCookieStore(BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), - base::Bind(&CefCookieManagerImpl::DeleteCookiesInternal, this, - gurl, cookie_name, callback)); + GetCookieStore( + base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO}), + base::Bind(&CefCookieManagerImpl::DeleteCookiesInternal, this, gurl, + cookie_name, callback)); return true; } @@ -304,7 +309,8 @@ bool CefCookieManagerImpl::SetStoragePath( if (base::DirectoryExists(new_path) || base::CreateDirectory(new_path)) { const base::FilePath& cookie_path = new_path.AppendASCII("Cookies"); persistent_store = new net::SQLitePersistentCookieStore( - cookie_path, BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), + cookie_path, + base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO}), // Intentionally using the background task runner exposed by CEF to // facilitate unit test expectations. This task runner MUST be // configured with BLOCK_SHUTDOWN. @@ -334,7 +340,7 @@ bool CefCookieManagerImpl::SetStoragePath( bool CefCookieManagerImpl::FlushStore( CefRefPtr callback) { GetCookieStore( - BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), + base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO}), base::Bind(&CefCookieManagerImpl::FlushStoreInternal, this, callback)); return true; } @@ -424,7 +430,8 @@ void CefCookieManagerImpl::RunMethodWithContext( } else if (request_context_.get()) { // Try again after the request context is initialized. request_context_->GetRequestContextImpl( - BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), method); + base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO}), + method); } else { NOTREACHED(); } diff --git a/libcef/browser/devtools_frontend.cc b/libcef/browser/devtools_frontend.cc index 23a043993..6ce7d1441 100644 --- a/libcef/browser/devtools_frontend.cc +++ b/libcef/browser/devtools_frontend.cc @@ -21,10 +21,12 @@ #include "base/strings/string_number_conversions.h" #include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversions.h" +#include "base/task/post_task.h" #include "base/values.h" #include "chrome/common/pref_names.h" #include "components/prefs/scoped_user_pref_update.h" #include "content/public/browser/browser_context.h" +#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/navigation_handle.h" #include "content/public/browser/render_frame_host.h" @@ -87,8 +89,8 @@ int ResponseWriter::Write(net::IOBuffer* buffer, base::Value* id = new base::Value(stream_id_); base::Value* chunkValue = new base::Value(chunk); - content::BrowserThread::PostTask( - content::BrowserThread::UI, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {content::BrowserThread::UI}, base::BindOnce(&CefDevToolsFrontend::CallClientFunction, shell_devtools_, "DevToolsAPI.streamWrite", base::Owned(id), base::Owned(chunkValue), nullptr)); @@ -168,9 +170,9 @@ void CefDevToolsFrontend::InspectElementAt(int x, int y) { } void CefDevToolsFrontend::Close() { - content::BrowserThread::PostTask(content::BrowserThread::UI, FROM_HERE, - base::Bind(&CefBrowserHostImpl::CloseBrowser, - frontend_browser_.get(), true)); + base::PostTaskWithTraits(FROM_HERE, {content::BrowserThread::UI}, + base::Bind(&CefBrowserHostImpl::CloseBrowser, + frontend_browser_.get(), true)); } void CefDevToolsFrontend::DisconnectFromTarget() { diff --git a/libcef/browser/download_manager_delegate.cc b/libcef/browser/download_manager_delegate.cc index 7343b95d8..0c46bbd78 100644 --- a/libcef/browser/download_manager_delegate.cc +++ b/libcef/browser/download_manager_delegate.cc @@ -17,8 +17,8 @@ #include "content/public/browser/browser_context.h" #include "content/public/browser/download_item_utils.h" #include "content/public/browser/web_contents.h" -#include "content/public/common/file_chooser_params.h" #include "net/base/filename_util.h" +#include "third_party/blink/public/mojom/choosers/file_chooser.mojom.h" using download::DownloadItem; using content::DownloadManager; @@ -129,7 +129,7 @@ class CefBeforeDownloadCallbackImpl : public CefBeforeDownloadCallback { handled = true; CefFileDialogRunner::FileChooserParams params; - params.mode = content::FileChooserParams::Save; + params.mode = blink::mojom::FileChooserParams::Mode::kSave; if (!suggested_path.empty()) { params.default_file_name = suggested_path; if (!suggested_path.Extension().empty()) { diff --git a/libcef/browser/extensions/extension_system.cc b/libcef/browser/extensions/extension_system.cc index 3e0dc3688..b53480307 100644 --- a/libcef/browser/extensions/extension_system.cc +++ b/libcef/browser/extensions/extension_system.cc @@ -20,11 +20,13 @@ #include "base/path_service.h" #include "base/strings/string_tokenizer.h" #include "base/strings/utf_string_conversions.h" +#include "base/task/post_task.h" #include "base/threading/thread_restrictions.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/chrome_paths.h" #include "components/crx_file/id_util.h" #include "content/public/browser/browser_context.h" +#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_details.h" #include "content/public/browser/notification_service.h" @@ -420,8 +422,8 @@ void CefExtensionSystem::RegisterExtensionWithRequestContexts( const base::Closure& callback) { // TODO(extensions): The |incognito_enabled| value should be set based on // manifest settings. - BrowserThread::PostTaskAndReply( - BrowserThread::IO, FROM_HERE, + base::PostTaskWithTraitsAndReply( + FROM_HERE, {BrowserThread::IO}, base::Bind(&InfoMap::AddExtension, info_map(), base::RetainedRef(extension), base::Time::Now(), true, // incognito_enabled @@ -434,8 +436,8 @@ void CefExtensionSystem::RegisterExtensionWithRequestContexts( void CefExtensionSystem::UnregisterExtensionWithRequestContexts( const std::string& extension_id, const UnloadedExtensionReason reason) { - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {BrowserThread::IO}, base::Bind(&InfoMap::RemoveExtension, info_map(), extension_id, reason)); } diff --git a/libcef/browser/extensions/extensions_browser_client.cc b/libcef/browser/extensions/extensions_browser_client.cc index 4ef22768b..751bc5a0f 100644 --- a/libcef/browser/extensions/extensions_browser_client.cc +++ b/libcef/browser/extensions/extensions_browser_client.cc @@ -259,6 +259,11 @@ bool CefExtensionsBrowserClient::IsInDemoMode() { return false; } +bool CefExtensionsBrowserClient::IsScreensaverInDemoMode( + const std::string& app_id) { + return false; +} + bool CefExtensionsBrowserClient::IsRunningInForcedAppMode() { return false; } diff --git a/libcef/browser/extensions/extensions_browser_client.h b/libcef/browser/extensions/extensions_browser_client.h index 2f002058d..e501a57bc 100644 --- a/libcef/browser/extensions/extensions_browser_client.h +++ b/libcef/browser/extensions/extensions_browser_client.h @@ -85,6 +85,7 @@ class CefExtensionsBrowserClient : public ExtensionsBrowserClient { bool DidVersionUpdate(content::BrowserContext* context) override; void PermitExternalProtocolHandler() override; bool IsInDemoMode() override; + bool IsScreensaverInDemoMode(const std::string& app_id) override; bool IsRunningInForcedAppMode() override; bool IsAppModeForcedForApp(const ExtensionId& extension_id) override; bool IsLoggedInAsPublicAccount() override; diff --git a/libcef/browser/file_dialog_manager.cc b/libcef/browser/file_dialog_manager.cc index 4cb3b6ea8..6f283212a 100644 --- a/libcef/browser/file_dialog_manager.cc +++ b/libcef/browser/file_dialog_manager.cc @@ -176,16 +176,16 @@ void CefFileDialogManager::RunFileDialog( CefFileDialogRunner::FileChooserParams params; switch (mode & FILE_DIALOG_TYPE_MASK) { case FILE_DIALOG_OPEN: - params.mode = content::FileChooserParams::Open; + params.mode = blink::mojom::FileChooserParams::Mode::kOpen; break; case FILE_DIALOG_OPEN_MULTIPLE: - params.mode = content::FileChooserParams::OpenMultiple; + params.mode = blink::mojom::FileChooserParams::Mode::kOpenMultiple; break; case FILE_DIALOG_OPEN_FOLDER: - params.mode = content::FileChooserParams::UploadFolder; + params.mode = blink::mojom::FileChooserParams::Mode::kUploadFolder; break; case FILE_DIALOG_SAVE: - params.mode = content::FileChooserParams::Save; + params.mode = blink::mojom::FileChooserParams::Mode::kSave; break; } @@ -210,15 +210,15 @@ void CefFileDialogManager::RunFileDialog( void CefFileDialogManager::RunFileChooser( content::RenderFrameHost* render_frame_host, - const content::FileChooserParams& params) { + const blink::mojom::FileChooserParams& params) { CEF_REQUIRE_UIT(); DCHECK(render_frame_host); CefFileDialogRunner::FileChooserParams cef_params; - static_cast(cef_params) = params; + static_cast(cef_params) = params; CefFileDialogRunner::RunFileChooserCallback callback; - if (params.mode == content::FileChooserParams::UploadFolder) { + if (params.mode == blink::mojom::FileChooserParams::Mode::kUploadFolder) { callback = base::Bind( &CefFileDialogManager::OnRunFileChooserUploadFolderDelegateCallback, weak_ptr_factory_.GetWeakPtr(), params.mode); @@ -263,16 +263,16 @@ void CefFileDialogManager::RunFileChooserInternal( if (handler.get()) { int mode = FILE_DIALOG_OPEN; switch (params.mode) { - case content::FileChooserParams::Open: + case blink::mojom::FileChooserParams::Mode::kOpen: mode = FILE_DIALOG_OPEN; break; - case content::FileChooserParams::OpenMultiple: + case blink::mojom::FileChooserParams::Mode::kOpenMultiple: mode = FILE_DIALOG_OPEN_MULTIPLE; break; - case content::FileChooserParams::UploadFolder: + case blink::mojom::FileChooserParams::Mode::kUploadFolder: mode = FILE_DIALOG_OPEN_FOLDER; break; - case content::FileChooserParams::Save: + case blink::mojom::FileChooserParams::Mode::kSave: mode = FILE_DIALOG_SAVE; break; default: @@ -334,11 +334,11 @@ void CefFileDialogManager::OnRunFileChooserCallback( } void CefFileDialogManager::OnRunFileChooserUploadFolderDelegateCallback( - const content::FileChooserParams::Mode mode, + const blink::mojom::FileChooserParams::Mode mode, int selected_accept_filter, const std::vector& file_paths) { CEF_REQUIRE_UIT(); - DCHECK_EQ(mode, content::FileChooserParams::UploadFolder); + DCHECK_EQ(mode, blink::mojom::FileChooserParams::Mode::kUploadFolder); if (file_paths.size() == 0) { // Client canceled the file chooser. @@ -354,17 +354,17 @@ void CefFileDialogManager::OnRunFileChooserUploadFolderDelegateCallback( } void CefFileDialogManager::OnRunFileChooserDelegateCallback( - content::FileChooserParams::Mode mode, + blink::mojom::FileChooserParams::Mode mode, int selected_accept_filter, const std::vector& file_paths) { CEF_REQUIRE_UIT(); // Convert FilePath list to SelectedFileInfo list. - std::vector selected_files; + std::vector selected_files; for (size_t i = 0; i < file_paths.size(); ++i) { - content::FileChooserFileInfo info; - info.file_path = file_paths[i]; - selected_files.push_back(info); + auto info = blink::mojom::FileChooserFileInfo::NewNativeFile( + blink::mojom::NativeFileInfo::New(file_paths[i], base::string16())); + selected_files.push_back(std::move(info)); } // Notify our RenderViewHost in all cases. diff --git a/libcef/browser/file_dialog_manager.h b/libcef/browser/file_dialog_manager.h index c11a2177f..45ed16ffc 100644 --- a/libcef/browser/file_dialog_manager.h +++ b/libcef/browser/file_dialog_manager.h @@ -46,7 +46,7 @@ class CefFileDialogManager : public content::WebContentsObserver { // Called from CefBrowserHostImpl::RunFileChooser. // See WebContentsDelegate::RunFileChooser documentation. void RunFileChooser(content::RenderFrameHost* render_frame_host, - const content::FileChooserParams& params); + const blink::mojom::FileChooserParams& params); // Run the file chooser dialog specified by |params|. Only a single dialog may // be pending at any given time. |callback| will be executed asynchronously @@ -69,16 +69,16 @@ class CefFileDialogManager : public content::WebContentsObserver { const std::vector& file_paths); // Used with WebContentsDelegate::RunFileChooser when mode is - // content::FileChooserParams::UploadFolder. + // blink::mojom::FileChooserParams::Mode::kUploadFolder. void OnRunFileChooserUploadFolderDelegateCallback( - const content::FileChooserParams::Mode mode, + const blink::mojom::FileChooserParams::Mode mode, int selected_accept_filter, const std::vector& file_paths); // Used with WebContentsDelegate::RunFileChooser to notify the // RenderFrameHost. void OnRunFileChooserDelegateCallback( - content::FileChooserParams::Mode mode, + blink::mojom::FileChooserParams::Mode mode, int selected_accept_filter, const std::vector& file_paths); diff --git a/libcef/browser/file_dialog_runner.h b/libcef/browser/file_dialog_runner.h index c06d0ba08..656a0fc27 100644 --- a/libcef/browser/file_dialog_runner.h +++ b/libcef/browser/file_dialog_runner.h @@ -11,14 +11,14 @@ #include "base/callback.h" #include "base/files/file_path.h" -#include "content/public/common/file_chooser_params.h" +#include "third_party/blink/public/mojom/choosers/file_chooser.mojom.h" class CefBrowserHostImpl; class CefFileDialogRunner { public: - // Extend content::FileChooserParams with some options unique to CEF. - struct FileChooserParams : public content::FileChooserParams { + // Extend blink::mojom::FileChooserParams with some options unique to CEF. + struct FileChooserParams : public blink::mojom::FileChooserParams { // 0-based index of the selected value in |accept_types|. int selected_accept_filter = 0; diff --git a/libcef/browser/native/browser_platform_delegate_native_linux.cc b/libcef/browser/native/browser_platform_delegate_native_linux.cc index 44976eb73..68ca2e7b6 100644 --- a/libcef/browser/native/browser_platform_delegate_native_linux.cc +++ b/libcef/browser/native/browser_platform_delegate_native_linux.cc @@ -96,9 +96,6 @@ bool CefBrowserPlatformDelegateNativeLinux::CreateHostWindow() { content::RendererPreferences* prefs = browser_->web_contents()->GetMutableRendererPrefs(); prefs->focus_ring_color = SkColorSetARGB(255, 229, 151, 0); - prefs->thumb_active_color = SkColorSetRGB(244, 244, 244); - prefs->thumb_inactive_color = SkColorSetRGB(234, 234, 234); - prefs->track_color = SkColorSetRGB(211, 211, 211); prefs->active_selection_bg_color = SkColorSetRGB(30, 144, 255); prefs->active_selection_fg_color = SK_ColorWHITE; diff --git a/libcef/browser/native/file_dialog_runner_mac.mm b/libcef/browser/native/file_dialog_runner_mac.mm index 28d146a47..fd6f47bf2 100644 --- a/libcef/browser/native/file_dialog_runner_mac.mm +++ b/libcef/browser/native/file_dialog_runner_mac.mm @@ -18,7 +18,6 @@ #include "base/threading/thread_restrictions.h" #include "cef/grit/cef_strings.h" #include "chrome/grit/generated_resources.h" -#include "content/public/common/file_chooser_params.h" #include "net/base/mime_util.h" #include "ui/base/l10n/l10n_util.h" #include "ui/strings/grit/ui_strings.h" @@ -242,9 +241,10 @@ void RunOpenFileDialog(const CefFileDialogRunner::FileChooserParams& params, title = params.title; } else { title = l10n_util::GetStringUTF16( - params.mode == content::FileChooserParams::Open + params.mode == blink::mojom::FileChooserParams::Mode::kOpen ? IDS_OPEN_FILE_DIALOG_TITLE - : (params.mode == content::FileChooserParams::OpenMultiple + : (params.mode == + blink::mojom::FileChooserParams::Mode::kOpenMultiple ? IDS_OPEN_FILES_DIALOG_TITLE : IDS_SELECT_FOLDER_DIALOG_TITLE)); } @@ -252,7 +252,7 @@ void RunOpenFileDialog(const CefFileDialogRunner::FileChooserParams& params, std::string filename, directory; if (!params.default_file_name.empty()) { - if (params.mode == content::FileChooserParams::UploadFolder || + if (params.mode == blink::mojom::FileChooserParams::Mode::kUploadFolder || params.default_file_name.EndsWithSeparator()) { // The value is only a directory. directory = params.default_file_name.value(); @@ -271,7 +271,7 @@ void RunOpenFileDialog(const CefFileDialogRunner::FileChooserParams& params, } CefFilterDelegate* filter_delegate = nil; - if (params.mode != content::FileChooserParams::UploadFolder && + if (params.mode != blink::mojom::FileChooserParams::Mode::kUploadFolder && !params.accept_types.empty()) { // Add the file filter control. filter_delegate = @@ -282,14 +282,15 @@ void RunOpenFileDialog(const CefFileDialogRunner::FileChooserParams& params, // Further panel configuration. [openPanel setAllowsOtherFileTypes:YES]; + [openPanel setAllowsMultipleSelection: + (params.mode == + blink::mojom::FileChooserParams::Mode::kOpenMultiple)]; [openPanel - setAllowsMultipleSelection:(params.mode == - content::FileChooserParams::OpenMultiple)]; - [openPanel setCanChooseFiles:(params.mode != - content::FileChooserParams::UploadFolder)]; + setCanChooseFiles:(params.mode != + blink::mojom::FileChooserParams::Mode::kUploadFolder)]; [openPanel - setCanChooseDirectories:(params.mode == - content::FileChooserParams::UploadFolder)]; + setCanChooseDirectories:(params.mode == blink::mojom::FileChooserParams:: + Mode::kUploadFolder)]; [openPanel setShowsHiddenFiles:!params.hidereadonly]; // Show panel. @@ -387,11 +388,11 @@ void CefFileDialogRunnerMac::Run(CefBrowserHostImpl* browser, int filter_index = params.selected_accept_filter; NSView* owner = browser->GetWindowHandle(); - if (params.mode == content::FileChooserParams::Open || - params.mode == content::FileChooserParams::OpenMultiple || - params.mode == content::FileChooserParams::UploadFolder) { + if (params.mode == blink::mojom::FileChooserParams::Mode::kOpen || + params.mode == blink::mojom::FileChooserParams::Mode::kOpenMultiple || + params.mode == blink::mojom::FileChooserParams::Mode::kUploadFolder) { RunOpenFileDialog(params, owner, filter_index, callback); - } else if (params.mode == content::FileChooserParams::Save) { + } else if (params.mode == blink::mojom::FileChooserParams::Mode::kSave) { RunSaveFileDialog(params, owner, filter_index, callback); } else { NOTIMPLEMENTED(); diff --git a/libcef/browser/native/file_dialog_runner_win.cc b/libcef/browser/native/file_dialog_runner_win.cc index ea2f1d47e..463d98955 100644 --- a/libcef/browser/native/file_dialog_runner_win.cc +++ b/libcef/browser/native/file_dialog_runner_win.cc @@ -499,17 +499,19 @@ void CefFileDialogRunnerWin::Run(CefBrowserHostImpl* browser, HWND owner = browser->GetWindowHandle(); - if (params.mode == content::FileChooserParams::Open) { + if (params.mode == blink::mojom::FileChooserParams::Mode::kOpen) { base::FilePath file; if (RunOpenFileDialog(params, owner, &filter_index, &file)) files.push_back(file); - } else if (params.mode == content::FileChooserParams::OpenMultiple) { + } else if (params.mode == + blink::mojom::FileChooserParams::Mode::kOpenMultiple) { RunOpenMultiFileDialog(params, owner, &filter_index, &files); - } else if (params.mode == content::FileChooserParams::UploadFolder) { + } else if (params.mode == + blink::mojom::FileChooserParams::Mode::kUploadFolder) { base::FilePath file; if (RunOpenFolderDialog(params, owner, &file)) files.push_back(file); - } else if (params.mode == content::FileChooserParams::Save) { + } else if (params.mode == blink::mojom::FileChooserParams::Mode::kSave) { base::FilePath file; if (RunSaveFileDialog(params, owner, &filter_index, &file)) files.push_back(file); diff --git a/libcef/browser/net/network_delegate.cc b/libcef/browser/net/network_delegate.cc index ae5c891b4..db91455c5 100644 --- a/libcef/browser/net/network_delegate.cc +++ b/libcef/browser/net/network_delegate.cc @@ -445,7 +445,10 @@ net::NetworkDelegate::AuthRequiredResponse CefNetworkDelegate::OnAuthRequired( } bool CefNetworkDelegate::OnCanGetCookies(const net::URLRequest& request, - const net::CookieList& cookie_list) { + const net::CookieList& cookie_list, + bool allowed_from_caller) { + if (!allowed_from_caller) + return false; if (net_util::IsInternalRequest(&request)) return true; @@ -472,7 +475,10 @@ bool CefNetworkDelegate::OnCanGetCookies(const net::URLRequest& request, bool CefNetworkDelegate::OnCanSetCookie(const net::URLRequest& request, const net::CanonicalCookie& cookie, - net::CookieOptions* options) { + net::CookieOptions* options, + bool allowed_from_caller) { + if (!allowed_from_caller) + return false; if (net_util::IsInternalRequest(&request)) return true; diff --git a/libcef/browser/net/network_delegate.h b/libcef/browser/net/network_delegate.h index 82631e6fa..5db615eb0 100644 --- a/libcef/browser/net/network_delegate.h +++ b/libcef/browser/net/network_delegate.h @@ -41,10 +41,12 @@ class CefNetworkDelegate : public net::NetworkDelegateImpl { bool started, int net_error) override; bool OnCanGetCookies(const net::URLRequest& request, - const net::CookieList& cookie_list) override; + const net::CookieList& cookie_list, + bool allowed_from_caller) override; bool OnCanSetCookie(const net::URLRequest& request, const net::CanonicalCookie& cookie, - net::CookieOptions* options) override; + net::CookieOptions* options, + bool allowed_from_caller) override; bool OnCanAccessFile(const net::URLRequest& request, const base::FilePath& original_path, const base::FilePath& absolute_path) const override; diff --git a/libcef/browser/net/url_request_context_getter_impl.cc b/libcef/browser/net/url_request_context_getter_impl.cc index 9ad59b984..54c6be5fd 100644 --- a/libcef/browser/net/url_request_context_getter_impl.cc +++ b/libcef/browser/net/url_request_context_getter_impl.cc @@ -34,6 +34,7 @@ #include "components/network_session_configurator/browser/network_session_configurator.h" #include "components/prefs/pref_registry_simple.h" #include "components/prefs/pref_service.h" +#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "content/public/common/content_client.h" #include "content/public/common/content_switches.h" @@ -200,7 +201,7 @@ CefURLRequestContextGetterImpl::CefURLRequestContextGetterImpl( std::swap(io_state_->protocol_handlers_, *protocol_handlers); auto io_thread_proxy = - BrowserThread::GetTaskRunnerForThread(BrowserThread::IO); + base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO}); quick_check_enabled_.Init(prefs::kQuickCheckEnabled, pref_service); quick_check_enabled_.MoveToThread(io_thread_proxy); @@ -462,7 +463,7 @@ net::URLRequestContext* CefURLRequestContextGetterImpl::GetURLRequestContext() { scoped_refptr CefURLRequestContextGetterImpl::GetNetworkTaskRunner() const { - return BrowserThread::GetTaskRunnerForThread(CEF_IOT); + return base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO}); } net::HostResolver* CefURLRequestContextGetterImpl::GetHostResolver() const { @@ -489,7 +490,8 @@ void CefURLRequestContextGetterImpl::SetCookieStoragePath( if (base::DirectoryExists(path) || base::CreateDirectory(path)) { const base::FilePath& cookie_path = path.AppendASCII("Cookies"); persistent_store = new net::SQLitePersistentCookieStore( - cookie_path, BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), + cookie_path, + base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO}), // Intentionally using the background task runner exposed by CEF to // facilitate unit test expectations. This task runner MUST be // configured with BLOCK_SHUTDOWN. diff --git a/libcef/browser/osr/osr_accessibility_util.cc b/libcef/browser/osr/osr_accessibility_util.cc index 5a6f9854e..0d221a4ca 100644 --- a/libcef/browser/osr/osr_accessibility_util.cc +++ b/libcef/browser/osr/osr_accessibility_util.cc @@ -108,7 +108,6 @@ struct PopulateAxNodeAttributes { case ax::mojom::IntAttribute::kNextOnLineId: case ax::mojom::IntAttribute::kPreviousFocusId: case ax::mojom::IntAttribute::kPreviousOnLineId: - case ax::mojom::IntAttribute::kChildTreeId: case ax::mojom::IntAttribute::kSetSize: case ax::mojom::IntAttribute::kPosInSet: attributes->SetInt(ToString(attr.first), attr.second); @@ -317,14 +316,14 @@ CefRefPtr ToCefValue(const ui::AXNodeData& node) { CefRefPtr ToCefValue(const ui::AXTreeData& treeData) { CefRefPtr value = CefDictionaryValue::Create(); - if (treeData.tree_id != -1) - value->SetInt("tree_id", treeData.tree_id); + if (!treeData.tree_id.ToString().empty()) + value->SetString("tree_id", treeData.tree_id.ToString()); - if (treeData.parent_tree_id != -1) - value->SetInt("parent_tree_id", treeData.parent_tree_id); + if (!treeData.parent_tree_id.ToString().empty()) + value->SetString("parent_tree_id", treeData.parent_tree_id.ToString()); - if (treeData.focused_tree_id != -1) - value->SetInt("focused_tree_id", treeData.focused_tree_id); + if (!treeData.focused_tree_id.ToString().empty()) + value->SetString("focused_tree_id", treeData.focused_tree_id.ToString()); if (!treeData.doctype.empty()) value->SetString("doctype", treeData.doctype); @@ -404,8 +403,8 @@ CefRefPtr ToCefValue( const content::AXEventNotificationDetails& eventData) { CefRefPtr value = CefDictionaryValue::Create(); - if (eventData.ax_tree_id != -1) - value->SetInt("ax_tree_id", eventData.ax_tree_id); + if (!eventData.ax_tree_id.ToString().empty()) + value->SetString("ax_tree_id", eventData.ax_tree_id.ToString()); if (eventData.updates.size() > 0) { CefRefPtr updates = CefListValue::Create(); @@ -456,8 +455,8 @@ CefRefPtr ToCefValue( if (locData.id != -1) value->SetInt("id", locData.id); - if (locData.ax_tree_id != -1) - value->SetInt("ax_tree_id", locData.ax_tree_id); + if (!locData.ax_tree_id.ToString().empty()) + value->SetString("ax_tree_id", locData.ax_tree_id.ToString()); value->SetDictionary("new_location", ToCefValue(locData.new_location)); diff --git a/libcef/browser/osr/render_widget_host_view_osr.cc b/libcef/browser/osr/render_widget_host_view_osr.cc index 6de73343b..945c0261e 100644 --- a/libcef/browser/osr/render_widget_host_view_osr.cc +++ b/libcef/browser/osr/render_widget_host_view_osr.cc @@ -18,6 +18,7 @@ #include "base/command_line.h" #include "base/memory/ptr_util.h" #include "base/strings/utf_string_conversions.h" +#include "base/task/post_task.h" #include "cc/base/switches.h" #include "components/viz/common/features.h" #include "components/viz/common/frame_sinks/copy_output_request.h" @@ -33,6 +34,7 @@ #include "content/browser/renderer_host/render_widget_host_impl.h" #include "content/common/input_messages.h" #include "content/common/view_messages.h" +#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/context_factory.h" #include "content/public/browser/render_process_host.h" @@ -168,8 +170,8 @@ class CefCopyFrameGenerator { base::TimeDelta next_frame_in = next_frame_time_ - now; if (next_frame_in > frame_duration_ / 4) { next_frame_time_ += frame_duration_; - content::BrowserThread::PostDelayedTask( - CEF_UIT, FROM_HERE, + base::PostDelayedTaskWithTraits( + FROM_HERE, {content::BrowserThread::UI}, base::Bind(&CefCopyFrameGenerator::OnCopyFrameCaptureSuccess, weak_ptr_factory_.GetWeakPtr(), damage_rect, bitmap), next_frame_in); @@ -218,7 +220,9 @@ class CefBeginFrameTimer : public viz::DelayBasedTimeSourceClient { CefBeginFrameTimer(int frame_rate_threshold_us, const base::Closure& callback) : callback_(callback) { time_source_.reset(new viz::DelayBasedTimeSource( - content::BrowserThread::GetTaskRunnerForThread(CEF_UIT).get())); + base::CreateSingleThreadTaskRunnerWithTraits( + {content::BrowserThread::UI}) + .get())); time_source_->SetTimebaseAndInterval( base::TimeTicks(), base::TimeDelta::FromMicroseconds(frame_rate_threshold_us)); @@ -604,8 +608,7 @@ void CefRenderWidgetHostViewOSR::SubmitCompositorFrame( // the frame rate to something other than the default of 60Hz. if (sync_frame_rate_) { if (frame_rate_threshold_us_ != 0) { - GetCompositor()->SetAuthoritativeVSyncInterval( - base::TimeDelta::FromMicroseconds(frame_rate_threshold_us_)); + // TODO(cef): Figure out how to set the VSync interval. See issue #2517. } sync_frame_rate_ = false; } @@ -1503,9 +1506,7 @@ void CefRenderWidgetHostViewOSR::SetFrameRate() { frame_rate_threshold_us_ = 1000000 / frame_rate; if (compositor) { - // Configure the VSync interval for the browser process. - compositor->vsync_manager()->SetAuthoritativeVSyncInterval( - base::TimeDelta::FromMicroseconds(frame_rate_threshold_us_)); + // TODO(cef): Figure out how to set the VSync interval. See issue #2517. } if (copy_frame_generator_.get()) { diff --git a/libcef/browser/osr/render_widget_host_view_osr.h b/libcef/browser/osr/render_widget_host_view_osr.h index fad017075..eb22ca1ff 100644 --- a/libcef/browser/osr/render_widget_host_view_osr.h +++ b/libcef/browser/osr/render_widget_host_view_osr.h @@ -21,6 +21,7 @@ #include "content/browser/renderer_host/delegated_frame_host.h" #include "content/browser/renderer_host/input/mouse_wheel_phase_handler.h" #include "content/browser/renderer_host/render_widget_host_view_base.h" +#include "content/public/common/widget_type.h" #include "ui/compositor/compositor.h" #include "ui/compositor/external_begin_frame_client.h" #include "ui/gfx/geometry/rect.h" @@ -242,7 +243,9 @@ class CefRenderWidgetHostViewOSR : public content::RenderWidgetHostViewBase, int bitmap_height, void* bitmap_pixels); - bool IsPopupWidget() const { return popup_type_ != blink::kWebPopupTypeNone; } + bool IsPopupWidget() const { + return widget_type_ == content::WidgetType::kPopup; + } void ImeSetComposition(const CefString& text, const std::vector& underlines, diff --git a/libcef/browser/osr/web_contents_view_osr.cc b/libcef/browser/osr/web_contents_view_osr.cc index 429759c39..a511db3a8 100644 --- a/libcef/browser/osr/web_contents_view_osr.cc +++ b/libcef/browser/osr/web_contents_view_osr.cc @@ -121,7 +121,7 @@ content::RenderWidgetHostViewBase* CefWebContentsViewOSR::CreateViewForWidget( // Called for popup and fullscreen widgets. content::RenderWidgetHostViewBase* -CefWebContentsViewOSR::CreateViewForPopupWidget( +CefWebContentsViewOSR::CreateViewForChildWidget( content::RenderWidgetHost* render_widget_host) { CefRenderWidgetHostViewOSR* view = GetView(); CHECK(view); @@ -151,12 +151,6 @@ void CefWebContentsViewOSR::RenderViewHostChanged( void CefWebContentsViewOSR::SetOverscrollControllerEnabled(bool enabled) {} #if defined(OS_MACOSX) -void CefWebContentsViewOSR::SetAllowOtherViews(bool allow) {} - -bool CefWebContentsViewOSR::GetAllowOtherViews() const { - return false; -} - bool CefWebContentsViewOSR::IsEventTracking() const { return false; } diff --git a/libcef/browser/osr/web_contents_view_osr.h b/libcef/browser/osr/web_contents_view_osr.h index 3f42ef3e2..e8fd0135c 100644 --- a/libcef/browser/osr/web_contents_view_osr.h +++ b/libcef/browser/osr/web_contents_view_osr.h @@ -49,7 +49,7 @@ class CefWebContentsViewOSR : public content::WebContentsView, content::RenderWidgetHostViewBase* CreateViewForWidget( content::RenderWidgetHost* render_widget_host, content::RenderWidgetHost* embedder_render_widget_host) override; - content::RenderWidgetHostViewBase* CreateViewForPopupWidget( + content::RenderWidgetHostViewBase* CreateViewForChildWidget( content::RenderWidgetHost* render_widget_host) override; void SetPageTitle(const base::string16& title) override; void RenderViewCreated(content::RenderViewHost* host) override; @@ -59,8 +59,6 @@ class CefWebContentsViewOSR : public content::WebContentsView, void SetOverscrollControllerEnabled(bool enabled) override; #if defined(OS_MACOSX) - void SetAllowOtherViews(bool allow) override; - bool GetAllowOtherViews() const override; bool IsEventTracking() const override; void CloseTabAfterEventTracking() override; #endif diff --git a/libcef/browser/printing/print_view_manager.cc b/libcef/browser/printing/print_view_manager.cc index 880cd596d..435d65ddf 100644 --- a/libcef/browser/printing/print_view_manager.cc +++ b/libcef/browser/printing/print_view_manager.cc @@ -12,10 +12,12 @@ #include "base/lazy_instance.h" #include "base/memory/ptr_util.h" #include "base/memory/ref_counted_memory.h" +#include "base/task/post_task.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/printing/print_job_manager.h" #include "chrome/browser/printing/printer_query.h" #include "components/printing/common/print_messages.h" +#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_process_host.h" @@ -119,30 +121,14 @@ void StopWorker(int document_cookie) { scoped_refptr printer_query = queue->PopPrinterQuery(document_cookie); if (printer_query.get()) { - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {BrowserThread::IO}, base::Bind(&PrinterQuery::StopWorker, printer_query)); } } -scoped_refptr GetDataFromHandle( - base::SharedMemoryHandle handle, - uint32_t data_size) { - std::unique_ptr shared_buf = - std::make_unique(handle, true); - - if (!shared_buf->Map(data_size)) { - NOTREACHED(); - return NULL; - } - - unsigned char* data = static_cast(shared_buf->memory()); - std::vector dataVector(data, data + data_size); - return base::RefCountedBytes::TakeVector(&dataVector); -} - // Write the PDF file to disk. -void SavePdfFile(scoped_refptr data, +void SavePdfFile(scoped_refptr data, const base::FilePath& path, const CefPrintViewManager::PdfPrintCallback& callback) { CEF_REQUIRE_BLOCKING(); @@ -156,8 +142,8 @@ void SavePdfFile(scoped_refptr data, bool ok = file.IsValid() && metafile.SaveTo(&file); if (!callback.is_null()) { - BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, - base::Bind(callback, ok)); + base::PostTaskWithTraits(FROM_HERE, {BrowserThread::UI}, + base::Bind(callback, ok)); } } @@ -266,9 +252,9 @@ void CefPrintViewManager::OnMetafileReadyForPrinting( if (!pdf_print_state_) return; - scoped_refptr data_bytes = GetDataFromHandle( - params.content.metafile_data_handle, params.content.data_size); - if (!data_bytes || !data_bytes->size()) { + auto shared_buf = base::RefCountedSharedMemoryMapping::CreateFromWholeRegion( + params.content.metafile_data_region); + if (!shared_buf) { TerminatePdfPrintJob(); return; } @@ -281,7 +267,7 @@ void CefPrintViewManager::OnMetafileReadyForPrinting( // Save the PDF file to disk and then execute the callback. CEF_POST_USER_VISIBLE_TASK( - base::Bind(&SavePdfFile, data_bytes, output_path, print_callback)); + base::Bind(&SavePdfFile, shared_buf, output_path, print_callback)); } void CefPrintViewManager::TerminatePdfPrintJob() { @@ -291,8 +277,8 @@ void CefPrintViewManager::TerminatePdfPrintJob() { if (!pdf_print_state_->callback_.is_null()) { // Execute the callback. - BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, - base::Bind(pdf_print_state_->callback_, false)); + base::PostTaskWithTraits(FROM_HERE, {BrowserThread::UI}, + base::Bind(pdf_print_state_->callback_, false)); } // Reset state information. diff --git a/libcef/browser/printing/print_view_manager_base.cc b/libcef/browser/printing/print_view_manager_base.cc index 82b159340..689cddd85 100644 --- a/libcef/browser/printing/print_view_manager_base.cc +++ b/libcef/browser/printing/print_view_manager_base.cc @@ -33,7 +33,7 @@ #include "components/printing/browser/print_manager_utils.h" #include "components/printing/common/print_messages.h" #include "components/services/pdf_compositor/public/cpp/pdf_service_mojo_types.h" -#include "components/services/pdf_compositor/public/cpp/pdf_service_mojo_utils.h" +#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_details.h" #include "content/public/browser/notification_service.h" @@ -145,7 +145,9 @@ bool CefPrintViewManagerBase::PrintJobHasDocument(int cookie) { } void CefPrintViewManagerBase::OnComposePdfDone( - const PrintHostMsg_DidPrintDocument_Params& params, + const gfx::Size& page_size, + const gfx::Rect& content_area, + const gfx::Point& physical_offsets, mojom::PdfCompositor::Status status, base::ReadOnlySharedMemoryRegion region) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); @@ -162,8 +164,7 @@ void CefPrintViewManagerBase::OnComposePdfDone( if (!data) return; - PrintDocument(data, params.page_size, params.content_area, - params.physical_offsets); + PrintDocument(data, page_size, content_area, physical_offsets); } void CefPrintViewManagerBase::OnDidPrintDocument( @@ -173,7 +174,7 @@ void CefPrintViewManagerBase::OnDidPrintDocument( return; const PrintHostMsg_DidPrintContent_Params& content = params.content; - if (!base::SharedMemory::IsHandleValid(content.metafile_data_handle)) { + if (!content.metafile_data_region.IsValid()) { NOTREACHED() << "invalid memory handle"; web_contents()->Stop(); return; @@ -184,19 +185,18 @@ void CefPrintViewManagerBase::OnDidPrintDocument( client->DoCompositeDocumentToPdf( params.document_cookie, render_frame_host, content, base::BindOnce(&CefPrintViewManagerBase::OnComposePdfDone, - weak_ptr_factory_.GetWeakPtr(), params)); + weak_ptr_factory_.GetWeakPtr(), params.page_size, + params.content_area, params.physical_offsets)); return; } - auto shared_buf = - std::make_unique(content.metafile_data_handle, true); - if (!shared_buf->Map(content.data_size)) { + auto data = base::RefCountedSharedMemoryMapping::CreateFromWholeRegion( + content.metafile_data_region); + if (!data) { NOTREACHED() << "couldn't map"; web_contents()->Stop(); return; } - auto data = base::MakeRefCounted( - std::move(shared_buf), content.data_size); PrintDocument(data, params.page_size, params.content_area, params.physical_offsets); } @@ -541,8 +541,8 @@ void CefPrintViewManagerBase::ReleasePrinterQuery() { printer_query = queue_->PopPrinterQuery(cookie); if (!printer_query) return; - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {content::BrowserThread::IO}, base::BindOnce(&PrinterQuery::StopWorker, printer_query)); } diff --git a/libcef/browser/printing/print_view_manager_base.h b/libcef/browser/printing/print_view_manager_base.h index 81a395eb6..786d7c8b6 100644 --- a/libcef/browser/printing/print_view_manager_base.h +++ b/libcef/browser/printing/print_view_manager_base.h @@ -97,7 +97,9 @@ class CefPrintViewManagerBase : public content::NotificationObserver, const PrintHostMsg_DidPrintDocument_Params& params); // IPC message handlers for service. - void OnComposePdfDone(const PrintHostMsg_DidPrintDocument_Params& params, + void OnComposePdfDone(const gfx::Size& page_size, + const gfx::Rect& content_area, + const gfx::Point& physical_offsets, mojom::PdfCompositor::Status status, base::ReadOnlySharedMemoryRegion region); diff --git a/libcef/browser/printing/printing_message_filter.cc b/libcef/browser/printing/printing_message_filter.cc index 5b1d2d31c..7404368bb 100644 --- a/libcef/browser/printing/printing_message_filter.cc +++ b/libcef/browser/printing/printing_message_filter.cc @@ -10,6 +10,7 @@ #include "base/bind.h" #include "base/lazy_instance.h" +#include "base/task/post_task.h" #include "build/build_config.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/printing/print_job_manager.h" @@ -19,6 +20,7 @@ #include "components/keyed_service/content/browser_context_keyed_service_shutdown_notifier_factory.h" #include "components/printing/browser/print_manager_utils.h" #include "components/printing/common/print_messages.h" +#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/web_contents.h" @@ -78,7 +80,7 @@ CefPrintingMessageFilter::CefPrintingMessageFilter(int render_process_id, base::Unretained(this))); is_printing_enabled_.Init(prefs::kPrintingEnabled, profile->GetPrefs()); is_printing_enabled_.MoveToThread( - content::BrowserThread::GetTaskRunnerForThread(BrowserThread::IO)); + base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO})); } void CefPrintingMessageFilter::EnsureShutdownNotifierFactoryBuilt() { @@ -219,8 +221,8 @@ void CefPrintingMessageFilter::OnScriptedPrintReply( int file_descriptor; const base::string16& device_name = printer_query->settings().device_name(); if (base::StringToInt(device_name, &file_descriptor)) { - BrowserThread::PostTask( - BrowserThread::UI, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {BrowserThread::UI}, base::Bind(&CefPrintingMessageFilter::UpdateFileDescriptor, this, routing_id, file_descriptor)); } diff --git a/libcef/browser/request_context_impl.cc b/libcef/browser/request_context_impl.cc index a32655b45..7dab45d45 100644 --- a/libcef/browser/request_context_impl.cc +++ b/libcef/browser/request_context_impl.cc @@ -18,6 +18,7 @@ #include "base/logging.h" #include "base/strings/stringprintf.h" #include "components/prefs/pref_service.h" +#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/plugin_service.h" #include "content/public/browser/ssl_host_state_delegate.h" #include "net/http/http_cache.h" @@ -201,7 +202,7 @@ void CefRequestContextImpl::GetRequestContextImpl( } else { // Need to initialize the browser context first. GetBrowserContextOnUIThread( - BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), + base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO}), base::Bind(&CefRequestContextImpl::GetRequestContextImplOnIOThread, this, task_runner, callback)); } @@ -304,7 +305,7 @@ bool CefRequestContextImpl::RegisterSchemeHandlerFactory( const CefString& domain_name, CefRefPtr factory) { GetRequestContextImpl( - BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), + base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO}), base::Bind(&CefRequestContextImpl::RegisterSchemeHandlerFactoryInternal, this, scheme_name, domain_name, factory)); return true; @@ -312,7 +313,7 @@ bool CefRequestContextImpl::RegisterSchemeHandlerFactory( bool CefRequestContextImpl::ClearSchemeHandlerFactories() { GetRequestContextImpl( - BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), + base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO}), base::Bind(&CefRequestContextImpl::ClearSchemeHandlerFactoriesInternal, this)); return true; @@ -320,7 +321,7 @@ bool CefRequestContextImpl::ClearSchemeHandlerFactories() { void CefRequestContextImpl::PurgePluginListCache(bool reload_pages) { GetBrowserContext( - BrowserThread::GetTaskRunnerForThread(BrowserThread::UI), + base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::UI}), base::Bind(&CefRequestContextImpl::PurgePluginListCacheInternal, this, reload_pages)); } @@ -452,7 +453,7 @@ bool CefRequestContextImpl::SetPreference(const CefString& name, void CefRequestContextImpl::ClearCertificateExceptions( CefRefPtr callback) { GetBrowserContext( - BrowserThread::GetTaskRunnerForThread(BrowserThread::UI), + base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::UI}), base::Bind(&CefRequestContextImpl::ClearCertificateExceptionsInternal, this, callback)); } @@ -460,7 +461,7 @@ void CefRequestContextImpl::ClearCertificateExceptions( void CefRequestContextImpl::CloseAllConnections( CefRefPtr callback) { GetRequestContextImpl( - BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), + base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO}), base::Bind(&CefRequestContextImpl::CloseAllConnectionsInternal, this, callback)); } @@ -469,7 +470,7 @@ void CefRequestContextImpl::ResolveHost( const CefString& origin, CefRefPtr callback) { GetRequestContextImpl( - BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), + base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO}), base::Bind(&CefRequestContextImpl::ResolveHostInternal, this, origin, callback)); } diff --git a/libcef/browser/resource_dispatcher_host_delegate.cc b/libcef/browser/resource_dispatcher_host_delegate.cc index fa8fbe2d4..bba46d7db 100644 --- a/libcef/browser/resource_dispatcher_host_delegate.cc +++ b/libcef/browser/resource_dispatcher_host_delegate.cc @@ -16,8 +16,10 @@ #include "libcef/common/extensions/extensions_util.h" #include "base/guid.h" +#include "base/task/post_task.h" #include "build/build_config.h" #include "chrome/browser/extensions/api/streams_private/streams_private_api.h" +#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/plugin_service.h" #include "content/public/browser/plugin_service_filter.h" #include "content/public/browser/render_frame_host.h" @@ -95,8 +97,8 @@ void CefResourceDispatcherHostDelegate::OnStreamCreated( stream_target_info_.find(request); CHECK(ix != stream_target_info_.end()); bool embedded = info->GetResourceType() != content::RESOURCE_TYPE_MAIN_FRAME; - content::BrowserThread::PostTask( - content::BrowserThread::UI, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {content::BrowserThread::UI}, base::BindOnce( &extensions::StreamsPrivateAPI::SendExecuteMimeTypeHandlerEvent, request->GetExpectedContentSize(), ix->second.extension_id, diff --git a/libcef/browser/speech_recognition_manager_delegate.cc b/libcef/browser/speech_recognition_manager_delegate.cc index 4a2fb4d92..7ecabd937 100644 --- a/libcef/browser/speech_recognition_manager_delegate.cc +++ b/libcef/browser/speech_recognition_manager_delegate.cc @@ -11,6 +11,8 @@ #include "base/bind.h" #include "base/command_line.h" +#include "base/task/post_task.h" +#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_registrar.h" @@ -74,8 +76,8 @@ void CefSpeechRecognitionManagerDelegate::CheckRecognitionIsAllowed( // Make sure that initiators properly set the |render_process_id| field. DCHECK_NE(context.render_process_id, 0); - BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, - base::BindOnce(std::move(callback), false, true)); + base::PostTaskWithTraits(FROM_HERE, {content::BrowserThread::IO}, + base::BindOnce(std::move(callback), false, true)); } content::SpeechRecognitionEventListener* diff --git a/libcef/browser/thread_util.h b/libcef/browser/thread_util.h index b45a3faf4..afb0ae9de 100644 --- a/libcef/browser/thread_util.h +++ b/libcef/browser/thread_util.h @@ -10,6 +10,7 @@ #include "base/logging.h" #include "base/task/post_task.h" #include "base/threading/thread_restrictions.h" +#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #define CEF_UIT content::BrowserThread::UI @@ -39,11 +40,10 @@ #define CEF_REQUIRE_UIT_RETURN_VOID() CEF_REQUIRE_RETURN_VOID(CEF_UIT) #define CEF_REQUIRE_IOT_RETURN_VOID() CEF_REQUIRE_RETURN_VOID(CEF_IOT) -#define CEF_POST_TASK(id, task) \ - content::BrowserThread::PostTask(id, FROM_HERE, task) -#define CEF_POST_DELAYED_TASK(id, task, delay_ms) \ - content::BrowserThread::PostDelayedTask( \ - id, FROM_HERE, task, base::TimeDelta::FromMilliseconds(delay_ms)) +#define CEF_POST_TASK(id, task) base::PostTaskWithTraits(FROM_HERE, {id}, task) +#define CEF_POST_DELAYED_TASK(id, task, delay_ms) \ + base::PostDelayedTaskWithTraits(FROM_HERE, {id}, task, \ + base::TimeDelta::FromMilliseconds(delay_ms)) // Post a blocking task with the specified |priority|. Tasks that have not // started executing at shutdown will never run. However, any task that has diff --git a/libcef/browser/trace_subscriber.cc b/libcef/browser/trace_subscriber.cc index 813ea38a6..cd693b8ea 100644 --- a/libcef/browser/trace_subscriber.cc +++ b/libcef/browser/trace_subscriber.cc @@ -77,11 +77,11 @@ bool CefTraceSubscriber::BeginTracing( // reference to |done_callback| after execution. callback = new CefCompletionCallbackWrapper(callback); done_callback = - base::Bind(&CefCompletionCallback::OnComplete, callback.get()); + base::BindOnce(&CefCompletionCallback::OnComplete, callback.get()); } TracingController::GetInstance()->StartTracing( - base::trace_event::TraceConfig(categories, ""), done_callback); + base::trace_event::TraceConfig(categories, ""), std::move(done_callback)); return true; } diff --git a/libcef/browser/web_plugin_impl.cc b/libcef/browser/web_plugin_impl.cc index b4a2ccc6a..d61449a19 100644 --- a/libcef/browser/web_plugin_impl.cc +++ b/libcef/browser/web_plugin_impl.cc @@ -30,7 +30,7 @@ void PluginsCallbackImpl( } } -#if !(defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_LIBRARY_CDMS)) || \ +#if !(BUILDFLAG(ENABLE_WIDEVINE) && BUILDFLAG(ENABLE_LIBRARY_CDMS)) || \ defined(OS_LINUX) void DeliverWidevineCdmError(const std::string& error_message, @@ -168,7 +168,7 @@ void CefIsWebPluginUnstable(const CefString& path, void CefRegisterWidevineCdm(const CefString& path, CefRefPtr callback) { -#if defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) +#if BUILDFLAG(ENABLE_WIDEVINE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) #if defined(OS_LINUX) // Enforce the requirement that CefRegisterWidevineCdm() is called before // CefInitialize() on Linux. See comments in @@ -184,5 +184,5 @@ void CefRegisterWidevineCdm(const CefString& path, CefWidevineLoader::GetInstance()->LoadWidevineCdm(path, callback); #else DeliverWidevineCdmError("Widevine registration is not supported", callback); -#endif // defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) +#endif // BUILDFLAG(ENABLE_WIDEVINE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) } diff --git a/libcef/common/content_client.cc b/libcef/common/content_client.cc index 61d516e8f..3c06afe12 100644 --- a/libcef/common/content_client.cc +++ b/libcef/common/content_client.cc @@ -35,6 +35,7 @@ #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" #if defined(OS_LINUX) @@ -213,7 +214,7 @@ void CefContentClient::AddContentDecryptionModules( std::vector* cdms, std::vector* cdm_host_file_paths) { #if defined(OS_LINUX) -#if defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) +#if BUILDFLAG(ENABLE_WIDEVINE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) CefWidevineLoader::AddContentDecryptionModules(cdms, cdm_host_file_paths); #endif #endif diff --git a/libcef/common/extensions/extensions_api_provider.cc b/libcef/common/extensions/extensions_api_provider.cc index ac540fff1..64df67c46 100644 --- a/libcef/common/extensions/extensions_api_provider.cc +++ b/libcef/common/extensions/extensions_api_provider.cc @@ -11,22 +11,20 @@ #include "cef/libcef/common/extensions/api/cef_api_features.h" #include "cef/libcef/common/extensions/api/cef_manifest_features.h" #include "cef/libcef/common/extensions/api/cef_permission_features.h" -#include "chrome/common/extensions/chrome_aliases.h" #include "chrome/common/extensions/chrome_manifest_handlers.h" +#include "chrome/common/extensions/permissions/chrome_api_permissions.h" #include "extensions/common/features/json_feature_provider_source.h" #include "extensions/common/permissions/permissions_info.h" namespace extensions { -CefExtensionsAPIProvider::CefExtensionsAPIProvider() { -} +CefExtensionsAPIProvider::CefExtensionsAPIProvider() {} void CefExtensionsAPIProvider::AddAPIFeatures(FeatureProvider* provider) { AddCEFAPIFeatures(provider); } -void CefExtensionsAPIProvider::AddManifestFeatures( - FeatureProvider* provider) { +void CefExtensionsAPIProvider::AddManifestFeatures(FeatureProvider* provider) { AddCEFManifestFeatures(provider); } @@ -35,8 +33,7 @@ void CefExtensionsAPIProvider::AddPermissionFeatures( AddCEFPermissionFeatures(provider); } -void CefExtensionsAPIProvider::AddBehaviorFeatures( - FeatureProvider* provider) { +void CefExtensionsAPIProvider::AddBehaviorFeatures(FeatureProvider* provider) { // No CEF-specific behavior features. } @@ -76,10 +73,11 @@ base::StringPiece CefExtensionsAPIProvider::GetAPISchema( return base::StringPiece(); } -void CefExtensionsAPIProvider::AddPermissionsProviders( +void CefExtensionsAPIProvider::RegisterPermissions( PermissionsInfo* permissions_info) { - permissions_info->AddProvider(chrome_api_permissions_, - GetChromePermissionAliases()); + permissions_info->RegisterPermissions( + chrome_api_permissions::GetPermissionInfos(), + chrome_api_permissions::GetPermissionAliases()); } void CefExtensionsAPIProvider::RegisterManifestHandlers() { diff --git a/libcef/common/extensions/extensions_api_provider.h b/libcef/common/extensions/extensions_api_provider.h index f7c16620c..805e18aa5 100644 --- a/libcef/common/extensions/extensions_api_provider.h +++ b/libcef/common/extensions/extensions_api_provider.h @@ -6,7 +6,6 @@ #define CEF_LIBCEF_COMMON_EXTENSIONS_EXTENSIONS_API_PROVIDER_H_ #include "base/macros.h" -#include "chrome/common/extensions/permissions/chrome_api_permissions.h" #include "extensions/common/extensions_api_provider.h" namespace extensions { @@ -23,12 +22,10 @@ class CefExtensionsAPIProvider : public ExtensionsAPIProvider { void AddAPIJSONSources(JSONFeatureProviderSource* json_source) override; bool IsAPISchemaGenerated(const std::string& name) override; base::StringPiece GetAPISchema(const std::string& name) override; - void AddPermissionsProviders(PermissionsInfo* permissions_info) override; + void RegisterPermissions(PermissionsInfo* permissions_info) override; void RegisterManifestHandlers() override; private: - const ChromeAPIPermissions chrome_api_permissions_; - DISALLOW_COPY_AND_ASSIGN(CefExtensionsAPIProvider); }; diff --git a/libcef/common/extensions/extensions_client.cc b/libcef/common/extensions/extensions_client.cc index f0fb746bf..20493066c 100644 --- a/libcef/common/extensions/extensions_client.cc +++ b/libcef/common/extensions/extensions_client.cc @@ -15,7 +15,6 @@ #include "extensions/common/extension_urls.h" #include "extensions/common/features/simple_feature.h" #include "extensions/common/permissions/permission_message_provider.h" -#include "extensions/common/permissions/permissions_provider.h" #include "extensions/common/url_pattern_set.h" namespace extensions { diff --git a/libcef/common/task_runner_impl.cc b/libcef/common/task_runner_impl.cc index 75e4e7934..ef8d2db65 100644 --- a/libcef/common/task_runner_impl.cc +++ b/libcef/common/task_runner_impl.cc @@ -12,6 +12,7 @@ #include "base/logging.h" #include "base/message_loop/message_loop.h" #include "base/threading/thread_task_runner_handle.h" +#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/child_process_launcher_utils.h" @@ -85,8 +86,8 @@ scoped_refptr CefTaskRunnerImpl::GetTaskRunner( if (id >= 0 && BrowserThread::IsThreadInitialized(static_cast(id))) { - return BrowserThread::GetTaskRunnerForThread( - static_cast(id)); + return base::CreateSingleThreadTaskRunnerWithTraits( + {static_cast(id)}); } return NULL; @@ -102,7 +103,7 @@ CefTaskRunnerImpl::GetCurrentTaskRunner() { BrowserThread::ID current_id; if (BrowserThread::GetCurrentThreadIdentifier(¤t_id) && BrowserThread::IsThreadInitialized(current_id)) { - task_runner = BrowserThread::GetTaskRunnerForThread(current_id); + task_runner = base::CreateSingleThreadTaskRunnerWithTraits({current_id}); } if (!task_runner.get()) { diff --git a/libcef/common/widevine_loader.cc b/libcef/common/widevine_loader.cc index f26ac4336..bbed84367 100644 --- a/libcef/common/widevine_loader.cc +++ b/libcef/common/widevine_loader.cc @@ -4,7 +4,7 @@ #include "libcef/common/widevine_loader.h" -#if defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) +#if BUILDFLAG(ENABLE_WIDEVINE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) #include "libcef/browser/context.h" #include "libcef/browser/thread_util.h" @@ -27,6 +27,7 @@ #include "media/cdm/supported_cdm_versions.h" #include "services/service_manager/embedder/switches.h" #include "services/service_manager/sandbox/switches.h" +#include "third_party/widevine/cdm/widevine_cdm_common.h" // nogncheck namespace { @@ -502,4 +503,4 @@ CefWidevineLoader::CefWidevineLoader() {} CefWidevineLoader::~CefWidevineLoader() {} -#endif // defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) +#endif // BUILDFLAG(ENABLE_WIDEVINE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) diff --git a/libcef/common/widevine_loader.h b/libcef/common/widevine_loader.h index 2a6d068bc..fef829ee5 100644 --- a/libcef/common/widevine_loader.h +++ b/libcef/common/widevine_loader.h @@ -7,10 +7,10 @@ #pragma once #include "build/build_config.h" +#include "media/media_buildflags.h" +#include "third_party/widevine/cdm/buildflags.h" -#include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR. - -#if defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) +#if BUILDFLAG(ENABLE_WIDEVINE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) #include @@ -65,6 +65,6 @@ class CefWidevineLoader { ~CefWidevineLoader(); }; -#endif // defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) +#endif // BUILDFLAG(ENABLE_WIDEVINE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) #endif // CEF_LIBCEF_COMMON_WIDEVINE_LOADER_H_ diff --git a/libcef/renderer/blink_glue.cc b/libcef/renderer/blink_glue.cc index b3149ada4..6da7300ef 100644 --- a/libcef/renderer/blink_glue.cc +++ b/libcef/renderer/blink_glue.cc @@ -56,7 +56,7 @@ void GoBack(blink::WebView* view) { return; blink::WebViewImpl* impl = reinterpret_cast(view); if (impl->Client()->HistoryBackListCount() > 0) - impl->Client()->NavigateBackForwardSoon(-1); + impl->Client()->NavigateBackForwardSoon(-1, true /* has_user_gesture */); } void GoForward(blink::WebView* view) { @@ -64,7 +64,7 @@ void GoForward(blink::WebView* view) { return; blink::WebViewImpl* impl = reinterpret_cast(view); if (impl->Client()->HistoryForwardListCount() > 0) - impl->Client()->NavigateBackForwardSoon(1); + impl->Client()->NavigateBackForwardSoon(1, true /* has_user_gesture */); } std::string DumpDocumentText(blink::WebLocalFrame* frame) { diff --git a/libcef/renderer/browser_impl.cc b/libcef/renderer/browser_impl.cc index 2a6b0430c..90f47ade8 100644 --- a/libcef/renderer/browser_impl.cc +++ b/libcef/renderer/browser_impl.cc @@ -23,9 +23,8 @@ #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "content/public/renderer/document_state.h" -#include "content/public/renderer/navigation_state.h" #include "content/public/renderer/render_view.h" -#include "content/renderer/navigation_state_impl.h" +#include "content/renderer/navigation_state.h" #include "third_party/blink/public/platform/web_string.h" #include "third_party/blink/public/platform/web_url.h" #include "third_party/blink/public/platform/web_url_error.h" diff --git a/libcef/renderer/content_renderer_client.cc b/libcef/renderer/content_renderer_client.cc index 3b20a0749..f59101bfc 100644 --- a/libcef/renderer/content_renderer_client.cc +++ b/libcef/renderer/content_renderer_client.cc @@ -9,11 +9,16 @@ #include "base/compiler_specific.h" -// Enable deprecation warnings for MSVC. See http://crbug.com/585142. +// Enable deprecation warnings on Windows. See http://crbug.com/585142. #if defined(OS_WIN) +#if defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic error "-Wdeprecated-declarations" +#else #pragma warning(push) #pragma warning(default : 4996) #endif +#endif #include "libcef/browser/context.h" #include "libcef/common/cef_messages.h" @@ -41,6 +46,7 @@ #include "base/stl_util.h" #include "base/strings/string_number_conversions.h" #include "base/strings/utf_string_conversions.h" +#include "base/task/post_task.h" #include "build/build_config.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/constants.mojom.h" @@ -60,6 +66,7 @@ #include "components/visitedlink/renderer/visitedlink_slave.h" #include "components/web_cache/renderer/web_cache_impl.h" #include "content/common/frame_messages.h" +#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/render_process_host.h" #include "content/public/child/child_thread.h" @@ -324,8 +331,8 @@ void CefContentRendererClient::RunSingleProcessCleanup() { if (content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)) { RunSingleProcessCleanupOnUIThread(); } else { - content::BrowserThread::PostTask( - content::BrowserThread::UI, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {content::BrowserThread::UI}, base::Bind(&CefContentRendererClient::RunSingleProcessCleanupOnUIThread, base::Unretained(this))); } @@ -711,7 +718,11 @@ service_manager::Connector* CefContentRendererClient::GetConnector() { return connector_.get(); } -// Enable deprecation warnings for MSVC. See http://crbug.com/585142. +// Enable deprecation warnings on Windows. See http://crbug.com/585142. #if defined(OS_WIN) +#if defined(__clang__) +#pragma GCC diagnostic pop +#else #pragma warning(pop) #endif +#endif diff --git a/libcef/renderer/extensions/extensions_dispatcher_delegate.cc b/libcef/renderer/extensions/extensions_dispatcher_delegate.cc index 1a8a09efd..8584af7b8 100644 --- a/libcef/renderer/extensions/extensions_dispatcher_delegate.cc +++ b/libcef/renderer/extensions/extensions_dispatcher_delegate.cc @@ -18,7 +18,7 @@ CefExtensionsDispatcherDelegate::~CefExtensionsDispatcherDelegate() {} void CefExtensionsDispatcherDelegate::PopulateSourceMap( extensions::ResourceBundleSourceMap* source_map) { // These bindings are unnecessary with native bindings enabled. - if (!base::FeatureList::IsEnabled(extensions::features::kNativeCrxBindings)) { + if (!base::FeatureList::IsEnabled(extensions_features::kNativeCrxBindings)) { // Custom types sources. source_map->RegisterSource("ContentSetting", IDR_CONTENT_SETTING_JS); } diff --git a/libcef/renderer/extensions/extensions_renderer_client.cc b/libcef/renderer/extensions/extensions_renderer_client.cc index 7558d57cf..94c875d3b 100644 --- a/libcef/renderer/extensions/extensions_renderer_client.cc +++ b/libcef/renderer/extensions/extensions_renderer_client.cc @@ -248,18 +248,6 @@ bool CefExtensionsRendererClient::ShouldFork(blink::WebLocalFrame* frame, return true; } - // If this is a reload, check whether it has the wrong process type. We - // should send it to the browser if it's an extension URL (e.g., hosted app) - // in a normal process, or if it's a process for an extension that has been - // uninstalled. Without --site-per-process mode, we never fork processes - // for subframes, so this check only makes sense for top-level frames. - // TODO(alexmos,nasko): Figure out how this check should work when reloading - // subframes in --site-per-process mode. - if (!frame->Parent() && GURL(frame->GetDocument().Url()) == url) { - if (is_extension_url != IsStandaloneExtensionProcess()) - return true; - } - return false; } diff --git a/libcef/renderer/frame_impl.cc b/libcef/renderer/frame_impl.cc index ea0bc5b04..aa5015b3b 100644 --- a/libcef/renderer/frame_impl.cc +++ b/libcef/renderer/frame_impl.cc @@ -6,11 +6,16 @@ #include "base/compiler_specific.h" -// Enable deprecation warnings for MSVC. See http://crbug.com/585142. +// Enable deprecation warnings on Windows. See http://crbug.com/585142. #if defined(OS_WIN) +#if defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic error "-Wdeprecated-declarations" +#else #pragma warning(push) #pragma warning(default : 4996) #endif +#endif #include "libcef/common/cef_messages.h" #include "libcef/common/net/http_header_utils.h" @@ -277,7 +282,11 @@ void CefFrameImpl::ExecuteCommand(const std::string& command) { frame_->ExecuteCommand(WebString::FromUTF8(command)); } -// Enable deprecation warnings for MSVC. See http://crbug.com/585142. +// Enable deprecation warnings on Windows. See http://crbug.com/585142. #if defined(OS_WIN) +#if defined(__clang__) +#pragma GCC diagnostic pop +#else #pragma warning(pop) #endif +#endif diff --git a/libcef/renderer/render_frame_observer.cc b/libcef/renderer/render_frame_observer.cc index 5d604b134..1f461840d 100644 --- a/libcef/renderer/render_frame_observer.cc +++ b/libcef/renderer/render_frame_observer.cc @@ -4,11 +4,16 @@ #include "base/compiler_specific.h" -// Enable deprecation warnings for MSVC. See http://crbug.com/585142. +// Enable deprecation warnings on Windows. See http://crbug.com/585142. #if defined(OS_WIN) +#if defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic error "-Wdeprecated-declarations" +#else #pragma warning(push) #pragma warning(default : 4996) #endif +#endif #include "libcef/renderer/render_frame_observer.h" @@ -35,7 +40,8 @@ void CefRenderFrameObserver::OnInterfaceRequestForFrame( } void CefRenderFrameObserver::DidStartProvisionalLoad( - blink::WebDocumentLoader* document_loader) { + blink::WebDocumentLoader* document_loader, + bool is_content_initiated) { blink::WebLocalFrame* frame = render_frame()->GetWebFrame(); CefRefPtr browserPtr = CefBrowserImpl::GetBrowserForMainFrame(frame->Top()); @@ -156,7 +162,11 @@ void CefRenderFrameObserver::OnDestruct() { delete this; } -// Enable deprecation warnings for MSVC. See http://crbug.com/585142. +// Enable deprecation warnings on Windows. See http://crbug.com/585142. #if defined(OS_WIN) +#if defined(__clang__) +#pragma GCC diagnostic pop +#else #pragma warning(pop) #endif +#endif diff --git a/libcef/renderer/render_frame_observer.h b/libcef/renderer/render_frame_observer.h index 37bb5f278..61d8abe3b 100644 --- a/libcef/renderer/render_frame_observer.h +++ b/libcef/renderer/render_frame_observer.h @@ -21,8 +21,8 @@ class CefRenderFrameObserver : public content::RenderFrameObserver { void OnInterfaceRequestForFrame( const std::string& interface_name, mojo::ScopedMessagePipeHandle* interface_pipe) override; - void DidStartProvisionalLoad( - blink::WebDocumentLoader* document_loader) override; + void DidStartProvisionalLoad(blink::WebDocumentLoader* document_loader, + bool is_content_initiated) override; void DidFinishLoad() override; void FrameDetached() override; void FrameFocused() override; diff --git a/libcef/renderer/render_message_filter.cc b/libcef/renderer/render_message_filter.cc index ac83ad2bc..a7c1b48e4 100644 --- a/libcef/renderer/render_message_filter.cc +++ b/libcef/renderer/render_message_filter.cc @@ -10,7 +10,9 @@ #include "base/bind.h" #include "base/message_loop/message_loop.h" +#include "base/task/post_task.h" #include "chrome/common/render_messages.h" +#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "third_party/blink/public/platform/web_string.h" #include "third_party/blink/public/web/web_security_policy.h" @@ -53,8 +55,8 @@ bool CefRenderMessageFilter::Send(IPC::Message* message) { } if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) { - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {content::BrowserThread::IO}, base::Bind(base::IgnoreResult(&CefRenderMessageFilter::Send), this, message)); return true; diff --git a/libcef/renderer/v8_impl.cc b/libcef/renderer/v8_impl.cc index 74a7ff133..2932e2d9c 100644 --- a/libcef/renderer/v8_impl.cc +++ b/libcef/renderer/v8_impl.cc @@ -12,11 +12,16 @@ #include "base/command_line.h" #include "base/compiler_specific.h" -// Enable deprecation warnings for MSVC. See http://crbug.com/585142. +// Enable deprecation warnings for MSVC and Clang. See http://crbug.com/585142. #if defined(OS_WIN) +#if defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic error "-Wdeprecated-declarations" +#else #pragma warning(push) #pragma warning(default : 4996) #endif +#endif #include "libcef/renderer/v8_impl.h" @@ -1102,7 +1107,7 @@ bool CefV8ContextImpl::Eval(const CefString& code, v8::MaybeLocal func_rv = blink_glue::ExecuteV8ScriptAndReturnValue( source, source_url, start_line, context, isolate, try_catch, - blink::AccessControlStatus::kNotSharableCrossOrigin); + blink::AccessControlStatus::kOpaqueResource); if (try_catch.HasCaught()) { exception = new CefV8ExceptionImpl(context, try_catch.Message()); @@ -1602,7 +1607,9 @@ v8::Local CefV8ValueImpl::GetV8Value(bool should_persist) { return v8::Number::New(isolate_, double_value_); case TYPE_DATE: // Convert from seconds to milliseconds. - return v8::Date::New(isolate_, CefTime(date_value_).GetDoubleT() * 1000); + return v8::Date::New(isolate_->GetCurrentContext(), + CefTime(date_value_).GetDoubleT() * 1000) + .ToLocalChecked(); case TYPE_STRING: return GetV8String(isolate_, CefString(&string_value_)); case TYPE_OBJECT: @@ -2538,7 +2545,11 @@ bool CefV8StackFrameImpl::IsConstructor() { return is_constructor_; } -// Enable deprecation warnings for MSVC. See http://crbug.com/585142. +// Enable deprecation warnings on Windows. See http://crbug.com/585142. #if defined(OS_WIN) +#if defined(__clang__) +#pragma GCC diagnostic pop +#else #pragma warning(pop) #endif +#endif diff --git a/patch/patches/browser_child_frame_2507.patch b/patch/patches/browser_child_frame_2507.patch index 3987cb912..5d9d736bf 100644 --- a/patch/patches/browser_child_frame_2507.patch +++ b/patch/patches/browser_child_frame_2507.patch @@ -1,5 +1,5 @@ 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 e2dc4f9d8933..84bd61956e42 100644 +index df02235579a0..0b3de7a37ab4 100644 --- content/browser/renderer_host/render_widget_host_view_child_frame.cc +++ content/browser/renderer_host/render_widget_host_view_child_frame.cc @@ -630,6 +630,7 @@ void RenderWidgetHostViewChildFrame::SubmitCompositorFrame( diff --git a/patch/patches/browser_plugin_guest_1565.patch b/patch/patches/browser_plugin_guest_1565.patch index e6ec35f6d..16b4f5f23 100644 --- a/patch/patches/browser_plugin_guest_1565.patch +++ b/patch/patches/browser_plugin_guest_1565.patch @@ -1,8 +1,8 @@ diff --git content/browser/browser_plugin/browser_plugin_guest.cc content/browser/browser_plugin/browser_plugin_guest.cc -index e5f885ab4bc0..4573329ad26a 100644 +index 2c585e36dff5..ee7234381aae 100644 --- content/browser/browser_plugin/browser_plugin_guest.cc +++ content/browser/browser_plugin/browser_plugin_guest.cc -@@ -313,8 +313,11 @@ void BrowserPluginGuest::InitInternal( +@@ -314,8 +314,11 @@ void BrowserPluginGuest::InitInternal( static_cast(GetWebContents()->GetView()); } @@ -15,7 +15,7 @@ index e5f885ab4bc0..4573329ad26a 100644 // Once a BrowserPluginGuest has an embedder WebContents, it's considered to // be attached. -@@ -794,10 +797,19 @@ void BrowserPluginGuest::OnWillAttachComplete( +@@ -785,10 +788,19 @@ void BrowserPluginGuest::OnWillAttachComplete( static_cast(GetWebContents()->GetView()); if (!web_contents()->GetRenderViewHost()->GetWidget()->GetView()) { web_contents_view->CreateViewForWidget( @@ -37,7 +37,7 @@ index e5f885ab4bc0..4573329ad26a 100644 attached_ = true; diff --git content/browser/frame_host/interstitial_page_impl.cc content/browser/frame_host/interstitial_page_impl.cc -index 26debf62bf01..973b88ff4752 100644 +index f17c20da2d61..0a7f0a3a2478 100644 --- content/browser/frame_host/interstitial_page_impl.cc +++ content/browser/frame_host/interstitial_page_impl.cc @@ -634,7 +634,7 @@ WebContentsView* InterstitialPageImpl::CreateWebContentsView() { @@ -50,7 +50,7 @@ index 26debf62bf01..973b88ff4752 100644 render_view_host_->GetMainFrame()->AllowBindings( BINDINGS_POLICY_DOM_AUTOMATION); diff --git content/browser/web_contents/web_contents_view.h content/browser/web_contents/web_contents_view.h -index 41e44d5d658a..047c935d8ca2 100644 +index 5426d600906c..4bf4537514eb 100644 --- content/browser/web_contents/web_contents_view.h +++ content/browser/web_contents/web_contents_view.h @@ -24,7 +24,7 @@ struct ScreenInfo; @@ -76,13 +76,13 @@ index 41e44d5d658a..047c935d8ca2 100644 + RenderWidgetHost* render_widget_host, + RenderWidgetHost* embedder_render_widget_host) = 0; - // Creates a new View that holds a popup and receives messages for it. - virtual RenderWidgetHostViewBase* CreateViewForPopupWidget( + // 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 f3b19570771b..fe1df8339576 100644 +index f201805c18b3..cf6a8424bec4 100644 --- content/browser/web_contents/web_contents_view_aura.cc +++ content/browser/web_contents/web_contents_view_aura.cc -@@ -796,7 +796,8 @@ void WebContentsViewAura::CreateView(const gfx::Size& initial_size, +@@ -811,7 +811,8 @@ void WebContentsViewAura::CreateView(const gfx::Size& initial_size, } RenderWidgetHostViewBase* WebContentsViewAura::CreateViewForWidget( @@ -92,7 +92,7 @@ index f3b19570771b..fe1df8339576 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 -@@ -808,6 +809,7 @@ RenderWidgetHostViewBase* WebContentsViewAura::CreateViewForWidget( +@@ -823,6 +824,7 @@ RenderWidgetHostViewBase* WebContentsViewAura::CreateViewForWidget( render_widget_host->GetView()); } @@ -101,7 +101,7 @@ index f3b19570771b..fe1df8339576 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 212da86e2539..84336af98e28 100644 +index 0c4a3d2e0d72..e69f663cd1c9 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,11 +110,11 @@ index 212da86e2539..84336af98e28 100644 RenderWidgetHost* render_widget_host, - bool is_guest_view_hack) override; + RenderWidgetHost* embedder_render_widget_host) override; - RenderWidgetHostViewBase* CreateViewForPopupWidget( + RenderWidgetHostViewBase* CreateViewForChildWidget( RenderWidgetHost* render_widget_host) override; void SetPageTitle(const base::string16& title) override; diff --git content/browser/web_contents/web_contents_view_child_frame.cc content/browser/web_contents/web_contents_view_child_frame.cc -index 688540cea253..8a143a74ce12 100644 +index 7b339bf9407a..ffb0668ecf74 100644 --- content/browser/web_contents/web_contents_view_child_frame.cc +++ content/browser/web_contents/web_contents_view_child_frame.cc @@ -84,7 +84,7 @@ void WebContentsViewChildFrame::CreateView(const gfx::Size& initial_size, @@ -127,7 +127,7 @@ index 688540cea253..8a143a74ce12 100644 } diff --git content/browser/web_contents/web_contents_view_child_frame.h content/browser/web_contents/web_contents_view_child_frame.h -index e5485f5609c3..589bbb400684 100644 +index e82cced4364b..7ed27a6b39b3 100644 --- content/browser/web_contents/web_contents_view_child_frame.h +++ content/browser/web_contents/web_contents_view_child_frame.h @@ -40,7 +40,7 @@ class WebContentsViewChildFrame : public WebContentsView, @@ -136,14 +136,14 @@ index e5485f5609c3..589bbb400684 100644 RenderWidgetHost* render_widget_host, - bool is_guest_view_hack) override; + RenderWidgetHost* embedder_render_widget_host) override; - RenderWidgetHostViewBase* CreateViewForPopupWidget( + RenderWidgetHostViewBase* CreateViewForChildWidget( RenderWidgetHost* render_widget_host) override; void SetPageTitle(const base::string16& title) override; diff --git content/browser/web_contents/web_contents_view_guest.cc content/browser/web_contents/web_contents_view_guest.cc -index 12f6817499ef..b38e086ee04c 100644 +index 5de4d7cf8a7a..e24e5c88d8dc 100644 --- content/browser/web_contents/web_contents_view_guest.cc +++ content/browser/web_contents/web_contents_view_guest.cc -@@ -67,6 +67,8 @@ gfx::NativeWindow WebContentsViewGuest::GetTopLevelNativeWindow() const { +@@ -69,6 +69,8 @@ gfx::NativeWindow WebContentsViewGuest::GetTopLevelNativeWindow() const { void WebContentsViewGuest::OnGuestAttached(WebContentsView* parent_view) { #if defined(USE_AURA) @@ -152,16 +152,16 @@ index 12f6817499ef..b38e086ee04c 100644 // In aura, ScreenPositionClient doesn't work properly if we do // not have the native view associated with this WebContentsViewGuest in the // view hierarchy. We add this view as embedder's child here. -@@ -78,6 +80,8 @@ void WebContentsViewGuest::OnGuestAttached(WebContentsView* parent_view) { +@@ -80,6 +82,8 @@ void WebContentsViewGuest::OnGuestAttached(WebContentsView* parent_view) { } void WebContentsViewGuest::OnGuestDetached(WebContentsView* old_parent_view) { + if (!platform_view_->GetNativeView()) + return; #if defined(USE_AURA) - if (!features::IsUsingWindowService()) { + if (!features::IsMultiProcessMash()) { old_parent_view->GetNativeView()->RemoveChild( -@@ -132,7 +136,8 @@ void WebContentsViewGuest::CreateView(const gfx::Size& initial_size, +@@ -124,7 +128,8 @@ void WebContentsViewGuest::CreateView(const gfx::Size& initial_size, } RenderWidgetHostViewBase* WebContentsViewGuest::CreateViewForWidget( @@ -171,7 +171,7 @@ index 12f6817499ef..b38e086ee04c 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 -@@ -144,11 +149,19 @@ RenderWidgetHostViewBase* WebContentsViewGuest::CreateViewForWidget( +@@ -136,11 +141,19 @@ RenderWidgetHostViewBase* WebContentsViewGuest::CreateViewForWidget( render_widget_host->GetView()); } @@ -193,9 +193,9 @@ index 12f6817499ef..b38e086ee04c 100644 + return guest_view; } - RenderWidgetHostViewBase* WebContentsViewGuest::CreateViewForPopupWidget( + RenderWidgetHostViewBase* WebContentsViewGuest::CreateViewForChildWidget( diff --git content/browser/web_contents/web_contents_view_guest.h content/browser/web_contents/web_contents_view_guest.h -index 9e3511a9dabc..83dfee968d59 100644 +index 1f0e661628aa..f896c842ff0d 100644 --- content/browser/web_contents/web_contents_view_guest.h +++ content/browser/web_contents/web_contents_view_guest.h @@ -58,7 +58,7 @@ class WebContentsViewGuest : public WebContentsView, @@ -204,27 +204,27 @@ index 9e3511a9dabc..83dfee968d59 100644 RenderWidgetHost* render_widget_host, - bool is_guest_view_hack) override; + RenderWidgetHost* embedder_render_widget_host) override; - RenderWidgetHostViewBase* CreateViewForPopupWidget( + RenderWidgetHostViewBase* CreateViewForChildWidget( 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 7f80c1b1d829..bcbd04bc4e6c 100644 +index 0b37270ec020..9bd3b14efe5c 100644 --- content/browser/web_contents/web_contents_view_mac.h +++ content/browser/web_contents/web_contents_view_mac.h -@@ -97,7 +97,7 @@ class WebContentsViewMac : public WebContentsView, +@@ -95,7 +95,7 @@ class WebContentsViewMac : public WebContentsView, gfx::NativeView context) override; RenderWidgetHostViewBase* CreateViewForWidget( RenderWidgetHost* render_widget_host, - bool is_guest_view_hack) override; + RenderWidgetHost* embedder_render_widget_host) override; - RenderWidgetHostViewBase* CreateViewForPopupWidget( + RenderWidgetHostViewBase* CreateViewForChildWidget( 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 94848b568363..4dea19adb512 100644 +index 325c9c85ef7f..b17a618a8715 100644 --- content/browser/web_contents/web_contents_view_mac.mm +++ content/browser/web_contents/web_contents_view_mac.mm -@@ -345,7 +345,8 @@ void WebContentsViewMac::CreateView( +@@ -327,7 +327,8 @@ void WebContentsViewMac::CreateView( } RenderWidgetHostViewBase* WebContentsViewMac::CreateViewForWidget( @@ -234,7 +234,7 @@ index 94848b568363..4dea19adb512 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 -@@ -357,6 +358,7 @@ RenderWidgetHostViewBase* WebContentsViewMac::CreateViewForWidget( +@@ -339,6 +340,7 @@ RenderWidgetHostViewBase* WebContentsViewMac::CreateViewForWidget( render_widget_host->GetView()); } @@ -266,10 +266,10 @@ index bf2226b53dd7..782a320ab788 100644 // a BrowserPlugin even when we are using cross process frames for guests. It // should be removed after resolving https://crbug.com/642826). diff --git extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc -index 121f7d573d37..27c6108167ad 100644 +index b7a9609ef426..f02c6df27fcc 100644 --- extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc +++ extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc -@@ -200,6 +200,8 @@ void MimeHandlerViewGuest::CreateWebContents( +@@ -199,6 +199,8 @@ void MimeHandlerViewGuest::CreateWebContents( WebContents::CreateParams params(browser_context(), guest_site_instance.get()); params.guest_delegate = this; @@ -278,7 +278,7 @@ index 121f7d573d37..27c6108167ad 100644 // TODO(erikchen): Fix ownership semantics for guest views. // https://crbug.com/832879. std::move(callback).Run( -@@ -244,6 +246,18 @@ bool MimeHandlerViewGuest::ShouldDestroyOnDetach() const { +@@ -243,6 +245,18 @@ bool MimeHandlerViewGuest::ShouldDestroyOnDetach() const { return true; } @@ -298,7 +298,7 @@ index 121f7d573d37..27c6108167ad 100644 WebContents* source, const content::OpenURLParams& params) { diff --git extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h -index 477ea3c85631..665a95b7665e 100644 +index ebca89ac6256..ea1e2707cb21 100644 --- extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h +++ extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h @@ -112,6 +112,10 @@ class MimeHandlerViewGuest diff --git a/patch/patches/chrome_browser.patch b/patch/patches/chrome_browser.patch index c0edf28c5..9e0354c8d 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 ae76265b33a6..5e1d8f766b48 100644 +index 4adc6a2f64cd..bba2ab9a8b0c 100644 --- chrome/browser/BUILD.gn +++ chrome/browser/BUILD.gn @@ -8,6 +8,7 @@ import("//build/config/features.gni") @@ -10,7 +10,7 @@ index ae76265b33a6..5e1d8f766b48 100644 import("//chrome/common/features.gni") import("//components/feature_engagement/features.gni") import("//components/feed/features.gni") -@@ -1689,6 +1690,7 @@ jumbo_split_static_library("browser") { +@@ -1691,6 +1692,7 @@ jumbo_split_static_library("browser") { "//base:i18n", "//base/allocator:buildflags", "//cc", @@ -18,7 +18,7 @@ index ae76265b33a6..5e1d8f766b48 100644 "//chrome:extra_resources", "//chrome:resources", "//chrome:strings", -@@ -1963,6 +1965,10 @@ jumbo_split_static_library("browser") { +@@ -1966,6 +1968,10 @@ jumbo_split_static_library("browser") { ] } @@ -29,7 +29,7 @@ index ae76265b33a6..5e1d8f766b48 100644 if (is_android) { sources += [ "after_startup_task_utils_android.cc", -@@ -3503,7 +3509,7 @@ jumbo_split_static_library("browser") { +@@ -3552,7 +3558,7 @@ jumbo_split_static_library("browser") { ] } diff --git a/patch/patches/chrome_browser_profiles.patch b/patch/patches/chrome_browser_profiles.patch index 84d9d2608..4b8fbd07d 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 acd7501aef4a..b53fe5e32289 100644 +index 9d1f4de484b5..6b209c24ccfd 100644 --- chrome/browser/profiles/profile_manager.cc +++ chrome/browser/profiles/profile_manager.cc -@@ -382,7 +382,7 @@ ProfileManager::ProfileManager(const base::FilePath& user_data_dir) +@@ -387,7 +387,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 d6aa612cb..3ecd5fcf8 100644 --- a/patch/patches/chrome_plugins.patch +++ b/patch/patches/chrome_plugins.patch @@ -1,8 +1,8 @@ diff --git chrome/browser/plugins/plugin_info_host_impl.cc chrome/browser/plugins/plugin_info_host_impl.cc -index 52d374d1fe4e..c113ae8634e0 100644 +index 989d5d02cedb..e05810db6824 100644 --- chrome/browser/plugins/plugin_info_host_impl.cc +++ chrome/browser/plugins/plugin_info_host_impl.cc -@@ -16,6 +16,7 @@ +@@ -18,6 +18,7 @@ #include "base/task_runner_util.h" #include "base/threading/thread_task_runner_handle.h" #include "build/build_config.h" @@ -10,7 +10,7 @@ index 52d374d1fe4e..c113ae8634e0 100644 #include "chrome/browser/browser_process.h" #include "chrome/browser/content_settings/host_content_settings_map_factory.h" #include "chrome/browser/plugins/chrome_plugin_service_filter.h" -@@ -53,6 +54,11 @@ +@@ -56,6 +57,11 @@ #include "url/gurl.h" #include "url/origin.h" @@ -22,7 +22,7 @@ index 52d374d1fe4e..c113ae8634e0 100644 #if BUILDFLAG(ENABLE_EXTENSIONS) #include "components/guest_view/browser/guest_view_base.h" #include "extensions/browser/extension_registry.h" -@@ -99,6 +105,9 @@ bool IsPluginLoadingAccessibleResourceInWebView( +@@ -102,6 +108,9 @@ bool IsPluginLoadingAccessibleResourceInWebView( extensions::ExtensionRegistry* extension_registry, int process_id, const GURL& resource) { @@ -32,7 +32,7 @@ index 52d374d1fe4e..c113ae8634e0 100644 extensions::WebViewRendererState* renderer_state = extensions::WebViewRendererState::GetInstance(); std::string partition_id; -@@ -128,12 +137,16 @@ bool IsPluginLoadingAccessibleResourceInWebView( +@@ -131,12 +140,16 @@ bool IsPluginLoadingAccessibleResourceInWebView( PluginInfoHostImpl::Context::Context(int render_process_id, Profile* profile) : render_process_id_(render_process_id), resource_context_(profile->GetResourceContext()), @@ -52,7 +52,7 @@ index 52d374d1fe4e..c113ae8634e0 100644 allow_outdated_plugins_.Init(prefs::kPluginsAllowOutdated, profile->GetPrefs()); allow_outdated_plugins_.MoveToThread( -@@ -232,6 +245,7 @@ void PluginInfoHostImpl::PluginsLoaded( +@@ -235,6 +248,7 @@ void PluginInfoHostImpl::PluginsLoaded( plugin_metadata->identifier(), &output->status); } @@ -60,7 +60,7 @@ index 52d374d1fe4e..c113ae8634e0 100644 if (output->status == chrome::mojom::PluginStatus::kNotFound) { // Check to see if the component updater can fetch an implementation. base::PostTaskAndReplyWithResult( -@@ -243,7 +257,9 @@ void PluginInfoHostImpl::PluginsLoaded( +@@ -246,7 +260,9 @@ void PluginInfoHostImpl::PluginsLoaded( base::BindOnce(&PluginInfoHostImpl::ComponentPluginLookupDone, this, params, std::move(output), std::move(callback), std::move(plugin_metadata))); @@ -71,7 +71,7 @@ index 52d374d1fe4e..c113ae8634e0 100644 GetPluginInfoFinish(params, std::move(output), std::move(callback), std::move(plugin_metadata)); } -@@ -256,6 +272,14 @@ void PluginInfoHostImpl::Context::DecidePluginStatus( +@@ -259,6 +275,14 @@ void PluginInfoHostImpl::Context::DecidePluginStatus( PluginMetadata::SecurityStatus security_status, const std::string& plugin_identifier, chrome::mojom::PluginStatus* status) const { @@ -86,7 +86,7 @@ index 52d374d1fe4e..c113ae8634e0 100644 if (security_status == PluginMetadata::SECURITY_STATUS_FULLY_TRUSTED) { *status = chrome::mojom::PluginStatus::kAllowed; return; -@@ -379,16 +403,36 @@ bool PluginInfoHostImpl::Context::FindEnabledPlugin( +@@ -378,16 +402,36 @@ bool PluginInfoHostImpl::Context::FindEnabledPlugin( return false; } @@ -125,10 +125,10 @@ index 52d374d1fe4e..c113ae8634e0 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 78925a9dc0f0..30ef27e50bf7 100644 +index ffa1d20bf490..ca6fd1e68164 100644 --- chrome/renderer/chrome_content_renderer_client.cc +++ chrome/renderer/chrome_content_renderer_client.cc -@@ -796,6 +796,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( +@@ -801,6 +801,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( if ((status == chrome::mojom::PluginStatus::kUnauthorized || status == chrome::mojom::PluginStatus::kBlocked) && @@ -136,7 +136,7 @@ index 78925a9dc0f0..30ef27e50bf7 100644 observer->IsPluginTemporarilyAllowed(identifier)) { status = chrome::mojom::PluginStatus::kAllowed; } -@@ -983,7 +984,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( +@@ -988,7 +989,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( render_frame->GetRemoteAssociatedInterfaces()->GetInterface( &plugin_auth_host); plugin_auth_host->BlockedUnauthorizedPlugin(group_name, identifier); @@ -146,7 +146,7 @@ index 78925a9dc0f0..30ef27e50bf7 100644 break; } case chrome::mojom::PluginStatus::kBlocked: { -@@ -992,7 +994,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( +@@ -997,7 +999,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 78925a9dc0f0..30ef27e50bf7 100644 break; } case chrome::mojom::PluginStatus::kBlockedByPolicy: { -@@ -1002,7 +1005,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( +@@ -1007,7 +1010,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( group_name)); RenderThread::Get()->RecordAction( UserMetricsAction("Plugin_BlockedByPolicy")); @@ -166,7 +166,7 @@ index 78925a9dc0f0..30ef27e50bf7 100644 break; } case chrome::mojom::PluginStatus::kBlockedNoLoading: { -@@ -1010,7 +1014,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( +@@ -1015,7 +1019,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 a75b8e92d..56bc19a7e 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 bf218a3f098a..520119b1485e 100644 +index 5f1fed1ae35e..4411afbee4ec 100644 --- chrome/renderer/BUILD.gn +++ chrome/renderer/BUILD.gn @@ -4,6 +4,7 @@ @@ -10,7 +10,7 @@ index bf218a3f098a..520119b1485e 100644 import("//chrome/common/features.gni") import("//components/nacl/features.gni") import("//components/offline_pages/buildflags/features.gni") -@@ -119,6 +120,7 @@ jumbo_static_library("renderer") { +@@ -121,6 +122,7 @@ jumbo_static_library("renderer") { defines = [] deps = [ @@ -18,7 +18,7 @@ index bf218a3f098a..520119b1485e 100644 "//chrome:resources", "//chrome:strings", "//chrome/common", -@@ -182,6 +184,10 @@ jumbo_static_library("renderer") { +@@ -184,6 +186,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 5bba95173..6db1c6947 100644 --- a/patch/patches/chrome_widevine.patch +++ b/patch/patches/chrome_widevine.patch @@ -1,35 +1,26 @@ diff --git chrome/common/chrome_content_client.cc chrome/common/chrome_content_client.cc -index 47eea6d5c75b..40de62691f31 100644 +index d6cb69e4bc05..1f8e2c860c4f 100644 --- chrome/common/chrome_content_client.cc +++ chrome/common/chrome_content_client.cc -@@ -97,7 +97,8 @@ - - #if BUILDFLAG(ENABLE_LIBRARY_CDMS) - #include "media/cdm/cdm_paths.h" // nogncheck --#if defined(WIDEVINE_CDM_AVAILABLE) && !defined(WIDEVINE_CDM_IS_COMPONENT) -+#if defined(WIDEVINE_CDM_AVAILABLE) && !defined(WIDEVINE_CDM_IS_COMPONENT) && \ +@@ -99,7 +99,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. +-#if BUILDFLAG(SHOULD_BUNDLE_WIDEVINE_CDM) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT) ++#if BUILDFLAG(SHOULD_BUNDLE_WIDEVINE_CDM) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT) && \ + defined(WIDEVINE_CDM_VERSION_STRING) - #define WIDEVINE_CDM_AVAILABLE_NOT_COMPONENT - #endif - #endif // BUILDFLAG(ENABLE_LIBRARY_CDMS) + #define REGISTER_BUNDLED_WIDEVINE_CDM + #include "third_party/widevine/cdm/widevine_cdm_common.h" // nogncheck + // TODO(crbug.com/663554): Needed for WIDEVINE_CDM_VERSION_STRING. Support diff --git third_party/widevine/cdm/BUILD.gn third_party/widevine/cdm/BUILD.gn -index 55b471ea93f8..6dac0552d66f 100644 +index aa21ecb8b018..40df6399891a 100644 --- third_party/widevine/cdm/BUILD.gn +++ third_party/widevine/cdm/BUILD.gn -@@ -4,6 +4,7 @@ - +@@ -5,6 +5,7 @@ + import("//build/buildflag_header.gni") import("//build/config/chrome_build.gni") import("//build/config/features.gni") +import("//cef/libcef/features/features.gni") import("//media/cdm/library_cdm/cdm_paths.gni") import("//media/media_options.gni") import("//third_party/widevine/cdm/widevine.gni") -@@ -11,7 +12,7 @@ import("//third_party/widevine/cdm/widevine.gni") - # Internal Cast builds set enable_widevine=true to bring in Widevine support. - # TODO(xhwang): Support component updated CDM on other platforms and remove this - # assert. --assert(!enable_widevine || is_win || is_mac || is_chromecast, -+assert(!enable_widevine || is_win || is_mac || is_chromecast || enable_cef, - "Component updated CDM only supported on Windows and Mac for now.") - - widevine_arch = current_cpu diff --git a/patch/patches/content_2015.patch b/patch/patches/content_2015.patch index c1fcc7dbe..58724d251 100644 --- a/patch/patches/content_2015.patch +++ b/patch/patches/content_2015.patch @@ -1,8 +1,8 @@ diff --git chrome/browser/download/download_target_determiner.cc chrome/browser/download/download_target_determiner.cc -index 9f7c7dd00536..f524b27feedf 100644 +index 1c59cafd7a77..b42979fa9dec 100644 --- chrome/browser/download/download_target_determiner.cc +++ chrome/browser/download/download_target_determiner.cc -@@ -571,8 +571,8 @@ void IsHandledBySafePlugin(content::ResourceContext* resource_context, +@@ -572,8 +572,8 @@ void IsHandledBySafePlugin(content::ResourceContext* resource_context, content::PluginService* plugin_service = content::PluginService::GetInstance(); bool plugin_found = plugin_service->GetPluginInfo( @@ -64,10 +64,10 @@ index 569e6112d86b..41599944688a 100644 } diff --git chrome/browser/ui/views/frame/browser_root_view.cc chrome/browser/ui/views/frame/browser_root_view.cc -index d4d56c7c6a96..1ec4de7d5fd3 100644 +index 77738cb5bec9..a8fbabe4b10f 100644 --- chrome/browser/ui/views/frame/browser_root_view.cc +++ chrome/browser/ui/views/frame/browser_root_view.cc -@@ -66,7 +66,7 @@ void OnFindURLMimeType(const GURL& url, +@@ -69,7 +69,7 @@ void OnFindURLMimeType(const GURL& url, content::PluginService::GetInstance()->GetPluginInfo( -1, // process ID MSG_ROUTING_NONE, // routing ID @@ -77,10 +77,10 @@ index d4d56c7c6a96..1ec4de7d5fd3 100644 } diff --git content/browser/frame_host/navigation_handle_impl.cc content/browser/frame_host/navigation_handle_impl.cc -index 72e60fdbe27c..8906cc6a598a 100644 +index f8a86851d334..542f6eb61c53 100644 --- content/browser/frame_host/navigation_handle_impl.cc +++ content/browser/frame_host/navigation_handle_impl.cc -@@ -401,12 +401,6 @@ net::Error NavigationHandleImpl::GetNetErrorCode() { +@@ -423,12 +423,6 @@ net::Error NavigationHandleImpl::GetNetErrorCode() { } RenderFrameHostImpl* NavigationHandleImpl::GetRenderFrameHost() { @@ -94,10 +94,10 @@ index 72e60fdbe27c..8906cc6a598a 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 60b610202e7d..b14da4aba2f0 100644 +index d700994f7603..ef0d07368f0f 100644 --- content/browser/frame_host/render_frame_host_impl.cc +++ content/browser/frame_host/render_frame_host_impl.cc -@@ -1671,6 +1671,7 @@ void RenderFrameHostImpl::OnDidFailProvisionalLoadWithError( +@@ -1680,6 +1680,7 @@ void RenderFrameHostImpl::OnDidFailProvisionalLoadWithError( if (GetNavigationHandle()) { GetNavigationHandle()->set_net_error_code( static_cast(params.error_code)); @@ -105,7 +105,7 @@ index 60b610202e7d..b14da4aba2f0 100644 } frame_tree_node_->navigator()->DidFailProvisionalLoadWithError(this, params); -@@ -4115,9 +4116,9 @@ void RenderFrameHostImpl::CommitNavigation( +@@ -4151,9 +4152,9 @@ void RenderFrameHostImpl::CommitNavigation( // is used. Currently we have this here to make sure we have non-racy // situation (https://crbug.com/849929). DCHECK(base::FeatureList::IsEnabled(network::features::kNetworkService)); @@ -114,10 +114,10 @@ index 60b610202e7d..b14da4aba2f0 100644 BrowserContext::GetStoragePartition( - GetSiteInstance()->GetBrowserContext(), GetSiteInstance())); + GetSiteInstance()->GetBrowserContext(), GetSiteInstance()); - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {BrowserThread::IO}, base::BindOnce(&PrefetchURLLoaderService::GetFactory, -@@ -4811,8 +4812,8 @@ bool RenderFrameHostImpl::CreateNetworkServiceDefaultFactoryInternal( +@@ -4851,8 +4852,8 @@ bool RenderFrameHostImpl::CreateNetworkServiceDefaultFactoryInternal( RenderFrameDevToolsAgentHost::WillCreateURLLoaderFactory( this, false /* is_navigation */, false /* is_download */, &default_factory_request); @@ -129,10 +129,10 @@ index 60b610202e7d..b14da4aba2f0 100644 storage_partition->GetNetworkContext()->CreateURLLoaderFactory( std::move(default_factory_request), std::move(params)); diff --git content/browser/frame_host/render_frame_message_filter.cc content/browser/frame_host/render_frame_message_filter.cc -index 2f32390f0b45..6324f0f738e8 100644 +index b657fa5160a9..ca76f5c5221f 100644 --- content/browser/frame_host/render_frame_message_filter.cc +++ content/browser/frame_host/render_frame_message_filter.cc -@@ -629,6 +629,7 @@ void RenderFrameMessageFilter::GetCookies(int render_frame_id, +@@ -644,6 +644,7 @@ void RenderFrameMessageFilter::GetCookies(int render_frame_id, void RenderFrameMessageFilter::OnGetPluginInfo( int render_frame_id, const GURL& url, @@ -140,7 +140,7 @@ index 2f32390f0b45..6324f0f738e8 100644 const url::Origin& main_frame_origin, const std::string& mime_type, bool* found, -@@ -637,8 +638,8 @@ void RenderFrameMessageFilter::OnGetPluginInfo( +@@ -652,8 +653,8 @@ void RenderFrameMessageFilter::OnGetPluginInfo( bool allow_wildcard = true; *found = plugin_service_->GetPluginInfo( render_process_id_, render_frame_id, resource_context_, url, @@ -152,10 +152,10 @@ index 2f32390f0b45..6324f0f738e8 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 9716b2008062..362990246f97 100644 +index 91a7d32dbe78..f99bc501c8b1 100644 --- content/browser/frame_host/render_frame_message_filter.h +++ content/browser/frame_host/render_frame_message_filter.h -@@ -144,6 +144,7 @@ class CONTENT_EXPORT RenderFrameMessageFilter +@@ -146,6 +146,7 @@ class CONTENT_EXPORT RenderFrameMessageFilter #if BUILDFLAG(ENABLE_PLUGINS) void OnGetPluginInfo(int render_frame_id, const GURL& url, @@ -164,7 +164,7 @@ index 9716b2008062..362990246f97 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 74707ef31289..3c1c964f0cb7 100644 +index b228a7dd382f..7ac8b16deb9a 100644 --- content/browser/loader/mime_sniffing_resource_handler.cc +++ content/browser/loader/mime_sniffing_resource_handler.cc @@ -503,8 +503,8 @@ bool MimeSniffingResourceHandler::CheckForPluginHandler( @@ -179,10 +179,10 @@ index 74707ef31289..3c1c964f0cb7 100644 if (stale) { // Refresh the plugins asynchronously. diff --git content/browser/plugin_service_impl.cc content/browser/plugin_service_impl.cc -index 3a6480c71777..cf5c5c50507c 100644 +index 36fb2c8fad05..6619cd8d1418 100644 --- content/browser/plugin_service_impl.cc +++ content/browser/plugin_service_impl.cc -@@ -302,6 +302,7 @@ bool PluginServiceImpl::GetPluginInfo(int render_process_id, +@@ -303,6 +303,7 @@ bool PluginServiceImpl::GetPluginInfo(int render_process_id, int render_frame_id, ResourceContext* context, const GURL& url, @@ -190,7 +190,7 @@ index 3a6480c71777..cf5c5c50507c 100644 const url::Origin& main_frame_origin, const std::string& mime_type, bool allow_wildcard, -@@ -318,7 +319,8 @@ bool PluginServiceImpl::GetPluginInfo(int render_process_id, +@@ -319,7 +320,8 @@ bool PluginServiceImpl::GetPluginInfo(int render_process_id, for (size_t i = 0; i < plugins.size(); ++i) { if (!filter_ || filter_->IsPluginAvailable(render_process_id, render_frame_id, context, @@ -285,10 +285,10 @@ index 3009401dac6b..b4c5a9e2db50 100644 }; diff --git content/common/frame_messages.h content/common/frame_messages.h -index c42a88101a49..ddfc56a05f4f 100644 +index 506bef7143b2..868440afd1c0 100644 --- content/common/frame_messages.h +++ content/common/frame_messages.h -@@ -1366,9 +1366,10 @@ IPC_MESSAGE_ROUTED1(FrameHostMsg_PepperStopsPlayback, +@@ -1345,9 +1345,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. @@ -325,7 +325,7 @@ index 3b610b1f554e..7c439e060779 100644 WebPluginInfo* plugin) = 0; diff --git content/public/renderer/content_renderer_client.h content/public/renderer/content_renderer_client.h -index f1c9cc5997cb..f901f8354251 100644 +index 794ef35e6f98..4e27e5b06926 100644 --- content/public/renderer/content_renderer_client.h +++ content/public/renderer/content_renderer_client.h @@ -75,6 +75,9 @@ class CONTENT_EXPORT ContentRendererClient { @@ -338,7 +338,7 @@ index f1c9cc5997cb..f901f8354251 100644 // Notifies that a new RenderFrame has been created. virtual void RenderFrameCreated(RenderFrame* render_frame) {} -@@ -347,6 +350,10 @@ class CONTENT_EXPORT ContentRendererClient { +@@ -340,6 +343,10 @@ class CONTENT_EXPORT ContentRendererClient { // This method may invalidate the frame. virtual void RunScriptsAtDocumentIdle(RenderFrame* render_frame) {} @@ -350,10 +350,10 @@ index f1c9cc5997cb..f901f8354251 100644 // started. virtual void SetRuntimeFeaturesDefaultsBeforeBlinkInitialization() {} diff --git content/public/renderer/render_frame_observer.h content/public/renderer/render_frame_observer.h -index 88efca34d574..565f24148f7b 100644 +index cff1efb2da7a..22ff7eee9025 100644 --- content/public/renderer/render_frame_observer.h +++ content/public/renderer/render_frame_observer.h -@@ -149,6 +149,9 @@ class CONTENT_EXPORT RenderFrameObserver : public IPC::Listener, +@@ -151,6 +151,9 @@ class CONTENT_EXPORT RenderFrameObserver : public IPC::Listener, virtual void DidReceiveTransferSizeUpdate(int resource_id, int received_data_length) {} @@ -364,10 +364,10 @@ index 88efca34d574..565f24148f7b 100644 virtual void FocusedNodeChanged(const blink::WebNode& node) {} diff --git content/renderer/render_frame_impl.cc content/renderer/render_frame_impl.cc -index 81bd5faff7f4..f3bbf5f124de 100644 +index fcafcc92a690..f0c4780e1d0e 100644 --- content/renderer/render_frame_impl.cc +++ content/renderer/render_frame_impl.cc -@@ -3577,7 +3577,8 @@ blink::WebPlugin* RenderFrameImpl::CreatePlugin( +@@ -3668,7 +3668,8 @@ blink::WebPlugin* RenderFrameImpl::CreatePlugin( std::string mime_type; bool found = false; Send(new FrameHostMsg_GetPluginInfo( @@ -377,7 +377,7 @@ index 81bd5faff7f4..f3bbf5f124de 100644 params.mime_type.Utf8(), &found, &info, &mime_type)); if (!found) return nullptr; -@@ -3948,6 +3949,8 @@ void RenderFrameImpl::FrameDetached(DetachType type) { +@@ -4041,6 +4042,8 @@ void RenderFrameImpl::FrameDetached(DetachType type) { void RenderFrameImpl::FrameFocused() { Send(new FrameHostMsg_FrameFocused(routing_id_)); @@ -387,10 +387,10 @@ index 81bd5faff7f4..f3bbf5f124de 100644 void RenderFrameImpl::WillCommitProvisionalLoad() { diff --git content/renderer/render_thread_impl.cc content/renderer/render_thread_impl.cc -index e0208d440f55..77ea92adb54d 100644 +index f6b7f9fe7da4..e213f2ed5558 100644 --- content/renderer/render_thread_impl.cc +++ content/renderer/render_thread_impl.cc -@@ -829,6 +829,8 @@ void RenderThreadImpl::Init() { +@@ -825,6 +825,8 @@ void RenderThreadImpl::Init() { StartServiceManagerConnection(); @@ -400,11 +400,11 @@ index e0208d440f55..77ea92adb54d 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 8d7631fb756f..5239dde4a1c9 100644 +index 7358f5e0a411..39f933c39ba4 100644 --- content/renderer/renderer_blink_platform_impl.cc +++ content/renderer/renderer_blink_platform_impl.cc -@@ -1192,6 +1192,14 @@ void RendererBlinkPlatformImpl::RequestPurgeMemory() { - base::MemoryCoordinatorClientRegistry::GetInstance()->PurgeMemory(); +@@ -1199,6 +1199,14 @@ void RendererBlinkPlatformImpl::SetMemoryPressureNotificationsSuppressed( + base::MemoryPressureListener::SetNotificationsSuppressed(suppressed); } +void RendererBlinkPlatformImpl::DevToolsAgentAttached() { @@ -419,12 +419,12 @@ index 8d7631fb756f..5239dde4a1c9 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 b3bde113adbd..cf4108f21cf8 100644 +index 81e542ce105e..59b088dc7d2d 100644 --- content/renderer/renderer_blink_platform_impl.h +++ content/renderer/renderer_blink_platform_impl.h -@@ -233,6 +233,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { - mojo::ScopedDataPipeConsumerHandle handle) override; +@@ -235,6 +235,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { void RequestPurgeMemory() override; + void SetMemoryPressureNotificationsSuppressed(bool suppressed) override; + void DevToolsAgentAttached() override; + void DevToolsAgentDetached() override; diff --git a/patch/patches/crashpad_1995.patch b/patch/patches/crashpad_1995.patch index 677ab5dc1..ddf89c369 100644 --- a/patch/patches/crashpad_1995.patch +++ b/patch/patches/crashpad_1995.patch @@ -509,7 +509,7 @@ index f06d903c2f41..6ec1442323e9 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 8b0edef1b594..22555bb9dc77 100644 +index 4902d87bd171..a573e9557666 100644 --- components/crash/content/app/crashpad_win.cc +++ components/crash/content/app/crashpad_win.cc @@ -34,8 +34,8 @@ void GetPlatformCrashpadAnnotations( @@ -597,10 +597,10 @@ index 8b0edef1b594..22555bb9dc77 100644 if (crash_reporter_client->ShouldMonitorCrashHandlerExpensively()) { diff --git content/browser/frame_host/debug_urls.cc content/browser/frame_host/debug_urls.cc -index 78868e2664bb..ec7c60c62efa 100644 +index 0276f809ab6f..d2ee6cd38264 100644 --- content/browser/frame_host/debug_urls.cc +++ content/browser/frame_host/debug_urls.cc -@@ -133,7 +133,9 @@ bool HandleDebugURL(const GURL& url, ui::PageTransition transition) { +@@ -135,7 +135,9 @@ bool HandleDebugURL(const GURL& url, ui::PageTransition transition) { cc::switches::kEnableGpuBenchmarking) && (PageTransitionCoreTypeIs(transition, ui::PAGE_TRANSITION_TYPED)); diff --git a/patch/patches/crashpad_tp_1995.patch b/patch/patches/crashpad_tp_1995.patch index e94de081f..241c9391f 100644 --- a/patch/patches/crashpad_tp_1995.patch +++ b/patch/patches/crashpad_tp_1995.patch @@ -146,7 +146,7 @@ index a2b0c74636f4..01370fdc20d9 100644 struct Data; diff --git third_party/crashpad/crashpad/handler/BUILD.gn third_party/crashpad/crashpad/handler/BUILD.gn -index e43619c49713..a6f5b7e1a577 100644 +index 9accbfe5fa38..513f64ad708a 100644 --- third_party/crashpad/crashpad/handler/BUILD.gn +++ third_party/crashpad/crashpad/handler/BUILD.gn @@ -12,6 +12,7 @@ diff --git a/patch/patches/devtools_product_2300.patch b/patch/patches/devtools_product_2300.patch index 0f56c5fca..a26fac8df 100644 --- a/patch/patches/devtools_product_2300.patch +++ b/patch/patches/devtools_product_2300.patch @@ -1,8 +1,8 @@ diff --git content/browser/devtools/devtools_http_handler.cc content/browser/devtools/devtools_http_handler.cc -index a0ce6d621d83..f2c7329d6657 100644 +index 7e237fd5dc30..b666eb19166f 100644 --- content/browser/devtools/devtools_http_handler.cc +++ content/browser/devtools/devtools_http_handler.cc -@@ -567,7 +567,7 @@ void DevToolsHttpHandler::OnJsonRequest( +@@ -569,7 +569,7 @@ void DevToolsHttpHandler::OnJsonRequest( version.SetString("Protocol-Version", DevToolsAgentHost::GetProtocolVersion()); version.SetString("WebKit-Version", GetWebKitVersion()); diff --git a/patch/patches/extensions_1947.patch b/patch/patches/extensions_1947.patch index 7741c562b..fbc65649e 100644 --- a/patch/patches/extensions_1947.patch +++ b/patch/patches/extensions_1947.patch @@ -27,10 +27,10 @@ index 53c7404ef1f9..ac33df7cfe0e 100644 auto* browser_context = web_contents->GetBrowserContext(); StreamsPrivateAPI* streams_private = GetStreamsPrivateAPI(browser_context); diff --git content/browser/frame_host/render_frame_host_manager.cc content/browser/frame_host/render_frame_host_manager.cc -index 49ad391a3133..b7216126976b 100644 +index 1281c89a231b..4826f71f72ef 100644 --- content/browser/frame_host/render_frame_host_manager.cc +++ content/browser/frame_host/render_frame_host_manager.cc -@@ -928,10 +928,11 @@ bool RenderFrameHostManager::ShouldSwapBrowsingInstancesForNavigation( +@@ -923,10 +923,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 49ad391a3133..b7216126976b 100644 return true; } -@@ -1070,7 +1071,8 @@ RenderFrameHostManager::GetSiteInstanceForNavigation( +@@ -1065,7 +1066,8 @@ RenderFrameHostManager::GetSiteInstanceForNavigation( // Double-check that the new SiteInstance is associated with the right // BrowserContext. @@ -57,10 +57,10 @@ index 49ad391a3133..b7216126976b 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 bc2b501331e9..acf916d35479 100644 +index 1342f701016f..d867ddf1145e 100644 --- content/public/browser/content_browser_client.h +++ content/public/browser/content_browser_client.h -@@ -422,6 +422,13 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -423,6 +423,13 @@ class CONTENT_EXPORT ContentBrowserClient { // Returns true if error page should be isolated in its own process. virtual bool ShouldIsolateErrorPage(bool in_main_frame); @@ -180,7 +180,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 7e0c178e1e36..98066c8437a1 100644 +index 5a2533dc788f..b21e25a9af25 100644 --- extensions/browser/extensions_browser_client.h +++ extensions/browser/extensions_browser_client.h @@ -61,6 +61,7 @@ class ComponentExtensionResourceManager; @@ -191,7 +191,7 @@ index 7e0c178e1e36..98066c8437a1 100644 class ExtensionHostDelegate; class ExtensionPrefsObserver; class ExtensionApiFrameIdMap; -@@ -132,6 +133,11 @@ class ExtensionsBrowserClient { +@@ -133,6 +134,11 @@ class ExtensionsBrowserClient { virtual content::BrowserContext* GetOriginalContext( content::BrowserContext* context) = 0; @@ -203,7 +203,7 @@ index 7e0c178e1e36..98066c8437a1 100644 #if defined(OS_CHROMEOS) // Returns a user id hash from |context| or an empty string if no hash could // be extracted. -@@ -214,6 +220,14 @@ class ExtensionsBrowserClient { +@@ -215,6 +221,14 @@ class ExtensionsBrowserClient { virtual std::unique_ptr CreateExtensionHostDelegate() = 0; @@ -219,7 +219,7 @@ index 7e0c178e1e36..98066c8437a1 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 ceb2f535caab..6e57be3d9241 100644 +index 6e97fdb3ee30..cd81ef1e67bc 100644 --- extensions/browser/process_manager.cc +++ extensions/browser/process_manager.cc @@ -358,9 +358,16 @@ bool ProcessManager::CreateBackgroundHost(const Extension* extension, diff --git a/patch/patches/external_textures_1006.patch b/patch/patches/external_textures_1006.patch index 732376dfa..05feb715f 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 642fff3b4367..820c07fbfde0 100644 +index 3ef8b77142d6..4be0bbaa28a8 100644 --- content/browser/compositor/gpu_process_transport_factory.cc +++ content/browser/compositor/gpu_process_transport_factory.cc @@ -208,6 +208,18 @@ GpuProcessTransportFactory::~GpuProcessTransportFactory() { @@ -83,7 +83,7 @@ index 642fff3b4367..820c07fbfde0 100644 } else if (capabilities.surfaceless) { #if defined(OS_MACOSX) const auto& gpu_feature_info = context_provider->GetGpuFeatureInfo(); -@@ -959,7 +981,8 @@ GpuProcessTransportFactory::CreatePerCompositorData( +@@ -947,7 +969,8 @@ GpuProcessTransportFactory::CreatePerCompositorData( gfx::AcceleratedWidget widget = compositor->widget(); auto data = std::make_unique(); @@ -94,10 +94,10 @@ index 642fff3b4367..820c07fbfde0 100644 } else { #if defined(GPU_SURFACE_HANDLE_IS_ACCELERATED_WINDOW) diff --git content/browser/compositor/gpu_process_transport_factory.h content/browser/compositor/gpu_process_transport_factory.h -index 08384de86962..06da6cc77521 100644 +index b9f2cf332cd4..59b2d12aa3b0 100644 --- content/browser/compositor/gpu_process_transport_factory.h +++ content/browser/compositor/gpu_process_transport_factory.h -@@ -104,6 +104,7 @@ class GpuProcessTransportFactory : public ui::ContextFactory, +@@ -102,6 +102,7 @@ class GpuProcessTransportFactory : public ui::ContextFactory, void IssueExternalBeginFrame(ui::Compositor* compositor, const viz::BeginFrameArgs& args) override; void SetOutputIsSecure(ui::Compositor* compositor, bool secure) override; @@ -351,10 +351,10 @@ index 582388dd576c..103c9374e535 100644 base::WeakPtrFactory weak_ptr_factory_; diff --git gpu/GLES2/gl2chromium_autogen.h gpu/GLES2/gl2chromium_autogen.h -index 6ef222756202..2f846255fbbf 100644 +index dc3f820d88da..1f3d09e169ac 100644 --- gpu/GLES2/gl2chromium_autogen.h +++ gpu/GLES2/gl2chromium_autogen.h -@@ -406,6 +406,10 @@ +@@ -404,6 +404,10 @@ GLES2_GET_FUN(CreateClientGpuFenceCHROMIUM) #define glWaitGpuFenceCHROMIUM GLES2_GET_FUN(WaitGpuFenceCHROMIUM) #define glDestroyGpuFenceCHROMIUM GLES2_GET_FUN(DestroyGpuFenceCHROMIUM) @@ -366,10 +366,10 @@ index 6ef222756202..2f846255fbbf 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 97ff69923dbd..a9b878c05bfd 100755 +index 574ea592fd0f..ead22d65a6a7 100755 --- gpu/command_buffer/build_gles2_cmd_buffer.py +++ gpu/command_buffer/build_gles2_cmd_buffer.py -@@ -4068,6 +4068,35 @@ _FUNCTION_INFO = { +@@ -4061,6 +4061,35 @@ _FUNCTION_INFO = { 'extension': 'CHROMIUM_gpu_fence', 'extension_flag': 'chromium_gpu_fence', }, @@ -406,10 +406,10 @@ index 97ff69923dbd..a9b878c05bfd 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 b78f4eca6347..9050e55b97f3 100644 +index 8955befd7d46..0895962dbf70 100644 --- gpu/command_buffer/client/gles2_c_lib_autogen.h +++ gpu/command_buffer/client/gles2_c_lib_autogen.h -@@ -1819,6 +1819,20 @@ void GL_APIENTRY GLES2WaitGpuFenceCHROMIUM(GLuint gpu_fence_id) { +@@ -1815,6 +1815,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 +430,7 @@ index b78f4eca6347..9050e55b97f3 100644 void GL_APIENTRY GLES2InvalidateReadbackBufferShadowDataCHROMIUM(GLuint buffer_id) { gles2::GetGLContext()->InvalidateReadbackBufferShadowDataCHROMIUM(buffer_id); -@@ -3201,6 +3215,22 @@ extern const NameToFunc g_gles2_function_table[] = { +@@ -3196,6 +3210,22 @@ extern const NameToFunc g_gles2_function_table[] = { "glDestroyGpuFenceCHROMIUM", reinterpret_cast(glDestroyGpuFenceCHROMIUM), }, @@ -454,10 +454,10 @@ index b78f4eca6347..9050e55b97f3 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 7ba0a8ec7044..88ec0ff0f2c9 100644 +index b422c3075ae7..1c4b452d1df5 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) { +@@ -3356,6 +3356,42 @@ void DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) { } } @@ -528,10 +528,10 @@ index 6a18c7919aa4..24d7c5e044b1 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 b56d3f3722e6..d2826f68084f 100644 +index f99c002a599a..767cd62c1b77 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; +@@ -1274,6 +1274,16 @@ void WaitGpuFenceCHROMIUM(GLuint gpu_fence_id) override; void DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) override; @@ -549,10 +549,10 @@ index b56d3f3722e6..d2826f68084f 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 8343e5c84798..b79f5bd61065 100644 +index 68b2e032a189..e78fab69aa01 100644 --- gpu/command_buffer/client/gles2_implementation_impl_autogen.h +++ gpu/command_buffer/client/gles2_implementation_impl_autogen.h -@@ -3673,6 +3673,30 @@ void GLES2Implementation::DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) { +@@ -3664,6 +3664,30 @@ void GLES2Implementation::DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) { CheckGLError(); } @@ -584,10 +584,10 @@ index 8343e5c84798..b79f5bd61065 100644 GLenum target, GLenum attachment, diff --git gpu/command_buffer/client/gles2_interface_autogen.h gpu/command_buffer/client/gles2_interface_autogen.h -index 8708d034e657..e5305a2bd370 100644 +index 3e117895a4fc..ac79f035ecdb 100644 --- gpu/command_buffer/client/gles2_interface_autogen.h +++ gpu/command_buffer/client/gles2_interface_autogen.h -@@ -951,6 +951,12 @@ virtual GLuint CreateGpuFenceCHROMIUM() = 0; +@@ -949,6 +949,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 +601,10 @@ index 8708d034e657..e5305a2bd370 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 968f445c5514..42a3348267f7 100644 +index 79f46804f4ff..57235e0e1dde 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; +@@ -919,6 +919,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 +618,10 @@ index 968f445c5514..42a3348267f7 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 368e0ae1d15d..7c36587c940c 100644 +index c186b690ed0a..8e2d04caaff6 100644 --- gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h +++ gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h -@@ -1236,6 +1236,14 @@ GLuint GLES2InterfaceStub::CreateClientGpuFenceCHROMIUM( +@@ -1234,6 +1234,14 @@ GLuint GLES2InterfaceStub::CreateClientGpuFenceCHROMIUM( } void GLES2InterfaceStub::WaitGpuFenceCHROMIUM(GLuint /* gpu_fence_id */) {} void GLES2InterfaceStub::DestroyGpuFenceCHROMIUM(GLuint /* gpu_fence_id */) {} @@ -637,10 +637,10 @@ index 368e0ae1d15d..7c36587c940c 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 679bbe968290..130bf5771a05 100644 +index 916cf238a69e..6228d124f402 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; +@@ -919,6 +919,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 +654,10 @@ index 679bbe968290..130bf5771a05 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 353b563f80a0..6a5699c7e0e3 100644 +index 30f99889c379..b6b16f139df4 100644 --- gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h +++ gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h -@@ -2639,6 +2639,28 @@ void GLES2TraceImplementation::DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) { +@@ -2632,6 +2632,28 @@ void GLES2TraceImplementation::DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) { gl_->DestroyGpuFenceCHROMIUM(gpu_fence_id); } @@ -687,10 +687,10 @@ index 353b563f80a0..6a5699c7e0e3 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 44936851de59..dd9fd01d92f0 100644 +index 29c250c4f82f..8255cacba216 100644 --- gpu/command_buffer/common/gles2_cmd_format_autogen.h +++ gpu/command_buffer/common/gles2_cmd_format_autogen.h -@@ -16570,6 +16570,193 @@ static_assert(offsetof(DestroyGpuFenceCHROMIUM, header) == 0, +@@ -16533,6 +16533,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 +885,10 @@ index 44936851de59..dd9fd01d92f0 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 7586d5ebf128..499db7e79677 100644 +index ad5eec73afb5..a014852dac6d 100644 --- gpu/command_buffer/common/gles2_cmd_format_test_autogen.h +++ gpu/command_buffer/common/gles2_cmd_format_test_autogen.h -@@ -5485,6 +5485,52 @@ TEST_F(GLES2FormatTest, DestroyGpuFenceCHROMIUM) { +@@ -5472,6 +5472,52 @@ TEST_F(GLES2FormatTest, DestroyGpuFenceCHROMIUM) { CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); } @@ -942,29 +942,31 @@ index 7586d5ebf128..499db7e79677 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 117db81341ff..090511e5253a 100644 +index 5d8a91314bc9..fab65ac82ea2 100644 --- gpu/command_buffer/common/gles2_cmd_ids_autogen.h +++ gpu/command_buffer/common/gles2_cmd_ids_autogen.h -@@ -346,8 +346,12 @@ - OP(CreateGpuFenceINTERNAL) /* 587 */ \ - OP(WaitGpuFenceCHROMIUM) /* 588 */ \ - OP(DestroyGpuFenceCHROMIUM) /* 589 */ \ -- OP(SetReadbackBufferShadowAllocationINTERNAL) /* 590 */ \ -- OP(FramebufferTextureMultiviewLayeredANGLE) /* 591 */ -+ OP(CreateSharedTexture) /* 590 */ \ -+ OP(LockSharedTexture) /* 591 */ \ -+ OP(UnlockSharedTexture) /* 592 */ \ -+ OP(DeleteSharedTexture) /* 593 */ \ -+ OP(SetReadbackBufferShadowAllocationINTERNAL) /* 594 */ \ -+ OP(FramebufferTextureMultiviewLayeredANGLE) /* 595 */ +@@ -345,9 +345,13 @@ + OP(CreateGpuFenceINTERNAL) /* 586 */ \ + OP(WaitGpuFenceCHROMIUM) /* 587 */ \ + OP(DestroyGpuFenceCHROMIUM) /* 588 */ \ +- OP(SetReadbackBufferShadowAllocationINTERNAL) /* 589 */ \ +- OP(FramebufferTextureMultiviewLayeredANGLE) /* 590 */ \ +- OP(MaxShaderCompilerThreadsKHR) /* 591 */ ++ OP(CreateSharedTexture) /* 589 */ \ ++ OP(LockSharedTexture) /* 590 */ \ ++ OP(UnlockSharedTexture) /* 591 */ \ ++ OP(DeleteSharedTexture) /* 592 */ \ ++ OP(SetReadbackBufferShadowAllocationINTERNAL) /* 593 */ \ ++ OP(FramebufferTextureMultiviewLayeredANGLE) /* 594 */ \ ++ OP(MaxShaderCompilerThreadsKHR) /* 595 */ enum CommandId { kOneBeforeStartPoint = diff --git gpu/command_buffer/gles2_cmd_buffer_functions.txt gpu/command_buffer/gles2_cmd_buffer_functions.txt -index 164012f99efd..87c9e82dbb4a 100644 +index fcac46f25274..cb39feed2c16 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 +@@ -395,6 +395,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); @@ -978,10 +980,10 @@ index 164012f99efd..87c9e82dbb4a 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 b414b1aa881f..45bf13c5e2c8 100644 +index e13eadabbe30..7dba39934e14 100644 --- gpu/command_buffer/service/BUILD.gn +++ gpu/command_buffer/service/BUILD.gn -@@ -104,6 +104,8 @@ target(link_target_type, "gles2_sources") { +@@ -105,6 +105,8 @@ target(link_target_type, "gles2_sources") { visibility = [ "//gpu/*" ] sources = [ @@ -991,7 +993,7 @@ index b414b1aa881f..45bf13c5e2c8 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 6836295b6f7b..8834c47ede98 100644 +index 08706db01d3d..245b3d8db6ea 100644 --- gpu/command_buffer/service/gles2_cmd_decoder.cc +++ gpu/command_buffer/service/gles2_cmd_decoder.cc @@ -34,6 +34,7 @@ @@ -1025,7 +1027,7 @@ index 6836295b6f7b..8834c47ede98 100644 base::flat_set> writes_submitted_but_not_completed_; // The format of the back buffer_ -@@ -5343,6 +5353,59 @@ error::Error GLES2DecoderImpl::HandleDestroyGpuFenceCHROMIUM( +@@ -5351,6 +5361,59 @@ error::Error GLES2DecoderImpl::HandleDestroyGpuFenceCHROMIUM( return error::kNoError; } @@ -1086,7 +1088,7 @@ index 6836295b6f7b..8834c47ede98 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 f1aa26dcf511..088554ccb138 100644 +index c21fd3c1c0a5..0c33d7632689 100644 --- gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc +++ gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc @@ -9,6 +9,7 @@ @@ -1097,7 +1099,7 @@ index f1aa26dcf511..088554ccb138 100644 #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" -@@ -2254,6 +2255,67 @@ error::Error GLES2DecoderPassthroughImpl::CheckSwapBuffersResult( +@@ -2284,6 +2285,67 @@ error::Error GLES2DecoderPassthroughImpl::CheckSwapBuffersResult( return error::kNoError; } @@ -1166,7 +1168,7 @@ index f1aa26dcf511..088554ccb138 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 80fb15910e8d..6ec1775f0b85 100644 +index 325918d2264a..cdb97f7dc914 100644 --- gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h +++ gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h @@ -42,6 +42,7 @@ namespace gpu { @@ -1186,7 +1188,7 @@ index 80fb15910e8d..6ec1775f0b85 100644 void* GetScratchMemory(size_t size); template -@@ -541,6 +544,8 @@ class GPU_GLES2_EXPORT GLES2DecoderPassthroughImpl : public GLES2Decoder { +@@ -554,6 +557,8 @@ class GPU_GLES2_EXPORT GLES2DecoderPassthroughImpl : public GLES2Decoder { std::unique_ptr gpu_fence_manager_; @@ -1196,10 +1198,10 @@ index 80fb15910e8d..6ec1775f0b85 100644 size_t active_texture_unit_; diff --git ui/compositor/compositor.cc ui/compositor/compositor.cc -index 46db789400aa..b71f1644e394 100644 +index 8ae7efefd62c..9b89edf36be5 100644 --- ui/compositor/compositor.cc +++ ui/compositor/compositor.cc -@@ -537,6 +537,16 @@ void Compositor::OnNeedsExternalBeginFrames(bool needs_begin_frames) { +@@ -540,6 +540,16 @@ void Compositor::OnNeedsExternalBeginFrames(bool needs_begin_frames) { needs_external_begin_frames_ = needs_begin_frames; } @@ -1217,10 +1219,10 @@ index 46db789400aa..b71f1644e394 100644 observer_list_.AddObserver(observer); } diff --git ui/compositor/compositor.h ui/compositor/compositor.h -index a974ea654834..d23e05af09cf 100644 +index 92ed2ff0bbe5..060273efafaa 100644 --- ui/compositor/compositor.h +++ ui/compositor/compositor.h -@@ -25,6 +25,7 @@ +@@ -26,6 +26,7 @@ #include "components/viz/common/surfaces/frame_sink_id.h" #include "components/viz/common/surfaces/local_surface_id.h" #include "components/viz/host/host_frame_sink_client.h" @@ -1228,7 +1230,7 @@ index a974ea654834..d23e05af09cf 100644 #include "third_party/skia/include/core/SkColor.h" #include "third_party/skia/include/core/SkMatrix44.h" #include "ui/compositor/compositor_animation_observer.h" -@@ -162,6 +163,8 @@ class COMPOSITOR_EXPORT ContextFactoryPrivate { +@@ -160,6 +161,8 @@ class COMPOSITOR_EXPORT ContextFactoryPrivate { const viz::BeginFrameArgs& args) = 0; virtual void SetOutputIsSecure(Compositor* compositor, bool secure) = 0; @@ -1237,7 +1239,7 @@ index a974ea654834..d23e05af09cf 100644 }; // This class abstracts the creation of the 3D context for the compositor. It is -@@ -200,6 +203,17 @@ class COMPOSITOR_EXPORT ContextFactory { +@@ -198,6 +201,17 @@ class COMPOSITOR_EXPORT ContextFactory { virtual bool SyncTokensRequiredForDisplayCompositor() = 0; }; @@ -1255,7 +1257,7 @@ index a974ea654834..d23e05af09cf 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 -@@ -240,6 +254,9 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, +@@ -237,6 +251,9 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, // Schedules a redraw of the layer tree associated with this compositor. void ScheduleDraw(); @@ -1265,7 +1267,7 @@ index a974ea654834..d23e05af09cf 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 -@@ -359,6 +376,10 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, +@@ -348,6 +365,10 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, return task_runner_; } @@ -1276,7 +1278,7 @@ index a974ea654834..d23e05af09cf 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); -@@ -463,6 +484,8 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, +@@ -451,6 +472,8 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, ui::ContextFactory* context_factory_; ui::ContextFactoryPrivate* context_factory_private_; @@ -1285,7 +1287,7 @@ index a974ea654834..d23e05af09cf 100644 // The root of the Layer tree drawn by this compositor. Layer* root_layer_ = nullptr; -@@ -497,6 +520,8 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, +@@ -489,6 +512,8 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient, ExternalBeginFrameClient* external_begin_frame_client_ = nullptr; bool needs_external_begin_frames_ = false; @@ -1295,11 +1297,11 @@ index a974ea654834..d23e05af09cf 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 b6010d7b7c67..a0ab742db6c6 100644 +index ce1385e951e6..01924e0bfb4f 100644 --- ui/compositor/host/host_context_factory_private.cc +++ ui/compositor/host/host_context_factory_private.cc -@@ -244,6 +244,10 @@ void HostContextFactoryPrivate::SetOutputIsSecure(Compositor* compositor, - iter->second.display_private->SetOutputIsSecure(secure); +@@ -239,6 +239,10 @@ void HostContextFactoryPrivate::SetOutputIsSecure(Compositor* compositor, + iter->second.display_private->SetOutputIsSecure(secure); } +void* HostContextFactoryPrivate::GetSharedTexture(Compositor* /*compositor*/) { @@ -1310,10 +1312,10 @@ index b6010d7b7c67..a0ab742db6c6 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 76319deaa6dc..eca1c8b160ae 100644 +index 69a441e9fbc0..818ffac9fb37 100644 --- ui/compositor/host/host_context_factory_private.h +++ ui/compositor/host/host_context_factory_private.h -@@ -69,6 +69,8 @@ class HostContextFactoryPrivate : public ContextFactoryPrivate { +@@ -72,6 +72,8 @@ class HostContextFactoryPrivate : public ContextFactoryPrivate { void SetOutputIsSecure(Compositor* compositor, bool secure) override; viz::FrameSinkManagerImpl* GetFrameSinkManager() override; diff --git a/patch/patches/gn_config.patch b/patch/patches/gn_config.patch index 7eb6fccb5..babf87666 100644 --- a/patch/patches/gn_config.patch +++ b/patch/patches/gn_config.patch @@ -1,5 +1,5 @@ diff --git .gn .gn -index 6fd17634ee87..0563b730a180 100644 +index 2ae9ab394481..2ff59eb3a2ef 100644 --- .gn +++ .gn @@ -411,6 +411,8 @@ exec_script_whitelist = @@ -12,10 +12,10 @@ index 6fd17634ee87..0563b730a180 100644 # https://crbug.com/474506. "//clank/java/BUILD.gn", diff --git BUILD.gn BUILD.gn -index fd7e05257f9a..89d9e6c53d06 100644 +index 7f12f0ac4a22..2a83ba4f17fd 100644 --- BUILD.gn +++ BUILD.gn -@@ -187,6 +187,7 @@ group("gn_all") { +@@ -186,6 +186,7 @@ group("gn_all") { if (!is_ios && !is_fuchsia) { deps += [ @@ -138,10 +138,10 @@ index 1ba5533c3efb..abfd55a2c703 100644 diff --git build/vs_toolchain.py build/vs_toolchain.py -index 83847f456676..bf6254a0ebb6 100755 +index 32bad7f469bd..dcee84f71e5f 100755 --- build/vs_toolchain.py +++ build/vs_toolchain.py -@@ -68,11 +68,18 @@ def SetEnvironmentAndGetRuntimeDllDirs(): +@@ -65,11 +65,18 @@ def SetEnvironmentAndGetRuntimeDllDirs(): runtime_path = os.path.pathsep.join(vs_runtime_dll_dirs) os.environ['PATH'] = runtime_path + os.path.pathsep + os.environ['PATH'] elif sys.platform == 'win32' and not depot_tools_win_toolchain: diff --git a/patch/patches/gritsettings.patch b/patch/patches/gritsettings.patch index 7f43028e7..ceccc5bb5 100644 --- a/patch/patches/gritsettings.patch +++ b/patch/patches/gritsettings.patch @@ -1,5 +1,5 @@ diff --git tools/gritsettings/resource_ids tools/gritsettings/resource_ids -index 4d9d81bcc3fd..c57df19fa613 100644 +index 68b9c123c0bb..6a2fc60bb2c7 100644 --- tools/gritsettings/resource_ids +++ tools/gritsettings/resource_ids @@ -427,4 +427,11 @@ diff --git a/patch/patches/ime_1610.patch b/patch/patches/ime_1610.patch index edb23b37c..91dabf783 100644 --- a/patch/patches/ime_1610.patch +++ b/patch/patches/ime_1610.patch @@ -1,8 +1,8 @@ diff --git ui/base/ime/input_method_win_base.cc ui/base/ime/input_method_win_base.cc -index 046f0d05268c..abbe8763e8fb 100644 +index 333607e76eae..0ffe991ef62b 100644 --- ui/base/ime/input_method_win_base.cc +++ ui/base/ime/input_method_win_base.cc -@@ -266,8 +266,9 @@ bool InputMethodWinBase::IsWindowFocused(const TextInputClient* client) const { +@@ -267,8 +267,9 @@ bool InputMethodWinBase::IsWindowFocused(const TextInputClient* client) const { // receiving keyboard input as long as it is an active window. This works well // even when the |attached_window_handle| becomes active but has not received // WM_FOCUS yet. diff --git a/patch/patches/linux_build.patch b/patch/patches/linux_build.patch index cdcbbe691..81de492ce 100644 --- a/patch/patches/linux_build.patch +++ b/patch/patches/linux_build.patch @@ -1,5 +1,5 @@ diff --git build/config/compiler/BUILD.gn build/config/compiler/BUILD.gn -index d1bb5597f206..8c54651b3bce 100644 +index 1f582933a377..503e2b5bf58a 100644 --- build/config/compiler/BUILD.gn +++ build/config/compiler/BUILD.gn @@ -162,7 +162,7 @@ declare_args() { diff --git a/patch/patches/linux_gtk_2014.patch b/patch/patches/linux_gtk_2014.patch index e26181bda..5d76f30e7 100644 --- a/patch/patches/linux_gtk_2014.patch +++ b/patch/patches/linux_gtk_2014.patch @@ -1,5 +1,5 @@ diff --git build/config/linux/gtk/BUILD.gn build/config/linux/gtk/BUILD.gn -index a2b40d82..fac0c19 100644 +index a2b40d82674e..fac0c1900ce8 100644 --- build/config/linux/gtk/BUILD.gn +++ build/config/linux/gtk/BUILD.gn @@ -4,8 +4,10 @@ @@ -14,7 +14,7 @@ index a2b40d82..fac0c19 100644 # GN doesn't check visibility for configs so we give this an obviously internal # name to discourage random targets from accidentally depending on this and diff --git build/config/ui.gni build/config/ui.gni -index 547b42f..0eae347 100644 +index 547b42fb5c66..0eae3470e1bb 100644 --- build/config/ui.gni +++ build/config/ui.gni @@ -37,6 +37,9 @@ declare_args() { @@ -28,7 +28,7 @@ index 547b42f..0eae347 100644 # Additional dependent variables ----------------------------------------------- diff --git chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc -index d44c7fe..5f19923 100644 +index d44c7feaabec..5f1992335a38 100644 --- chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc +++ chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc @@ -5,6 +5,7 @@ @@ -68,10 +68,10 @@ index d44c7fe..5f19923 100644 void ChromeBrowserMainExtraPartsViewsLinux::ToolkitInitialized() { diff --git chrome/test/BUILD.gn chrome/test/BUILD.gn -index 0e72090..795c02b 100644 +index b192d5e5b96b..80562f0af3e8 100644 --- chrome/test/BUILD.gn +++ chrome/test/BUILD.gn -@@ -3827,7 +3827,7 @@ test("unit_tests") { +@@ -3848,7 +3848,7 @@ test("unit_tests") { "../browser/ui/input_method/input_method_engine_unittest.cc", ] } @@ -80,7 +80,7 @@ index 0e72090..795c02b 100644 sources += [ "../browser/ui/libgtkui/select_file_dialog_impl_gtk_unittest.cc" ] deps += [ "//build/config/linux/gtk" ] -@@ -3848,7 +3848,7 @@ test("unit_tests") { +@@ -3869,7 +3869,7 @@ test("unit_tests") { if (use_gio) { configs += [ "//build/linux:gio_config" ] } @@ -89,7 +89,7 @@ index 0e72090..795c02b 100644 deps += [ "//chrome/browser/ui/libgtkui" ] } -@@ -4970,7 +4970,7 @@ if (!is_android) { +@@ -4874,7 +4874,7 @@ if (!is_android) { # suites, it seems like one or another starts timing out too. "../browser/ui/views/keyboard_access_browsertest.cc", ] @@ -99,7 +99,7 @@ index 0e72090..795c02b 100644 "../browser/ui/libgtkui/select_file_dialog_interactive_uitest.cc", ] diff --git remoting/host/BUILD.gn remoting/host/BUILD.gn -index 563d831..4795186 100644 +index 563d8318c231..4795186b594c 100644 --- remoting/host/BUILD.gn +++ remoting/host/BUILD.gn @@ -336,7 +336,7 @@ static_library("host") { @@ -121,10 +121,10 @@ index 563d831..4795186 100644 } if ((is_linux && !is_chromeos) || is_mac) { diff --git remoting/host/it2me/BUILD.gn remoting/host/it2me/BUILD.gn -index c8fa7fa..df82cc2 100644 +index 1d8b50d2320e..f72d8a1f3ba3 100644 --- remoting/host/it2me/BUILD.gn +++ remoting/host/it2me/BUILD.gn -@@ -52,7 +52,7 @@ source_set("common") { +@@ -53,7 +53,7 @@ source_set("common") { "//remoting/resources", "//remoting/signaling", ] @@ -133,7 +133,7 @@ index c8fa7fa..df82cc2 100644 deps += [ "//build/config/linux/gtk", -@@ -246,7 +246,7 @@ if (!is_chromeos && enable_remoting_host) { +@@ -247,7 +247,7 @@ if (!is_chromeos && enable_remoting_host) { } } @@ -143,7 +143,7 @@ index c8fa7fa..df82cc2 100644 } } diff --git remoting/host/linux/BUILD.gn remoting/host/linux/BUILD.gn -index fa24d0b..3ca8743 100644 +index fa24d0b9b4ab..3ca8743bb4c7 100644 --- remoting/host/linux/BUILD.gn +++ remoting/host/linux/BUILD.gn @@ -98,7 +98,7 @@ source_set("linux") { @@ -156,7 +156,7 @@ index fa24d0b..3ca8743 100644 } } diff --git remoting/test/BUILD.gn remoting/test/BUILD.gn -index 2670491..36726033 100644 +index 267049123534..3672603366df 100644 --- remoting/test/BUILD.gn +++ remoting/test/BUILD.gn @@ -197,7 +197,7 @@ if (enable_remoting_host && !is_android && !is_chromeos) { diff --git a/patch/patches/linux_poll_2466.patch b/patch/patches/linux_poll_2466.patch index cdb43424b..df7449ab1 100644 --- a/patch/patches/linux_poll_2466.patch +++ b/patch/patches/linux_poll_2466.patch @@ -1,5 +1,5 @@ diff --git base/files/file_path_watcher_linux.cc base/files/file_path_watcher_linux.cc -index c58d6865c27b..6ab39432259d 100644 +index 182a762fec21..69ea94007332 100644 --- base/files/file_path_watcher_linux.cc +++ base/files/file_path_watcher_linux.cc @@ -5,6 +5,7 @@ @@ -18,11 +18,10 @@ index c58d6865c27b..6ab39432259d 100644 #include #include #include -@@ -221,20 +223,15 @@ LazyInstance::Leaky g_inotify_reader = LAZY_INSTANCE_INITIALIZER; - void InotifyReaderThreadDelegate::ThreadMain() { +@@ -220,21 +222,15 @@ void InotifyReaderThreadDelegate::ThreadMain() { PlatformThread::SetName("inotify_reader"); -- // Make sure the file descriptors are good for use with select(). + // Make sure the file descriptors are good for use with select(). - CHECK_LE(0, inotify_fd_); - CHECK_GT(FD_SETSIZE, inotify_fd_); + std::array fdarray @@ -35,6 +34,8 @@ index c58d6865c27b..6ab39432259d 100644 - FD_ZERO(&rfds); - FD_SET(inotify_fd_, &rfds); - +- ScopedBlockingCall scoped_blocking_call(BlockingType::WILL_BLOCK); +- - // Wait until some inotify events are available. - int select_result = - HANDLE_EINTR(select(inotify_fd_ + 1, &rfds, nullptr, nullptr, nullptr)); diff --git a/patch/patches/message_loop.patch b/patch/patches/message_loop.patch index cc657a494..0de43ad40 100644 --- a/patch/patches/message_loop.patch +++ b/patch/patches/message_loop.patch @@ -83,7 +83,7 @@ index d623cbc7f7b2..04d83792f98d 100644 #if !defined(OS_NACL) diff --git base/message_loop/message_pump_win.cc base/message_loop/message_pump_win.cc -index bba71fa7929f..9abffd154557 100644 +index 1d6748e0e88a..1598fb65484e 100644 --- base/message_loop/message_pump_win.cc +++ base/message_loop/message_pump_win.cc @@ -11,6 +11,7 @@ @@ -94,7 +94,7 @@ index bba71fa7929f..9abffd154557 100644 #include "base/metrics/histogram_macros.h" #include "base/strings/stringprintf.h" #include "base/trace_event/trace_event.h" -@@ -387,20 +388,28 @@ bool MessagePumpForUI::ProcessMessageHelper(const MSG& msg) { +@@ -384,20 +385,28 @@ bool MessagePumpForUI::ProcessMessageHelper(const MSG& msg) { } bool MessagePumpForUI::ProcessPumpReplacementMessage() { @@ -119,7 +119,7 @@ index bba71fa7929f..9abffd154557 100644 + bool have_message = false; MSG msg; - const bool have_message = -- PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE) != FALSE; +- ::PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE) != FALSE; + // We should not process all window messages if we are in the context of an + // OS modal loop, i.e. in the context of a windows API call like MessageBox. + // This is to ensure that these messages are peeked out by the OS modal loop. diff --git a/patch/patches/message_pump_mac_2495.patch b/patch/patches/message_pump_mac_2495.patch index 3dab9ff47..4af7753d8 100644 --- a/patch/patches/message_pump_mac_2495.patch +++ b/patch/patches/message_pump_mac_2495.patch @@ -2,7 +2,7 @@ diff --git base/message_loop/message_pump_mac.mm base/message_loop/message_pump_ index fb2520179995..165a8d4b4b29 100644 --- base/message_loop/message_pump_mac.mm +++ base/message_loop/message_pump_mac.mm -@@ -761,7 +761,8 @@ explicit MessagePumpScopedAutoreleasePool(MessagePumpCFRunLoopBase* pump) : +@@ -761,7 +761,8 @@ void MessagePumpUIApplication::Attach(Delegate* delegate) { #else ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() { @@ -12,7 +12,7 @@ index fb2520179995..165a8d4b4b29 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. -@@ -770,7 +771,8 @@ explicit MessagePumpScopedAutoreleasePool(MessagePumpCFRunLoopBase* pump) : +@@ -770,7 +771,8 @@ ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() { } ScopedPumpMessagesInPrivateModes::~ScopedPumpMessagesInPrivateModes() { diff --git a/patch/patches/net_filter_515.patch b/patch/patches/net_filter_515.patch index f329b8c6b..eb38acaa8 100644 --- a/patch/patches/net_filter_515.patch +++ b/patch/patches/net_filter_515.patch @@ -1,5 +1,5 @@ diff --git net/base/network_delegate.h net/base/network_delegate.h -index ea4316257a61..58bf1443f1ae 100644 +index c28d0bb3b676..1acbb4c94495 100644 --- net/base/network_delegate.h +++ net/base/network_delegate.h @@ -17,6 +17,7 @@ @@ -10,7 +10,7 @@ index ea4316257a61..58bf1443f1ae 100644 #include "net/proxy_resolution/proxy_retry_info.h" class GURL; -@@ -122,6 +123,10 @@ class NET_EXPORT NetworkDelegate { +@@ -125,6 +126,10 @@ class NET_EXPORT NetworkDelegate { bool CanUseReportingClient(const url::Origin& origin, const GURL& endpoint) const; @@ -22,10 +22,10 @@ index ea4316257a61..58bf1443f1ae 100644 THREAD_CHECKER(thread_checker_); diff --git net/url_request/url_request_job.cc net/url_request/url_request_job.cc -index 5b27df0e8955..6d3b212f28d0 100644 +index f30efb45ba19..0fbf58817194 100644 --- net/url_request/url_request_job.cc +++ net/url_request/url_request_job.cc -@@ -467,6 +467,12 @@ void URLRequestJob::NotifyHeadersComplete() { +@@ -466,6 +466,12 @@ void URLRequestJob::NotifyHeadersComplete() { DCHECK(!source_stream_); source_stream_ = SetUpSourceStream(); diff --git a/patch/patches/net_security_expiration_1994.patch b/patch/patches/net_security_expiration_1994.patch index f1cf78868..704dd283c 100644 --- a/patch/patches/net_security_expiration_1994.patch +++ b/patch/patches/net_security_expiration_1994.patch @@ -1,5 +1,5 @@ diff --git components/certificate_transparency/chrome_ct_policy_enforcer.cc components/certificate_transparency/chrome_ct_policy_enforcer.cc -index a2e2b493def0..c08872260c68 100644 +index 99a4405290ea..d0b35f74e552 100644 --- components/certificate_transparency/chrome_ct_policy_enforcer.cc +++ components/certificate_transparency/chrome_ct_policy_enforcer.cc @@ -36,15 +36,6 @@ namespace certificate_transparency { @@ -58,7 +58,7 @@ index f61ff0d0564a..e6727c7b1cbc 100644 } // namespace certificate_transparency diff --git net/http/transport_security_state.cc net/http/transport_security_state.cc -index 2dc467772e86..fdb047099ff5 100644 +index 3f3db5c840eb..85553b65e966 100644 --- net/http/transport_security_state.cc +++ net/http/transport_security_state.cc @@ -1153,8 +1153,10 @@ void TransportSecurityState::ClearReportCachesForTesting() { diff --git a/patch/patches/net_urlrequest_1327.patch b/patch/patches/net_urlrequest_1327.patch index 9657f6220..35d8d9b74 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 a64498d1786c..bf440a5b5f6b 100644 +index e6efafc6a973..920608f96b38 100644 --- net/url_request/url_request.h +++ net/url_request/url_request.h -@@ -737,10 +737,10 @@ class NET_EXPORT URLRequest : public base::SupportsUserData { +@@ -730,10 +730,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 b3b2d1a14..cd95ad5b9 100644 --- a/patch/patches/pdfium_print_549365.patch +++ b/patch/patches/pdfium_print_549365.patch @@ -1,5 +1,5 @@ diff --git BUILD.gn BUILD.gn -index 27e4b2615..80764bec2 100644 +index d3ea24dc6..4ffb3aac1 100644 --- BUILD.gn +++ BUILD.gn @@ -240,6 +240,10 @@ jumbo_static_library("pdfium") { @@ -14,7 +14,7 @@ index 27e4b2615..80764bec2 100644 jumbo_static_library("test_support") { diff --git fpdfsdk/fpdf_view.cpp fpdfsdk/fpdf_view.cpp -index 0cfa36290..302fa174b 100644 +index 247a90240..42c9c5ea8 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 b3945b787..98ea3043a 100644 --- a/patch/patches/prefs_content_1161.patch +++ b/patch/patches/prefs_content_1161.patch @@ -1,5 +1,5 @@ diff --git content/public/common/common_param_traits_macros.h content/public/common/common_param_traits_macros.h -index 64de36aa7450..3795fb7dffbe 100644 +index 09aa0927af7f..a8c8c1d604f5 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) @@ -11,7 +11,7 @@ index 64de36aa7450..3795fb7dffbe 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 bd8facb2d850..fba8020aa90e 100644 +index 581c6666662b..aa3cfd054ed5 100644 --- content/public/common/web_preferences.cc +++ content/public/common/web_preferences.cc @@ -178,6 +178,7 @@ WebPreferences::WebPreferences() @@ -23,10 +23,10 @@ index bd8facb2d850..fba8020aa90e 100644 record_whole_document(false), save_previous_document_resources(SavePreviousDocumentResources::NEVER), diff --git content/public/common/web_preferences.h content/public/common/web_preferences.h -index e21f52c4dde5..b7da33f1b9a3 100644 +index c1881cb04aec..34a64887af4c 100644 --- content/public/common/web_preferences.h +++ content/public/common/web_preferences.h -@@ -198,6 +198,7 @@ struct CONTENT_EXPORT WebPreferences { +@@ -203,6 +203,7 @@ struct CONTENT_EXPORT WebPreferences { bool spatial_navigation_enabled; bool use_solid_color_scrollbars; bool navigate_on_drag_drop; @@ -35,10 +35,10 @@ index e21f52c4dde5..b7da33f1b9a3 100644 bool record_whole_document; SavePreviousDocumentResources save_previous_document_resources; diff --git content/renderer/render_view_impl.cc content/renderer/render_view_impl.cc -index 059aaa640ef3..e2e0e58726b8 100644 +index 6d60eae14858..a1be903ea29a 100644 --- content/renderer/render_view_impl.cc +++ content/renderer/render_view_impl.cc -@@ -1308,6 +1308,7 @@ void RenderViewImpl::SendFrameStateUpdates() { +@@ -1311,6 +1311,7 @@ void RenderViewImpl::SendFrameStateUpdates() { void RenderViewImpl::ApplyWebPreferencesInternal(const WebPreferences& prefs, blink::WebView* web_view) { ApplyWebPreferences(prefs, web_view); diff --git a/patch/patches/print_header_footer_1478_1565.patch b/patch/patches/print_header_footer_1478_1565.patch index 4723df2a3..80fcc8068 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 58bfe0e..981abac 100644 +index 5566278794a0..7773800d5e63 100644 --- chrome/browser/ui/BUILD.gn +++ chrome/browser/ui/BUILD.gn -@@ -828,6 +828,7 @@ jumbo_split_static_library("ui") { +@@ -480,6 +480,7 @@ jumbo_split_static_library("ui") { "//base:i18n", "//base/allocator:buildflags", "//cc/paint", @@ -10,7 +10,7 @@ index 58bfe0e..981abac 100644 "//chrome:extra_resources", "//chrome:resources", "//chrome:strings", -@@ -2709,7 +2710,7 @@ jumbo_split_static_library("ui") { +@@ -2347,7 +2348,7 @@ jumbo_split_static_library("ui") { "views/frame/native_browser_frame_factory_ozone.cc", ] } else { @@ -20,7 +20,7 @@ index 58bfe0e..981abac 100644 deps += [ "//chrome/browser/ui/libgtkui" ] } diff --git chrome/browser/ui/cocoa/applescript/tab_applescript.mm chrome/browser/ui/cocoa/applescript/tab_applescript.mm -index f0a489a..1bd1259 100644 +index f0a489a0c3af..1bd1259e47e3 100644 --- chrome/browser/ui/cocoa/applescript/tab_applescript.mm +++ chrome/browser/ui/cocoa/applescript/tab_applescript.mm @@ -9,7 +9,7 @@ @@ -60,7 +60,7 @@ index f0a489a..1bd1259 100644 - (void)handlesSaveScriptCommand:(NSScriptCommand*)command { diff --git chrome/browser/ui/webui/settings/printing_handler.cc chrome/browser/ui/webui/settings/printing_handler.cc -index 8647b2d..b070ab3 100644 +index 8647b2daf9ea..b070ab3e4b86 100644 --- chrome/browser/ui/webui/settings/printing_handler.cc +++ chrome/browser/ui/webui/settings/printing_handler.cc @@ -6,9 +6,13 @@ @@ -91,7 +91,7 @@ index 8647b2d..b070ab3 100644 } // namespace settings diff --git chrome/common/chrome_utility_printing_messages.h chrome/common/chrome_utility_printing_messages.h -index f903429..cde2124 100644 +index 6bd558079c97..6832bf9f297b 100644 --- chrome/common/chrome_utility_printing_messages.h +++ chrome/common/chrome_utility_printing_messages.h @@ -16,7 +16,7 @@ @@ -112,7 +112,7 @@ index f903429..cde2124 100644 #endif // CHROME_COMMON_CHROME_UTILITY_PRINTING_MESSAGES_H_ diff --git chrome/utility/printing_handler.h chrome/utility/printing_handler.h -index 006966f..db9cd49 100644 +index 006966fd1c58..db9cd49af2a4 100644 --- chrome/utility/printing_handler.h +++ chrome/utility/printing_handler.h @@ -11,7 +11,7 @@ @@ -125,7 +125,7 @@ index 006966f..db9cd49 100644 #endif diff --git components/printing/common/print_messages.cc components/printing/common/print_messages.cc -index 18df761..9f86016d3 100644 +index 18df7614a988..9f86016d3e68 100644 --- components/printing/common/print_messages.cc +++ components/printing/common/print_messages.cc @@ -140,7 +140,6 @@ PrintMsg_PrintFrame_Params::PrintMsg_PrintFrame_Params() {} @@ -142,7 +142,7 @@ index 18df761..9f86016d3 100644 } -#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW) diff --git components/printing/common/print_messages.h components/printing/common/print_messages.h -index e3c11e1..0ae7dbd 100644 +index 7dd892feb181..daa097e62ba2 100644 --- components/printing/common/print_messages.h +++ components/printing/common/print_messages.h @@ -85,7 +85,6 @@ struct PrintMsg_PrintFrame_Params { @@ -177,7 +177,7 @@ index e3c11e1..0ae7dbd 100644 IPC_STRUCT_TRAITS_BEGIN(printing::PageSizeMargins) IPC_STRUCT_TRAITS_MEMBER(content_width) -@@ -282,7 +278,6 @@ IPC_STRUCT_BEGIN(PrintHostMsg_DidPrintContent_Params) +@@ -278,7 +274,6 @@ IPC_STRUCT_BEGIN(PrintHostMsg_DidPrintContent_Params) IPC_STRUCT_MEMBER(printing::ContentToProxyIdMap, subframe_content_info) IPC_STRUCT_END() @@ -185,7 +185,7 @@ index e3c11e1..0ae7dbd 100644 // Parameters to describe the to-be-rendered preview document. IPC_STRUCT_BEGIN(PrintHostMsg_DidStartPreview_Params) // Total page count for the rendered preview. (Not the number of pages the -@@ -316,7 +311,6 @@ IPC_STRUCT_BEGIN(PrintHostMsg_DidPreviewDocument_Params) +@@ -321,7 +316,6 @@ IPC_STRUCT_BEGIN(PrintHostMsg_DidPreviewDocument_Params) // Store the expected pages count. IPC_STRUCT_MEMBER(int, expected_pages_count) IPC_STRUCT_END() @@ -193,7 +193,7 @@ index e3c11e1..0ae7dbd 100644 // Parameters to describe a rendered page. IPC_STRUCT_BEGIN(PrintHostMsg_DidPrintDocument_Params) -@@ -351,20 +345,18 @@ IPC_STRUCT_END() +@@ -356,20 +350,18 @@ IPC_STRUCT_END() // Messages sent from the browser to the renderer. @@ -215,7 +215,7 @@ index e3c11e1..0ae7dbd 100644 // Like PrintMsg_PrintPages, but using the print preview document's frame/node. IPC_MESSAGE_ROUTED0(PrintMsg_PrintForSystemDialog) #endif -@@ -379,13 +371,13 @@ IPC_MESSAGE_ROUTED1(PrintMsg_PrintingDone, +@@ -384,13 +376,13 @@ IPC_MESSAGE_ROUTED1(PrintMsg_PrintingDone, // Tells the RenderFrame whether printing is enabled or not. IPC_MESSAGE_ROUTED1(PrintMsg_SetPrintingEnabled, bool /* enabled */) @@ -230,7 +230,7 @@ index e3c11e1..0ae7dbd 100644 // Tells the RenderFrame that print preview dialog was closed. IPC_MESSAGE_ROUTED0(PrintMsg_ClosePrintPreviewDialog) #endif -@@ -451,7 +443,6 @@ IPC_MESSAGE_CONTROL3(PrintHostMsg_TempFileForPrintingWritten, +@@ -456,7 +448,6 @@ IPC_MESSAGE_CONTROL3(PrintHostMsg_TempFileForPrintingWritten, int /* page count */) #endif // defined(OS_ANDROID) @@ -238,7 +238,7 @@ index e3c11e1..0ae7dbd 100644 // Asks the browser to do print preview. IPC_MESSAGE_ROUTED1(PrintHostMsg_RequestPrintPreview, PrintHostMsg_RequestPrintPreview_Params /* params */) -@@ -488,7 +479,6 @@ IPC_SYNC_MESSAGE_ROUTED1_1(PrintHostMsg_CheckForCancel, +@@ -493,7 +484,6 @@ IPC_SYNC_MESSAGE_ROUTED1_1(PrintHostMsg_CheckForCancel, IPC_MESSAGE_ROUTED2(PrintHostMsg_MetafileReadyForPrinting, PrintHostMsg_DidPreviewDocument_Params /* params */, PrintHostMsg_PreviewIds /* ids */) @@ -246,7 +246,7 @@ index e3c11e1..0ae7dbd 100644 // This is sent when there are invalid printer settings. IPC_MESSAGE_ROUTED0(PrintHostMsg_ShowInvalidPrinterSettingsError) -@@ -497,7 +487,6 @@ IPC_MESSAGE_ROUTED0(PrintHostMsg_ShowInvalidPrinterSettingsError) +@@ -502,7 +492,6 @@ IPC_MESSAGE_ROUTED0(PrintHostMsg_ShowInvalidPrinterSettingsError) IPC_MESSAGE_ROUTED1(PrintHostMsg_PrintingFailed, int /* document cookie */) @@ -254,7 +254,7 @@ index e3c11e1..0ae7dbd 100644 // Tell the browser print preview failed. IPC_MESSAGE_ROUTED2(PrintHostMsg_PrintPreviewFailed, int /* document cookie */, -@@ -528,6 +517,5 @@ IPC_MESSAGE_ROUTED1(PrintHostMsg_ShowScriptedPrintPreview, +@@ -533,6 +522,5 @@ IPC_MESSAGE_ROUTED1(PrintHostMsg_ShowScriptedPrintPreview, IPC_MESSAGE_ROUTED2(PrintHostMsg_SetOptionsFromDocument, PrintHostMsg_SetOptionsFromDocument_Params /* params */, PrintHostMsg_PreviewIds /* ids */) @@ -262,10 +262,10 @@ index e3c11e1..0ae7dbd 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 86a68c3..3cd1008 100644 +index 26b88c1d5849..e4fd177ef9f2 100644 --- components/printing/renderer/print_render_frame_helper.cc +++ components/printing/renderer/print_render_frame_helper.cc -@@ -340,7 +340,6 @@ bool PrintingNodeOrPdfFrame(const blink::WebLocalFrame* frame, +@@ -339,7 +339,6 @@ bool PrintingNodeOrPdfFrame(const blink::WebLocalFrame* frame, return plugin && plugin->SupportsPaginatedPrint(); } @@ -273,7 +273,7 @@ index 86a68c3..3cd1008 100644 // Returns true if the current destination printer is PRINT_TO_PDF. bool IsPrintToPdfRequested(const base::DictionaryValue& job_settings) { bool print_to_pdf = false; -@@ -362,7 +361,6 @@ bool PrintingFrameHasPageSizeStyle(blink::WebLocalFrame* frame, +@@ -361,7 +360,6 @@ bool PrintingFrameHasPageSizeStyle(blink::WebLocalFrame* frame, } return frame_has_custom_page_size_style; } @@ -281,15 +281,15 @@ index 86a68c3..3cd1008 100644 #if BUILDFLAG(ENABLE_PRINTING) // Disable scaling when either: -@@ -417,7 +415,6 @@ MarginType GetMarginsForPdf(blink::WebLocalFrame* frame, +@@ -416,7 +414,6 @@ MarginType GetMarginsForPdf(blink::WebLocalFrame* frame, : PRINTABLE_AREA_MARGINS; } -#if BUILDFLAG(ENABLE_PRINT_PREVIEW) - bool FitToPageEnabled(const base::DictionaryValue& job_settings) { - bool fit_to_paper_size = false; - if (!job_settings.GetBoolean(kSettingFitToPageEnabled, &fit_to_paper_size)) { -@@ -459,7 +456,6 @@ blink::WebPrintScalingOption GetPrintScalingOption( + 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)); +@@ -463,7 +460,6 @@ blink::WebPrintScalingOption GetPrintScalingOption( } return blink::kWebPrintScalingOptionFitToPrintableArea; } @@ -297,7 +297,7 @@ index 86a68c3..3cd1008 100644 // Helper function to scale and round an integer value with a double valued // scaling. -@@ -1021,10 +1017,8 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) { +@@ -1043,10 +1039,8 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) { return; if (g_is_preview_enabled) { @@ -308,7 +308,7 @@ index 86a68c3..3cd1008 100644 } else { auto weak_this = weak_ptr_factory_.GetWeakPtr(); web_frame->DispatchBeforePrintEvent(); -@@ -1052,10 +1046,10 @@ bool PrintRenderFrameHelper::OnMessageReceived(const IPC::Message& message) { +@@ -1074,10 +1068,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 86a68c3..3cd1008 100644 IPC_MESSAGE_HANDLER(PrintMsg_ClosePrintPreviewDialog, OnClosePrintPreviewDialog) #endif // BUILDFLAG(ENABLE_PRINT_PREVIEW) -@@ -1137,7 +1131,6 @@ void PrintRenderFrameHelper::UpdateFrameMarginsCssInfo( +@@ -1159,7 +1153,6 @@ void PrintRenderFrameHelper::UpdateFrameMarginsCssInfo( ignore_css_margins_ = (margins_type != DEFAULT_MARGINS); } @@ -328,7 +328,7 @@ index 86a68c3..3cd1008 100644 void PrintRenderFrameHelper::OnPrintPreview( const base::DictionaryValue& settings) { if (ipc_nesting_level_ > 1) -@@ -1391,7 +1384,6 @@ int PrintRenderFrameHelper::GetFitToPageScaleFactor( +@@ -1416,7 +1409,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 86a68c3..3cd1008 100644 void PrintRenderFrameHelper::OnPrintingDone(bool success) { if (ipc_nesting_level_ > 1) -@@ -1406,7 +1398,6 @@ void PrintRenderFrameHelper::OnSetPrintingEnabled(bool enabled) { +@@ -1431,7 +1423,6 @@ void PrintRenderFrameHelper::OnSetPrintingEnabled(bool enabled) { is_printing_enabled_ = enabled; } @@ -344,7 +344,7 @@ index 86a68c3..3cd1008 100644 void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) { if (ipc_nesting_level_ > 1) return; -@@ -1417,7 +1408,9 @@ void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) { +@@ -1442,7 +1433,9 @@ void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) { // that instead. auto plugin = delegate_->GetPdfElement(frame); if (!plugin.IsNull()) { @@ -354,7 +354,7 @@ index 86a68c3..3cd1008 100644 return; } print_preview_context_.InitWithFrame(frame); -@@ -1426,6 +1419,7 @@ void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) { +@@ -1451,6 +1444,7 @@ void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) { : PRINT_PREVIEW_USER_INITIATED_ENTIRE_FRAME); } @@ -362,7 +362,7 @@ index 86a68c3..3cd1008 100644 void PrintRenderFrameHelper::OnClosePrintPreviewDialog() { print_preview_context_.source_frame()->DispatchAfterPrintEvent(); } -@@ -1513,11 +1507,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { +@@ -1538,11 +1532,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { print_node_in_progress_ = true; @@ -375,7 +375,7 @@ index 86a68c3..3cd1008 100644 } else { // Make a copy of the node, in case RenderView::OnContextMenuClosed() resets // its |context_menu_node_|. -@@ -1593,13 +1585,11 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, +@@ -1618,13 +1610,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 86a68c3..3cd1008 100644 switch (result) { case OK: break; -@@ -1614,7 +1604,6 @@ void PrintRenderFrameHelper::DidFinishPrinting(PrintingResult result) { +@@ -1639,7 +1629,6 @@ void PrintRenderFrameHelper::DidFinishPrinting(PrintingResult result) { } break; @@ -397,7 +397,7 @@ index 86a68c3..3cd1008 100644 case FAIL_PREVIEW: if (!is_print_ready_metafile_sent_) { if (notify_browser_of_print_failure_) { -@@ -1632,7 +1621,6 @@ void PrintRenderFrameHelper::DidFinishPrinting(PrintingResult result) { +@@ -1657,7 +1646,6 @@ void PrintRenderFrameHelper::DidFinishPrinting(PrintingResult result) { cookie, ids)); print_preview_context_.Failed(false); break; @@ -405,7 +405,7 @@ index 86a68c3..3cd1008 100644 } prep_frame_view_.reset(); print_pages_params_.reset(); -@@ -1804,7 +1792,6 @@ bool PrintRenderFrameHelper::CalculateNumberOfPages(blink::WebLocalFrame* frame, +@@ -1830,7 +1818,6 @@ bool PrintRenderFrameHelper::CalculateNumberOfPages(blink::WebLocalFrame* frame, return true; } @@ -413,7 +413,7 @@ index 86a68c3..3cd1008 100644 bool PrintRenderFrameHelper::SetOptionsFromPdfDocument( PrintHostMsg_SetOptionsFromDocument_Params* options) { blink::WebLocalFrame* source_frame = print_preview_context_.source_frame(); -@@ -1897,7 +1884,6 @@ bool PrintRenderFrameHelper::UpdatePrintSettings( +@@ -1923,7 +1910,6 @@ bool PrintRenderFrameHelper::UpdatePrintSettings( print_preview_context_.set_error(PREVIEW_ERROR_INVALID_PRINTER_SETTINGS); return false; } @@ -421,7 +421,7 @@ index 86a68c3..3cd1008 100644 void PrintRenderFrameHelper::GetPrintSettingsFromUser( blink::WebLocalFrame* frame, -@@ -2054,7 +2040,6 @@ bool PrintRenderFrameHelper::CopyMetafileDataToReadOnlySharedMem( +@@ -2072,7 +2058,6 @@ bool PrintRenderFrameHelper::CopyMetafileDataToReadOnlySharedMem( return true; } @@ -429,7 +429,7 @@ index 86a68c3..3cd1008 100644 void PrintRenderFrameHelper::ShowScriptedPrintPreview() { if (is_scripted_preview_delayed_) { is_scripted_preview_delayed_ = false; -@@ -2180,7 +2165,6 @@ bool PrintRenderFrameHelper::PreviewPageRendered( +@@ -2198,7 +2183,6 @@ bool PrintRenderFrameHelper::PreviewPageRendered( Send(new PrintHostMsg_DidPreviewPage(routing_id(), preview_page_params, ids)); return true; } @@ -438,7 +438,7 @@ index 86a68c3..3cd1008 100644 PrintRenderFrameHelper::PrintPreviewContext::PrintPreviewContext() = default; diff --git components/printing/renderer/print_render_frame_helper.h components/printing/renderer/print_render_frame_helper.h -index d09db4d..83d265c 100644 +index ff6423d51151..12d71ed042c6 100644 --- components/printing/renderer/print_render_frame_helper.h +++ components/printing/renderer/print_render_frame_helper.h @@ -150,10 +150,8 @@ class PrintRenderFrameHelper @@ -511,7 +511,7 @@ index d09db4d..83d265c 100644 void SetPrintPagesParams(const PrintMsg_PrintPages_Params& settings); -@@ -521,6 +513,7 @@ class PrintRenderFrameHelper +@@ -522,6 +514,7 @@ class PrintRenderFrameHelper ScriptingThrottler scripting_throttler_; bool print_node_in_progress_ = false; @@ -520,7 +520,7 @@ index d09db4d..83d265c 100644 bool is_loading_ = false; bool is_scripted_preview_delayed_ = false; diff --git components/printing_component_strings.grdp components/printing_component_strings.grdp -index f157cba..5e3c3ca 100644 +index f157cbaec42e..5e3c3caa2aa2 100644 --- components/printing_component_strings.grdp +++ components/printing_component_strings.grdp @@ -1,10 +1,8 @@ @@ -535,7 +535,7 @@ index f157cba..5e3c3ca 100644 - diff --git components/pwg_encoder/BUILD.gn components/pwg_encoder/BUILD.gn -index 96ae254..3697d60 100644 +index 96ae254116a9..3697d6034300 100644 --- components/pwg_encoder/BUILD.gn +++ components/pwg_encoder/BUILD.gn @@ -4,8 +4,6 @@ diff --git a/patch/patches/printing_context_2196.patch b/patch/patches/printing_context_2196.patch index a8cedadbd..583d08f50 100644 --- a/patch/patches/printing_context_2196.patch +++ b/patch/patches/printing_context_2196.patch @@ -1,8 +1,8 @@ diff --git chrome/browser/printing/print_job_worker.cc chrome/browser/printing/print_job_worker.cc -index 1065e808e621..ca9a0bd14652 100644 +index 1e2d43fb5625..08fa8eb809e0 100644 --- chrome/browser/printing/print_job_worker.cc +++ chrome/browser/printing/print_job_worker.cc -@@ -145,6 +145,7 @@ PrintJobWorker::PrintJobWorker(int render_process_id, +@@ -147,6 +147,7 @@ PrintJobWorker::PrintJobWorker(int render_process_id, weak_factory_(this) { // The object is created in the IO thread. DCHECK(query_->RunsTasksInCurrentSequence()); diff --git a/patch/patches/renderer_preferences_util_545103.patch b/patch/patches/renderer_preferences_util_545103.patch index acd9ea7c8..9e3e2350f 100644 --- a/patch/patches/renderer_preferences_util_545103.patch +++ b/patch/patches/renderer_preferences_util_545103.patch @@ -1,5 +1,5 @@ diff --git chrome/browser/renderer_preferences_util.cc chrome/browser/renderer_preferences_util.cc -index 41a85d938028..0128b9f0d98b 100644 +index 8c33905eda7d..0a128051f86c 100644 --- chrome/browser/renderer_preferences_util.cc +++ chrome/browser/renderer_preferences_util.cc @@ -31,7 +31,8 @@ diff --git a/patch/patches/resource_bundle_2512.patch b/patch/patches/resource_bundle_2512.patch index 12d92fc3e..1e1effc0f 100644 --- a/patch/patches/resource_bundle_2512.patch +++ b/patch/patches/resource_bundle_2512.patch @@ -1,5 +1,5 @@ diff --git ui/base/resource/resource_bundle.cc ui/base/resource/resource_bundle.cc -index 2a00d4e..d2328b7 100644 +index 2a00d4e851ab..d2328b77b613 100644 --- ui/base/resource/resource_bundle.cc +++ ui/base/resource/resource_bundle.cc @@ -737,6 +737,12 @@ ResourceBundle::ResourceBundle(Delegate* delegate) @@ -28,7 +28,7 @@ index 2a00d4e..d2328b7 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 422d84b..669522fd 100644 +index 422d84bc2664..669522fda74d 100644 --- ui/base/resource/resource_bundle.h +++ ui/base/resource/resource_bundle.h @@ -150,6 +150,11 @@ class UI_BASE_EXPORT ResourceBundle { diff --git a/patch/patches/rwh_background_color_1984.patch b/patch/patches/rwh_background_color_1984.patch index 49179685a..619bb2e26 100644 --- a/patch/patches/rwh_background_color_1984.patch +++ b/patch/patches/rwh_background_color_1984.patch @@ -1,8 +1,8 @@ diff --git content/browser/renderer_host/render_widget_host_view_aura.cc content/browser/renderer_host/render_widget_host_view_aura.cc -index 126b857e541b..86dccf223b0a 100644 +index 404a1e7d2731..27ed31cbe61c 100644 --- content/browser/renderer_host/render_widget_host_view_aura.cc +++ content/browser/renderer_host/render_widget_host_view_aura.cc -@@ -718,10 +718,12 @@ gfx::Rect RenderWidgetHostViewAura::GetViewBounds() const { +@@ -725,10 +725,12 @@ gfx::Rect RenderWidgetHostViewAura::GetViewBounds() const { void RenderWidgetHostViewAura::UpdateBackgroundColor() { DCHECK(GetBackgroundColor()); @@ -19,7 +19,7 @@ index 126b857e541b..86dccf223b0a 100644 } void RenderWidgetHostViewAura::WindowTitleChanged() { -@@ -1932,6 +1934,15 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) { +@@ -1973,6 +1975,15 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) { if (frame_sink_id_.is_valid()) window_->SetEmbedFrameSinkId(frame_sink_id_); @@ -32,6 +32,6 @@ index 126b857e541b..86dccf223b0a 100644 + ignore_result(rvh->GetWebkitPreferences()); + } + - if (!features::IsUsingWindowService()) + if (!features::IsMultiProcessMash()) return; diff --git a/patch/patches/storage_partition_1973.patch b/patch/patches/storage_partition_1973.patch index 4a03caead..d3a004061 100644 --- a/patch/patches/storage_partition_1973.patch +++ b/patch/patches/storage_partition_1973.patch @@ -1,8 +1,8 @@ diff --git content/browser/appcache/appcache_internals_ui.cc content/browser/appcache/appcache_internals_ui.cc -index d95dcaf34949..5794a5fdf506 100644 +index cb4f88f4e9a3..b4afa66f973d 100644 --- content/browser/appcache/appcache_internals_ui.cc +++ content/browser/appcache/appcache_internals_ui.cc -@@ -375,8 +375,8 @@ void AppCacheInternalsUI::CreateProxyForPartition( +@@ -378,8 +378,8 @@ void AppCacheInternalsUI::CreateProxyForPartition( StoragePartition* storage_partition) { scoped_refptr proxy = new Proxy(weak_ptr_factory_.GetWeakPtr(), storage_partition->GetPath()); @@ -14,11 +14,11 @@ index d95dcaf34949..5794a5fdf506 100644 } diff --git content/browser/background_fetch/background_fetch_service_impl.cc content/browser/background_fetch/background_fetch_service_impl.cc -index f116ff5aad35..73544f3181d6 100644 +index edfea31c08ae..483bd67b7d64 100644 --- content/browser/background_fetch/background_fetch_service_impl.cc +++ content/browser/background_fetch/background_fetch_service_impl.cc -@@ -42,8 +42,7 @@ void BackgroundFetchServiceImpl::CreateForWorker( - BrowserThread::IO, FROM_HERE, +@@ -44,8 +44,7 @@ void BackgroundFetchServiceImpl::CreateForWorker( + FROM_HERE, {BrowserThread::IO}, base::BindOnce( BackgroundFetchServiceImpl::CreateOnIoThread, - WrapRefCounted(static_cast( @@ -27,8 +27,8 @@ index f116ff5aad35..73544f3181d6 100644 ->GetBackgroundFetchContext()), origin, nullptr /* render_frame_host */, std::move(request))); } -@@ -64,8 +63,7 @@ void BackgroundFetchServiceImpl::CreateForFrame( - BrowserThread::IO, FROM_HERE, +@@ -66,8 +65,7 @@ void BackgroundFetchServiceImpl::CreateForFrame( + FROM_HERE, {BrowserThread::IO}, base::BindOnce( BackgroundFetchServiceImpl::CreateOnIoThread, - WrapRefCounted(static_cast( @@ -38,10 +38,10 @@ index f116ff5aad35..73544f3181d6 100644 render_frame_host->GetLastCommittedOrigin(), render_frame_host, std::move(request))); diff --git content/browser/blob_storage/chrome_blob_storage_context.cc content/browser/blob_storage/chrome_blob_storage_context.cc -index 203e9c7e94a9..b4260e27ae6a 100644 +index 31bad2ca4cc8..1f8c2c00e427 100644 --- content/browser/blob_storage/chrome_blob_storage_context.cc +++ content/browser/blob_storage/chrome_blob_storage_context.cc -@@ -87,6 +87,11 @@ class BlobHandleImpl : public BlobHandle { +@@ -88,6 +88,11 @@ class BlobHandleImpl : public BlobHandle { ChromeBlobStorageContext::ChromeBlobStorageContext() {} @@ -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 840cafc185f4..aa16726a33ce 100644 +index 9797767f88ea..3da2c6d57154 100644 --- content/browser/browser_context.cc +++ content/browser/browser_context.cc -@@ -151,11 +151,18 @@ StoragePartition* GetStoragePartitionFromConfig( +@@ -203,11 +203,18 @@ StoragePartition* GetStoragePartitionFromConfig( StoragePartitionImplMap* partition_map = GetStoragePartitionMap(browser_context); @@ -108,9 +108,9 @@ index 840cafc185f4..aa16726a33ce 100644 } void SaveSessionStateOnIOThread( -@@ -629,6 +636,11 @@ ServiceManagerConnection* BrowserContext::GetServiceManagerConnectionFor( - BrowserContext::BrowserContext() - : unique_id_(base::UnguessableToken::Create().ToString()) {} +@@ -715,6 +722,11 @@ BrowserContext::BrowserContext() + new SharedCorsOriginAccessListImpl())); + } +// static +const void* BrowserContext::GetStoragePartitionMapUserDataKey() { @@ -121,24 +121,24 @@ index 840cafc185f4..aa16726a33ce 100644 CHECK(GetUserData(kMojoWasInitialized)) << "Attempting to destroy a BrowserContext that never called " diff --git content/browser/devtools/protocol/network_handler.cc content/browser/devtools/protocol/network_handler.cc -index 905fe910bebb..abf75841dd86 100644 +index df186ceb0b24..d4833710d0c7 100644 --- content/browser/devtools/protocol/network_handler.cc +++ content/browser/devtools/protocol/network_handler.cc -@@ -927,8 +927,7 @@ class BackgroundSyncRestorer { +@@ -930,8 +930,7 @@ class BackgroundSyncRestorer { scoped_refptr service_worker_host = static_cast(host.get()); scoped_refptr sync_context = - static_cast(storage_partition_) - ->GetBackgroundSyncContext(); + storage_partition_->GetBackgroundSyncContext(); - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {BrowserThread::IO}, base::BindOnce( diff --git content/browser/devtools/protocol/service_worker_handler.cc content/browser/devtools/protocol/service_worker_handler.cc -index 06c7cf436fd7..1f6e5182191f 100644 +index 5bf1859267c7..741fafc394be 100644 --- content/browser/devtools/protocol/service_worker_handler.cc +++ content/browser/devtools/protocol/service_worker_handler.cc -@@ -170,8 +170,7 @@ void ServiceWorkerHandler::SetRenderer(int process_host_id, +@@ -172,8 +172,7 @@ void ServiceWorkerHandler::SetRenderer(int process_host_id, return; } @@ -171,10 +171,10 @@ 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 37cabf2c9ffa..a5165fdbfdf6 100644 +index 4bed3550f84f..8625a8a5c8d0 100644 --- content/browser/download/download_manager_impl.cc +++ content/browser/download/download_manager_impl.cc -@@ -87,9 +87,9 @@ +@@ -89,9 +89,9 @@ namespace content { namespace { @@ -187,7 +187,7 @@ index 37cabf2c9ffa..a5165fdbfdf6 100644 DCHECK_CURRENTLY_ON(BrowserThread::UI); SiteInstance* site_instance = nullptr; -@@ -99,8 +99,7 @@ StoragePartitionImpl* GetStoragePartition(BrowserContext* context, +@@ -101,8 +101,7 @@ StoragePartitionImpl* GetStoragePartition(BrowserContext* context, if (render_frame_host_) site_instance = render_frame_host_->GetSiteInstance(); } @@ -197,7 +197,7 @@ index 37cabf2c9ffa..a5165fdbfdf6 100644 } bool CanRequestURLFromRenderer(int render_process_id, GURL url) { -@@ -266,7 +265,7 @@ base::FilePath GetTemporaryDownloadDirectory() { +@@ -268,7 +267,7 @@ base::FilePath GetTemporaryDownloadDirectory() { #endif scoped_refptr @@ -206,7 +206,7 @@ index 37cabf2c9ffa..a5165fdbfdf6 100644 RenderFrameHost* rfh, bool is_download) { network::mojom::URLLoaderFactoryPtrInfo proxy_factory_ptr_info; -@@ -283,7 +282,7 @@ CreateDownloadURLLoaderFactoryGetter(StoragePartitionImpl* storage_partition, +@@ -285,7 +284,7 @@ CreateDownloadURLLoaderFactoryGetter(StoragePartitionImpl* storage_partition, } } return base::MakeRefCounted( @@ -215,7 +215,7 @@ index 37cabf2c9ffa..a5165fdbfdf6 100644 std::move(proxy_factory_ptr_info), std::move(proxy_factory_request)); } -@@ -1127,7 +1126,7 @@ void DownloadManagerImpl::InterceptNavigationOnChecksComplete( +@@ -1129,7 +1128,7 @@ void DownloadManagerImpl::InterceptNavigationOnChecksComplete( tab_referrer_url = entry->GetReferrer().url; } } @@ -224,7 +224,7 @@ index 37cabf2c9ffa..a5165fdbfdf6 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, -@@ -1177,10 +1176,8 @@ void DownloadManagerImpl::BeginResourceDownloadOnChecksComplete( +@@ -1179,10 +1178,8 @@ void DownloadManagerImpl::BeginResourceDownloadOnChecksComplete( base::MakeRefCounted( rfh, params->url()); } else if (rfh && params->url().SchemeIsFileSystem()) { @@ -237,7 +237,7 @@ index 37cabf2c9ffa..a5165fdbfdf6 100644 std::string storage_domain; auto* site_instance = rfh->GetSiteInstance(); if (site_instance) { -@@ -1195,10 +1192,8 @@ void DownloadManagerImpl::BeginResourceDownloadOnChecksComplete( +@@ -1197,10 +1194,8 @@ void DownloadManagerImpl::BeginResourceDownloadOnChecksComplete( params->url(), rfh, /*is_navigation=*/false, storage_partition->GetFileSystemContext(), storage_domain); } else { @@ -251,10 +251,10 @@ index 37cabf2c9ffa..a5165fdbfdf6 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 d9034953e7f8..0e7c34daa4f8 100644 +index 26f09ff67ffd..0393e389dc1e 100644 --- content/browser/loader/navigation_url_loader_impl.cc +++ content/browser/loader/navigation_url_loader_impl.cc -@@ -1131,7 +1131,7 @@ class NavigationURLLoaderImpl::URLLoaderRequestController +@@ -1155,7 +1155,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_, @@ -263,7 +263,7 @@ index d9034953e7f8..0e7c34daa4f8 100644 false /* allow_wildcard */, &stale, &plugin, nullptr); if (stale) { -@@ -1495,7 +1495,7 @@ NavigationURLLoaderImpl::NavigationURLLoaderImpl( +@@ -1553,7 +1553,7 @@ NavigationURLLoaderImpl::NavigationURLLoaderImpl( network::mojom::URLLoaderFactoryPtrInfo proxied_factory_info; network::mojom::URLLoaderFactoryRequest proxied_factory_request; bool bypass_redirect_checks = false; @@ -273,10 +273,10 @@ index d9034953e7f8..0e7c34daa4f8 100644 // |frame_tree_node| may be null in some unit test environments. GetContentClient() diff --git content/browser/payments/payment_app_installer.cc content/browser/payments/payment_app_installer.cc -index 6a6e31bdb070..dce0433e1775 100644 +index 9ec51d4332a2..589c4ef5cf8d 100644 --- content/browser/payments/payment_app_installer.cc +++ content/browser/payments/payment_app_installer.cc -@@ -125,9 +125,9 @@ class SelfDeleteInstaller +@@ -133,9 +133,9 @@ class SelfDeleteInstaller void SetPaymentAppIntoDatabase() { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -289,10 +289,10 @@ index 6a6e31bdb070..dce0433e1775 100644 partition->GetPaymentAppContext(); diff --git content/browser/payments/payment_app_provider_impl.cc content/browser/payments/payment_app_provider_impl.cc -index 3cfa0bde2bca..96da49496944 100644 +index d3042e6a2fc7..07c8478b8ffb 100644 --- content/browser/payments/payment_app_provider_impl.cc +++ content/browser/payments/payment_app_provider_impl.cc -@@ -369,10 +369,11 @@ void StartServiceWorkerForDispatch(BrowserContext* browser_context, +@@ -373,10 +373,11 @@ void StartServiceWorkerForDispatch(BrowserContext* browser_context, ServiceWorkerStartCallback callback) { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -305,9 +305,9 @@ index 3cfa0bde2bca..96da49496944 100644 + static_cast( + partition->GetServiceWorkerContext()); - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, -@@ -446,8 +447,8 @@ void PaymentAppProviderImpl::GetAllPaymentApps( + base::PostTaskWithTraits( + FROM_HERE, {BrowserThread::IO}, +@@ -450,8 +451,8 @@ void PaymentAppProviderImpl::GetAllPaymentApps( GetAllPaymentAppsCallback callback) { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -319,10 +319,10 @@ index 3cfa0bde2bca..96da49496944 100644 partition->GetPaymentAppContext(); diff --git content/browser/renderer_host/render_process_host_impl.cc content/browser/renderer_host/render_process_host_impl.cc -index 989b52793c48..a9c5e6c9755b 100644 +index 96eb6578f347..3e7b0fc5d196 100644 --- content/browser/renderer_host/render_process_host_impl.cc +++ content/browser/renderer_host/render_process_host_impl.cc -@@ -739,11 +739,10 @@ class DefaultSubframeProcessHostHolder : public base::SupportsUserData::Data, +@@ -754,11 +754,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) { @@ -338,7 +338,7 @@ index 989b52793c48..a9c5e6c9755b 100644 // Is this the default storage partition? If it isn't, then just give it its // own non-shared process. -@@ -1474,7 +1473,7 @@ int RenderProcessHost::GetCurrentRenderProcessCountForTesting() { +@@ -1488,7 +1487,7 @@ int RenderProcessHost::GetCurrentRenderProcessCountForTesting() { // static RenderProcessHost* RenderProcessHostImpl::CreateRenderProcessHost( BrowserContext* browser_context, @@ -347,7 +347,7 @@ index 989b52793c48..a9c5e6c9755b 100644 SiteInstance* site_instance, bool is_for_guests_only) { if (g_render_process_host_factory_) { -@@ -1483,8 +1482,8 @@ RenderProcessHost* RenderProcessHostImpl::CreateRenderProcessHost( +@@ -1497,8 +1496,8 @@ RenderProcessHost* RenderProcessHostImpl::CreateRenderProcessHost( } if (!storage_partition_impl) { @@ -358,7 +358,7 @@ index 989b52793c48..a9c5e6c9755b 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 -@@ -1509,7 +1508,7 @@ const unsigned int RenderProcessHostImpl::kMaxFrameDepthForPriority = +@@ -1523,7 +1522,7 @@ const unsigned int RenderProcessHostImpl::kMaxFrameDepthForPriority = RenderProcessHostImpl::RenderProcessHostImpl( BrowserContext* browser_context, @@ -367,7 +367,7 @@ index 989b52793c48..a9c5e6c9755b 100644 bool is_for_guests_only) : fast_shutdown_started_(false), deleting_soon_(false), -@@ -1562,10 +1561,12 @@ RenderProcessHostImpl::RenderProcessHostImpl( +@@ -1576,10 +1575,12 @@ RenderProcessHostImpl::RenderProcessHostImpl( indexed_db_factory_(new IndexedDBDispatcherHost( id_, storage_partition_impl_->GetURLRequestContext(), @@ -382,7 +382,7 @@ index 989b52793c48..a9c5e6c9755b 100644 id_)), channel_connected_(false), sent_render_process_ready_(false), -@@ -1600,7 +1601,8 @@ RenderProcessHostImpl::RenderProcessHostImpl( +@@ -1615,7 +1616,8 @@ RenderProcessHostImpl::RenderProcessHostImpl( } push_messaging_manager_.reset(new PushMessagingManager( @@ -392,7 +392,7 @@ index 989b52793c48..a9c5e6c9755b 100644 AddObserver(indexed_db_factory_.get()); AddObserver(service_worker_dispatcher_host_.get()); -@@ -1936,6 +1938,17 @@ void RenderProcessHostImpl::ResetChannelProxy() { +@@ -1951,6 +1953,15 @@ void RenderProcessHostImpl::ResetChannelProxy() { void RenderProcessHostImpl::CreateMessageFilters() { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -400,8 +400,6 @@ index 989b52793c48..a9c5e6c9755b 100644 + // Cast to the derived type from StoragePartitionImpl. + auto app_cache_service = static_cast( + storage_partition_impl_->GetAppCacheService()); -+ auto cache_storage_context = static_cast( -+ storage_partition_impl_->GetCacheStorageContext()); + auto dom_storage_context = static_cast( + storage_partition_impl_->GetDOMStorageContext()); + auto service_worker_context = static_cast( @@ -410,16 +408,7 @@ index 989b52793c48..a9c5e6c9755b 100644 MediaInternals* media_internals = MediaInternals::GetInstance(); // Add BrowserPluginMessageFilter to ensure it gets the first stab at messages // from guests. -@@ -1950,7 +1963,7 @@ void RenderProcessHostImpl::CreateMessageFilters() { - base::MakeRefCounted( - GetID(), GetBrowserContext(), request_context.get(), - widget_helper_.get(), media_internals, -- storage_partition_impl_->GetCacheStorageContext(), -+ cache_storage_context, - storage_partition_impl_->GetGeneratedCodeCacheContext()); - AddFilter(render_message_filter.get()); - -@@ -1978,10 +1991,10 @@ void RenderProcessHostImpl::CreateMessageFilters() { +@@ -1989,10 +2000,10 @@ void RenderProcessHostImpl::CreateMessageFilters() { ChromeBlobStorageContext::GetFor(browser_context); resource_message_filter_ = new ResourceMessageFilter( @@ -430,9 +419,9 @@ index 989b52793c48..a9c5e6c9755b 100644 - storage_partition_impl_->GetServiceWorkerContext(), + service_worker_context, storage_partition_impl_->GetPrefetchURLLoaderService(), + BrowserContext::GetSharedCorsOriginAccessList(browser_context), std::move(get_contexts_callback), - BrowserThread::GetTaskRunnerForThread(BrowserThread::IO)); -@@ -1990,8 +2003,7 @@ void RenderProcessHostImpl::CreateMessageFilters() { +@@ -2002,8 +2013,7 @@ void RenderProcessHostImpl::CreateMessageFilters() { AddFilter( new MidiHost(GetID(), BrowserMainLoop::GetInstance()->midi_service())); @@ -442,7 +431,7 @@ index 989b52793c48..a9c5e6c9755b 100644 peer_connection_tracker_host_ = new PeerConnectionTrackerHost(GetID()); AddFilter(peer_connection_tracker_host_.get()); -@@ -2008,10 +2020,6 @@ void RenderProcessHostImpl::CreateMessageFilters() { +@@ -2020,10 +2030,6 @@ void RenderProcessHostImpl::CreateMessageFilters() { AddFilter(new TraceMessageFilter(GetID())); AddFilter(new ResolveProxyMsgHelper(GetID())); @@ -453,7 +442,7 @@ index 989b52793c48..a9c5e6c9755b 100644 } void RenderProcessHostImpl::BindCacheStorage( -@@ -2023,7 +2031,8 @@ void RenderProcessHostImpl::BindCacheStorage( +@@ -2035,7 +2041,8 @@ void RenderProcessHostImpl::BindCacheStorage( cache_storage_dispatcher_host_ = base::MakeRefCounted(); cache_storage_dispatcher_host_->Init( @@ -463,7 +452,17 @@ index 989b52793c48..a9c5e6c9755b 100644 } // Send the binding to IO thread, because Cache Storage handles Mojo IPC on IO // thread entirely. -@@ -2198,7 +2207,8 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() { +@@ -2205,7 +2212,8 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() { + + registry->AddInterface(base::BindRepeating( + &CodeCacheHostImpl::Create, GetID(), +- base::RetainedRef(storage_partition_impl_->GetCacheStorageContext()), ++ base::RetainedRef(static_cast( ++ storage_partition_impl_->GetCacheStorageContext())), + base::RetainedRef( + storage_partition_impl_->GetGeneratedCodeCacheContext()))); + +@@ -2216,7 +2224,8 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() { registry->AddInterface(base::BindRepeating( &AppCacheDispatcherHost::Create, @@ -473,7 +472,7 @@ index 989b52793c48..a9c5e6c9755b 100644 GetID())); AddUIThreadInterface( -@@ -2235,6 +2245,9 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() { +@@ -2253,6 +2262,9 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() { plugin_registry_.reset( new PluginRegistryImpl(GetBrowserContext()->GetResourceContext())); } @@ -484,10 +483,10 @@ index 989b52793c48..a9c5e6c9755b 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 37bc9b79afd7..ed496b1c7439 100644 +index 95c1a4766444..5f4f2cd7baff 100644 --- content/browser/renderer_host/render_process_host_impl.h +++ content/browser/renderer_host/render_process_host_impl.h -@@ -97,7 +97,6 @@ class ServiceWorkerDispatcherHost; +@@ -99,7 +99,6 @@ class ServiceWorkerDispatcherHost; class SiteInstance; class SiteInstanceImpl; class StoragePartition; @@ -495,7 +494,7 @@ index 37bc9b79afd7..ed496b1c7439 100644 struct ChildProcessTerminationInfo; typedef base::Thread* (*RendererMainThreadFactoryFunction)( -@@ -140,7 +139,7 @@ class CONTENT_EXPORT RenderProcessHostImpl +@@ -142,7 +141,7 @@ class CONTENT_EXPORT RenderProcessHostImpl // null. static RenderProcessHost* CreateRenderProcessHost( BrowserContext* browser_context, @@ -504,7 +503,7 @@ index 37bc9b79afd7..ed496b1c7439 100644 SiteInstance* site_instance, bool is_for_guests_only); -@@ -484,7 +483,7 @@ class CONTENT_EXPORT RenderProcessHostImpl +@@ -487,7 +486,7 @@ class CONTENT_EXPORT RenderProcessHostImpl // Use CreateRenderProcessHost() instead of calling this constructor // directly. RenderProcessHostImpl(BrowserContext* browser_context, @@ -513,7 +512,7 @@ index 37bc9b79afd7..ed496b1c7439 100644 bool is_for_guests_only); // Initializes a new IPC::ChannelProxy in |channel_|, which will be connected -@@ -753,10 +752,10 @@ class CONTENT_EXPORT RenderProcessHostImpl +@@ -756,10 +755,10 @@ class CONTENT_EXPORT RenderProcessHostImpl // called. int instance_id_ = 1; @@ -569,7 +568,7 @@ index c3a8bdc572de..73f66acbe200 100644 ->CreateService(std::move(request), origin); })); diff --git content/browser/shared_worker/shared_worker_connector_impl.cc content/browser/shared_worker/shared_worker_connector_impl.cc -index 2fe70f50171f..98244cd5ddf8 100644 +index 454febaba66b..90d430bb95d3 100644 --- content/browser/shared_worker/shared_worker_connector_impl.cc +++ content/browser/shared_worker/shared_worker_connector_impl.cc @@ -52,8 +52,8 @@ void SharedWorkerConnectorImpl::Connect( @@ -584,25 +583,24 @@ index 2fe70f50171f..98244cd5ddf8 100644 std::move(client), creation_context_type, blink::MessagePortChannel(std::move(message_port)), diff --git content/browser/shared_worker/shared_worker_service_impl.cc content/browser/shared_worker/shared_worker_service_impl.cc -index 51f91bdd7e2f..a67745058ed3 100644 +index 1033953db1e6..8dc848dfb0b5 100644 --- content/browser/shared_worker/shared_worker_service_impl.cc +++ content/browser/shared_worker/shared_worker_service_impl.cc -@@ -344,8 +344,8 @@ void SharedWorkerServiceImpl::CreateWorker( - BrowserThread::IO, FROM_HERE, +@@ -480,7 +480,8 @@ void SharedWorkerServiceImpl::CreateWorker( + FROM_HERE, {BrowserThread::IO}, base::BindOnce( &CreateScriptLoaderOnIO, -- service_worker_context_->storage_partition() -- ->url_loader_factory_getter(), -+ base::WrapRefCounted(service_worker_context_->storage_partition() -+ ->url_loader_factory_getter()), +- storage_partition_->url_loader_factory_getter(), ++ base::WrapRefCounted( ++ storage_partition_->url_loader_factory_getter()), std::move(factory_bundle_for_browser), std::move(subresource_loader_factories), service_worker_context_, appcache_handle_core, diff --git content/browser/storage_partition_impl.h content/browser/storage_partition_impl.h -index 6f6c5c1e504a..097095a613dd 100644 +index 78110a30b23a..f387d99af595 100644 --- content/browser/storage_partition_impl.h +++ content/browser/storage_partition_impl.h -@@ -95,7 +95,7 @@ class CONTENT_EXPORT StoragePartitionImpl +@@ -97,7 +97,7 @@ class CONTENT_EXPORT StoragePartitionImpl storage::FileSystemContext* GetFileSystemContext() override; storage::DatabaseTracker* GetDatabaseTracker() override; DOMStorageContextWrapper* GetDOMStorageContext() override; @@ -611,7 +609,7 @@ index 6f6c5c1e504a..097095a613dd 100644 IndexedDBContextImpl* GetIndexedDBContext() override; CacheStorageContextImpl* GetCacheStorageContext() override; ServiceWorkerContextWrapper* GetServiceWorkerContext() override; -@@ -136,14 +136,14 @@ class CONTENT_EXPORT StoragePartitionImpl +@@ -138,14 +138,14 @@ class CONTENT_EXPORT StoragePartitionImpl void FlushNetworkInterfaceForTesting() override; void WaitForDeletionTasksForTesting() override; @@ -634,9 +632,9 @@ index 6f6c5c1e504a..097095a613dd 100644 // blink::mojom::StoragePartitionService interface. void OpenLocalStorage(const url::Origin& origin, -@@ -152,18 +152,19 @@ class CONTENT_EXPORT StoragePartitionImpl - const std::string& namespace_id, - blink::mojom::SessionStorageNamespaceRequest request) override; +@@ -159,18 +159,19 @@ class CONTENT_EXPORT StoragePartitionImpl + const std::vector& origins, + OnCanSendReportingReportsCallback callback) override; - scoped_refptr url_loader_factory_getter() { - return url_loader_factory_getter_; @@ -658,7 +656,7 @@ index 6f6c5c1e504a..097095a613dd 100644 auto& bindings_for_testing() { return bindings_; } -@@ -174,10 +175,11 @@ class CONTENT_EXPORT StoragePartitionImpl +@@ -181,10 +182,11 @@ class CONTENT_EXPORT StoragePartitionImpl // one must use the "chrome-guest://blahblah" site URL to ensure that the // service worker stays in this StoragePartition. This is an empty GURL if // this StoragePartition is not for guests. @@ -673,10 +671,10 @@ index 6f6c5c1e504a..097095a613dd 100644 } diff --git content/browser/streams/stream_context.cc content/browser/streams/stream_context.cc -index 0ab6a2d6f963..f24e547f2396 100644 +index 9ed67fe1550b..d0c791791c38 100644 --- content/browser/streams/stream_context.cc +++ content/browser/streams/stream_context.cc -@@ -21,6 +21,11 @@ namespace content { +@@ -23,6 +23,11 @@ namespace content { StreamContext::StreamContext() {} @@ -701,10 +699,10 @@ index 075ae3e7431e..57fb5fd2c4a8 100644 void InitializeOnIOThread(); diff --git content/browser/webui/web_ui_url_loader_factory.cc content/browser/webui/web_ui_url_loader_factory.cc -index a0e398098383..5ea5de0df6c2 100644 +index 63fe0125ca1c..698378600723 100644 --- content/browser/webui/web_ui_url_loader_factory.cc +++ content/browser/webui/web_ui_url_loader_factory.cc -@@ -19,13 +19,13 @@ +@@ -19,7 +19,6 @@ #include "content/browser/blob_storage/chrome_blob_storage_context.h" #include "content/browser/frame_host/render_frame_host_impl.h" #include "content/browser/resource_context_impl.h" @@ -712,14 +710,15 @@ index a0e398098383..5ea5de0df6c2 100644 #include "content/browser/webui/network_error_url_loader.h" #include "content/browser/webui/url_data_manager_backend.h" #include "content/browser/webui/url_data_source_impl.h" - #include "content/public/browser/browser_context.h" +@@ -27,6 +26,7 @@ + #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/render_process_host.h" +#include "content/public/browser/storage_partition.h" #include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents_observer.h" #include "content/public/common/url_constants.h" -@@ -313,9 +313,8 @@ class WebUIURLLoaderFactory : public network::mojom::URLLoaderFactory, +@@ -314,9 +314,8 @@ class WebUIURLLoaderFactory : public network::mojom::URLLoaderFactory, const std::string& scheme() const { return scheme_; } private: @@ -732,10 +731,10 @@ index a0e398098383..5ea5de0df6c2 100644 RenderFrameHost* render_frame_host_; diff --git content/public/browser/browser_context.h content/public/browser/browser_context.h -index e49eaaa04abb..0c13d6a95a4d 100644 +index e26a929290a9..cf6f5b3b41ec 100644 --- content/public/browser/browser_context.h +++ content/public/browser/browser_context.h -@@ -217,6 +217,8 @@ class CONTENT_EXPORT BrowserContext : public base::SupportsUserData { +@@ -238,6 +238,8 @@ class CONTENT_EXPORT BrowserContext : public base::SupportsUserData { BrowserContext(); @@ -744,7 +743,7 @@ index e49eaaa04abb..0c13d6a95a4d 100644 ~BrowserContext() override; // Shuts down the storage partitions associated to this browser context. -@@ -311,6 +313,14 @@ class CONTENT_EXPORT BrowserContext : public base::SupportsUserData { +@@ -332,6 +334,14 @@ class CONTENT_EXPORT BrowserContext : public base::SupportsUserData { const base::FilePath& partition_path, bool in_memory) = 0; diff --git a/patch/patches/views_1749_2102.patch b/patch/patches/views_1749_2102.patch index 48de836aa..b6f4af209 100644 --- a/patch/patches/views_1749_2102.patch +++ b/patch/patches/views_1749_2102.patch @@ -39,10 +39,10 @@ index a19e6e937f87..817b7eada253 100644 virtual void MenuWillShow() {} diff --git ui/gfx/render_text.cc ui/gfx/render_text.cc -index c29ed3e92bc9..fc3fe3a6f12f 100644 +index deada9af341b..d68300e5ab96 100644 --- ui/gfx/render_text.cc +++ ui/gfx/render_text.cc -@@ -524,6 +524,14 @@ void RenderText::SetElideBehavior(ElideBehavior elide_behavior) { +@@ -513,6 +513,14 @@ void RenderText::SetElideBehavior(ElideBehavior elide_behavior) { } } @@ -57,7 +57,7 @@ index c29ed3e92bc9..fc3fe3a6f12f 100644 void RenderText::SetDisplayRect(const Rect& r) { if (r != display_rect_) { display_rect_ = r; -@@ -1518,6 +1526,19 @@ void RenderText::OnTextAttributeChanged() { +@@ -1507,6 +1515,19 @@ void RenderText::OnTextAttributeChanged() { if (!multiline_ && replace_newline_chars_with_symbols_) base::ReplaceChars(layout_text_, kNewline, kNewlineSymbol, &layout_text_); @@ -295,10 +295,10 @@ index 9c78b30ab3a0..999eb4048f5c 100644 std::unique_ptr selection_controller_; diff --git ui/views/controls/menu/menu_controller.cc ui/views/controls/menu/menu_controller.cc -index b4da2b5128c8..d030d6e81c19 100644 +index 63a169e74862..16a01b6eb2bd 100644 --- ui/views/controls/menu/menu_controller.cc +++ ui/views/controls/menu/menu_controller.cc -@@ -2441,8 +2441,13 @@ MenuItemView* MenuController::FindNextSelectableMenuItem( +@@ -2440,8 +2440,13 @@ MenuItemView* MenuController::FindNextSelectableMenuItem( void MenuController::OpenSubmenuChangeSelectionIfCan() { MenuItemView* item = pending_state_.item; @@ -313,7 +313,7 @@ index b4da2b5128c8..d030d6e81c19 100644 MenuItemView* to_select = NULL; if (item->GetSubmenu()->GetMenuItemCount() > 0) to_select = FindInitialSelectableMenuItem(item, INCREMENT_SELECTION_DOWN); -@@ -2457,8 +2462,10 @@ void MenuController::OpenSubmenuChangeSelectionIfCan() { +@@ -2456,8 +2461,10 @@ void MenuController::OpenSubmenuChangeSelectionIfCan() { void MenuController::CloseSubmenu() { MenuItemView* item = state_.item; DCHECK(item); @@ -365,10 +365,10 @@ index 706605182f9a..e97d0495bc72 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 6c007a1030cf..e63b03f0534c 100644 +index dc3228c2e060..e402e021b464 100644 --- ui/views/controls/menu/menu_item_view.cc +++ ui/views/controls/menu/menu_item_view.cc -@@ -915,7 +915,12 @@ void MenuItemView::PaintButton(gfx::Canvas* canvas, PaintButtonMode mode) { +@@ -926,7 +926,12 @@ void MenuItemView::PaintButton(gfx::Canvas* canvas, PaintButtonMode mode) { // only need the background when we want it to look different, as when we're // selected. ui::NativeTheme* native_theme = GetNativeTheme(); @@ -382,7 +382,7 @@ index 6c007a1030cf..e63b03f0534c 100644 gfx::Rect item_bounds(0, 0, width(), height()); if (type_ == ACTIONABLE_SUBMENU) { if (submenu_area_of_actionable_submenu_selected_) { -@@ -1035,6 +1040,13 @@ void MenuItemView::PaintMinorIconAndText( +@@ -1046,6 +1051,13 @@ void MenuItemView::PaintMinorIconAndText( } SkColor MenuItemView::GetTextColor(bool minor, bool render_selection) const { @@ -535,7 +535,7 @@ index 3ec1dcbdf822..e2658cec8095 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 4248609dd3c3..e254ce5a940a 100644 +index 161e015c0448..4b36bfd17082 100644 --- ui/views/view.h +++ ui/views/view.h @@ -19,6 +19,7 @@ diff --git a/patch/patches/views_widget_180_1481_1565_1677_1749.patch b/patch/patches/views_widget_180_1481_1565_1677_1749.patch index 89d5eb17e..f716277b6 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 fae4c74c977b..b1d60ee9421b 100644 +index 9829370a3c94..1f6604026456 100644 --- content/browser/renderer_host/render_widget_host_view_base.cc +++ content/browser/renderer_host/render_widget_host_view_base.cc -@@ -501,6 +501,14 @@ float RenderWidgetHostViewBase::GetDeviceScaleFactor() const { +@@ -575,6 +575,14 @@ float RenderWidgetHostViewBase::GetDeviceScaleFactor() const { return screen_info.device_scale_factor; } @@ -18,7 +18,7 @@ index fae4c74c977b..b1d60ee9421b 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 08454f68a01d..768fbb5d8f9d 100644 +index 881511547f74..14190c538bf3 100644 --- content/browser/renderer_host/render_widget_host_view_base.h +++ content/browser/renderer_host/render_widget_host_view_base.h @@ -83,6 +83,7 @@ class CursorManager; @@ -29,7 +29,7 @@ index 08454f68a01d..768fbb5d8f9d 100644 class SyntheticGestureTarget; class TextInputManager; class TouchSelectionControllerClientManager; -@@ -104,6 +105,9 @@ class CONTENT_EXPORT RenderWidgetHostViewBase +@@ -105,6 +106,9 @@ class CONTENT_EXPORT RenderWidgetHostViewBase float current_device_scale_factor() const { return current_device_scale_factor_; } @@ -39,7 +39,7 @@ index 08454f68a01d..768fbb5d8f9d 100644 // Returns the focused RenderWidgetHost inside this |view|'s RWH. RenderWidgetHostImpl* GetFocusedWidget() const; -@@ -141,6 +145,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase +@@ -142,6 +146,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase void DisableAutoResize(const gfx::Size& new_size) override; bool IsScrollOffsetAtTop() const override; float GetDeviceScaleFactor() const final; @@ -48,7 +48,7 @@ index 08454f68a01d..768fbb5d8f9d 100644 TouchSelectionControllerClientManager* GetTouchSelectionControllerClientManager() override; -@@ -471,6 +477,12 @@ class CONTENT_EXPORT RenderWidgetHostViewBase +@@ -482,6 +488,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,9 +61,9 @@ index 08454f68a01d..768fbb5d8f9d 100644 // Sets the cursor for this view to the one associated with the specified // cursor_type. virtual void UpdateCursor(const WebCursor& cursor) = 0; -@@ -659,6 +671,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase +@@ -671,6 +683,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase - bool use_viz_hit_test_ = false; + bool is_currently_scrolling_viewport_ = false; + // True if the widget has a external parent view/window outside of the + // Chromium-controlled view/window hierarchy. @@ -73,10 +73,10 @@ index 08454f68a01d..768fbb5d8f9d 100644 void SynchronizeVisualProperties(); diff --git content/browser/renderer_host/render_widget_host_view_event_handler.cc content/browser/renderer_host/render_widget_host_view_event_handler.cc -index 940d9c107664..f7a35655c757 100644 +index 7318323bb5a5..4884943e414f 100644 --- content/browser/renderer_host/render_widget_host_view_event_handler.cc +++ content/browser/renderer_host/render_widget_host_view_event_handler.cc -@@ -30,6 +30,10 @@ +@@ -29,6 +29,10 @@ #include "ui/events/keycodes/dom/dom_code.h" #include "ui/touch_selection/touch_selection_controller.h" @@ -87,7 +87,7 @@ index 940d9c107664..f7a35655c757 100644 #if defined(OS_WIN) #include "content/browser/frame_host/render_frame_host_impl.h" #include "content/public/common/context_menu_params.h" -@@ -891,6 +895,14 @@ void RenderWidgetHostViewEventHandler::SetKeyboardFocus() { +@@ -871,6 +875,14 @@ void RenderWidgetHostViewEventHandler::SetKeyboardFocus() { ::SetFocus(hwnd); } } @@ -194,7 +194,7 @@ index 364d6df184c5..0d32a4579c87 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 590de782aca3..e87ee9935760 100644 +index 065d98ec077e..e63ddacfd8a7 100644 --- ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc +++ ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc @@ -145,6 +145,7 @@ DesktopWindowTreeHostX11::DesktopWindowTreeHostX11( @@ -241,7 +241,7 @@ index 590de782aca3..e87ee9935760 100644 return ToDIPRect(bounds_in_pixels_); } -@@ -1271,6 +1278,8 @@ void DesktopWindowTreeHostX11::SetBoundsInPixels( +@@ -1272,6 +1279,8 @@ void DesktopWindowTreeHostX11::SetBoundsInPixels( } gfx::Point DesktopWindowTreeHostX11::GetLocationOnScreenInPixels() const { @@ -250,15 +250,15 @@ index 590de782aca3..e87ee9935760 100644 return bounds_in_pixels_.origin(); } -@@ -1415,7 +1424,6 @@ void DesktopWindowTreeHostX11::InitX11Window( - ::Atom window_type; +@@ -1416,7 +1425,6 @@ void DesktopWindowTreeHostX11::InitX11Window( + XAtom window_type; switch (params.type) { case Widget::InitParams::TYPE_MENU: - swa.override_redirect = x11::True; window_type = gfx::GetAtom("_NET_WM_WINDOW_TYPE_MENU"); break; case Widget::InitParams::TYPE_TOOLTIP: -@@ -1471,9 +1479,15 @@ void DesktopWindowTreeHostX11::InitX11Window( +@@ -1472,9 +1480,15 @@ void DesktopWindowTreeHostX11::InitX11Window( attribute_mask |= CWBorderPixel; swa.border_pixel = 0; @@ -275,7 +275,7 @@ index 590de782aca3..e87ee9935760 100644 bounds_in_pixels_.y(), bounds_in_pixels_.width(), bounds_in_pixels_.height(), 0, // border width -@@ -2089,6 +2103,10 @@ uint32_t DesktopWindowTreeHostX11::DispatchEvent( +@@ -2092,6 +2106,10 @@ uint32_t DesktopWindowTreeHostX11::DispatchEvent( } break; } @@ -287,7 +287,7 @@ index 590de782aca3..e87ee9935760 100644 case x11::FocusOut: OnFocusEvent(xev->type == x11::FocusIn, event->xfocus.mode, diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h -index 5a0a3086545a..531619b16213 100644 +index cc9d5fb48234..f8daf495d5d9 100644 --- ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h +++ ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h @@ -91,6 +91,12 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 @@ -303,7 +303,7 @@ index 5a0a3086545a..531619b16213 100644 protected: // Overridden from DesktopWindowTreeHost: void Init(const Widget::InitParams& params) override; -@@ -321,6 +327,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 +@@ -330,6 +336,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 // The bounds of |xwindow_|. gfx::Rect bounds_in_pixels_; @@ -313,7 +313,7 @@ index 5a0a3086545a..531619b16213 100644 // Whenever the bounds are set, we keep the previous set of bounds around so // we can have a better chance of getting the real // |restored_bounds_in_pixels_|. Window managers tend to send a Configure -@@ -365,6 +374,10 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 +@@ -370,6 +379,10 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 // Whether we used an ARGB visual for our window. bool use_argb_visual_; @@ -324,7 +324,7 @@ index 5a0a3086545a..531619b16213 100644 DesktopDragDropClientAuraX11* drag_drop_client_; std::unique_ptr x11_non_client_event_filter_; -@@ -454,6 +467,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 +@@ -459,6 +472,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 uint32_t modal_dialog_counter_; @@ -335,7 +335,7 @@ index 5a0a3086545a..531619b16213 100644 base::WeakPtrFactory weak_factory_; diff --git ui/views/widget/widget.cc ui/views/widget/widget.cc -index 5ad48b616fa3..3abbf674ee23 100644 +index 0353201e7933..557446296e18 100644 --- ui/views/widget/widget.cc +++ ui/views/widget/widget.cc @@ -137,6 +137,7 @@ Widget::InitParams::InitParams(Type type) @@ -369,7 +369,7 @@ index 5ad48b616fa3..3abbf674ee23 100644 } // This must come after SetContentsView() or it might not be able to find // the correct NativeTheme (on Linux). See http://crbug.com/384492 -@@ -1112,10 +1118,16 @@ void Widget::OnNativeWidgetDestroyed() { +@@ -1114,10 +1120,16 @@ void Widget::OnNativeWidgetDestroyed() { } gfx::Size Widget::GetMinimumSize() const { @@ -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 54eb0fcd0bf7..f2a661e55176 100644 +index 2841eb8bfc0d..ed42a0936f0d 100644 --- ui/views/win/hwnd_message_handler.cc +++ ui/views/win/hwnd_message_handler.cc -@@ -2868,10 +2868,13 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message, +@@ -2872,10 +2872,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 cd4ba060a..dd9f9774d 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 edcf5ac5dfce..f4003294f2d0 100644 +index f79a44750343..ca460c149d1e 100644 --- chrome/browser/vr/BUILD.gn +++ chrome/browser/vr/BUILD.gn -@@ -350,6 +350,7 @@ source_set("vr_base") { +@@ -389,6 +389,7 @@ source_set("vr_base") { ] deps = [ diff --git a/patch/patches/web_contents_1257_1565.patch b/patch/patches/web_contents_1257_1565.patch index be6e1a813..a00dd722a 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 36dab1bdee1d..27a1c1cbe0c8 100644 +index 169b1d8d8cb7..453ba504d41f 100644 --- content/browser/web_contents/web_contents_impl.cc +++ content/browser/web_contents/web_contents_impl.cc -@@ -1940,21 +1940,30 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { +@@ -1958,21 +1958,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 36dab1bdee1d..27a1c1cbe0c8 100644 CHECK(render_view_host_delegate_view_); CHECK(view_.get()); -@@ -2637,6 +2646,15 @@ void WebContentsImpl::CreateNewWindow( +@@ -2665,6 +2674,15 @@ void WebContentsImpl::CreateNewWindow( create_params.renderer_initiated_creation = main_frame_route_id != MSG_ROUTING_NONE; @@ -61,7 +61,7 @@ index 36dab1bdee1d..27a1c1cbe0c8 100644 std::unique_ptr new_contents; if (!is_guest) { create_params.context = view_->GetNativeView(); -@@ -2667,7 +2685,7 @@ void WebContentsImpl::CreateNewWindow( +@@ -2695,7 +2713,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 36dab1bdee1d..27a1c1cbe0c8 100644 } // Save the created window associated with the route so we can show it // later. -@@ -6042,7 +6060,7 @@ InterstitialPageImpl* WebContentsImpl::GetInterstitialForRenderManager() { +@@ -6117,7 +6135,7 @@ InterstitialPageImpl* WebContentsImpl::GetInterstitialForRenderManager() { void WebContentsImpl::CreateRenderWidgetHostViewForRenderManager( RenderViewHost* render_view_host) { RenderWidgetHostViewBase* rwh_view = @@ -95,10 +95,10 @@ 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 786eecfcb70c..984326a81411 100644 +index f26f7e501663..1b773a654118 100644 --- content/public/browser/web_contents.h +++ content/public/browser/web_contents.h -@@ -77,9 +77,11 @@ class BrowserPluginGuestDelegate; +@@ -74,9 +74,11 @@ class BrowserPluginGuestDelegate; class InterstitialPage; class RenderFrameHost; class RenderViewHost; @@ -110,7 +110,7 @@ index 786eecfcb70c..984326a81411 100644 struct CustomContextMenuContext; struct DropData; struct MHTMLGenerationParams; -@@ -219,6 +221,10 @@ class WebContents : public PageNavigator, +@@ -216,6 +218,10 @@ class WebContents : public PageNavigator, // Sandboxing flags set on the new WebContents. blink::WebSandboxFlags starting_sandbox_flags; @@ -122,7 +122,7 @@ index 786eecfcb70c..984326a81411 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 f7e72b32ee78..5a0a3ad770b8 100644 +index 1c9c817e6075..ed4a5461e0f7 100644 --- content/public/browser/web_contents_delegate.h +++ content/public/browser/web_contents_delegate.h @@ -47,10 +47,12 @@ class ColorChooser; @@ -137,8 +137,8 @@ index f7e72b32ee78..5a0a3ad770b8 100644 +class WebContentsView; struct ContextMenuParams; struct DropData; - struct FileChooserParams; -@@ -310,6 +312,14 @@ class CONTENT_EXPORT WebContentsDelegate { + struct NativeWebKeyboardEvent; +@@ -309,6 +311,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 68ac90f19..94ad52041 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 3e8fae916125..30451122e4a2 100644 +index 5a98eaf6821f..ee20e83b52cf 100644 --- third_party/blink/public/platform/platform.h +++ third_party/blink/public/platform/platform.h -@@ -745,6 +745,11 @@ class BLINK_PLATFORM_EXPORT Platform { +@@ -771,6 +771,11 @@ class BLINK_PLATFORM_EXPORT Platform { // runs during Chromium's build step). virtual bool IsTakingV8ContextSnapshot() { return false; } @@ -44,10 +44,10 @@ index c360933eb10f..6295f9d675f7 100644 .Top() .GetSecurityContext() diff --git third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.cc third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.cc -index 7a7f6e0d88e9..dfa7e007a9fa 100644 +index 368ce9049971..6865c8af9d75 100644 --- third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.cc +++ third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.cc -@@ -325,6 +325,8 @@ WebDevToolsAgentImpl::Session::Session( +@@ -313,6 +313,8 @@ WebDevToolsAgentImpl::Session::Session( &WebDevToolsAgentImpl::Session::Detach, WrapWeakPersistent(this))); InitializeInspectorSession(std::move(reattach_session_state)); @@ -56,7 +56,7 @@ index 7a7f6e0d88e9..dfa7e007a9fa 100644 } WebDevToolsAgentImpl::Session::~Session() { -@@ -349,6 +351,7 @@ void WebDevToolsAgentImpl::Session::Detach() { +@@ -337,6 +339,7 @@ void WebDevToolsAgentImpl::Session::Detach() { io_session_->DeleteSoon(); io_session_ = nullptr; inspector_session_->Dispose(); @@ -65,10 +65,10 @@ index 7a7f6e0d88e9..dfa7e007a9fa 100644 void WebDevToolsAgentImpl::Session::SendProtocolResponse( diff --git third_party/blink/renderer/core/frame/local_frame.cc third_party/blink/renderer/core/frame/local_frame.cc -index a7ddc156c2b1..e31496827664 100644 +index e25ac447fb90..3a0c728f1d95 100644 --- third_party/blink/renderer/core/frame/local_frame.cc +++ third_party/blink/renderer/core/frame/local_frame.cc -@@ -1221,7 +1221,7 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() { +@@ -1223,7 +1223,7 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() { PluginData* LocalFrame::GetPluginData() const { if (!Loader().AllowPlugins(kNotAboutToInstantiatePlugin)) return nullptr; @@ -78,10 +78,10 @@ index a7ddc156c2b1..e31496827664 100644 } diff --git third_party/blink/renderer/core/page/page.cc third_party/blink/renderer/core/page/page.cc -index af94b52a5b6e..f5b91fefcda0 100644 +index 4277312bcad3..ca460b9ec0ca 100644 --- third_party/blink/renderer/core/page/page.cc +++ third_party/blink/renderer/core/page/page.cc -@@ -171,7 +171,8 @@ Page::Page(PageClients& page_clients) +@@ -168,7 +168,8 @@ Page::Page(PageClients& page_clients) overscroll_controller_( OverscrollController::Create(GetVisualViewport(), GetChromeClient())), link_highlights_(LinkHighlights::Create(*this)), @@ -91,7 +91,7 @@ index af94b52a5b6e..f5b91fefcda0 100644 // TODO(pdr): Initialize |validation_message_client_| lazily. validation_message_client_(ValidationMessageClientImpl::Create(*this)), opened_by_dom_(false), -@@ -332,21 +333,40 @@ void Page::InitialStyleChanged() { +@@ -316,21 +317,40 @@ void Page::InitialStyleChanged() { } } @@ -141,7 +141,7 @@ index af94b52a5b6e..f5b91fefcda0 100644 page->NotifyPluginsChanged(); } } -@@ -736,7 +756,8 @@ void Page::Trace(blink::Visitor* visitor) { +@@ -721,7 +741,8 @@ void Page::Trace(blink::Visitor* visitor) { visitor->Trace(overscroll_controller_); visitor->Trace(link_highlights_); visitor->Trace(main_frame_); @@ -152,10 +152,10 @@ index af94b52a5b6e..f5b91fefcda0 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 c9ecb33e153f..6ff8e8dc6b67 100644 +index 8d2baa9630d6..223de74e8e02 100644 --- third_party/blink/renderer/core/page/page.h +++ third_party/blink/renderer/core/page/page.h -@@ -136,7 +136,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized, +@@ -137,7 +137,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized, ViewportDescription GetViewportDescription() const; // Returns the plugin data associated with |main_frame_origin|. @@ -165,7 +165,7 @@ index c9ecb33e153f..6ff8e8dc6b67 100644 // Resets the plugin data for all pages in the renderer process and notifies // PluginsChangedObservers. -@@ -367,7 +368,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized, +@@ -364,7 +365,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized, const Member overscroll_controller_; const Member link_highlights_; @@ -176,7 +176,7 @@ index c9ecb33e153f..6ff8e8dc6b67 100644 Member validation_message_client_; diff --git third_party/blink/renderer/platform/plugins/plugin_data.cc third_party/blink/renderer/platform/plugins/plugin_data.cc -index 02d54d5f2dbf..0b2b11e601c6 100644 +index 0ae2fafa2498..1ed863662584 100644 --- third_party/blink/renderer/platform/plugins/plugin_data.cc +++ third_party/blink/renderer/platform/plugins/plugin_data.cc @@ -88,10 +88,12 @@ void PluginData::RefreshBrowserSidePluginCache() { @@ -194,12 +194,12 @@ index 02d54d5f2dbf..0b2b11e601c6 100644 ResetPluginData(); main_frame_origin_ = main_frame_origin; -@@ -106,7 +108,7 @@ void PluginData::UpdatePluginList(const SecurityOrigin* main_frame_origin) { +@@ -99,7 +101,7 @@ void PluginData::UpdatePluginList(const SecurityOrigin* main_frame_origin) { Platform::Current()->GetInterfaceProvider()->GetInterface( mojo::MakeRequest(®istry)); Vector plugins; -- registry->GetPlugins(false, legacy_origin, &plugins); -+ registry->GetPlugins(false, is_main_frame, legacy_origin, &plugins); +- registry->GetPlugins(false, main_frame_origin_, &plugins); ++ registry->GetPlugins(false, is_main_frame, main_frame_origin_, &plugins); for (const auto& plugin : plugins) { auto* plugin_info = new PluginInfo(plugin->name, FilePathToWebString(plugin->filename), diff --git a/patch/patches/webkit_pointer_event_781966.patch b/patch/patches/webkit_pointer_event_781966.patch index 10a64ec08..cc379e685 100644 --- a/patch/patches/webkit_pointer_event_781966.patch +++ b/patch/patches/webkit_pointer_event_781966.patch @@ -1,8 +1,8 @@ diff --git third_party/blink/renderer/core/input/pointer_event_manager.cc third_party/blink/renderer/core/input/pointer_event_manager.cc -index 2e4954ba8deb..f5f50ea77be8 100644 +index 94806693b332..ca5ad0c33a7f 100644 --- third_party/blink/renderer/core/input/pointer_event_manager.cc +++ third_party/blink/renderer/core/input/pointer_event_manager.cc -@@ -272,7 +272,7 @@ void PointerEventManager::HandlePointerInterruption( +@@ -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. diff --git a/patch/patches/webkit_popups.patch b/patch/patches/webkit_popups.patch index 87dbd25ea..ac0d283af 100644 --- a/patch/patches/webkit_popups.patch +++ b/patch/patches/webkit_popups.patch @@ -1,8 +1,8 @@ diff --git third_party/blink/public/web/web_view.h third_party/blink/public/web/web_view.h -index 380ca3f69a26..fe841b6f25bd 100644 +index bafddd241354..1f66e731b111 100644 --- third_party/blink/public/web/web_view.h +++ third_party/blink/public/web/web_view.h -@@ -351,6 +351,7 @@ class WebView : protected WebWidget { +@@ -356,6 +356,7 @@ class WebView : protected WebWidget { // Sets whether select popup menus should be rendered by the browser. BLINK_EXPORT static void SetUseExternalPopupMenus(bool); @@ -10,7 +10,7 @@ index 380ca3f69a26..fe841b6f25bd 100644 // Hides any popup (suggestions, selects...) that might be showing. virtual void HidePopups() = 0; -@@ -375,6 +376,8 @@ class WebView : protected WebWidget { +@@ -380,6 +381,8 @@ class WebView : protected WebWidget { unsigned inactive_background_color, unsigned inactive_foreground_color) = 0; @@ -20,7 +20,7 @@ index 380ca3f69a26..fe841b6f25bd 100644 // Call these methods before and after running a nested, modal event loop diff --git third_party/blink/renderer/core/exported/web_view_impl.cc third_party/blink/renderer/core/exported/web_view_impl.cc -index 1a1e2cfb4fd2..9251b9a09504 100644 +index c6c7154f6e0a..0ed9276cb46e 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) { @@ -48,10 +48,10 @@ index 1a1e2cfb4fd2..9251b9a09504 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 66a3b5c16769..ac7331a50353 100644 +index b1399b141480..2a9bba9f2746 100644 --- third_party/blink/renderer/core/exported/web_view_impl.h +++ third_party/blink/renderer/core/exported/web_view_impl.h -@@ -103,7 +103,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -104,7 +104,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). @@ -61,7 +61,7 @@ index 66a3b5c16769..ac7331a50353 100644 // WebWidget methods: void Close() override; -@@ -244,7 +245,7 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -246,7 +247,7 @@ class CORE_EXPORT WebViewImpl final : public WebView, HitTestResult CoreHitTestResultAt(const WebPoint&); void InvalidateRect(const IntRect&); @@ -70,7 +70,7 @@ index 66a3b5c16769..ac7331a50353 100644 void SetBaseBackgroundColorOverride(SkColor); void ClearBaseBackgroundColorOverride(); void SetBackgroundColorOverride(SkColor); -@@ -598,6 +599,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -607,6 +608,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, float fake_page_scale_animation_page_scale_factor_; bool fake_page_scale_animation_use_anchor_; @@ -80,7 +80,7 @@ index 66a3b5c16769..ac7331a50353 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 642b6ded444c..45296936ef21 100644 +index c34ed3622f39..87a3d922f82b 100644 --- third_party/blink/renderer/core/page/chrome_client_impl.cc +++ third_party/blink/renderer/core/page/chrome_client_impl.cc @@ -805,7 +805,7 @@ bool ChromeClientImpl::HasOpenedPopup() const { diff --git a/patch/patches/webui_2037.patch b/patch/patches/webui_2037.patch index fc790954e..10dc81bc5 100644 --- a/patch/patches/webui_2037.patch +++ b/patch/patches/webui_2037.patch @@ -35,10 +35,10 @@ index dfe0f29dc772..606f07a1d1ed 100644 extensions::ExtensionRegistry::Get(profile); std::string extensions_list; diff --git chrome/browser/memory_details.cc chrome/browser/memory_details.cc -index 660cfdb7ea24..5ac15334064e 100644 +index 3280b5e9fd6b..13ef1b99191e 100644 --- chrome/browser/memory_details.cc +++ chrome/browser/memory_details.cc -@@ -16,6 +16,7 @@ +@@ -17,6 +17,7 @@ #include "base/task/post_task.h" #include "build/build_config.h" #include "chrome/browser/profiles/profile.h" @@ -46,7 +46,7 @@ index 660cfdb7ea24..5ac15334064e 100644 #include "components/nacl/common/nacl_process_type.h" #include "components/strings/grit/components_strings.h" #include "content/public/browser/browser_child_process_host_iterator.h" -@@ -250,8 +251,11 @@ void MemoryDetails::CollectChildInfoOnUIThread() { +@@ -252,8 +253,11 @@ void MemoryDetails::CollectChildInfoOnUIThread() { #if BUILDFLAG(ENABLE_EXTENSIONS) // Determine if this is an extension process. @@ -59,88 +59,6 @@ index 660cfdb7ea24..5ac15334064e 100644 content::BrowserContext* context = render_process_host->GetBrowserContext(); extensions::ExtensionRegistry* extension_registry = -diff --git chrome/browser/ui/webui/net_internals/net_internals_ui.cc chrome/browser/ui/webui/net_internals/net_internals_ui.cc -index 76652731b926..ec2b6ad11cdb 100644 ---- chrome/browser/ui/webui/net_internals/net_internals_ui.cc -+++ chrome/browser/ui/webui/net_internals/net_internals_ui.cc -@@ -527,41 +527,31 @@ void NetInternalsMessageHandler::OnClearBrowserCache( - void NetInternalsMessageHandler::OnGetPrerenderInfo( - const base::ListValue* list) { - DCHECK_CURRENTLY_ON(BrowserThread::UI); -- SendJavascriptCommand( -- "receivedPrerenderInfo", -- chrome_browser_net::GetPrerenderInfo(Profile::FromWebUI(web_ui()))); -+ SendJavascriptCommand("receivedPrerenderInfo", nullptr); - } - - void NetInternalsMessageHandler::OnGetHistoricNetworkStats( - const base::ListValue* list) { - DCHECK_CURRENTLY_ON(BrowserThread::UI); -- SendJavascriptCommand("receivedHistoricNetworkStats", -- chrome_browser_net::GetHistoricNetworkStats( -- Profile::FromWebUI(web_ui()))); -+ SendJavascriptCommand("receivedHistoricNetworkStats", nullptr); - } - - void NetInternalsMessageHandler::OnGetSessionNetworkStats( - const base::ListValue* list) { - DCHECK_CURRENTLY_ON(BrowserThread::UI); -- SendJavascriptCommand( -- "receivedSessionNetworkStats", -- chrome_browser_net::GetSessionNetworkStats(Profile::FromWebUI(web_ui()))); -+ SendJavascriptCommand("receivedSessionNetworkStats", nullptr); - } - - void NetInternalsMessageHandler::OnGetExtensionInfo( - const base::ListValue* list) { - DCHECK_CURRENTLY_ON(BrowserThread::UI); -- SendJavascriptCommand( -- "receivedExtensionInfo", -- chrome_browser_net::GetExtensionInfo(Profile::FromWebUI(web_ui()))); -+ SendJavascriptCommand("receivedExtensionInfo", nullptr); - } - - void NetInternalsMessageHandler::OnGetDataReductionProxyInfo( - const base::ListValue* list) { - DCHECK_CURRENTLY_ON(BrowserThread::UI); -- SendJavascriptCommand("receivedDataReductionProxyInfo", -- chrome_browser_net::GetDataReductionProxyInfo( -- Profile::FromWebUI(web_ui()))); -+ SendJavascriptCommand("receivedDataReductionProxyInfo", nullptr); - } - - //////////////////////////////////////////////////////////////////////////////// -@@ -641,9 +631,17 @@ void NetInternalsMessageHandler::IOThreadImpl::OnRendererReady( - - PrePopulateEventList(); - -- // Register with network stack to observe events. -- io_thread_->net_log()->AddObserver( -- this, net::NetLogCaptureMode::IncludeCookiesAndCredentials()); -+ net::NetLog* net_log = nullptr; -+ if (io_thread_) -+ net_log = io_thread_->net_log(); -+ else -+ net_log = g_browser_process->net_log(); -+ -+ if (net_log) { -+ // Register with network stack to observe events. -+ net_log->AddObserver( -+ this, net::NetLogCaptureMode::IncludeCookiesAndCredentials()); -+ } - } - - void NetInternalsMessageHandler::IOThreadImpl::OnGetNetInfo( -@@ -1141,7 +1139,8 @@ void NetInternalsMessageHandler::IOThreadImpl::PrePopulateEventList() { - std::set contexts; - for (const auto& getter : context_getters_) - contexts.insert(getter->GetURLRequestContext()); -- contexts.insert(io_thread_->globals()->system_request_context); -+ if (io_thread_) -+ contexts.insert(io_thread_->globals()->system_request_context); - - // Add entries for ongoing network objects. - CreateNetLogEntriesForActiveObjects(contexts, this); diff --git content/browser/resource_context_impl.cc content/browser/resource_context_impl.cc index 261e9343b8a2..0fe566c705a4 100644 --- content/browser/resource_context_impl.cc @@ -170,10 +88,10 @@ index 903cc543a242..5bd30ae82974 100644 CONTENT_EXPORT void InitializeResourceContext(BrowserContext* browser_context); diff --git content/browser/webui/url_data_manager.cc content/browser/webui/url_data_manager.cc -index fca1d4aa6161..a14e34dae591 100644 +index a9f5cfc95d4a..d5281ccab3b4 100644 --- content/browser/webui/url_data_manager.cc +++ content/browser/webui/url_data_manager.cc -@@ -150,6 +150,11 @@ void URLDataManager::UpdateWebUIDataSource( +@@ -156,6 +156,11 @@ void URLDataManager::UpdateWebUIDataSource( ->UpdateWebUIDataSource(source_name, std::move(update)); } diff --git a/patch/patches/webview_plugin_2020.patch b/patch/patches/webview_plugin_2020.patch index 34ba0af7e..a1df9a7fc 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 c700d8b74bcb..9a01101ba673 100644 +index 078f4f2a1c07..2cdb1166dec8 100644 --- chrome/app/generated_resources.grd +++ chrome/app/generated_resources.grd -@@ -4478,7 +4478,7 @@ Keep your key file in a safe place. You will need it to create new versions of y +@@ -4502,7 +4502,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 684b1b8ca..1143491d6 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 d330dd221cb6..43bc51b78e96 100644 +index 79ae61d7e5c9..92b1721013bc 100644 --- services/service_manager/sandbox/win/sandbox_win.cc +++ services/service_manager/sandbox/win/sandbox_win.cc @@ -883,8 +883,11 @@ sandbox::ResultCode SandboxWin::StartSandboxedProcess( diff --git a/tests/ceftests/plugin_unittest.cc b/tests/ceftests/plugin_unittest.cc index 130e3387c..f27716472 100644 --- a/tests/ceftests/plugin_unittest.cc +++ b/tests/ceftests/plugin_unittest.cc @@ -138,10 +138,6 @@ class PluginTestHandler : public RoutingTestHandler, } else { NOTREACHED(); } - } else { - // When listing is enabled there should only be the one check in the - // plugin frame. - NOTREACHED(); } if (handler_->HasNoList()) { diff --git a/tests/ceftests/request_unittest.cc b/tests/ceftests/request_unittest.cc index 79b726f58..d2288a4ef 100644 --- a/tests/ceftests/request_unittest.cc +++ b/tests/ceftests/request_unittest.cc @@ -265,7 +265,7 @@ class RequestSendRecvTestHandler : public TestHandler { TestRequestEqual(request_, request, true); EXPECT_EQ(request_id_, request->GetIdentifier()); EXPECT_EQ(RT_MAIN_FRAME, request->GetResourceType()); - EXPECT_EQ(TT_LINK, request->GetTransitionType()); + EXPECT_EQ(TT_FORM_SUBMIT, request->GetTransitionType()); } void TestResponse(CefRefPtr response) { @@ -322,7 +322,7 @@ static struct TypeExpected { {"main.html", true, TT_EXPLICIT, RT_MAIN_FRAME, 1}, // Sub frame load. - {"sub.html", true, TT_LINK, RT_SUB_FRAME, 1}, + {"sub.html", true, TT_AUTO_SUBFRAME, RT_SUB_FRAME, 1}, // Stylesheet load. {"style.css", false, TT_LINK, RT_STYLESHEET, 1}, diff --git a/tests/ceftests/scheme_handler_unittest.cc b/tests/ceftests/scheme_handler_unittest.cc index a7ad61706..7d4c560c1 100644 --- a/tests/ceftests/scheme_handler_unittest.cc +++ b/tests/ceftests/scheme_handler_unittest.cc @@ -453,9 +453,9 @@ void SetUpXSS(const std::string& url, const std::string& sub_url, const std::string& domain = std::string()) { // 1. Load |url| which contains an iframe. - // 2. The iframe loads |xss_url|. - // 3. |xss_url| tries to call a JS function in |url|. - // 4. |url| tries to call a JS function in |xss_url|. + // 2. The iframe loads |sub_url|. + // 3. |sub_url| tries to call a JS function in |url|. + // 4. |url| tries to call a JS function in |sub_url|. std::stringstream ss; std::string domain_line; @@ -473,7 +473,7 @@ void SetUpXSS(const std::string& url, " var result = 'FAILURE';" " try {" " result = parent.getResult();" - " } catch(e) {}" + " } catch(e) { console.log(e.stack); }" " document.location = \"http://tests/exit?result=\"+result;" "}" "" @@ -492,7 +492,7 @@ void SetUpXSS(const std::string& url, "function getResult() {" " try {" " return document.getElementById('s').contentWindow.getResult();" - " } catch(e) {}" + " } catch(e) { console.log(e.stack); }" " return 'FAILURE';" "}" "" @@ -849,7 +849,8 @@ TEST(SchemeHandlerTest, CustomStandardXHRSameOriginAsync) { ClearTestSchemes(); } -// Test that a custom nonstandard scheme can generate same origin XHR requests. +// Test that custom nonstandard schemes are treated as unique origins that +// cannot generate XHR requests. TEST(SchemeHandlerTest, CustomNonStandardXHRSameOriginSync) { RegisterTestScheme("customnonstd", std::string()); @@ -865,14 +866,15 @@ TEST(SchemeHandlerTest, CustomNonStandardXHRSameOriginSync) { EXPECT_TRUE(g_TestResults.got_request); EXPECT_TRUE(g_TestResults.got_read); EXPECT_TRUE(g_TestResults.got_output); - EXPECT_TRUE(g_TestResults.got_sub_request); - EXPECT_TRUE(g_TestResults.got_sub_read); - EXPECT_TRUE(g_TestResults.got_sub_success); + EXPECT_FALSE(g_TestResults.got_sub_request); + EXPECT_FALSE(g_TestResults.got_sub_read); + EXPECT_FALSE(g_TestResults.got_sub_success); ClearTestSchemes(); } -// Test that a custom nonstandard scheme can generate same origin XHR requests. +// Test that custom nonstandard schemes are treated as unique origins that +// cannot generate XHR requests. TEST(SchemeHandlerTest, CustomNonStandardXHRSameOriginAsync) { RegisterTestScheme("customnonstd", std::string()); @@ -889,9 +891,9 @@ TEST(SchemeHandlerTest, CustomNonStandardXHRSameOriginAsync) { EXPECT_TRUE(g_TestResults.got_request); EXPECT_TRUE(g_TestResults.got_read); EXPECT_TRUE(g_TestResults.got_output); - EXPECT_TRUE(g_TestResults.got_sub_request); - EXPECT_TRUE(g_TestResults.got_sub_read); - EXPECT_TRUE(g_TestResults.got_sub_success); + EXPECT_FALSE(g_TestResults.got_sub_request); + EXPECT_FALSE(g_TestResults.got_sub_read); + EXPECT_FALSE(g_TestResults.got_sub_success); ClearTestSchemes(); } @@ -915,7 +917,8 @@ TEST(SchemeHandlerTest, CustomStandardXSSSameOrigin) { ClearTestSchemes(); } -// Test that a custom nonstandard scheme can generate same origin XSS requests. +// Test that custom nonstandard schemes are treated as unique origins that +// cannot generate XSS requests. TEST(SchemeHandlerTest, CustomNonStandardXSSSameOrigin) { RegisterTestScheme("customnonstd", std::string()); SetUpXSS("customnonstd:some%20value", "customnonstd:xhr%20value"); @@ -929,7 +932,7 @@ TEST(SchemeHandlerTest, CustomNonStandardXSSSameOrigin) { EXPECT_TRUE(g_TestResults.got_output); EXPECT_TRUE(g_TestResults.got_sub_request); EXPECT_TRUE(g_TestResults.got_sub_read); - EXPECT_TRUE(g_TestResults.got_sub_success); + EXPECT_FALSE(g_TestResults.got_sub_success); ClearTestSchemes(); } diff --git a/tests/ceftests/webui_unittest.cc b/tests/ceftests/webui_unittest.cc index a0fb3337a..40ba77e52 100644 --- a/tests/ceftests/webui_unittest.cc +++ b/tests/ceftests/webui_unittest.cc @@ -202,22 +202,11 @@ WEBUI_TEST(webui_hosts); TEST(WebUITest, net_internals) { UrlList url_list; - url_list.push_back("chrome://net-internals/#capture"); - url_list.push_back("chrome://net-internals/#import"); - url_list.push_back("chrome://net-internals/#proxy"); url_list.push_back("chrome://net-internals/#events"); - url_list.push_back("chrome://net-internals/#timeline"); + url_list.push_back("chrome://net-internals/#proxy"); url_list.push_back("chrome://net-internals/#dns"); url_list.push_back("chrome://net-internals/#sockets"); - url_list.push_back("chrome://net-internals/#alt-svc"); - url_list.push_back("chrome://net-internals/#http2"); - url_list.push_back("chrome://net-internals/#quic"); - url_list.push_back("chrome://net-internals/#sdch"); - url_list.push_back("chrome://net-internals/#httpCache"); - url_list.push_back("chrome://net-internals/#modules"); url_list.push_back("chrome://net-internals/#hsts"); - url_list.push_back("chrome://net-internals/#bandwidth"); - url_list.push_back("chrome://net-internals/#prerender"); RunWebUITest(url_list); } diff --git a/tools/gclient_hook.py b/tools/gclient_hook.py index 5a4bab978..44aa66507 100644 --- a/tools/gclient_hook.py +++ b/tools/gclient_hook.py @@ -28,7 +28,7 @@ else: print "\nGenerating CEF version header file..." cmd = [ 'python', 'tools/make_version_header.py', '--header', - 'include/cef_version.h', '--cef_version', 'VERSION', '--chrome_version', + 'include/cef_version.h', '--cef_version', 'VERSION.in', '--chrome_version', '../chrome/VERSION', '--cpp_header_dir', 'include' ] RunAction(cef_dir, cmd) diff --git a/tools/make_distrib.py b/tools/make_distrib.py index 8c42e730c..a1e994312 100644 --- a/tools/make_distrib.py +++ b/tools/make_distrib.py @@ -480,7 +480,7 @@ date = get_date() # Read and parse the version file (key=value pairs, one per line) args = {} -read_version_file(os.path.join(cef_dir, 'VERSION'), args) +read_version_file(os.path.join(cef_dir, 'VERSION.in'), args) read_version_file(os.path.join(cef_dir, '../chrome/VERSION'), args) cef_ver = '%s.%s.%s.g%s' % (args['CEF_MAJOR'], args['BUILD'], cef_commit_number, diff --git a/tools/make_version_header.bat b/tools/make_version_header.bat index 86e3094f8..d63d12e99 100644 --- a/tools/make_version_header.bat +++ b/tools/make_version_header.bat @@ -1,2 +1,2 @@ @echo off -python.bat tools\make_version_header.py --header include\cef_version.h --cef_version VERSION --chrome_version ../chrome/VERSION --cpp_header_dir include +python.bat tools\make_version_header.py --header include\cef_version.h --cef_version VERSION.in --chrome_version ../chrome/VERSION --cpp_header_dir include diff --git a/tools/make_version_header.sh b/tools/make_version_header.sh index 4cac35f4a..6bb46be4e 100755 --- a/tools/make_version_header.sh +++ b/tools/make_version_header.sh @@ -1,2 +1,2 @@ #!/bin/sh -python tools/make_version_header.py --header include/cef_version.h --cef_version VERSION --chrome_version ../chrome/VERSION --cpp_header_dir include +python tools/make_version_header.py --header include/cef_version.h --cef_version VERSION.in --chrome_version ../chrome/VERSION --cpp_header_dir include