From ccf70326c0e1b457ef04ff071fb27e1429108d04 Mon Sep 17 00:00:00 2001 From: Electron Bot Date: Mon, 6 Apr 2020 13:09:52 -0700 Subject: [PATCH] chore: bump chromium to 1ba9678489174a6123358a7683f37 (master) (#22719) Co-authored-by: John Kleinschmidt Co-authored-by: Shelley Vohr Co-authored-by: Samuel Attard Co-authored-by: Andy Locascio --- BUILD.gn | 2 - DEPS | 2 +- chromium_src/BUILD.gn | 14 ++-- patches/chromium/.patches | 1 + .../add_didinstallconditionalfeatures.patch | 14 ++-- patches/chromium/add_realloc.patch | 4 +- ...rustedauthclient_to_urlloaderfactory.patch | 32 ++++----- patches/chromium/blink_local_frame.patch | 2 +- patches/chromium/blink_world_context.patch | 8 +-- patches/chromium/can_create_window.patch | 72 +++++++++---------- ...esources_not_chrome_for_spellchecker.patch | 6 +- patches/chromium/dcheck.patch | 4 +- patches/chromium/disable-redraw-lock.patch | 10 +-- .../disable_color_correct_rendering.patch | 20 +++--- patches/chromium/disable_hidden.patch | 17 +++-- ...requirement_for_beforeunload_dialogs.patch | 4 +- ...xpose_setuseragent_on_networkcontext.patch | 10 +-- .../feat_add_onclose_to_messageport.patch | 6 +- ...dd_set_theme_source_to_allow_apps_to.patch | 29 +++----- ..._scheduler_throttling_per_renderview.patch | 34 ++++----- ...review_disabled_when_printing_to_pdf.patch | 23 ++++++ ...ns_through_the_web_contents_delegate.patch | 4 +- patches/chromium/frame_host_manager.patch | 18 ++--- ...emote_certificate_verification_logic.patch | 24 +++---- .../chromium/notification_provenance.patch | 4 +- patches/chromium/picture-in-picture.patch | 2 +- patches/chromium/printing.patch | 47 ++++-------- ...put_back_deleted_colors_for_autofill.patch | 59 +++++++++------ .../render_widget_host_view_base.patch | 8 +-- patches/chromium/resource_file_conflict.patch | 2 +- ...anup_remove_menu_subtitles_sublabels.patch | 4 +- ...ove_contentrendererclient_shouldfork.patch | 8 +-- patches/chromium/scroll_bounce_flag.patch | 2 +- .../support_mixed_sandbox_with_zygote.patch | 4 +- patches/chromium/thread_capabilities.patch | 4 +- patches/chromium/web_contents.patch | 6 +- patches/chromium/webview_cross_drag.patch | 26 ++++--- patches/node/build_add_gn_build_files.patch | 10 +-- .../fix_use_crypto_impls_for_compat.patch | 6 +- .../revert_crypto_add_oaeplabel_option.patch | 4 +- ...group_to_finalizationregistry_for_js.patch | 2 +- .../zip_manifests/dist_zip.mac.x64.manifest | 1 - .../dist_zip.mac_mas.x64.manifest | 1 - shell/browser/net/proxying_websocket.cc | 7 +- shell/browser/net/proxying_websocket.h | 4 +- shell/browser/ui/devtools_manager_delegate.cc | 1 - shell/browser/ui/devtools_manager_delegate.h | 1 - 47 files changed, 296 insertions(+), 277 deletions(-) create mode 100644 patches/chromium/fix_account_for_print_preview_disabled_when_printing_to_pdf.patch diff --git a/BUILD.gn b/BUILD.gn index 7a7fc511db05..259a704312f3 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -224,7 +224,6 @@ grit("resources") { ] # Mojo manifest overlays are generated. - source_is_generated = true grit_flags = [ "-E", "target_gen_dir=" + rebase_path(target_gen_dir, root_build_dir), @@ -714,7 +713,6 @@ if (is_mac) { sources = [ "$root_out_dir/egl_intermediates/libEGL.dylib", "$root_out_dir/egl_intermediates/libGLESv2.dylib", - "$root_out_dir/egl_intermediates/libvulkan.dylib", ] outputs = [ "{{bundle_contents_dir}}/Libraries/{{source_file_part}}" ] public_deps = [ "//ui/gl:angle_library_copy" ] diff --git a/DEPS b/DEPS index 051f91adc514..916150676bce 100644 --- a/DEPS +++ b/DEPS @@ -12,7 +12,7 @@ gclient_gn_args = [ vars = { 'chromium_version': - 'f3d154dbc31bd902e8eecfd48fd85d01d0eea0f2', + '0f55a0804ce1ba9678489174a6123358a7683f37', 'node_version': 'v12.16.1', 'nan_version': diff --git a/chromium_src/BUILD.gn b/chromium_src/BUILD.gn index a1d62dd8c866..a42512a2fdb4 100644 --- a/chromium_src/BUILD.gn +++ b/chromium_src/BUILD.gn @@ -109,11 +109,15 @@ static_library("chrome") { ] if (use_aura) { - sources += [ - "//chrome/browser/platform_util_aura.cc", - "//chrome/browser/ui/views/color_chooser_aura.cc", - "//chrome/browser/ui/views/color_chooser_aura.h", - ] + sources += [ "//chrome/browser/platform_util_aura.cc" ] + + if (!is_win) { + sources += [ + "//chrome/browser/ui/views/color_chooser_aura.cc", + "//chrome/browser/ui/views/color_chooser_aura.h", + ] + } + deps += [ "//components/feature_engagement" ] } diff --git a/patches/chromium/.patches b/patches/chromium/.patches index edfb9ea8ee53..ee3b0e5b51c3 100644 --- a/patches/chromium/.patches +++ b/patches/chromium/.patches @@ -95,3 +95,4 @@ feat_add_onclose_to_messageport.patch gin_allow_passing_an_objecttemplate_to_objecttemplatebuilder.patch gin_forward_args_when_dispatching.patch fix_undo_redo_broken_in_webviews.patch +fix_account_for_print_preview_disabled_when_printing_to_pdf.patch diff --git a/patches/chromium/add_didinstallconditionalfeatures.patch b/patches/chromium/add_didinstallconditionalfeatures.patch index b5d8c12a9039..b6d7b1b4a0eb 100644 --- a/patches/chromium/add_didinstallconditionalfeatures.patch +++ b/patches/chromium/add_didinstallconditionalfeatures.patch @@ -23,10 +23,10 @@ index 156ba739a984347135857f8019fda0bfb01c97ad..f4093e9bb8b54d82c6d70375977c0ad9 int32_t world_id) {} virtual void DidClearWindowObject() {} diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc -index e65c52f5a019ef1a0c0a2fad07c994727e21a2ec..6c6265561512d1700b6b77a84ba127511a65483a 100644 +index e9640890df219ebc384a7fe83559ecd865f8ccab..f15855248d6b7d2ff79d808aacc9dde158428cc8 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -4900,6 +4900,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local context, +@@ -4921,6 +4921,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local context, observer.DidCreateScriptContext(context, world_id); } @@ -40,7 +40,7 @@ index e65c52f5a019ef1a0c0a2fad07c994727e21a2ec..6c6265561512d1700b6b77a84ba12751 int world_id) { for (auto& observer : observers_) diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h -index aab87eff90494513774a0815a31a5888f435547a..07bef1588daee774f06b7732250b43e6754b5751 100644 +index ac3e90f840f42a914878dcbc5c3608ac12d37175..adfb25f44ada0fc68e663bb0a3bfe01db408b941 100644 --- a/content/renderer/render_frame_impl.h +++ b/content/renderer/render_frame_impl.h @@ -746,6 +746,8 @@ class CONTENT_EXPORT RenderFrameImpl @@ -67,10 +67,10 @@ index d821defb3304d476dbca602a89e911416d2ddb12..e2ff4c947e6dab395fa35664a9c50ce3 virtual void WillReleaseScriptContext(v8::Local, int32_t world_id) {} diff --git a/third_party/blink/renderer/bindings/core/v8/local_window_proxy.cc b/third_party/blink/renderer/bindings/core/v8/local_window_proxy.cc -index d20d24c0ba6025af06f5f61cefd3e96e687c123d..c6cb7af9c2ec7e812954b7725f8506c1d9d115de 100644 +index 81457a2e2b5723aa2ff218b4e410d55d7b7f14f8..a62f6c58bb0aaac836edfd87ab2a6f61045059dc 100644 --- a/third_party/blink/renderer/bindings/core/v8/local_window_proxy.cc +++ b/third_party/blink/renderer/bindings/core/v8/local_window_proxy.cc -@@ -215,6 +215,7 @@ void LocalWindowProxy::Initialize() { +@@ -201,6 +201,7 @@ void LocalWindowProxy::Initialize() { } InstallConditionalFeatures(); @@ -123,10 +123,10 @@ index 7843fbbf746a976ff8d94caabc8dec95d49e2b09..850f1aa843e34441a05bd1785896e100 int32_t world_id) = 0; virtual bool AllowScriptExtensions() = 0; diff --git a/third_party/blink/renderer/core/loader/empty_clients.h b/third_party/blink/renderer/core/loader/empty_clients.h -index b412f0c87075c200f05e85bad2c000242f9a1a75..07d67b2e5de39f4107931e13e461e3d796eacade 100644 +index ad193eee54963de001cee76153c6fafa25b814a1..d232898dfac0ba8f4b54a96b87e604dfea7ff7fc 100644 --- a/third_party/blink/renderer/core/loader/empty_clients.h +++ b/third_party/blink/renderer/core/loader/empty_clients.h -@@ -369,6 +369,8 @@ class CORE_EXPORT EmptyLocalFrameClient : public LocalFrameClient { +@@ -340,6 +340,8 @@ class CORE_EXPORT EmptyLocalFrameClient : public LocalFrameClient { void DidCreateScriptContext(v8::Local, int32_t world_id) override {} diff --git a/patches/chromium/add_realloc.patch b/patches/chromium/add_realloc.patch index 5e18af69793b..912ad0a74460 100644 --- a/patches/chromium/add_realloc.patch +++ b/patches/chromium/add_realloc.patch @@ -70,10 +70,10 @@ index 095ca3db051362319611976b9052725ab16c1b3a..13e802a5732f0b04832d6dd8031ae43e WTF::Partitions::ArrayBufferPartition()->Free(data); } diff --git a/third_party/blink/renderer/core/typed_arrays/array_buffer/array_buffer_contents.h b/third_party/blink/renderer/core/typed_arrays/array_buffer/array_buffer_contents.h -index 2e871b20c1e6fc3703178957fd03923f02ab1b47..8f2fd80130f1e7f957d642af4e5c22f9a5937ce4 100644 +index cce802e4fc94c258607bc943d9902e6d18173c44..4f7f4eaf005aac701360e567e6faca7f2e0ff3da 100644 --- a/third_party/blink/renderer/core/typed_arrays/array_buffer/array_buffer_contents.h +++ b/third_party/blink/renderer/core/typed_arrays/array_buffer/array_buffer_contents.h -@@ -106,6 +106,7 @@ class CORE_EXPORT ArrayBufferContents { +@@ -108,6 +108,7 @@ class CORE_EXPORT ArrayBufferContents { void CopyTo(ArrayBufferContents& other); static void* AllocateMemoryOrNull(size_t, InitializationPolicy); diff --git a/patches/chromium/add_trustedauthclient_to_urlloaderfactory.patch b/patches/chromium/add_trustedauthclient_to_urlloaderfactory.patch index ae8ae478b061..52c1601486f8 100644 --- a/patches/chromium/add_trustedauthclient_to_urlloaderfactory.patch +++ b/patches/chromium/add_trustedauthclient_to_urlloaderfactory.patch @@ -10,10 +10,10 @@ WebContents, and cancels the authentication if there's no WebContents available, which there isn't in the case of the 'net' module. diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom -index c37432121142472010b767b7fb257e20bc60b3fc..099c94d1db7994a0608864cb05e3686a85b7070d 100644 +index a46aab1db2de282e0ff3561a98bad1dac659b67a..31ce9719f63c564baf88e48c7494e030cf9d148c 100644 --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -193,6 +193,25 @@ struct HttpAuthStaticNetworkContextParams { +@@ -159,6 +159,25 @@ struct HttpAuthStaticNetworkContextParams { = DefaultCredentials.ALLOW_DEFAULT_CREDENTIALS; }; @@ -39,7 +39,7 @@ index c37432121142472010b767b7fb257e20bc60b3fc..099c94d1db7994a0608864cb05e3686a interface CertVerifierClient { Verify( int32 default_error, -@@ -633,6 +652,8 @@ struct URLLoaderFactoryParams { +@@ -603,6 +622,8 @@ struct URLLoaderFactoryParams { // interface. This still respects the per-context block lists. CorsOriginAccessPatterns? factory_bound_access_patterns; @@ -49,7 +49,7 @@ index c37432121142472010b767b7fb257e20bc60b3fc..099c94d1db7994a0608864cb05e3686a NetworkIsolationKey? network_isolation_key; diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc -index 9452018180979377728162209651ebd914bd95a4..6c9f3192260bcce252c7868e042bd40a205b55b8 100644 +index fb4f8ad895c685922af873f96f62ad4662a70f24..07fa817025eae412f43f6311b68d26753c44ff50 100644 --- a/services/network/url_loader.cc +++ b/services/network/url_loader.cc @@ -486,6 +486,7 @@ URLLoader::URLLoader( @@ -57,10 +57,10 @@ index 9452018180979377728162209651ebd914bd95a4..6c9f3192260bcce252c7868e042bd40a base::WeakPtr network_usage_accumulator, mojom::TrustedURLLoaderHeaderClient* url_loader_header_client, + mojom::TrustedURLLoaderAuthClient* url_loader_auth_client, - mojom::OriginPolicyManager* origin_policy_manager) + mojom::OriginPolicyManager* origin_policy_manager, + std::unique_ptr trust_token_helper) : url_request_context_(url_request_context), - network_service_client_(network_service_client), -@@ -544,6 +545,11 @@ URLLoader::URLLoader( +@@ -546,6 +547,11 @@ URLLoader::URLLoader( header_client_.set_disconnect_handler( base::BindOnce(&URLLoader::OnMojoDisconnect, base::Unretained(this))); } @@ -72,7 +72,7 @@ index 9452018180979377728162209651ebd914bd95a4..6c9f3192260bcce252c7868e042bd40a if (want_raw_headers_) { options_ |= mojom::kURLLoadOptionSendSSLInfoWithResponse | mojom::kURLLoadOptionSendSSLInfoForCertificateError; -@@ -982,7 +988,7 @@ void URLLoader::OnReceivedRedirect(net::URLRequest* url_request, +@@ -1020,7 +1026,7 @@ void URLLoader::OnReceivedRedirect(net::URLRequest* url_request, void URLLoader::OnAuthRequired(net::URLRequest* url_request, const net::AuthChallengeInfo& auth_info) { @@ -81,7 +81,7 @@ index 9452018180979377728162209651ebd914bd95a4..6c9f3192260bcce252c7868e042bd40a OnAuthCredentials(base::nullopt); return; } -@@ -998,11 +1004,20 @@ void URLLoader::OnAuthRequired(net::URLRequest* url_request, +@@ -1036,11 +1042,20 @@ void URLLoader::OnAuthRequired(net::URLRequest* url_request, if (url_request->response_headers()) head->headers = url_request->response_headers(); head->auth_challenge_info = auth_info; @@ -108,18 +108,18 @@ index 9452018180979377728162209651ebd914bd95a4..6c9f3192260bcce252c7868e042bd40a auth_challenge_responder_receiver_.set_disconnect_handler( base::BindOnce(&URLLoader::DeleteSelf, base::Unretained(this))); diff --git a/services/network/url_loader.h b/services/network/url_loader.h -index 5b8e727e4a8f71d646eb2502d27256dcdae22e78..8b63418451933382b414e47001b9859017b60f7f 100644 +index 9a07d08baf1f52234898951f8680a8b3a5c6e82f..e99228fd574cd5291d71de6a5f77cdda2debea7c 100644 --- a/services/network/url_loader.h +++ b/services/network/url_loader.h -@@ -106,6 +106,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader +@@ -111,6 +111,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader base::WeakPtr keepalive_statistics_recorder, base::WeakPtr network_usage_accumulator, mojom::TrustedURLLoaderHeaderClient* url_loader_header_client, + mojom::TrustedURLLoaderAuthClient* url_loader_auth_client, - mojom::OriginPolicyManager* origin_policy_manager); + mojom::OriginPolicyManager* origin_policy_manager, + std::unique_ptr trust_token_helper); ~URLLoader() override; - -@@ -413,6 +414,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader +@@ -422,6 +423,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader base::Optional fetch_window_id_; mojo::Remote header_client_; @@ -128,7 +128,7 @@ index 5b8e727e4a8f71d646eb2502d27256dcdae22e78..8b63418451933382b414e47001b98590 std::unique_ptr file_opener_for_upload_; diff --git a/services/network/url_loader_factory.cc b/services/network/url_loader_factory.cc -index f3a9baefc1a18924503d7a6850bc704310e50015..9b3802dbdf7a1ab3f132529b794665a68eeac673 100644 +index f17117db6f2ad140d797fad6a40fcd241c9538dd..a65a15d29df7a0667db56bbd768ef85aaff71d3d 100644 --- a/services/network/url_loader_factory.cc +++ b/services/network/url_loader_factory.cc @@ -66,6 +66,7 @@ URLLoaderFactory::URLLoaderFactory( @@ -144,7 +144,7 @@ index f3a9baefc1a18924503d7a6850bc704310e50015..9b3802dbdf7a1ab3f132529b794665a6 std::move(network_usage_accumulator), header_client_.is_bound() ? header_client_.get() : nullptr, + auth_client_.is_bound() ? auth_client_.get() : nullptr, - context_->origin_policy_manager()); + context_->origin_policy_manager(), nullptr /* trust_token_helper */); cors_url_loader_factory_->OnLoaderCreated(std::move(loader)); } diff --git a/services/network/url_loader_factory.h b/services/network/url_loader_factory.h diff --git a/patches/chromium/blink_local_frame.patch b/patches/chromium/blink_local_frame.patch index 9b6ac25d0209..4a8fcc8983e4 100644 --- a/patches/chromium/blink_local_frame.patch +++ b/patches/chromium/blink_local_frame.patch @@ -14,7 +14,7 @@ when there is code doing that. This patch reverts the change to fix the crash in Electron. diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc -index ca79027e5a5252cff9de7d7310b2b38908ab6161..463fce75e89ef92c3ce3a1254a0944eaee066322 100644 +index 21d0735a9ebc16a7996567d5572d8783d9eb49d9..afc9c747b108a06a2023f17bdc106a95dc02a07b 100644 --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc @@ -473,10 +473,6 @@ void LocalFrame::DetachImpl(FrameDetachType type) { diff --git a/patches/chromium/blink_world_context.patch b/patches/chromium/blink_world_context.patch index dcc5df11bba6..89ff639b2e54 100644 --- a/patches/chromium/blink_world_context.patch +++ b/patches/chromium/blink_world_context.patch @@ -7,10 +7,10 @@ This exposes a method for obtaining a reference to an isolated world, which is otherwise not available in the Blink API. diff --git a/third_party/blink/public/web/web_local_frame.h b/third_party/blink/public/web/web_local_frame.h -index 2aefec4bd9877ee9109e3ab8ca9a8ab94d21b420..14a9a3c30164ced30d4bae47ea53f29ad831ab0d 100644 +index 0b154417ea7cbbf1ad4b88bc80027a67f16faa7d..c5d9cd52989c0d776ac12a5c0b88782d2c40b213 100644 --- a/third_party/blink/public/web/web_local_frame.h +++ b/third_party/blink/public/web/web_local_frame.h -@@ -333,6 +333,9 @@ class WebLocalFrame : public WebFrame { +@@ -334,6 +334,9 @@ class WebLocalFrame : public WebFrame { // be calling this API. virtual v8::Local MainWorldScriptContext() const = 0; @@ -21,7 +21,7 @@ index 2aefec4bd9877ee9109e3ab8ca9a8ab94d21b420..14a9a3c30164ced30d4bae47ea53f29a // that the script evaluated to with callback. Script execution can be // suspend. diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc -index da1e0054a3bf57364055b37aad06a65a3bab783e..99cd24e4665943369f38278ba0737d2eb79e713a 100644 +index 2660078b0ed37bc3313e645f59e38cd306b1fdca..9cb4f3d02fccd6f1098c9b8080f1057642aead5f 100644 --- a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc +++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc @@ -922,6 +922,13 @@ v8::Local WebLocalFrameImpl::GlobalProxy() const { @@ -39,7 +39,7 @@ index da1e0054a3bf57364055b37aad06a65a3bab783e..99cd24e4665943369f38278ba0737d2e return BindingSecurity::ShouldAllowAccessToFrame( CurrentDOMWindow(V8PerIsolateData::MainThreadIsolate()), diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.h b/third_party/blink/renderer/core/frame/web_local_frame_impl.h -index 1a349aee35a766015692922211b225e6cdeed97a..2e248e65407833ef893784b15e3e11d8cfeec371 100644 +index a8d2023b6b33f56af0dab8909f5863f4be68a311..d7582f9c2f733d4beeb294df34dcbf09ce3970ce 100644 --- a/third_party/blink/renderer/core/frame/web_local_frame_impl.h +++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.h @@ -160,6 +160,8 @@ class CORE_EXPORT WebLocalFrameImpl final diff --git a/patches/chromium/can_create_window.patch b/patches/chromium/can_create_window.patch index 8ddbc7f16998..8be75d171560 100644 --- a/patches/chromium/can_create_window.patch +++ b/patches/chromium/can_create_window.patch @@ -9,24 +9,24 @@ potentially prevent a window from being created. TODO(loc): this patch is currently broken. diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc -index 47749c430a71c3060c3e258ce1671bf6b03fa8c8..f2aedf5321a13742c6e3c2c4b7492b236a2d726c 100644 +index 1a500821f9fec125935641a1d34cf2131167ade7..3aa36936a96ae2afb7c7abbd64f14e4b9bf82828 100644 --- a/content/browser/frame_host/render_frame_host_impl.cc +++ b/content/browser/frame_host/render_frame_host_impl.cc -@@ -4305,6 +4305,7 @@ void RenderFrameHostImpl::CreateNewWindow( +@@ -4295,6 +4295,7 @@ void RenderFrameHostImpl::CreateNewWindow( last_committed_origin_, params->window_container_type, params->target_url, params->referrer.To(), params->frame_name, params->disposition, *params->features, + params->raw_features, params->body, effective_transient_activation_state, params->opener_suppressed, &no_javascript_access); - + diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 4311fd59dfd8db1dfbebd898c43c3b48caf6cdd7..2ddb86702558920cb372d2c8b3423b2d53d68e56 100644 +index 1e0d0a28cfe2c25b186fac6eb2d02e96730c3934..ebe258f91f77ccbb0bb0a21ad511dce9b17f4e80 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -2910,9 +2910,9 @@ void WebContentsImpl::CreateNewWindow( +@@ -2944,9 +2944,9 @@ RenderFrameHostDelegate* WebContentsImpl::CreateNewWindow( } - + if (delegate_) { - delegate_->WebContentsCreated(this, render_process_id, - opener->GetRoutingID(), params.frame_name, @@ -35,14 +35,14 @@ index 4311fd59dfd8db1dfbebd898c43c3b48caf6cdd7..2ddb86702558920cb372d2c8b3423b2d + opener->GetRoutingID(), + params, new_contents_impl); } - + for (auto& observer : observers_) { diff --git a/content/common/frame.mojom b/content/common/frame.mojom -index 00d9c34304266b49e3f9703ef1aea6524d026ed5..44bb5868b8c3699230d74de0f0903af572d000fc 100644 +index edf716bca261df00ac7df5a34cec8fa57c526a3c..a54941f69da3b5810084221aaa96cb39dd5f5418 100644 --- a/content/common/frame.mojom +++ b/content/common/frame.mojom -@@ -303,6 +303,10 @@ struct CreateNewWindowParams { - +@@ -304,6 +304,10 @@ struct CreateNewWindowParams { + // The window features to use for the new window. blink.mojom.WindowFeatures features; + @@ -50,13 +50,13 @@ index 00d9c34304266b49e3f9703ef1aea6524d026ed5..44bb5868b8c3699230d74de0f0903af5 + string raw_features; + network.mojom.URLRequestBody? body; }; - + // Operation result when the renderer asks the browser to create a new window. diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc -index 702cd0792df47809d9278dd3af40e0e70494e229..75cd0ad7a8dc1efd89683d8da192050659c5016f 100644 +index 89f33b33f8c848040f3bc6e34282688efda9c4db..294db724572266f54c9559bf5278920b819bef03 100644 --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc -@@ -508,6 +508,8 @@ bool ContentBrowserClient::CanCreateWindow( +@@ -512,6 +512,8 @@ bool ContentBrowserClient::CanCreateWindow( const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, @@ -66,7 +66,7 @@ index 702cd0792df47809d9278dd3af40e0e70494e229..75cd0ad7a8dc1efd89683d8da1920506 bool opener_suppressed, bool* no_javascript_access) { diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h -index ed0460f7e3c9e2149eed89f7d35a4bb457f6b29f..5fc3d0e31927b618d04024fcc42b2061580a4f22 100644 +index 26cd6d1afcb89148ed33ab733012a778e9b75c40..c9b26a69ff139d91dd0c5deb65017eed5b9fda12 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h @@ -143,6 +143,7 @@ class NetworkService; @@ -75,9 +75,9 @@ index ed0460f7e3c9e2149eed89f7d35a4bb457f6b29f..5fc3d0e31927b618d04024fcc42b2061 struct ResourceRequest; +class ResourceRequestBody; } // namespace network - + namespace rappor { -@@ -825,6 +826,8 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -834,6 +835,8 @@ class CONTENT_EXPORT ContentBrowserClient { const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, @@ -87,13 +87,13 @@ index ed0460f7e3c9e2149eed89f7d35a4bb457f6b29f..5fc3d0e31927b618d04024fcc42b2061 bool opener_suppressed, bool* no_javascript_access); diff --git a/content/public/browser/web_contents_delegate.cc b/content/public/browser/web_contents_delegate.cc -index 5aa89aef4dbf3fe4ac7ce56b99c371d188584351..72a434fa612cdb4521aab981f98883af87783a80 100644 +index 17281521f8109279fe68e11abc2fcec41cfdf9c0..83b951dcf55b54661c8f855a8e10984d262c91b2 100644 --- a/content/public/browser/web_contents_delegate.cc +++ b/content/public/browser/web_contents_delegate.cc @@ -26,6 +26,17 @@ namespace content { - + WebContentsDelegate::WebContentsDelegate() = default; - + +void WebContentsDelegate::WebContentsCreatedWithFullParams( + WebContents* source_contents, + int opener_render_process_id, @@ -109,7 +109,7 @@ index 5aa89aef4dbf3fe4ac7ce56b99c371d188584351..72a434fa612cdb4521aab981f98883af const OpenURLParams& params) { return nullptr; diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h -index 01db3853cb915dca4873c779f06bbf84b002abf6..4a8e4cf2386594e27e2dd8117bac78531b28830c 100644 +index d10b0f458416044f0b5eaeac4160ac26a2857d94..4e3a846a3825216e1a77e17fd8e03331c6fb927b 100644 --- a/content/public/browser/web_contents_delegate.h +++ b/content/public/browser/web_contents_delegate.h @@ -16,6 +16,7 @@ @@ -120,10 +120,10 @@ index 01db3853cb915dca4873c779f06bbf84b002abf6..4a8e4cf2386594e27e2dd8117bac7853 #include "content/public/browser/bluetooth_chooser.h" #include "content/public/browser/bluetooth_scanning_prompt.h" #include "content/public/browser/invalidate_type.h" -@@ -333,6 +334,13 @@ class CONTENT_EXPORT WebContentsDelegate { +@@ -327,6 +328,13 @@ class CONTENT_EXPORT WebContentsDelegate { const std::string& partition_id, SessionStorageNamespace* session_storage_namespace); - + + virtual void WebContentsCreatedWithFullParams( + WebContents* source_contents, + int opener_render_process_id, @@ -135,7 +135,7 @@ index 01db3853cb915dca4873c779f06bbf84b002abf6..4a8e4cf2386594e27e2dd8117bac7853 // typically happens when popups are created. virtual void WebContentsCreated(WebContents* source_contents, diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc -index b3388258feb1d9fd791a975b08a382addd06af3a..98855151d1f07177a20b0f6079f2f48826d215ca 100644 +index f0cb4833442be24dee52e2e172a0d22474d1135b..2cad532229217a2cee604298713be7aebc24dda8 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc @@ -68,6 +68,7 @@ @@ -146,10 +146,10 @@ index b3388258feb1d9fd791a975b08a382addd06af3a..98855151d1f07177a20b0f6079f2f488 #include "content/renderer/media/audio/audio_device_factory.h" #include "content/renderer/render_frame_impl.h" #include "content/renderer/render_frame_proxy.h" -@@ -1255,6 +1256,10 @@ WebView* RenderViewImpl::CreateView( +@@ -1254,6 +1255,10 @@ WebView* RenderViewImpl::CreateView( } params->features = ConvertWebWindowFeaturesToMojoWindowFeatures(features); - + + params->raw_features = features.raw_features.Utf8( + WTF::UTF8ConversionMode::kStrictUTF8ConversionReplacingUnpairedSurrogatesWithFFFD); + params->body = GetRequestBodyForWebURLRequest(request); @@ -158,10 +158,10 @@ index b3388258feb1d9fd791a975b08a382addd06af3a..98855151d1f07177a20b0f6079f2f488 // moved on send. bool is_background_tab = diff --git a/content/shell/browser/web_test/web_test_content_browser_client.cc b/content/shell/browser/web_test/web_test_content_browser_client.cc -index bf7c4bf0b76a89b1ecee6edc11fcfd06fe679968..79b2ba79653a251d3a4c3a54adbcd5c10c460b19 100644 +index 4cb52a0e6a50a7a4dfe7f1413a73941ccf88eee0..39f339fefc99443488c98a43fb5e1c44f0abf3fc 100644 --- a/content/shell/browser/web_test/web_test_content_browser_client.cc +++ b/content/shell/browser/web_test/web_test_content_browser_client.cc -@@ -333,6 +333,8 @@ bool WebTestContentBrowserClient::CanCreateWindow( +@@ -335,6 +335,8 @@ bool WebTestContentBrowserClient::CanCreateWindow( const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, @@ -171,10 +171,10 @@ index bf7c4bf0b76a89b1ecee6edc11fcfd06fe679968..79b2ba79653a251d3a4c3a54adbcd5c1 bool opener_suppressed, bool* no_javascript_access) { diff --git a/content/shell/browser/web_test/web_test_content_browser_client.h b/content/shell/browser/web_test/web_test_content_browser_client.h -index aaf3b8fed16bc2959941effaffd3aec87017ca59..1ea96df464f61c963a6d9aa224b9607e4221daa6 100644 +index e8b25e58fc99e8966513f183c544317b73d75e90..6b0ba214f64cee799e4ff4cc11bd3ba6ad5a4405 100644 --- a/content/shell/browser/web_test/web_test_content_browser_client.h +++ b/content/shell/browser/web_test/web_test_content_browser_client.h -@@ -71,6 +71,8 @@ class WebTestContentBrowserClient : public ShellContentBrowserClient { +@@ -73,6 +73,8 @@ class WebTestContentBrowserClient : public ShellContentBrowserClient { const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, @@ -190,11 +190,11 @@ index 4f735ad0d97eaac9a57dad137e479f8a7ec33a36..0a3c5821962c85609b64b3625fa6b8d6 @@ -31,6 +31,8 @@ #ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_WINDOW_FEATURES_H_ #define THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_WINDOW_FEATURES_H_ - + +#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" + namespace blink { - + struct WebWindowFeatures { @@ -60,6 +62,8 @@ struct WebWindowFeatures { bool noreferrer = false; @@ -203,17 +203,17 @@ index 4f735ad0d97eaac9a57dad137e479f8a7ec33a36..0a3c5821962c85609b64b3625fa6b8d6 + + String raw_features; }; - + } // namespace blink diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc -index 07cb6e3fabfa7a32f9923dcf4fbc8cebccdbde46..58e768bfcac2561f4427c71b6c31ba73f9be4b7b 100644 +index 286b15de67b7c9978cd330a4ce557db5bc705118..a47797cedcee05ec07c1e7294f3843a204f344a7 100644 --- a/third_party/blink/renderer/core/frame/local_dom_window.cc +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc -@@ -1492,6 +1492,7 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, +@@ -1756,6 +1756,7 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, } - + WebWindowFeatures window_features = GetWindowFeaturesFromString(features); + window_features.raw_features = features; - + FrameLoadRequest frame_request(active_document, ResourceRequest(completed_url)); diff --git a/patches/chromium/chore_use_electron_resources_not_chrome_for_spellchecker.patch b/patches/chromium/chore_use_electron_resources_not_chrome_for_spellchecker.patch index 5f44b05a8df8..56134892b606 100644 --- a/patches/chromium/chore_use_electron_resources_not_chrome_for_spellchecker.patch +++ b/patches/chromium/chore_use_electron_resources_not_chrome_for_spellchecker.patch @@ -7,10 +7,10 @@ spellchecker uses a few IDS_ resources. We need to load these from Electrons grit header instead of Chromes diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn -index ee02b316abcd49b81cd43f7e532fdac4ec1c7dda..7b8e658b9fdca2e0c34946fe6a6658df3a5404f3 100644 +index 1b62c3011049b39df220c210552e9f5993d8db69..6226475ca50ef13eaaa2379f2cb2d89e3ba0a1fd 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -5289,6 +5289,7 @@ jumbo_static_library("browser") { +@@ -5309,6 +5309,7 @@ jumbo_static_library("browser") { deps += [ "//components/spellcheck/browser", "//components/spellcheck/common", @@ -44,7 +44,7 @@ index f28230ea94fece5ae8ca7ac27a14da48f40fadbb..c10eea103852b9411a644e1fe20a7e20 ] } diff --git a/components/language/core/browser/language_prefs.cc b/components/language/core/browser/language_prefs.cc -index 7e06f689632ae67e3e17d7985c6e7b6ea0057f3c..0b4676f4c40b4a0eda927a51016ec91ec230291d 100644 +index 201dc7786e822d54b5d9ab8a9d02e7b4339a8d6d..a3232da24513b408403f9f7c033dcd2f3222da47 100644 --- a/components/language/core/browser/language_prefs.cc +++ b/components/language/core/browser/language_prefs.cc @@ -21,7 +21,7 @@ diff --git a/patches/chromium/dcheck.patch b/patches/chromium/dcheck.patch index c1d8fe422316..fc56bcde8ffb 100644 --- a/patches/chromium/dcheck.patch +++ b/patches/chromium/dcheck.patch @@ -46,10 +46,10 @@ index f950552abbe9e9a0002156b596438fe9aa4f01b9..23931899eb58432fd8eabf4d681d2294 // navigation. Now we know that the renderer has updated its state accordingly // and it is safe to also clear the browser side history. diff --git a/ui/base/clipboard/clipboard_win.cc b/ui/base/clipboard/clipboard_win.cc -index 23681d4192ac329a68822dbcdb06369f34e5e28a..a6f07372bdc576ad8d2cce0b04ffe2adc9ab37ad 100644 +index 7a80d2f2eb940a92a2711365ddb5b52f8f8f6606..4c9ca5a3635230c1db43568cfc6ddcb264179d80 100644 --- a/ui/base/clipboard/clipboard_win.cc +++ b/ui/base/clipboard/clipboard_win.cc -@@ -767,10 +767,10 @@ void ClipboardWin::WriteBitmapFromHandle(HBITMAP source_hbitmap, +@@ -768,10 +768,10 @@ void ClipboardWin::WriteBitmapFromHandle(HBITMAP source_hbitmap, void ClipboardWin::WriteToClipboard(ClipboardFormatType format, HANDLE handle) { UINT cf_format = format.ToFormatEtc().cfFormat; diff --git a/patches/chromium/disable-redraw-lock.patch b/patches/chromium/disable-redraw-lock.patch index 67fc49e97a44..e1188cf9baa3 100644 --- a/patches/chromium/disable-redraw-lock.patch +++ b/patches/chromium/disable-redraw-lock.patch @@ -15,10 +15,10 @@ the redraw locking mechanism, which fixes these issues. The electron issue can be found at https://github.com/electron/electron/issues/1821 diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc -index 212fefe521eb94dc6a9afcae1b6d49a8aeb37288..cba9294f281cdfa457e620f98daee944464cd8aa 100644 +index e18afe3c8c287c4cd44ff7139c1cc4004a9704ec..281c722d81c0ad5fa7bacbe25c07a7578dfa43b6 100644 --- a/ui/views/win/hwnd_message_handler.cc +++ b/ui/views/win/hwnd_message_handler.cc -@@ -305,6 +305,10 @@ constexpr int kSynthesizedMouseMessagesTimeDifference = 500; +@@ -306,6 +306,10 @@ constexpr int kSynthesizedMouseMessagesTimeDifference = 500; } // namespace @@ -29,7 +29,7 @@ index 212fefe521eb94dc6a9afcae1b6d49a8aeb37288..cba9294f281cdfa457e620f98daee944 // A scoping class that prevents a window from being able to redraw in response // to invalidations that may occur within it for the lifetime of the object. // -@@ -356,6 +360,7 @@ class HWNDMessageHandler::ScopedRedrawLock { +@@ -357,6 +361,7 @@ class HWNDMessageHandler::ScopedRedrawLock { cancel_unlock_(false), should_lock_(owner_->IsVisible() && !owner->HasChildRenderingWindow() && ::IsWindow(hwnd_) && @@ -37,7 +37,7 @@ index 212fefe521eb94dc6a9afcae1b6d49a8aeb37288..cba9294f281cdfa457e620f98daee944 (!(GetWindowLong(hwnd_, GWL_STYLE) & WS_CAPTION) || !ui::win::IsAeroGlassEnabled())) { if (should_lock_) -@@ -969,6 +974,10 @@ HWNDMessageHandler::RegisterUnadjustedMouseEvent() { +@@ -974,6 +979,10 @@ HWNDMessageHandler::RegisterUnadjustedMouseEvent() { return scoped_enable; } @@ -49,7 +49,7 @@ index 212fefe521eb94dc6a9afcae1b6d49a8aeb37288..cba9294f281cdfa457e620f98daee944 // HWNDMessageHandler, gfx::WindowImpl overrides: diff --git a/ui/views/win/hwnd_message_handler.h b/ui/views/win/hwnd_message_handler.h -index 14cda16ddf8dab2912e23d374e3fc86a1909b430..680e6c313eb5289237c926a0da910560d1037d2d 100644 +index 7b56d58faff84a72cc8cf9f77daeafdee110ce3a..d46ba47aaa31a0b893ab43e9f70dddbc48c5ea41 100644 --- a/ui/views/win/hwnd_message_handler.h +++ b/ui/views/win/hwnd_message_handler.h @@ -203,6 +203,8 @@ class VIEWS_EXPORT HWNDMessageHandler : public gfx::WindowImpl, diff --git a/patches/chromium/disable_color_correct_rendering.patch b/patches/chromium/disable_color_correct_rendering.patch index 05fa186cede8..0ed763cf3c64 100644 --- a/patches/chromium/disable_color_correct_rendering.patch +++ b/patches/chromium/disable_color_correct_rendering.patch @@ -20,7 +20,7 @@ to deal with color spaces. That is being tracked at https://crbug.com/634542 and https://crbug.com/711107. diff --git a/cc/trees/layer_tree_settings.h b/cc/trees/layer_tree_settings.h -index 499d5f149ed2a83ba0d6174d4d940b0b58e5580c..748335f21d92c858ff1efebe4ce85e7405e3bdce 100644 +index ed5484e0b05ccfef76061427a8f88a72b6f9b7fe..e893b6aba90f61ae0d05532ca925a9ff7faf2195 100644 --- a/cc/trees/layer_tree_settings.h +++ b/cc/trees/layer_tree_settings.h @@ -101,6 +101,8 @@ class CC_EXPORT LayerTreeSettings { @@ -66,7 +66,7 @@ index cb69e08c0185f55497089505ed5b226e57140321..362f28accc248248f3bcb54955c23528 !command_line->HasSwitch(switches::kUIDisablePartialSwap); #if defined(OS_MACOSX) diff --git a/components/viz/service/display/gl_renderer.cc b/components/viz/service/display/gl_renderer.cc -index 8d07647a7f4de248d3401a04b3bd9006c7a04bfe..e488ef6f758502dacd7c5ffee45987fb6bb77d49 100644 +index ceb0c4ecbe0401c0190ba683bac479392726207b..ea6166d864a96769030f9b20dfda8d0f7bb8a5c9 100644 --- a/components/viz/service/display/gl_renderer.cc +++ b/components/viz/service/display/gl_renderer.cc @@ -84,6 +84,9 @@ @@ -204,7 +204,7 @@ index 8d07647a7f4de248d3401a04b3bd9006c7a04bfe..e488ef6f758502dacd7c5ffee45987fb + +#undef PATCH_CS diff --git a/content/browser/gpu/gpu_process_host.cc b/content/browser/gpu/gpu_process_host.cc -index bf63bb9c03852263e9341c671be1ee4e7c1a3dc2..d06e2f99739298a4de13ebbce5606b68f5523df3 100644 +index d47312d5f89939eab55cfa94bd3fbd41a4bd7d2a..da2f5e9fdc0fda37c82357a12f4fa28f5c556273 100644 --- a/content/browser/gpu/gpu_process_host.cc +++ b/content/browser/gpu/gpu_process_host.cc @@ -209,6 +209,7 @@ GpuTerminationStatus ConvertToGpuTerminationStatus( @@ -216,7 +216,7 @@ index bf63bb9c03852263e9341c671be1ee4e7c1a3dc2..d06e2f99739298a4de13ebbce5606b68 service_manager::switches::kGpuSandboxAllowSysVShm, service_manager::switches::kGpuSandboxFailuresFatal, diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc -index 043bc132f8946ab66e42dadee9c3e1a548264238..3139ea227d5971f5e325e8847fb3dfcd786853e9 100644 +index ea736817be4084f43ef5266e4a7aac3a8bdaa9d7..367baf4401edffdaaf66620cf17364aa2e9a5ca3 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc @@ -227,6 +227,7 @@ @@ -227,7 +227,7 @@ index 043bc132f8946ab66e42dadee9c3e1a548264238..3139ea227d5971f5e325e8847fb3dfcd #include "ui/gl/gl_switches.h" #include "ui/native_theme/native_theme_features.h" #include "url/origin.h" -@@ -3146,6 +3147,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3183,6 +3184,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( // Propagate the following switches to the renderer command line (along // with any associated values) if present in the browser command line. static const char* const kSwitchNames[] = { @@ -236,10 +236,10 @@ index 043bc132f8946ab66e42dadee9c3e1a548264238..3139ea227d5971f5e325e8847fb3dfcd service_manager::switches::kDisableInProcessStackTraces, service_manager::switches::kDisableSeccompFilterSandbox, diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc -index 15ef92df7b986dab587da24c8b93b520893683c9..b87fb42a939522046f00e70aac7dc0d681243159 100644 +index 640945d6c239ee1c2d1beb190fdb92c600ee348c..c7143f9a91328a0a56038d58b50abd1aed9247fa 100644 --- a/content/renderer/render_widget.cc +++ b/content/renderer/render_widget.cc -@@ -2711,6 +2711,9 @@ cc::LayerTreeSettings RenderWidget::GenerateLayerTreeSettings( +@@ -2681,6 +2681,9 @@ cc::LayerTreeSettings RenderWidget::GenerateLayerTreeSettings( settings.main_frame_before_activation_enabled = cmd.HasSwitch(cc::switches::kEnableMainFrameBeforeActivation); @@ -294,7 +294,7 @@ index d88680239152858689121d134559765fb8fae1b7..073ed8a8f84ebf994a2b9d9fa7e78f75 gfx::ColorSpace::TransferID transfer_id = diff --git a/ui/gfx/mac/io_surface.cc b/ui/gfx/mac/io_surface.cc -index 4c47a1132ea3d53b6c63882e98374196ac7ce069..a7f00f426cc6a75d7b942581696332756f2cb792 100644 +index 2674784dca1ed12b2f5afc7b728e0c6e8cd6ca4a..5b661c70c9c89883a1aaaf1a29a9ec9fe7f16da6 100644 --- a/ui/gfx/mac/io_surface.cc +++ b/ui/gfx/mac/io_surface.cc @@ -16,6 +16,7 @@ @@ -305,7 +305,7 @@ index 4c47a1132ea3d53b6c63882e98374196ac7ce069..a7f00f426cc6a75d7b94258169633275 namespace gfx { -@@ -254,6 +255,11 @@ IOSurfaceRef CreateIOSurface(const gfx::Size& size, +@@ -258,6 +259,11 @@ IOSurfaceRef CreateIOSurface(const gfx::Size& size, IOSurfaceSetValue(surface, CFSTR("IOSurfaceColorSpace"), kCGColorSpaceSRGB); } else { CGColorSpaceRef color_space = base::mac::GetSRGBColorSpace(); @@ -317,7 +317,7 @@ index 4c47a1132ea3d53b6c63882e98374196ac7ce069..a7f00f426cc6a75d7b94258169633275 base::ScopedCFTypeRef color_space_icc( CGColorSpaceCopyICCProfile(color_space)); IOSurfaceSetValue(surface, CFSTR("IOSurfaceColorSpace"), color_space_icc); -@@ -270,6 +276,14 @@ bool IOSurfaceCanSetColorSpace(const ColorSpace& color_space) { +@@ -274,6 +280,14 @@ bool IOSurfaceCanSetColorSpace(const ColorSpace& color_space) { void IOSurfaceSetColorSpace(IOSurfaceRef io_surface, const ColorSpace& color_space) { diff --git a/patches/chromium/disable_hidden.patch b/patches/chromium/disable_hidden.patch index 731aab56c412..7cf3533807cd 100644 --- a/patches/chromium/disable_hidden.patch +++ b/patches/chromium/disable_hidden.patch @@ -6,10 +6,10 @@ Subject: disable_hidden.patch Electron uses this to disable background throttling for hidden windows. diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc -index d91e2f2a0a1284215ad95a2771e3cb9331ec9205..44a6712817a0682a8ff916f22c1bb034f02f4755 100644 +index 5ad66a6af94f07d7a989e738ea587ce467a542d6..8c54e34e716a647a72ffce78b56f94a03a5dd978 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc -@@ -614,6 +614,9 @@ void RenderWidgetHostImpl::WasHidden() { +@@ -660,6 +660,9 @@ void RenderWidgetHostImpl::WasHidden() { if (is_hidden_) return; @@ -20,22 +20,21 @@ index d91e2f2a0a1284215ad95a2771e3cb9331ec9205..44a6712817a0682a8ff916f22c1bb034 blink::mojom::PointerLockResult::kWrongDocument); diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h -index 26cf559d4a39307524432947627369c440a76929..b638b04444f36c5cac534e99891858f765993496 100644 +index 013b2165038f1f21df394a0742f7927f26ab1671..894ddaa62fe8aa24eccbe7f9885a4dbb8db04206 100644 --- a/content/browser/renderer_host/render_widget_host_impl.h +++ b/content/browser/renderer_host/render_widget_host_impl.h -@@ -175,6 +175,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl +@@ -179,6 +179,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl // RenderWidgetHostImpl. static RenderWidgetHostImpl* From(RenderWidgetHost* rwh); + // Electron: Prevents the widget from getting hidden. + bool disable_hidden_ = false; + - void set_hung_renderer_delay(const base::TimeDelta& delay) { - hung_renderer_delay_ = delay; - } - + void set_new_content_rendering_delay_for_testing( + const base::TimeDelta& delay) { + new_content_rendering_delay_ = delay; diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc -index 3e2190700aee..0ccdaa8d037c 100644 +index 3e2190700aee4ea6184ea59d8bb4a480cd52697b..0ccdaa8d037cb71ee3eebae027a74e96ffe1e846 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura.cc +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc @@ -692,7 +692,7 @@ void RenderWidgetHostViewAura::HideImpl() { diff --git a/patches/chromium/disable_user_gesture_requirement_for_beforeunload_dialogs.patch b/patches/chromium/disable_user_gesture_requirement_for_beforeunload_dialogs.patch index 147dbef9302e..b9b15bf2d4dd 100644 --- a/patches/chromium/disable_user_gesture_requirement_for_beforeunload_dialogs.patch +++ b/patches/chromium/disable_user_gesture_requirement_for_beforeunload_dialogs.patch @@ -6,10 +6,10 @@ Subject: disable_user_gesture_requirement_for_beforeunload_dialogs.patch See https://github.com/electron/electron/issues/10754 diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc -index 851679dc3bb8012af65e6c87f154a8b4e1c319e7..34b996e498bcb905d87e58538d937bbe2c6934d0 100644 +index ca2cb0332066db76e2e120c1534c07b95e33a670..6b3ec3427fbf5f138900c23a2a0dd7308e433bbd 100644 --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -4147,7 +4147,9 @@ bool Document::DispatchBeforeUnloadEvent(ChromeClient* chrome_client, +@@ -4142,7 +4142,9 @@ bool Document::DispatchBeforeUnloadEvent(ChromeClient* chrome_client, "frame that never had a user gesture since its load. " "https://www.chromestatus.com/feature/5082396709879808"; Intervention::GenerateReport(frame_, "BeforeUnloadNoGesture", message); diff --git a/patches/chromium/expose_setuseragent_on_networkcontext.patch b/patches/chromium/expose_setuseragent_on_networkcontext.patch index 5eccf2a78508..e9efd84bf0b6 100644 --- a/patches/chromium/expose_setuseragent_on_networkcontext.patch +++ b/patches/chromium/expose_setuseragent_on_networkcontext.patch @@ -33,10 +33,10 @@ index 0ccfe130f00ec3b6c75cd8ee04d5a2777e1fd00c..653829457d58bf92057cc36aa8a28970 DISALLOW_COPY_AND_ASSIGN(StaticHttpUserAgentSettings); }; diff --git a/services/network/network_context.cc b/services/network/network_context.cc -index 80ecc470ab4ed4ce1cb797f7f11fe971c953145d..36521baf33900fe9ec411a365918a675fb147080 100644 +index d0d646a42b3ee27f848dd0a47179e8f573e51d8f..35244d028375fe4d79ad41a864c38587ce02f749 100644 --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -1006,6 +1006,13 @@ void NetworkContext::SetNetworkConditions( +@@ -1008,6 +1008,13 @@ void NetworkContext::SetNetworkConditions( std::move(network_conditions)); } @@ -51,7 +51,7 @@ index 80ecc470ab4ed4ce1cb797f7f11fe971c953145d..36521baf33900fe9ec411a365918a675 // This may only be called on NetworkContexts created with the constructor // that calls MakeURLRequestContext(). diff --git a/services/network/network_context.h b/services/network/network_context.h -index 8ccb5c4d0c37a5dc0c7fa713683941eaddc1c609..260f0e205b537be6b82eb6847d78d02122a054e1 100644 +index 9d201f1a5ef0eaf3f8b42cbb3d2593dbd068bdd6..e32997067e57098198168675ffe3160134fb838b 100644 --- a/services/network/network_context.h +++ b/services/network/network_context.h @@ -233,6 +233,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext @@ -63,10 +63,10 @@ index 8ccb5c4d0c37a5dc0c7fa713683941eaddc1c609..260f0e205b537be6b82eb6847d78d021 void SetEnableReferrers(bool enable_referrers) override; #if defined(OS_CHROMEOS) diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom -index 1d9ffd3de180e3256fb63a497544feeb427ae7ff..c37432121142472010b767b7fb257e20bc60b3fc 100644 +index 96ba4d67bcdefef44ecd246acb883824c9e842d6..a46aab1db2de282e0ff3561a98bad1dac659b67a 100644 --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -1016,6 +1016,9 @@ interface NetworkContext { +@@ -986,6 +986,9 @@ interface NetworkContext { SetNetworkConditions(mojo_base.mojom.UnguessableToken throttling_profile_id, NetworkConditions? conditions); diff --git a/patches/chromium/feat_add_onclose_to_messageport.patch b/patches/chromium/feat_add_onclose_to_messageport.patch index 2ef64ad51148..ede56d76c3c9 100644 --- a/patches/chromium/feat_add_onclose_to_messageport.patch +++ b/patches/chromium/feat_add_onclose_to_messageport.patch @@ -10,10 +10,10 @@ get this standardised, but in lieu of that, this makes MessagePort a whole bunch more useful! diff --git a/third_party/blink/renderer/core/messaging/message_port.cc b/third_party/blink/renderer/core/messaging/message_port.cc -index e2ddbafc9ea2836a302da481702e2922949ffe78..7da7071862e384bce65ecb52996b5287891a33f9 100644 +index 3e71122bfbc87b481d620d67d01926690ae5270a..cd1abc51fa216215b5ab00d0a8b63638c24cbd57 100644 --- a/third_party/blink/renderer/core/messaging/message_port.cc +++ b/third_party/blink/renderer/core/messaging/message_port.cc -@@ -156,6 +156,7 @@ void MessagePort::close() { +@@ -149,6 +149,7 @@ void MessagePort::close() { Entangle(mojo::MessagePipe().handle0); } closed_ = true; @@ -22,7 +22,7 @@ index e2ddbafc9ea2836a302da481702e2922949ffe78..7da7071862e384bce65ecb52996b5287 void MessagePort::Entangle(mojo::ScopedMessagePipeHandle handle) { diff --git a/third_party/blink/renderer/core/messaging/message_port.h b/third_party/blink/renderer/core/messaging/message_port.h -index 2a08335398b30671a61aee0f1ebe060222a4f1ff..874aecb9c038f19cc03641a19ce51cf2f958d80c 100644 +index d24804499949c237462ee455e7cec93836debca9..53e61229e73e2343414aa1ac5c5ac1ff2d3db439 100644 --- a/third_party/blink/renderer/core/messaging/message_port.h +++ b/third_party/blink/renderer/core/messaging/message_port.h @@ -119,6 +119,13 @@ class CORE_EXPORT MessagePort : public EventTargetWithInlineData, diff --git a/patches/chromium/feat_add_set_theme_source_to_allow_apps_to.patch b/patches/chromium/feat_add_set_theme_source_to_allow_apps_to.patch index 1b30dad3e211..8cc9e9c797a6 100644 --- a/patches/chromium/feat_add_set_theme_source_to_allow_apps_to.patch +++ b/patches/chromium/feat_add_set_theme_source_to_allow_apps_to.patch @@ -13,10 +13,10 @@ uses internally for things like menus and devtools. We can remove this patch once it has in some shape been upstreamed. diff --git a/ui/native_theme/native_theme.cc b/ui/native_theme/native_theme.cc -index bfca4412f0045bdd23a76597a803145e9f7f22c5..5337fa3fe2653684ff1688f1cf8a52c908ee1d61 100644 +index 68c0830f8a7e2f492fade824d0036a6f576da6d8..ed27dcca6e5d3bdbc353aba9830a278624c6d69d 100644 --- a/ui/native_theme/native_theme.cc +++ b/ui/native_theme/native_theme.cc -@@ -53,6 +53,8 @@ NativeTheme::NativeTheme(bool should_use_dark_colors) +@@ -221,6 +221,8 @@ NativeTheme::NativeTheme(bool should_use_dark_colors) NativeTheme::~NativeTheme() = default; bool NativeTheme::ShouldUseDarkColors() const { @@ -26,10 +26,10 @@ index bfca4412f0045bdd23a76597a803145e9f7f22c5..5337fa3fe2653684ff1688f1cf8a52c9 } diff --git a/ui/native_theme/native_theme.h b/ui/native_theme/native_theme.h -index edd042cfe327810c120c4b446c043761c0d21b9f..59aaf71ea1e7931c421a46a7ca8cadb4dc77483b 100644 +index 380a8e78fdeb2ad5f40b298a3efffa82a70ed2dc..af3d29313dfd14b7c367133eb1c9afe3f0b70bcc 100644 --- a/ui/native_theme/native_theme.h +++ b/ui/native_theme/native_theme.h -@@ -348,6 +348,22 @@ class NATIVE_THEME_EXPORT NativeTheme { +@@ -351,6 +351,22 @@ class NATIVE_THEME_EXPORT NativeTheme { ColorId color_id, ColorScheme color_scheme = ColorScheme::kDefault) const; @@ -52,33 +52,20 @@ index edd042cfe327810c120c4b446c043761c0d21b9f..59aaf71ea1e7931c421a46a7ca8cadb4 // Returns a shared instance of the native theme that should be used for web // rendering. Do not use it in a normal application context (i.e. browser). // The returned object should not be deleted by the caller. This function is -@@ -478,6 +494,8 @@ class NATIVE_THEME_EXPORT NativeTheme { - PreferredColorScheme preferred_color_scheme_ = +@@ -482,6 +498,8 @@ class NATIVE_THEME_EXPORT NativeTheme { PreferredColorScheme::kNoPreference; + mutable ColorProvider* color_provider_ = nullptr; + ThemeSource theme_source_ = ThemeSource::kSystem; + DISALLOW_COPY_AND_ASSIGN(NativeTheme); }; -diff --git a/ui/native_theme/native_theme_dark_aura.cc b/ui/native_theme/native_theme_dark_aura.cc -index 87b0abc9c646ace8cafc2b83eb4da6ffd3370237..75c677def845711ef4f3414f0a7df4f88431bf25 100644 ---- a/ui/native_theme/native_theme_dark_aura.cc -+++ b/ui/native_theme/native_theme_dark_aura.cc -@@ -20,6 +20,8 @@ SkColor NativeThemeDarkAura::GetSystemColor(ColorId color_id, - } - - bool NativeThemeDarkAura::ShouldUseDarkColors() const { -+ if (theme_source() == ThemeSource::kForcedLight) return false; -+ if (theme_source() == ThemeSource::kForcedDark) return true; - return true; - } - diff --git a/ui/native_theme/native_theme_win.cc b/ui/native_theme/native_theme_win.cc -index dedaaaeaa93e55ec784f94864d670e0659d839bf..57009894edb9ad9422e24bf40f4100964fd32d1c 100644 +index 7bc92ec1d15b9f5c9f867354f2768f6edc158a92..d6ec646352a7671fa7321f60bddec6c9c18f7476 100644 --- a/ui/native_theme/native_theme_win.cc +++ b/ui/native_theme/native_theme_win.cc -@@ -726,6 +726,8 @@ bool NativeThemeWin::ShouldUseDarkColors() const { +@@ -729,6 +729,8 @@ bool NativeThemeWin::ShouldUseDarkColors() const { // ...unless --force-dark-mode was specified in which case caveat emptor. if (UsesHighContrastColors() && !IsForcedDarkMode()) return false; diff --git a/patches/chromium/feat_allow_disabling_blink_scheduler_throttling_per_renderview.patch b/patches/chromium/feat_allow_disabling_blink_scheduler_throttling_per_renderview.patch index 317f246c987f..455b4977b081 100644 --- a/patches/chromium/feat_allow_disabling_blink_scheduler_throttling_per_renderview.patch +++ b/patches/chromium/feat_allow_disabling_blink_scheduler_throttling_per_renderview.patch @@ -6,11 +6,11 @@ Subject: feat: allow disabling blink scheduler throttling per RenderView This allows us to disable throttling for hidden windows. diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc -index 200d25b69239fe638c27e2a4dd9935087f7401f8..c69505920aba745dd4748a2fa154f6d7f7e5b8b6 100644 +index a7dc1fb163c385f1f28186ccabd5e4b9d535f43a..1b2e7f4aa70ad66769e995f6e6957aa34c48a283 100644 --- a/content/browser/renderer_host/render_view_host_impl.cc +++ b/content/browser/renderer_host/render_view_host_impl.cc -@@ -447,6 +447,10 @@ void RenderViewHostImpl::SetBackgroundOpaque(bool opaque) { - Send(new ViewMsg_SetBackgroundOpaque(GetRoutingID(), opaque)); +@@ -452,6 +452,10 @@ void RenderViewHostImpl::SetBackgroundOpaque(bool opaque) { + GetWidget()->GetAssociatedFrameWidget()->SetBackgroundOpaque(opaque); } +void RenderViewHostImpl::SetSchedulerThrottling(bool allowed) { @@ -33,12 +33,12 @@ index 70f9ea0f650b9a4b482d823a603871808f8e125c..8bd66fa4058fa5fa2ef0872c9fda2ab1 void UpdateWebkitPreferences(const WebPreferences& prefs) override; void OnWebkitPreferencesChanged() override; diff --git a/content/common/view_messages.h b/content/common/view_messages.h -index ee01a4430f8e3098fbf741010394ad1a8fd6528b..01327559222ebd3e9de954cf9c9137cc105cbee0 100644 +index b75aee16237cad6043cd6cfbe22a166e10327a16..7a7e96bcd17e730d2a282e3c7df4a0e3c56b75e0 100644 --- a/content/common/view_messages.h +++ b/content/common/view_messages.h -@@ -98,6 +98,9 @@ IPC_STRUCT_TRAITS_END() - // Make the RenderWidget background transparent or opaque. - IPC_MESSAGE_ROUTED1(ViewMsg_SetBackgroundOpaque, bool /* opaque */) +@@ -95,6 +95,9 @@ IPC_STRUCT_TRAITS_END() + + // Messages sent from the browser to the renderer. +// Whether to enable the Renderer scheduler background throttling. +IPC_MESSAGE_ROUTED1(ViewMsg_SetSchedulerThrottling, bool /* allowed */) @@ -61,7 +61,7 @@ index 893c45a5c71b4e55ea323ae60e11d12ddb099efd..db9a1ff0fe1a912db83692ab17c620cf // // Returns the current WebKit preferences. Note: WebPreferences is cached, so diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc -index 98855151d1f07177a20b0f6079f2f48826d215ca..ae1d910ad32c8c26db0396f675aa81a145468945 100644 +index 2cad532229217a2cee604298713be7aebc24dda8..9b8b0bd7afef3e94460d3ea05437d82a9a4cc684 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc @@ -1183,6 +1183,8 @@ bool RenderViewImpl::OnMessageReceived(const IPC::Message& message) { @@ -73,7 +73,7 @@ index 98855151d1f07177a20b0f6079f2f48826d215ca..ae1d910ad32c8c26db0396f675aa81a1 IPC_MESSAGE_HANDLER(ViewMsg_UpdateTargetURL_ACK, OnUpdateTargetURLAck) IPC_MESSAGE_HANDLER(ViewMsg_UpdateWebPreferences, OnUpdateWebPreferences) IPC_MESSAGE_HANDLER(ViewMsg_MoveOrResizeStarted, OnMoveOrResizeStarted) -@@ -1683,6 +1685,12 @@ bool RenderViewImpl::GetContentStateImmediately() { +@@ -1700,6 +1702,12 @@ bool RenderViewImpl::GetContentStateImmediately() { return send_content_state_immediately_; } @@ -87,7 +87,7 @@ index 98855151d1f07177a20b0f6079f2f48826d215ca..ae1d910ad32c8c26db0396f675aa81a1 PageVisibilityState visibility_state, bool initial_setting) { diff --git a/content/renderer/render_view_impl.h b/content/renderer/render_view_impl.h -index 286e207fc93b2ac2b4012b04afa3f82d51310f96..87d5e8dc312e91ebfa96e0f3c41cf7b87e677044 100644 +index 701aac4f7865097899b76ee8c37db6eb32672b33..9e4ef233ce1df822d08bef03bfa5bf48774e0c24 100644 --- a/content/renderer/render_view_impl.h +++ b/content/renderer/render_view_impl.h @@ -413,6 +413,7 @@ class CONTENT_EXPORT RenderViewImpl : public blink::WebViewClient, @@ -99,10 +99,10 @@ index 286e207fc93b2ac2b4012b04afa3f82d51310f96..87d5e8dc312e91ebfa96e0f3c41cf7b8 void OnUpdateTargetURLAck(); void OnUpdateWebPreferences(const WebPreferences& prefs); diff --git a/third_party/blink/public/web/web_view.h b/third_party/blink/public/web/web_view.h -index c2c079e51358696f18f8f4733bc904f9ac6f7ed6..3f11aa7cab36f45fd26ea0eb2babe6927f5b3539 100644 +index 406c19b10b2e97ba05b9b3eb5c1ac0831023b3e2..dcbaf84dceee74da60ae8cc5466e08db317e3543 100644 --- a/third_party/blink/public/web/web_view.h +++ b/third_party/blink/public/web/web_view.h -@@ -412,6 +412,7 @@ class WebView { +@@ -402,6 +402,7 @@ class WebView { // Scheduling ----------------------------------------------------------- virtual PageScheduler* Scheduler() const = 0; @@ -111,10 +111,10 @@ index c2c079e51358696f18f8f4733bc904f9ac6f7ed6..3f11aa7cab36f45fd26ea0eb2babe692 // Visibility ----------------------------------------------------------- diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc -index 4696a63b4e925b0ffde2655bbdbcc3055780dfe4..518110d89ec6f518702fd2792b56f843ee7d2d5d 100644 +index 43fc2bb2de690486b38061760edec4c64cc19c0b..cd94798b733c1ea12ca60666dbabd7058aa77393 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -3351,12 +3351,20 @@ PageScheduler* WebViewImpl::Scheduler() const { +@@ -3355,12 +3355,20 @@ PageScheduler* WebViewImpl::Scheduler() const { return GetPage()->GetPageScheduler(); } @@ -138,10 +138,10 @@ index 4696a63b4e925b0ffde2655bbdbcc3055780dfe4..518110d89ec6f518702fd2792b56f843 PageVisibilityState WebViewImpl::GetVisibilityState() { diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_party/blink/renderer/core/exported/web_view_impl.h -index 1604c387fa237dbfa7c37b6d67b7f7c570076279..fb3c73ea00762e9d7ddaeecc56d4906641a10e62 100644 +index 60cfa746367a03d308f0f26fef05839ecd6420b2..5c2b7a3aafbd72567c413be42d4bdf9665a97a2e 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.h +++ b/third_party/blink/renderer/core/exported/web_view_impl.h -@@ -321,6 +321,7 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -328,6 +328,7 @@ class CORE_EXPORT WebViewImpl final : public WebView, LocalDOMWindow* PagePopupWindow() const; PageScheduler* Scheduler() const override; @@ -149,7 +149,7 @@ index 1604c387fa237dbfa7c37b6d67b7f7c570076279..fb3c73ea00762e9d7ddaeecc56d49066 void SetVisibilityState(PageVisibilityState visibility_state, bool is_initial_state) override; PageVisibilityState GetVisibilityState() override; -@@ -688,6 +689,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -696,6 +697,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, // WebViewImpl::Close while handling an input event. bool debug_inside_input_handling_ = false; diff --git a/patches/chromium/fix_account_for_print_preview_disabled_when_printing_to_pdf.patch b/patches/chromium/fix_account_for_print_preview_disabled_when_printing_to_pdf.patch new file mode 100644 index 000000000000..e9e8ed5ce59c --- /dev/null +++ b/patches/chromium/fix_account_for_print_preview_disabled_when_printing_to_pdf.patch @@ -0,0 +1,23 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Andy Locascio +Date: Thu, 2 Apr 2020 15:05:00 -0700 +Subject: fix: account for print preview disabled when printing to pdf + +Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2068936 + +Avoid an optimization introduced in the above CL. In my limited +understanding, it seems like we slightly misuse the print preview API +and this is fallout from using it in a way the code doesn't expect. + +diff --git a/components/printing/renderer/print_render_frame_helper.cc b/components/printing/renderer/print_render_frame_helper.cc +index bbfab5601434cf3a050c220f237625d231c12f41..1849d0802d17e9bbe4eb669aec314a1b00351c6f 100644 +--- a/components/printing/renderer/print_render_frame_helper.cc ++++ b/components/printing/renderer/print_render_frame_helper.cc +@@ -1462,6 +1462,7 @@ PrintRenderFrameHelper::CreatePreviewDocument() { + const std::vector& pages = print_pages_params_->pages; + + bool require_document_metafile = ++ !g_is_preview_enabled || + print_renderer_ || + print_params.printed_doc_type != SkiaDocumentType::MSKP; + if (!print_preview_context_.CreatePreviewDocument( diff --git a/patches/chromium/fix_route_mouse_event_navigations_through_the_web_contents_delegate.patch b/patches/chromium/fix_route_mouse_event_navigations_through_the_web_contents_delegate.patch index 25368f61b720..5c135e66c43b 100644 --- a/patches/chromium/fix_route_mouse_event_navigations_through_the_web_contents_delegate.patch +++ b/patches/chromium/fix_route_mouse_event_navigations_through_the_web_contents_delegate.patch @@ -13,10 +13,10 @@ This patch can be removed once app.allowRendererProcessReuse is forced to true as then Chromiums assumptions around processes become correct. diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 6f2e0c12e7b4a2928346f6690c2e8a072822124b..d6cad38b1e0ca9aeb96eeaaf8b1bb39fc23893ea 100644 +index b106b4fdb7a1bbb95977a8a9e69baaefe56a4379..9cae89416fb89ed6d440a0bedc6187d244852cbe 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -2351,11 +2351,13 @@ bool WebContentsImpl::HandleMouseEvent(const blink::WebMouseEvent& event) { +@@ -2350,11 +2350,13 @@ bool WebContentsImpl::HandleMouseEvent(const blink::WebMouseEvent& event) { WebContentsImpl* outermost = GetOutermostWebContents(); if (event.button == blink::WebPointerProperties::Button::kBack && outermost->controller_.CanGoBack()) { diff --git a/patches/chromium/frame_host_manager.patch b/patches/chromium/frame_host_manager.patch index 6d6d8c218b05..e58a1ba49791 100644 --- a/patches/chromium/frame_host_manager.patch +++ b/patches/chromium/frame_host_manager.patch @@ -71,10 +71,10 @@ index dbfc24395349cfa40b5783590d60cc7e44b31205..499af1cdcf13cf57f97a0c28430cbe87 render_frame_host_ = frame_tree_node_->render_manager()->GetFrameHostForNavigation(this); diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc -index e030711ce7c2679d9fca46e81d55772b53daa22a..32d04dc798019f901ef337e956df94431a0e19e1 100644 +index 50533c338dd75f606ba542813cfe724301ad6527..3a06ae9ad9d36fea4c055e610dac5b6d66d95e7b 100644 --- a/content/browser/frame_host/render_frame_host_manager.cc +++ b/content/browser/frame_host/render_frame_host_manager.cc -@@ -2343,6 +2343,16 @@ bool RenderFrameHostManager::InitRenderView( +@@ -2392,6 +2392,16 @@ bool RenderFrameHostManager::InitRenderView( scoped_refptr RenderFrameHostManager::GetSiteInstanceForNavigationRequest( NavigationRequest* request) { @@ -91,7 +91,7 @@ index e030711ce7c2679d9fca46e81d55772b53daa22a..32d04dc798019f901ef337e956df9443 SiteInstance* current_site_instance = render_frame_host_->GetSiteInstance(); // All children of MHTML documents must be MHTML documents. They all live in -@@ -2362,10 +2372,60 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( +@@ -2411,10 +2421,60 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( // // TODO(clamy): We should also consider as a candidate SiteInstance the // speculative SiteInstance that was computed on redirects. @@ -156,7 +156,7 @@ index e030711ce7c2679d9fca46e81d55772b53daa22a..32d04dc798019f901ef337e956df9443 // Account for renderer-initiated reload as well. // Needed as a workaround for https://crbug.com/1045524, remove it when it is -@@ -2407,6 +2467,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( +@@ -2456,6 +2516,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( request->ResetStateForSiteInstanceChange(); } @@ -167,10 +167,10 @@ index e030711ce7c2679d9fca46e81d55772b53daa22a..32d04dc798019f901ef337e956df9443 } diff --git a/content/browser/site_instance_impl.cc b/content/browser/site_instance_impl.cc -index 9dbc9bb7114e1dea5e8a24395f39bd9d068eeb76..31bddf69f2e805451d42d1a284a53f41bdaa5650 100644 +index c1eb23c23901158410f224baebf7786b97e6df6b..d1a1aee132d8ecce9892477addd39a35de6ef9ee 100644 --- a/content/browser/site_instance_impl.cc +++ b/content/browser/site_instance_impl.cc -@@ -426,6 +426,10 @@ bool SiteInstanceImpl::HasRelatedSiteInstance(const GURL& url) { +@@ -456,6 +456,10 @@ bool SiteInstanceImpl::HasRelatedSiteInstance(const GURL& url) { return browsing_instance_->HasSiteInstance(url); } @@ -182,7 +182,7 @@ index 9dbc9bb7114e1dea5e8a24395f39bd9d068eeb76..31bddf69f2e805451d42d1a284a53f41 const GURL& url) { return browsing_instance_->GetSiteInstanceForURL( diff --git a/content/browser/site_instance_impl.h b/content/browser/site_instance_impl.h -index caa100b3889e17a9afdc8127e0e13bb6b86e8042..f08d3a2eb28f0f6fff89b5759eff5369b7111821 100644 +index 85288dac0acfb51330669cd87cfc0343af3dfd2c..3bb39459fd3c87a0968044e02d684f6b777935bb 100644 --- a/content/browser/site_instance_impl.h +++ b/content/browser/site_instance_impl.h @@ -98,6 +98,7 @@ class CONTENT_EXPORT SiteInstanceImpl final : public SiteInstance, @@ -194,7 +194,7 @@ index caa100b3889e17a9afdc8127e0e13bb6b86e8042..f08d3a2eb28f0f6fff89b5759eff5369 size_t GetRelatedActiveContentsCount() override; bool RequiresDedicatedProcess() override; diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc -index 75cd0ad7a8dc1efd89683d8da192050659c5016f..54d7947751a0cc7007ba737ebdeafcda98d284ce 100644 +index 294db724572266f54c9559bf5278920b819bef03..d2e28037a4005df4a4552440cb8486f5f111c764 100644 --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc @@ -58,6 +58,21 @@ @@ -220,7 +220,7 @@ index 75cd0ad7a8dc1efd89683d8da192050659c5016f..54d7947751a0cc7007ba737ebdeafcda const MainFunctionParams& parameters) { return nullptr; diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h -index 5fc3d0e31927b618d04024fcc42b2061580a4f22..343d94a74fb87677200021f480f7874efe33385d 100644 +index c9b26a69ff139d91dd0c5deb65017eed5b9fda12..959384005b1d3f73b9aca03db2999e8de09b0bdb 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h @@ -233,8 +233,45 @@ class CONTENT_EXPORT ContentBrowserClient { diff --git a/patches/chromium/network_service_allow_remote_certificate_verification_logic.patch b/patches/chromium/network_service_allow_remote_certificate_verification_logic.patch index 82f9eac1de30..5bd33c1c85dd 100644 --- a/patches/chromium/network_service_allow_remote_certificate_verification_logic.patch +++ b/patches/chromium/network_service_allow_remote_certificate_verification_logic.patch @@ -7,10 +7,10 @@ This adds a callback from the network service that's used to implement session.setCertificateVerifyCallback. diff --git a/services/network/network_context.cc b/services/network/network_context.cc -index 059dea47ee06748f2d55ac9c214c9e8cb87de14f..80ecc470ab4ed4ce1cb797f7f11fe971c953145d 100644 +index 5e37a45a033a5a01ea70d867c4fd2f50f4fd4072..d0d646a42b3ee27f848dd0a47179e8f573e51d8f 100644 --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -102,6 +102,11 @@ +@@ -104,6 +104,11 @@ #include "services/network/url_loader.h" #include "services/network/url_request_context_builder_mojo.h" @@ -22,7 +22,7 @@ index 059dea47ee06748f2d55ac9c214c9e8cb87de14f..80ecc470ab4ed4ce1cb797f7f11fe971 #if BUILDFLAG(IS_CT_SUPPORTED) #include "components/certificate_transparency/chrome_ct_policy_enforcer.h" #include "components/certificate_transparency/chrome_require_ct_delegate.h" -@@ -352,6 +357,79 @@ bool UsingBuiltinCertVerifier( +@@ -354,6 +359,79 @@ bool UsingBuiltinCertVerifier( } // namespace @@ -102,7 +102,7 @@ index 059dea47ee06748f2d55ac9c214c9e8cb87de14f..80ecc470ab4ed4ce1cb797f7f11fe971 constexpr uint32_t NetworkContext::kMaxOutstandingRequestsPerProcess; NetworkContext::PendingCertVerify::PendingCertVerify() = default; -@@ -520,6 +598,13 @@ void NetworkContext::SetClient( +@@ -522,6 +600,13 @@ void NetworkContext::SetClient( client_.Bind(std::move(client)); } @@ -116,7 +116,7 @@ index 059dea47ee06748f2d55ac9c214c9e8cb87de14f..80ecc470ab4ed4ce1cb797f7f11fe971 void NetworkContext::CreateURLLoaderFactory( mojo::PendingReceiver receiver, mojom::URLLoaderFactoryParamsPtr params) { -@@ -1683,6 +1768,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext() { +@@ -1696,6 +1781,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext() { base::CommandLine::ForCurrentProcess(); std::unique_ptr cert_verifier; @@ -124,7 +124,7 @@ index 059dea47ee06748f2d55ac9c214c9e8cb87de14f..80ecc470ab4ed4ce1cb797f7f11fe971 if (g_cert_verifier_for_testing) { cert_verifier = std::make_unique(); } else { -@@ -1731,8 +1817,8 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext() { +@@ -1744,8 +1830,8 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext() { } #endif #if BUILDFLAG(BUILTIN_CERT_VERIFIER_FEATURE_SUPPORTED) @@ -135,7 +135,7 @@ index 059dea47ee06748f2d55ac9c214c9e8cb87de14f..80ecc470ab4ed4ce1cb797f7f11fe971 std::make_unique( std::make_unique( UsingBuiltinCertVerifier(params_->use_builtin_cert_verifier) -@@ -1742,12 +1828,19 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext() { +@@ -1755,12 +1841,19 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext() { cert_net_fetcher_)))); } #endif @@ -160,7 +160,7 @@ index 059dea47ee06748f2d55ac9c214c9e8cb87de14f..80ecc470ab4ed4ce1cb797f7f11fe971 std::unique_ptr network_delegate = std::make_unique( diff --git a/services/network/network_context.h b/services/network/network_context.h -index d2480f9cd2ce613221e77686986851a5281ad7bd..8ccb5c4d0c37a5dc0c7fa713683941eaddc1c609 100644 +index 00f14ca8448be93c1d4ed91db3d68a1297adc728..9d201f1a5ef0eaf3f8b42cbb3d2593dbd068bdd6 100644 --- a/services/network/network_context.h +++ b/services/network/network_context.h @@ -84,6 +84,7 @@ class DomainReliabilityMonitor; @@ -180,7 +180,7 @@ index d2480f9cd2ce613221e77686986851a5281ad7bd..8ccb5c4d0c37a5dc0c7fa713683941ea void ResetURLLoaderFactories() override; void GetCookieManager( mojo::PendingReceiver receiver) override; -@@ -644,6 +647,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -646,6 +649,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext std::unique_ptr nss_temp_certs_cache_; #endif @@ -190,10 +190,10 @@ index d2480f9cd2ce613221e77686986851a5281ad7bd..8ccb5c4d0c37a5dc0c7fa713683941ea // CertNetFetcher is not used by the current platform. scoped_refptr cert_net_fetcher_; diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom -index b74677de805cc6f46c34b79883e0500ba337d82a..1d9ffd3de180e3256fb63a497544feeb427ae7ff 100644 +index 9515fe92e0b1965285435f10817cdb07286dbe5e..96ba4d67bcdefef44ecd246acb883824c9e842d6 100644 --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -193,6 +193,17 @@ struct HttpAuthStaticNetworkContextParams { +@@ -159,6 +159,17 @@ struct HttpAuthStaticNetworkContextParams { = DefaultCredentials.ALLOW_DEFAULT_CREDENTIALS; }; @@ -211,7 +211,7 @@ index b74677de805cc6f46c34b79883e0500ba337d82a..1d9ffd3de180e3256fb63a497544feeb // Parameters for constructing a network context. struct NetworkContextParams { // Name used by memory tools to identify the context. -@@ -845,6 +856,9 @@ interface NetworkContext { +@@ -815,6 +826,9 @@ interface NetworkContext { // Sets a client for this network context. SetClient(pending_remote client); diff --git a/patches/chromium/notification_provenance.patch b/patches/chromium/notification_provenance.patch index 549ceb495e7c..7e93d7e07c65 100644 --- a/patches/chromium/notification_provenance.patch +++ b/patches/chromium/notification_provenance.patch @@ -108,10 +108,10 @@ index 4bf25bf1fa69f7d3869369172d375e2e489e62a1..f80ef2cecc8b111dc54e109646573a59 mojo::PendingReceiver receiver); diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc -index a79fb8ba837499b38e5fbabdde4e4aad3794857a..e788f6fcf7f2984752f21bf15956742b144bd5ce 100644 +index a3fc1532583568cdef3e97123df549850c07088c..fe60749bfdbff9dc4336ccc11006745f2c2889c3 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -2060,7 +2060,7 @@ void RenderProcessHostImpl::CreateNotificationService( +@@ -2097,7 +2097,7 @@ void RenderProcessHostImpl::CreateNotificationService( mojo::PendingReceiver receiver) { DCHECK_CURRENTLY_ON(BrowserThread::UI); storage_partition_impl_->GetPlatformNotificationContext()->CreateService( diff --git a/patches/chromium/picture-in-picture.patch b/patches/chromium/picture-in-picture.patch index 54634d976ff4..05ff6512f690 100644 --- a/patches/chromium/picture-in-picture.patch +++ b/patches/chromium/picture-in-picture.patch @@ -35,7 +35,7 @@ index e9b64a823ae7e25361f37190d247af0fa6a6f68a..43fdb0ad50d2b11a1bc28aa0f358c6dd #include "ui/base/l10n/l10n_util.h" #include "ui/gfx/color_palette.h" diff --git a/chrome/browser/ui/views/overlay/overlay_window_views.cc b/chrome/browser/ui/views/overlay/overlay_window_views.cc -index 4af5ead7df57e26ceb64ab909c4dc2de86ccfc41..294e6c08975fae62ca8dbe9e471f39a5adbf03e3 100644 +index baf717117f81bbf76a99c0464c7b889d6ef56e31..1a97776018375b2017e56bc787e406e67f2539b5 100644 --- a/chrome/browser/ui/views/overlay/overlay_window_views.cc +++ b/chrome/browser/ui/views/overlay/overlay_window_views.cc @@ -19,7 +19,7 @@ diff --git a/patches/chromium/printing.patch b/patches/chromium/printing.patch index 4c048d7ff178..4af542c3ec62 100644 --- a/patches/chromium/printing.patch +++ b/patches/chromium/printing.patch @@ -406,7 +406,7 @@ index 3695656560c54b5aa1fb08fb5e7c17d54989c597..85ffa5704d8dea809e80b1993c7c852f // Tells the RenderFrame to switch the CSS to print media type, render every // requested page using the print preview document's frame/node, and then diff --git a/components/printing/renderer/print_render_frame_helper.cc b/components/printing/renderer/print_render_frame_helper.cc -index da3e127a34bdf79d3354b0822448ee75115a16e1..404388851849f9e11d7b2c5cb3798b713d660c7e 100644 +index d0fe038507fccd2499ee24a82d051bd0568eb372..bbfab5601434cf3a050c220f237625d231c12f41 100644 --- a/components/printing/renderer/print_render_frame_helper.cc +++ b/components/printing/renderer/print_render_frame_helper.cc @@ -41,6 +41,7 @@ @@ -417,7 +417,7 @@ index da3e127a34bdf79d3354b0822448ee75115a16e1..404388851849f9e11d7b2c5cb3798b71 #include "printing/units.h" #include "third_party/blink/public/common/associated_interfaces/associated_interface_registry.h" #include "third_party/blink/public/common/frame/frame_owner_element_type.h" -@@ -1138,7 +1139,8 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) { +@@ -1146,7 +1147,8 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) { web_frame->DispatchBeforePrintEvent(); if (!weak_this) return; @@ -427,7 +427,7 @@ index da3e127a34bdf79d3354b0822448ee75115a16e1..404388851849f9e11d7b2c5cb3798b71 if (weak_this) web_frame->DispatchAfterPrintEvent(); } -@@ -1159,7 +1161,7 @@ void PrintRenderFrameHelper::BindPrintRenderFrameReceiver( +@@ -1167,7 +1169,7 @@ void PrintRenderFrameHelper::BindPrintRenderFrameReceiver( receivers_.Add(this, std::move(receiver)); } @@ -436,7 +436,7 @@ index da3e127a34bdf79d3354b0822448ee75115a16e1..404388851849f9e11d7b2c5cb3798b71 ScopedIPC scoped_ipc(weak_ptr_factory_.GetWeakPtr()); if (ipc_nesting_level_ > 1) return; -@@ -1173,7 +1175,7 @@ void PrintRenderFrameHelper::PrintRequestedPages() { +@@ -1181,7 +1183,7 @@ void PrintRenderFrameHelper::PrintRequestedPages() { // If we are printing a PDF extension frame, find the plugin node and print // that instead. auto plugin = delegate_->GetPdfElement(frame); @@ -445,7 +445,7 @@ index da3e127a34bdf79d3354b0822448ee75115a16e1..404388851849f9e11d7b2c5cb3798b71 if (!render_frame_gone_) frame->DispatchAfterPrintEvent(); // WARNING: |this| may be gone at this point. Do not do any more work here and -@@ -1190,7 +1192,7 @@ void PrintRenderFrameHelper::PrintForSystemDialog() { +@@ -1198,7 +1200,7 @@ void PrintRenderFrameHelper::PrintForSystemDialog() { return; } Print(frame, print_preview_context_.source_node(), @@ -454,7 +454,7 @@ index da3e127a34bdf79d3354b0822448ee75115a16e1..404388851849f9e11d7b2c5cb3798b71 if (!render_frame_gone_) frame->DispatchAfterPrintEvent(); // WARNING: |this| may be gone at this point. Do not do any more work here and -@@ -1230,6 +1232,8 @@ void PrintRenderFrameHelper::PrintPreview(base::Value settings) { +@@ -1238,6 +1240,8 @@ void PrintRenderFrameHelper::PrintPreview(base::Value settings) { if (ipc_nesting_level_ > 1) return; @@ -463,28 +463,7 @@ index da3e127a34bdf79d3354b0822448ee75115a16e1..404388851849f9e11d7b2c5cb3798b71 print_preview_context_.OnPrintPreview(); base::UmaHistogramEnumeration(print_preview_context_.IsForArc() -@@ -1587,13 +1591,13 @@ bool PrintRenderFrameHelper::FinalizePrintReadyDocument() { - print_preview_context_.set_error(PREVIEW_ERROR_METAFILE_CAPTURE_FAILED); - return false; - } -- } else { -- if (!CopyMetafileDataToReadOnlySharedMem(*metafile, -- &preview_params.content)) { -- LOG(ERROR) << "CopyMetafileDataToReadOnlySharedMem failed"; -- print_preview_context_.set_error(PREVIEW_ERROR_METAFILE_COPY_FAILED); -- return false; -- } -+ } -+ -+ if (!CopyMetafileDataToReadOnlySharedMem(*metafile, -+ &preview_params.content)) { -+ LOG(ERROR) << "CopyMetafileDataToReadOnlySharedMem failed"; -+ print_preview_context_.set_error(PREVIEW_ERROR_METAFILE_COPY_FAILED); -+ return false; - } - - preview_params.document_cookie = print_pages_params_->params.document_cookie; -@@ -1728,7 +1732,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { +@@ -1742,7 +1746,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { auto self = weak_ptr_factory_.GetWeakPtr(); Print(duplicate_node.GetDocument().GetFrame(), duplicate_node, @@ -495,7 +474,7 @@ index da3e127a34bdf79d3354b0822448ee75115a16e1..404388851849f9e11d7b2c5cb3798b71 // Check if |this| is still valid. if (!self) return; -@@ -1739,7 +1745,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { +@@ -1753,7 +1759,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, const blink::WebNode& node, @@ -506,7 +485,7 @@ index da3e127a34bdf79d3354b0822448ee75115a16e1..404388851849f9e11d7b2c5cb3798b71 // If still not finished with earlier print request simply ignore. if (prep_frame_view_) return; -@@ -1747,7 +1755,7 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, +@@ -1761,7 +1769,7 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, FrameReference frame_ref(frame); int expected_page_count = 0; @@ -515,7 +494,7 @@ index da3e127a34bdf79d3354b0822448ee75115a16e1..404388851849f9e11d7b2c5cb3798b71 DidFinishPrinting(FAIL_PRINT_INIT); return; // Failed to init print page settings. } -@@ -1767,8 +1775,11 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, +@@ -1781,8 +1789,11 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, PrintMsg_PrintPages_Params print_settings; auto self = weak_ptr_factory_.GetWeakPtr(); @@ -529,7 +508,7 @@ index da3e127a34bdf79d3354b0822448ee75115a16e1..404388851849f9e11d7b2c5cb3798b71 // Check if |this| is still valid. if (!self) return; -@@ -2003,10 +2014,23 @@ void PrintRenderFrameHelper::IPCProcessed() { +@@ -2017,10 +2028,23 @@ void PrintRenderFrameHelper::IPCProcessed() { base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, this); } @@ -556,7 +535,7 @@ index da3e127a34bdf79d3354b0822448ee75115a16e1..404388851849f9e11d7b2c5cb3798b71 // Check if the printer returned any settings, if the settings is empty, we // can safely assume there are no printer drivers configured. So we safely // terminate. -@@ -2026,12 +2050,14 @@ bool PrintRenderFrameHelper::InitPrintSettings(bool fit_to_paper_size) { +@@ -2040,12 +2064,14 @@ bool PrintRenderFrameHelper::InitPrintSettings(bool fit_to_paper_size) { return result; } @@ -576,7 +555,7 @@ index da3e127a34bdf79d3354b0822448ee75115a16e1..404388851849f9e11d7b2c5cb3798b71 Send(new PrintHostMsg_ShowInvalidPrinterSettingsError(routing_id())); return false; diff --git a/components/printing/renderer/print_render_frame_helper.h b/components/printing/renderer/print_render_frame_helper.h -index 7b23fdb789562ff05290819d3d48b8f382183d86..8d21b11abb3a3c09569eb661aa3167400d37aa82 100644 +index 92ad8475b8268db89a5a7f22ad22547686388374..81df566a5908f1b35b9da5c2aad35ea7dec1dc3b 100644 --- a/components/printing/renderer/print_render_frame_helper.h +++ b/components/printing/renderer/print_render_frame_helper.h @@ -226,7 +226,7 @@ class PrintRenderFrameHelper diff --git a/patches/chromium/put_back_deleted_colors_for_autofill.patch b/patches/chromium/put_back_deleted_colors_for_autofill.patch index 10346491637f..559e167ab145 100644 --- a/patches/chromium/put_back_deleted_colors_for_autofill.patch +++ b/patches/chromium/put_back_deleted_colors_for_autofill.patch @@ -8,7 +8,7 @@ needed in chromium but our autofill implementation uses them. This patch can be our autofill implementation to work like Chromium's. diff --git a/chrome/browser/ui/gtk/native_theme_gtk.cc b/chrome/browser/ui/gtk/native_theme_gtk.cc -index 37ae3743e8ad1fab49d198ef20cf1180f51aeeca..f632bb285ce044510555812e2265b5d914d86ae8 100644 +index 4edbb80f12c59b329fc00eae0be4d8f04db28147..c4f550f2d394312875823acb45356f23d03e3125 100644 --- a/chrome/browser/ui/gtk/native_theme_gtk.cc +++ b/chrome/browser/ui/gtk/native_theme_gtk.cc @@ -341,6 +341,29 @@ base::Optional SkColorFromColorId( @@ -42,25 +42,35 @@ index 37ae3743e8ad1fab49d198ef20cf1180f51aeeca..f632bb285ce044510555812e2265b5d9 // TODO(thomasanderson): Render GtkSpinner directly. case ui::NativeTheme::kColorId_ThrobberSpinningColor: diff --git a/ui/native_theme/common_theme.cc b/ui/native_theme/common_theme.cc -index 66f0e23521e29828602af02a9c96f74a2538bc5d..c63549672e49683f0751e22858f41e45d3dd796d 100644 +index c17e1fdb8a4fb0dc2ca7528855ceb69589162f9a..92129ccd86cb20cce2c6d92d9fb79bbc6dcd2f0c 100644 --- a/ui/native_theme/common_theme.cc +++ b/ui/native_theme/common_theme.cc -@@ -59,6 +59,14 @@ SkColor GetAuraColor(NativeTheme::ColorId color_id, - case NativeTheme::kColorId_BubbleFooterBackground: - return SkColorSetRGB(0x32, 0x36, 0x39); +@@ -43,7 +43,8 @@ base::Optional GetHighContrastColor( + } + } -+ // Results Tables -+ case NativeTheme::kColorId_ResultsTableNormalBackground: -+ return SkColorSetRGB(0x28, 0x28, 0x28); -+ case NativeTheme::kColorId_ResultsTableNormalText: -+ return SK_ColorWHITE; -+ case NativeTheme::kColorId_ResultsTableDimmedText: -+ return SkColorSetA(base_theme->GetSystemColor(NativeTheme::kColorId_ResultsTableNormalText), 0x80); +-base::Optional GetDarkSchemeColor(NativeTheme::ColorId color_id) { ++base::Optional GetDarkSchemeColor(const NativeTheme* base_theme, ++ NativeTheme::ColorId color_id) { + switch (color_id) { + // Dialogs + case NativeTheme::kColorId_WindowBackground: +@@ -55,6 +56,14 @@ base::Optional GetDarkSchemeColor(NativeTheme::ColorId color_id) { + case NativeTheme::kColorId_BubbleFooterBackground: + return SkColorSetRGB(0x32, 0x36, 0x39); + ++ // Results Tables ++ case NativeTheme::kColorId_ResultsTableNormalBackground: ++ return SkColorSetRGB(0x28, 0x28, 0x28); ++ case NativeTheme::kColorId_ResultsTableNormalText: ++ return SK_ColorWHITE; ++ case NativeTheme::kColorId_ResultsTableDimmedText: ++ return SkColorSetA(base_theme->GetSystemColor(NativeTheme::kColorId_ResultsTableNormalText), 0x80); + - // FocusableBorder - case NativeTheme::kColorId_FocusedBorderColor: - return SkColorSetA(gfx::kGoogleBlue300, 0x4D); -@@ -462,6 +470,18 @@ SkColor GetAuraColor(NativeTheme::ColorId color_id, + // FocusableBorder + case NativeTheme::kColorId_FocusedBorderColor: + return SkColorSetA(gfx::kGoogleBlue300, 0x4D); +@@ -461,6 +470,18 @@ SkColor GetDefaultColor(NativeTheme::ColorId color_id, case NativeTheme::kColorId_UnfocusedBorderColor: return gfx::kGoogleGrey300; @@ -79,11 +89,20 @@ index 66f0e23521e29828602af02a9c96f74a2538bc5d..c63549672e49683f0751e22858f41e45 // Material spinner/throbber case NativeTheme::kColorId_ThrobberSpinningColor: return gfx::kGoogleBlue600; +@@ -520,7 +541,7 @@ SkColor GetAuraColor(NativeTheme::ColorId color_id, + } + + if (color_scheme == NativeTheme::ColorScheme::kDark) { +- base::Optional color = GetDarkSchemeColor(color_id); ++ base::Optional color = GetDarkSchemeColor(base_theme, color_id); + if (color.has_value()) + return color.value(); + } diff --git a/ui/native_theme/native_theme_color_id.h b/ui/native_theme/native_theme_color_id.h -index f2c54db5b2277ac1208989c6fa0d3e254d30b609..5e34d5e66b1c6e8562eff77c9143d3de921a1e66 100644 +index 19b7c255b89dabbd263b1f583dd9b5dfa64015c3..b8be61106014bb0611111ea522108afa4ba6b914 100644 --- a/ui/native_theme/native_theme_color_id.h +++ b/ui/native_theme/native_theme_color_id.h -@@ -117,6 +117,11 @@ +@@ -118,6 +118,11 @@ OP(kColorId_TableHeaderText), \ OP(kColorId_TableHeaderBackground), \ OP(kColorId_TableHeaderSeparator), \ @@ -96,10 +115,10 @@ index f2c54db5b2277ac1208989c6fa0d3e254d30b609..5e34d5e66b1c6e8562eff77c9143d3de OP(kColorId_ThrobberSpinningColor), \ OP(kColorId_ThrobberWaitingColor), \ diff --git a/ui/native_theme/native_theme_win.cc b/ui/native_theme/native_theme_win.cc -index 07db545df305a0c22375e9be3fad05621f69867a..dedaaaeaa93e55ec784f94864d670e0659d839bf 100644 +index f374882c8f2fc1241608e8d9dfa6abb85ae75314..7bc92ec1d15b9f5c9f867354f2768f6edc158a92 100644 --- a/ui/native_theme/native_theme_win.cc +++ b/ui/native_theme/native_theme_win.cc -@@ -639,6 +639,18 @@ SkColor NativeThemeWin::GetPlatformHighContrastColor(ColorId color_id) const { +@@ -642,6 +642,18 @@ SkColor NativeThemeWin::GetPlatformHighContrastColor(ColorId color_id) const { case kColorId_ThrobberWaitingColor: return system_colors_[SystemThemeColor::kGrayText]; diff --git a/patches/chromium/render_widget_host_view_base.patch b/patches/chromium/render_widget_host_view_base.patch index abf54f5a5942..62f7c00ee373 100644 --- a/patches/chromium/render_widget_host_view_base.patch +++ b/patches/chromium/render_widget_host_view_base.patch @@ -6,10 +6,10 @@ Subject: render_widget_host_view_base.patch ... something to do with OSR? and maybe as well? terrifying. diff --git a/content/browser/renderer_host/render_widget_host_view_base.cc b/content/browser/renderer_host/render_widget_host_view_base.cc -index 6fc2ae557a265ea0965707786c38a2bf8684cf1b..de62972bd8f9c136589169b8d34bcf0a3d9a0d9c 100644 +index 19c6b2e5c7053bebc77f4691ce03303f92de6d1b..f8e2b862f75732d9ec12ba9776f0bb01915b72e2 100644 --- a/content/browser/renderer_host/render_widget_host_view_base.cc +++ b/content/browser/renderer_host/render_widget_host_view_base.cc -@@ -614,6 +614,13 @@ bool RenderWidgetHostViewBase::ScreenRectIsUnstableFor( +@@ -618,6 +618,13 @@ bool RenderWidgetHostViewBase::ScreenRectIsUnstableFor( return false; } @@ -24,7 +24,7 @@ index 6fc2ae557a265ea0965707786c38a2bf8684cf1b..de62972bd8f9c136589169b8d34bcf0a const blink::WebMouseEvent& event, const ui::LatencyInfo& latency) { diff --git a/content/browser/renderer_host/render_widget_host_view_base.h b/content/browser/renderer_host/render_widget_host_view_base.h -index fca7a56a4b7f062ed3eee37e92c9e0c893af25fc..b862113765fdeace6b214332bab05a21a4681d91 100644 +index 27133fd983546181253847d02db019913ebd35c0..1183a6ef62dd9477f49e98552a9d9a4d5638df70 100644 --- a/content/browser/renderer_host/render_widget_host_view_base.h +++ b/content/browser/renderer_host/render_widget_host_view_base.h @@ -23,9 +23,11 @@ @@ -61,7 +61,7 @@ index fca7a56a4b7f062ed3eee37e92c9e0c893af25fc..b862113765fdeace6b214332bab05a21 // This only needs to be overridden by RenderWidgetHostViewBase subclasses // that handle content embedded within other RenderWidgetHostViews. gfx::PointF TransformPointToRootCoordSpaceF( -@@ -316,6 +323,11 @@ class CONTENT_EXPORT RenderWidgetHostViewBase +@@ -319,6 +326,11 @@ class CONTENT_EXPORT RenderWidgetHostViewBase virtual void ProcessGestureEvent(const blink::WebGestureEvent& event, const ui::LatencyInfo& latency); diff --git a/patches/chromium/resource_file_conflict.patch b/patches/chromium/resource_file_conflict.patch index 46c180dd6d9f..81f1b20cb6d0 100644 --- a/patches/chromium/resource_file_conflict.patch +++ b/patches/chromium/resource_file_conflict.patch @@ -52,7 +52,7 @@ Some alternatives to this patch: None of these options seems like a substantial maintainability win over this patch to me (@nornagon). diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn -index bcb3ba42257d9c5098c8dff84adbcbb972ce3f66..288ce1fee493c371fead863977b88fe31f3e0b39 100644 +index dc1faa8f3a75fa958201372f2df674c44a94b4e0..747b64ca6140ec2baae32119ad3f934abeaeeff2 100644 --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn @@ -1470,7 +1470,7 @@ if (is_chrome_branded && !is_android) { diff --git a/patches/chromium/revert_cleanup_remove_menu_subtitles_sublabels.patch b/patches/chromium/revert_cleanup_remove_menu_subtitles_sublabels.patch index 06d165c90577..db89f2e73392 100644 --- a/patches/chromium/revert_cleanup_remove_menu_subtitles_sublabels.patch +++ b/patches/chromium/revert_cleanup_remove_menu_subtitles_sublabels.patch @@ -267,7 +267,7 @@ index 1ae8909a1404a43b34b9ef585511c7a3de39fa28..0d2a74ab5e9d55201a4992d81aecf9c2 const gfx::VectorIcon* minor_icon = nullptr; gfx::Image icon; diff --git a/ui/views/controls/menu/menu_item_view.cc b/ui/views/controls/menu/menu_item_view.cc -index c67fc8503db775079068d23c84bee615506ee81f..189951e6b3bdadbf9bc0bc17fb4263a4aa2deec5 100644 +index c1cf9c128799d37dc69a61ca1d6bef55b3b3a660..7e32555cbd3f35f305a9686e118d3b7e0f5cdb15 100644 --- a/ui/views/controls/menu/menu_item_view.cc +++ b/ui/views/controls/menu/menu_item_view.cc @@ -279,6 +279,7 @@ MenuItemView* MenuItemView::AddMenuItemAt( @@ -362,7 +362,7 @@ index c67fc8503db775079068d23c84bee615506ee81f..189951e6b3bdadbf9bc0bc17fb4263a4 PaintMinorIconAndText(canvas, style); // Set the submenu indicator (arrow) image and color. -@@ -1244,15 +1263,20 @@ MenuItemView::MenuItemDimensions MenuItemView::CalculateDimensions() const { +@@ -1247,15 +1266,20 @@ MenuItemView::MenuItemDimensions MenuItemView::CalculateDimensions() const { // Determine the length of the label text. int string_width = gfx::GetStringWidth(title_, style.font_list); diff --git a/patches/chromium/revert_remove_contentrendererclient_shouldfork.patch b/patches/chromium/revert_remove_contentrendererclient_shouldfork.patch index 66f45aad7003..978d6faa789d 100644 --- a/patches/chromium/revert_remove_contentrendererclient_shouldfork.patch +++ b/patches/chromium/revert_remove_contentrendererclient_shouldfork.patch @@ -9,10 +9,10 @@ for every navigation to keep Node.js working properly. Once Native Modules in th are required to be NAPI or context aware (Electron v11), this patch can be removed. diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc -index 6600de77c3f6c6a1a2409e0afe503d752038c9fa..9fa08ef75c82a75de4edad5694b8d07aae3fba83 100644 +index 42383cda5a9ccb39e64ee65d0202bee60639623f..c9099e58ba6f552a83a7994529c7999e4e22cd07 100644 --- a/chrome/renderer/chrome_content_renderer_client.cc +++ b/chrome/renderer/chrome_content_renderer_client.cc -@@ -1273,6 +1273,25 @@ bool ChromeContentRendererClient::AllowPopup() { +@@ -1272,6 +1272,25 @@ bool ChromeContentRendererClient::AllowPopup() { #endif } @@ -92,10 +92,10 @@ index ee2079537feb23869fe4f812bcef33e1d7de29a7..93287ae0928b52f9df34834ad1a8ef0e // |url|. If the function returns a valid |new_url|, the request must be // updated to use it. The |attach_same_site_cookies| output parameter diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc -index 6c6265561512d1700b6b77a84ba127511a65483a..bb2603e365438d0369ba301c09082154333f1105 100644 +index f15855248d6b7d2ff79d808aacc9dde158428cc8..69a7700c52c9ae3b70908dc55da1d31b98b05d0f 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -5662,6 +5662,23 @@ void RenderFrameImpl::BeginNavigation( +@@ -5683,6 +5683,23 @@ void RenderFrameImpl::BeginNavigation( int cumulative_bindings = RenderProcess::current()->GetEnabledBindings(); bool should_fork = HasWebUIScheme(url) || HasWebUIScheme(old_url) || (cumulative_bindings & kWebUIBindingsPolicyMask); diff --git a/patches/chromium/scroll_bounce_flag.patch b/patches/chromium/scroll_bounce_flag.patch index 2b0c0a809924..8ab96dda83ea 100644 --- a/patches/chromium/scroll_bounce_flag.patch +++ b/patches/chromium/scroll_bounce_flag.patch @@ -6,7 +6,7 @@ Subject: scroll_bounce_flag.patch Patch to make scrollBounce option work. diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc -index 71b0c231ed5fc362b9ed425b054cae07bede6a8d..60d1361ddf59f6730d255ca7e2e4b884f8687fd0 100644 +index bb9c821d210e0ddb55c0f97f837e5d7500d17d64..08dee90fc0c0dfe10c9b563e073f5abc9cb38937 100644 --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc @@ -1351,7 +1351,7 @@ bool RenderThreadImpl::IsGpuMemoryBufferCompositorResourcesEnabled() { diff --git a/patches/chromium/support_mixed_sandbox_with_zygote.patch b/patches/chromium/support_mixed_sandbox_with_zygote.patch index 542dd6a39bc1..c0170f817115 100644 --- a/patches/chromium/support_mixed_sandbox_with_zygote.patch +++ b/patches/chromium/support_mixed_sandbox_with_zygote.patch @@ -22,7 +22,7 @@ However, the patch would need to be reviewed by the security team, as it does touch a security-sensitive class. diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc -index e788f6fcf7f2984752f21bf15956742b144bd5ce..043bc132f8946ab66e42dadee9c3e1a548264238 100644 +index fe60749bfdbff9dc4336ccc11006745f2c2889c3..ea736817be4084f43ef5266e4a7aac3a8bdaa9d7 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc @@ -413,6 +413,11 @@ class RendererSandboxedProcessLauncherDelegate @@ -62,7 +62,7 @@ index e788f6fcf7f2984752f21bf15956742b144bd5ce..043bc132f8946ab66e42dadee9c3e1a5 }; const char kSessionStorageHolderKey[] = "kSessionStorageHolderKey"; -@@ -1782,11 +1793,18 @@ bool RenderProcessHostImpl::Init() { +@@ -1819,11 +1830,18 @@ bool RenderProcessHostImpl::Init() { cmd_line->PrependWrapper(renderer_prefix); AppendRendererCommandLine(cmd_line.get()); diff --git a/patches/chromium/thread_capabilities.patch b/patches/chromium/thread_capabilities.patch index e33b70bfad38..55654b1693e3 100644 --- a/patches/chromium/thread_capabilities.patch +++ b/patches/chromium/thread_capabilities.patch @@ -11,10 +11,10 @@ system. See https://github.com/atom/electron/issues/3666 diff --git a/sandbox/linux/services/credentials.cc b/sandbox/linux/services/credentials.cc -index 542567f3ee58776a8ca915f1f62dcffa29141798..0f5f017b0ee63bbe7107f39143484bc6d728104e 100644 +index d7b5d8c441354965ee0cb87a57d9552a4ae1f20d..dd145dd38fdbd7c426bd821baff0d9fe76201469 100644 --- a/sandbox/linux/services/credentials.cc +++ b/sandbox/linux/services/credentials.cc -@@ -352,8 +352,10 @@ pid_t Credentials::ForkAndDropCapabilitiesInChild() { +@@ -354,8 +354,10 @@ pid_t Credentials::ForkAndDropCapabilitiesInChild() { return pid; } diff --git a/patches/chromium/web_contents.patch b/patches/chromium/web_contents.patch index fa61700ede74..12116a3e4728 100644 --- a/patches/chromium/web_contents.patch +++ b/patches/chromium/web_contents.patch @@ -9,10 +9,10 @@ is needed for OSR. Originally landed in https://github.com/electron/libchromiumcontent/pull/226. diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index b57520fe4254335fd31bb86673d30e79c0656d51..6f2e0c12e7b4a2928346f6690c2e8a072822124b 100644 +index ebe258f91f77ccbb0bb0a21ad511dce9b17f4e80..b106b4fdb7a1bbb95977a8a9e69baaefe56a4379 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -2066,6 +2066,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { +@@ -2065,6 +2065,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { std::string unique_name; frame_tree_.root()->SetFrameName(params.main_frame_name, unique_name); @@ -25,7 +25,7 @@ index b57520fe4254335fd31bb86673d30e79c0656d51..6f2e0c12e7b4a2928346f6690c2e8a07 WebContentsViewDelegate* delegate = GetContentClient()->browser()->GetWebContentsViewDelegate(this); -@@ -2076,6 +2082,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { +@@ -2075,6 +2081,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { view_.reset(CreateWebContentsView(this, delegate, &render_view_host_delegate_view_)); } diff --git a/patches/chromium/webview_cross_drag.patch b/patches/chromium/webview_cross_drag.patch index fc72e0412a9b..01344185c91b 100644 --- a/patches/chromium/webview_cross_drag.patch +++ b/patches/chromium/webview_cross_drag.patch @@ -8,26 +8,32 @@ This allows dragging and dropping between s. Originally landed in https://github.com/electron/libchromiumcontent/pull/267 diff --git a/content/browser/web_contents/web_contents_view_aura.cc b/content/browser/web_contents/web_contents_view_aura.cc -index 025f82ede5c7105ffcf5cd834c8ab6392de672bc..1792809631d50e2a2761d385ffb8b526fe4d9833 100644 +index 025f82ede5c7105ffcf5cd834c8ab6392de672bc..84cd07bc48e680053a012a674bd4b50fcf5123af 100644 --- a/content/browser/web_contents/web_contents_view_aura.cc +++ b/content/browser/web_contents/web_contents_view_aura.cc -@@ -796,6 +796,7 @@ gfx::NativeView WebContentsViewAura::GetRenderWidgetHostViewParent() const { +@@ -796,9 +796,7 @@ gfx::NativeView WebContentsViewAura::GetRenderWidgetHostViewParent() const { bool WebContentsViewAura::IsValidDragTarget( RenderWidgetHostImpl* target_rwh) const { +- return target_rwh->GetProcess()->GetID() == drag_start_process_id_ || +- GetRenderViewHostID(web_contents_->GetRenderViewHost()) != +- drag_start_view_id_; + return true; - return target_rwh->GetProcess()->GetID() == drag_start_process_id_ || - GetRenderViewHostID(web_contents_->GetRenderViewHost()) != - drag_start_view_id_; + } + + //////////////////////////////////////////////////////////////////////////////// diff --git a/content/browser/web_contents/web_drag_dest_mac.mm b/content/browser/web_contents/web_drag_dest_mac.mm -index b874b3c4b16ca87c9730c6caaf5788cff0ab3493..8931859b944905a80bb9d174a67d3aee0f0bf5d6 100644 +index b874b3c4b16ca87c9730c6caaf5788cff0ab3493..2c82d63d646c9201abd6a669b726dae0f8bec12b 100644 --- a/content/browser/web_contents/web_drag_dest_mac.mm +++ b/content/browser/web_contents/web_drag_dest_mac.mm -@@ -419,6 +419,7 @@ - (void)setDragStartTrackersForProcess:(int)processID { +@@ -419,9 +419,7 @@ - (void)setDragStartTrackersForProcess:(int)processID { } - (bool)isValidDragTarget:(content::RenderWidgetHostImpl*)targetRWH { +- return targetRWH->GetProcess()->GetID() == _dragStartProcessID || +- GetRenderViewHostID(_webContents->GetRenderViewHost()) != +- _dragStartViewID; + return YES; - return targetRWH->GetProcess()->GetID() == _dragStartProcessID || - GetRenderViewHostID(_webContents->GetRenderViewHost()) != - _dragStartViewID; + } + + @end diff --git a/patches/node/build_add_gn_build_files.patch b/patches/node/build_add_gn_build_files.patch index 13b78f137a97..2875bedcde32 100644 --- a/patches/node/build_add_gn_build_files.patch +++ b/patches/node/build_add_gn_build_files.patch @@ -545,12 +545,13 @@ index 0000000000000000000000000000000000000000..da9e2b42dccacc1ed9b00202c1ff73eb +} diff --git a/deps/llhttp/BUILD.gn b/deps/llhttp/BUILD.gn new file mode 100644 -index 0000000000000000000000000000000000000000..e34e241e6733b19bf1b5762ad1307af0eba383f6 +index 0000000000000000000000000000000000000000..ce15bc57093caa1bd84ea77e7438e892fb916427 --- /dev/null +++ b/deps/llhttp/BUILD.gn -@@ -0,0 +1,13 @@ +@@ -0,0 +1,14 @@ +config("llhttp_config") { + include_dirs = [ "include" ] ++ cflags = [ "-Wno-unreachable-code" ] +} + +static_library("llhttp") { @@ -616,10 +617,10 @@ index 0000000000000000000000000000000000000000..66af819990b338caa49ca59d1fe6c5ad +} diff --git a/deps/uv/BUILD.gn b/deps/uv/BUILD.gn new file mode 100644 -index 0000000000000000000000000000000000000000..510d86194ed71d78b2c89c7a77422afc0ef614ad +index 0000000000000000000000000000000000000000..67116f2070bb9200aace81afdf0b1e7a6e4fd0c0 --- /dev/null +++ b/deps/uv/BUILD.gn -@@ -0,0 +1,190 @@ +@@ -0,0 +1,191 @@ +config("libuv_config") { + include_dirs = [ "include" ] + @@ -664,6 +665,7 @@ index 0000000000000000000000000000000000000000..510d86194ed71d78b2c89c7a77422afc + "-Wno-switch", + "-Wno-unused-function", + "-Wno-unused-variable", ++ "-Wno-unreachable-code", + ] + + libs = [] diff --git a/patches/node/fix_use_crypto_impls_for_compat.patch b/patches/node/fix_use_crypto_impls_for_compat.patch index 15b573bfa70f..f19b7c5cac94 100644 --- a/patches/node/fix_use_crypto_impls_for_compat.patch +++ b/patches/node/fix_use_crypto_impls_for_compat.patch @@ -8,10 +8,10 @@ patch works around that problem by using the implementations of those functions found in the OpenSSL repo. I plan to upstream a version of this. diff --git a/src/node_crypto.cc b/src/node_crypto.cc -index 41b72d010824234c567586524d22cae6ac849edb..b2403821bb3cab4aa4587fcb757eeb101c8a7e03 100644 +index 3c2393a1c674250f7bd262ee5dbc30330c9f2a58..ac1b57efaebbef7da1bb38b587146edad81289db 100644 --- a/src/node_crypto.cc +++ b/src/node_crypto.cc -@@ -5027,7 +5027,7 @@ static unsigned int GetBytesOfRS(const ManagedEVPPKey& pkey) { +@@ -5021,7 +5021,7 @@ static unsigned int GetBytesOfRS(const ManagedEVPPKey& pkey) { if (base_id == EVP_PKEY_DSA) { DSA* dsa_key = EVP_PKEY_get0_DSA(pkey.get()); // Both r and s are computed mod q, so their width is limited by that of q. @@ -20,7 +20,7 @@ index 41b72d010824234c567586524d22cae6ac849edb..b2403821bb3cab4aa4587fcb757eeb10 } else if (base_id == EVP_PKEY_EC) { EC_KEY* ec_key = EVP_PKEY_get0_EC_KEY(pkey.get()); const EC_GROUP* ec_group = EC_KEY_get0_group(ec_key); -@@ -5056,8 +5056,8 @@ static AllocatedBuffer ConvertSignatureToP1363(Environment* env, +@@ -5050,8 +5050,8 @@ static AllocatedBuffer ConvertSignatureToP1363(Environment* env, AllocatedBuffer buf = env->AllocateManaged(2 * n); unsigned char* data = reinterpret_cast(buf.data()); diff --git a/patches/node/revert_crypto_add_oaeplabel_option.patch b/patches/node/revert_crypto_add_oaeplabel_option.patch index 70f1a2d542f3..e562488a93c3 100644 --- a/patches/node/revert_crypto_add_oaeplabel_option.patch +++ b/patches/node/revert_crypto_add_oaeplabel_option.patch @@ -8,10 +8,10 @@ The BoringSSL incompatibilities (OPENSSL_memdup) will be shimmed in and this sho be removed when the associated update is rolled into Chromium. diff --git a/src/node_crypto.cc b/src/node_crypto.cc -index 7950c68f52050b7c9a6798b653a9c831256b21b5..41b72d010824234c567586524d22cae6ac849edb 100644 +index e33a5d11ddbf900b26c1baa62f65bae49cdbaa24..3c2393a1c674250f7bd262ee5dbc30330c9f2a58 100644 --- a/src/node_crypto.cc +++ b/src/node_crypto.cc -@@ -5514,18 +5514,6 @@ bool PublicKeyCipher::Cipher(Environment* env, +@@ -5508,18 +5508,6 @@ bool PublicKeyCipher::Cipher(Environment* env, return false; } diff --git a/patches/node/weakrefs_rename_finalizationgroup_to_finalizationregistry_for_js.patch b/patches/node/weakrefs_rename_finalizationgroup_to_finalizationregistry_for_js.patch index 47b4cb830a52..76ebae0216d9 100644 --- a/patches/node/weakrefs_rename_finalizationgroup_to_finalizationregistry_for_js.patch +++ b/patches/node/weakrefs_rename_finalizationgroup_to_finalizationregistry_for_js.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: deepak1556 Date: Sun, 1 Mar 2020 13:59:57 -0800 -Subject: [weakrefs] Rename FinalizationGroup to FinalizationRegistry for JS +Subject: Rename FinalizationGroup to FinalizationRegistry for JS https://chromium-review.googlesource.com/c/v8/v8/+/2071236 diff --git a/script/zip_manifests/dist_zip.mac.x64.manifest b/script/zip_manifests/dist_zip.mac.x64.manifest index 796161228b81..bb357ceb94bd 100644 --- a/script/zip_manifests/dist_zip.mac.x64.manifest +++ b/script/zip_manifests/dist_zip.mac.x64.manifest @@ -15,7 +15,6 @@ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Librari Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libswiftshader_libEGL.dylib Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libswiftshader_libGLESv2.dylib Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libvk_swiftshader.dylib -Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libvulkan.dylib Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/vk_swiftshader_icd.json Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/Info.plist diff --git a/script/zip_manifests/dist_zip.mac_mas.x64.manifest b/script/zip_manifests/dist_zip.mac_mas.x64.manifest index 472223becc31..df05fa1caeeb 100644 --- a/script/zip_manifests/dist_zip.mac_mas.x64.manifest +++ b/script/zip_manifests/dist_zip.mac_mas.x64.manifest @@ -15,7 +15,6 @@ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Librari Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libswiftshader_libEGL.dylib Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libswiftshader_libGLESv2.dylib Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libvk_swiftshader.dylib -Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libvulkan.dylib Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/vk_swiftshader_icd.json Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/Info.plist diff --git a/shell/browser/net/proxying_websocket.cc b/shell/browser/net/proxying_websocket.cc index b66a4ba236e3..5a04fd16f0cf 100644 --- a/shell/browser/net/proxying_websocket.cc +++ b/shell/browser/net/proxying_websocket.cc @@ -120,7 +120,8 @@ void ProxyingWebSocket::OnConnectionEstablished( mojo::PendingRemote websocket, mojo::PendingReceiver client_receiver, network::mojom::WebSocketHandshakeResponsePtr response, - mojo::ScopedDataPipeConsumerHandle readable) { + mojo::ScopedDataPipeConsumerHandle readable, + mojo::ScopedDataPipeProducerHandle writable) { DCHECK(forwarding_handshake_client_); DCHECK(!is_done_); is_done_ = true; @@ -128,6 +129,7 @@ void ProxyingWebSocket::OnConnectionEstablished( client_receiver_ = std::move(client_receiver); handshake_response_ = std::move(response); readable_ = std::move(readable); + writable_ = std::move(writable); response_->remote_endpoint = handshake_response_->remote_endpoint; @@ -156,7 +158,8 @@ void ProxyingWebSocket::ContinueToCompleted() { web_request_api_->OnCompleted(&info_, request_, net::ERR_WS_UPGRADE); forwarding_handshake_client_->OnConnectionEstablished( std::move(websocket_), std::move(client_receiver_), - std::move(handshake_response_), std::move(readable_)); + std::move(handshake_response_), std::move(readable_), + std::move(writable_)); // Deletes |this|. delete this; diff --git a/shell/browser/net/proxying_websocket.h b/shell/browser/net/proxying_websocket.h index 0e37c9e36a02..833d196dca08 100644 --- a/shell/browser/net/proxying_websocket.h +++ b/shell/browser/net/proxying_websocket.h @@ -59,7 +59,8 @@ class ProxyingWebSocket : public network::mojom::WebSocketHandshakeClient, mojo::PendingRemote websocket, mojo::PendingReceiver client_receiver, network::mojom::WebSocketHandshakeResponsePtr response, - mojo::ScopedDataPipeConsumerHandle readable) override; + mojo::ScopedDataPipeConsumerHandle readable, + mojo::ScopedDataPipeProducerHandle writable) override; // network::mojom::AuthenticationHandler method: void OnAuthRequired(const net::AuthChallengeInfo& auth_info, @@ -149,6 +150,7 @@ class ProxyingWebSocket : public network::mojom::WebSocketHandshakeClient, mojo::PendingReceiver client_receiver_; network::mojom::WebSocketHandshakeResponsePtr handshake_response_ = nullptr; mojo::ScopedDataPipeConsumerHandle readable_; + mojo::ScopedDataPipeProducerHandle writable_; extensions::WebRequestInfo info_; diff --git a/shell/browser/ui/devtools_manager_delegate.cc b/shell/browser/ui/devtools_manager_delegate.cc index ccd57c8c1256..4a7d3e96a4cd 100644 --- a/shell/browser/ui/devtools_manager_delegate.cc +++ b/shell/browser/ui/devtools_manager_delegate.cc @@ -100,7 +100,6 @@ void DevToolsManagerDelegate::Inspect(content::DevToolsAgentHost* agent_host) {} void DevToolsManagerDelegate::HandleCommand( content::DevToolsAgentHostClientChannel* channel, - const std::string& method, base::span message, NotHandledCallback callback) { std::move(callback).Run(message); diff --git a/shell/browser/ui/devtools_manager_delegate.h b/shell/browser/ui/devtools_manager_delegate.h index 6cf5bfa7c075..197874f2d40d 100644 --- a/shell/browser/ui/devtools_manager_delegate.h +++ b/shell/browser/ui/devtools_manager_delegate.h @@ -24,7 +24,6 @@ class DevToolsManagerDelegate : public content::DevToolsManagerDelegate { // DevToolsManagerDelegate implementation. void Inspect(content::DevToolsAgentHost* agent_host) override; void HandleCommand(content::DevToolsAgentHostClientChannel* channel, - const std::string& method, base::span message, NotHandledCallback callback) override; scoped_refptr CreateNewTarget(