diff --git a/.circleci/config.yml b/.circleci/config.yml index 2037ca37184f..078e934443dd 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1018,7 +1018,7 @@ step-minimize-workspace-size-from-checkout: &step-minimize-workspace-size-from-c name: Remove some unused data to avoid storing it in the workspace/cache command: | rm -rf src/android_webview - rm -rf src/ios + rm -rf src/ios/chrome rm -rf src/third_party/blink/web_tests rm -rf src/third_party/blink/perf_tests rm -rf src/third_party/WebKit/LayoutTests diff --git a/BUILD.gn b/BUILD.gn index 8ee24febefc6..ed353ff671e7 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -402,7 +402,10 @@ source_set("electron_lib") { } if (!is_mas_build) { - deps += [ "//components/crash/core/app" ] + deps += [ + "//components/crash/core/app", + "//components/crash/core/browser", + ] } sources = filenames.lib_sources @@ -632,6 +635,7 @@ source_set("electron_lib") { "//components/zoom", "//extensions/browser", "//extensions/browser:core_api_provider", + "//extensions/browser/updater", "//extensions/common", "//extensions/common:core_api_provider", "//extensions/renderer", diff --git a/DEPS b/DEPS index 1e4b64c7d691..1d07810b2832 100644 --- a/DEPS +++ b/DEPS @@ -14,7 +14,7 @@ gclient_gn_args = [ vars = { 'chromium_version': - '1f252b391a40e2681b0d9aff6497b7401863d1fc', + '90.0.4415.0', 'node_version': 'v14.16.0', 'nan_version': diff --git a/build/zip.py b/build/zip.py index 8011bc5f4f29..720141712d89 100644 --- a/build/zip.py +++ b/build/zip.py @@ -39,6 +39,7 @@ PATHS_TO_SKIP = [ './crashpad_handler', # Skip because these are outputs that we don't need. 'resources/inspector', + 'gen/third_party/devtools-frontend/src' ] def skip_path(dep, dist_zip, target_cpu): diff --git a/chromium_src/BUILD.gn b/chromium_src/BUILD.gn index 221d9ccbe70c..4fdd2a0ead9b 100644 --- a/chromium_src/BUILD.gn +++ b/chromium_src/BUILD.gn @@ -16,8 +16,6 @@ static_library("chrome") { "//chrome/browser/accessibility/accessibility_ui.h", "//chrome/browser/browser_process.cc", "//chrome/browser/browser_process.h", - "//chrome/browser/crash_upload_list/crash_upload_list_crashpad.cc", - "//chrome/browser/crash_upload_list/crash_upload_list_crashpad.h", "//chrome/browser/devtools/devtools_contents_resizing_strategy.cc", "//chrome/browser/devtools/devtools_contents_resizing_strategy.h", "//chrome/browser/devtools/devtools_embedder_message_dispatcher.cc", diff --git a/lib/browser/api/web-contents.ts b/lib/browser/api/web-contents.ts index dffbced9da16..63d8a6de5d45 100644 --- a/lib/browser/api/web-contents.ts +++ b/lib/browser/api/web-contents.ts @@ -1,5 +1,5 @@ import { app, ipcMain, session, deprecate, webFrameMain } from 'electron/main'; -import type { BrowserWindowConstructorOptions, MenuItem, MenuItemConstructorOptions, LoadURLOptions } from 'electron/main'; +import type { BrowserWindowConstructorOptions, LoadURLOptions } from 'electron/main'; import * as url from 'url'; import * as path from 'path'; @@ -546,18 +546,6 @@ WebContents.prototype._init = function () { ipcMain.emit(channel, event, message); }); - // Handle context menu action request from pepper plugin. - this.on('pepper-context-menu' as any, function (event: ElectronInternal.Event, params: {x: number, y: number, menu: Array<(MenuItemConstructorOptions) | (MenuItem)>}, callback: () => void) { - // Access Menu via electron.Menu to prevent circular require. - const menu = require('electron').Menu.buildFromTemplate(params.menu); - menu.popup({ - window: event.sender.getOwnerBrowserWindow(), - x: params.x, - y: params.y, - callback - }); - }); - this.on('crashed', (event, ...args) => { app.emit('renderer-process-crashed', event, this, ...args); }); diff --git a/patches/boringssl/expose_ripemd160.patch b/patches/boringssl/expose_ripemd160.patch index 282c6b81d342..ae3732e59b0e 100644 --- a/patches/boringssl/expose_ripemd160.patch +++ b/patches/boringssl/expose_ripemd160.patch @@ -10,10 +10,10 @@ this patch is required to provide ripemd160 support in the nodejs crypto module. diff --git a/crypto/digest_extra/digest_extra.c b/crypto/digest_extra/digest_extra.c -index 4b4bb38135e6089eaf6f47afda0199567a2397ef..43b7eca808b82a032055f56ce726ce4f38c5f2c5 100644 +index 311c5cba0e359a20b34ba6c7ee84c34b6068049f..c4638d40aab0a4b9612216d68cd7fb50823a0ae6 100644 --- a/crypto/digest_extra/digest_extra.c +++ b/crypto/digest_extra/digest_extra.c -@@ -81,6 +81,7 @@ static const struct nid_to_digest nid_to_digest_mapping[] = { +@@ -83,6 +83,7 @@ static const struct nid_to_digest nid_to_digest_mapping[] = { {NID_sha384, EVP_sha384, SN_sha384, LN_sha384}, {NID_sha512, EVP_sha512, SN_sha512, LN_sha512}, {NID_md5_sha1, EVP_md5_sha1, SN_md5_sha1, LN_md5_sha1}, @@ -80,10 +80,10 @@ index d540144b293297791c087e0b968a47d368a73695..53cb9d2dc8f1962a70dc12b648d27c32 + callback(EVP_ripemd160(), "ripemd160", NULL, arg); } diff --git a/include/openssl/digest.h b/include/openssl/digest.h -index 8e398e8b87f199cf947e097cf99e175bfc9870da..6c0ce559681817cae3273a50e6533468f17177ee 100644 +index 66f1b5dcfd8232a697145acb2b6c2efe890d543f..67fc522172dc3ab56787fa5db3c277fd4811474a 100644 --- a/include/openssl/digest.h +++ b/include/openssl/digest.h -@@ -89,6 +89,9 @@ OPENSSL_EXPORT const EVP_MD *EVP_sha512_256(void); +@@ -90,6 +90,9 @@ OPENSSL_EXPORT const EVP_MD *EVP_blake2b256(void); // MD5 and SHA-1, as used in TLS 1.1 and below. OPENSSL_EXPORT const EVP_MD *EVP_md5_sha1(void); diff --git a/patches/chromium/.patches b/patches/chromium/.patches index 185407c64805..350412698dd1 100644 --- a/patches/chromium/.patches +++ b/patches/chromium/.patches @@ -107,3 +107,4 @@ web_contents.patch add_trustedauthclient_to_urlloaderfactory.patch fix_route_mouse_event_navigations_through_the_web_contents_delegate.patch disable_unload_metrics.patch +fix_add_check_for_sandbox_then_result.patch diff --git a/patches/chromium/add_didinstallconditionalfeatures.patch b/patches/chromium/add_didinstallconditionalfeatures.patch index c1f9640ac5a8..3c4f2fb2a837 100644 --- a/patches/chromium/add_didinstallconditionalfeatures.patch +++ b/patches/chromium/add_didinstallconditionalfeatures.patch @@ -23,10 +23,10 @@ index 7d2ebf0d8a14fd89e32e35631428f43aed259c16..8efabb6b7825f6fab019d7f83e185a95 int32_t world_id) {} virtual void DidClearWindowObject() {} diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc -index a52fcdfcb01d8f9bf5739ba4c4bf47e610f19107..74f4881d51e671e178f8d4ff32a49b0010e9efb2 100644 +index f1d33694d94b7a0c8f839b512b7680fc9493e5f2..49b0d9012c43661a4fb4b9b8b8a68c156c7a76b6 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -4666,6 +4666,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local context, +@@ -4543,6 +4543,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local context, observer.DidCreateScriptContext(context, world_id); } @@ -40,10 +40,10 @@ index a52fcdfcb01d8f9bf5739ba4c4bf47e610f19107..74f4881d51e671e178f8d4ff32a49b00 int world_id) { for (auto& observer : observers_) diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h -index 9d100f04d9f094320eb99fbaba58c3da1b860ab7..80226249efe0f6192a27e2d55f2f7f57912453b0 100644 +index 64d7f76d2b1570ba8a4ad51362ad6932eb50c7cd..0fcd2204f09c512da27632dcbfd366ac330b1f0a 100644 --- a/content/renderer/render_frame_impl.h +++ b/content/renderer/render_frame_impl.h -@@ -598,6 +598,8 @@ class CONTENT_EXPORT RenderFrameImpl +@@ -589,6 +589,8 @@ class CONTENT_EXPORT RenderFrameImpl blink::WebLocalFrameClient::LazyLoadBehavior lazy_load_behavior) override; void DidCreateScriptContext(v8::Local context, int world_id) override; @@ -53,7 +53,7 @@ index 9d100f04d9f094320eb99fbaba58c3da1b860ab7..80226249efe0f6192a27e2d55f2f7f57 int world_id) override; void DidChangeScrollOffset() override; diff --git a/third_party/blink/public/web/web_local_frame_client.h b/third_party/blink/public/web/web_local_frame_client.h -index 507da809f6d3448dffab4816c0675ece6cb35ba6..2711f5de447714bc1110f9abb559332bb0c4bddf 100644 +index 609eb34fcde080491f9f6a1b10a71daf7c46e11e..e22da080595a7474e1277d5c7526a92461417357 100644 --- a/third_party/blink/public/web/web_local_frame_client.h +++ b/third_party/blink/public/web/web_local_frame_client.h @@ -567,6 +567,9 @@ class BLINK_EXPORT WebLocalFrameClient { @@ -92,10 +92,10 @@ index 9a526ac4808171693146870909e058f41fe56a50..a15e379ee951504fd77b27af61b318d2 int32_t world_id) = 0; virtual bool AllowScriptExtensions() = 0; diff --git a/third_party/blink/renderer/core/frame/local_frame_client_impl.cc b/third_party/blink/renderer/core/frame/local_frame_client_impl.cc -index 0e71a094d9b67a6d1f5fb298d7057495e3a37803..cb7bfe7d79d6024b390c77285c2d47150a391c63 100644 +index e7e9fa3faf605bea1bf90d31d699c5b2c5510502..03fdd09c6dc23f21f7f52ccf30ee8202e304f355 100644 --- a/third_party/blink/renderer/core/frame/local_frame_client_impl.cc +++ b/third_party/blink/renderer/core/frame/local_frame_client_impl.cc -@@ -342,6 +342,13 @@ void LocalFrameClientImpl::DidCreateScriptContext( +@@ -273,6 +273,13 @@ void LocalFrameClientImpl::DidCreateScriptContext( web_frame_->Client()->DidCreateScriptContext(context, world_id); } diff --git a/patches/chromium/add_realloc.patch b/patches/chromium/add_realloc.patch index fa45c4d3f6a6..b6a1875819a2 100644 --- a/patches/chromium/add_realloc.patch +++ b/patches/chromium/add_realloc.patch @@ -12,10 +12,10 @@ when we override ReallocateBufferMemory, so we therefore need to implement Realloc on the v8 side and correspondingly in gin. diff --git a/gin/array_buffer.cc b/gin/array_buffer.cc -index 124c2f72a5cbc2abe8c7686c32b61718d4c95d4b..fa4a478450cc97d231496ab82c74c1a94d1f3557 100644 +index 210760801f1d027196111631d34bab3eb5a10792..cdfdf91841b5f2feb248b0c5890ddcfdb5a8f9ce 100644 --- a/gin/array_buffer.cc +++ b/gin/array_buffer.cc -@@ -43,6 +43,10 @@ void* ArrayBufferAllocator::AllocateUninitialized(size_t length) { +@@ -37,6 +37,10 @@ void* ArrayBufferAllocator::AllocateUninitialized(size_t length) { return malloc(length); } @@ -27,7 +27,7 @@ index 124c2f72a5cbc2abe8c7686c32b61718d4c95d4b..fa4a478450cc97d231496ab82c74c1a9 free(data); } diff --git a/gin/array_buffer.h b/gin/array_buffer.h -index 2aef366ac8194aa261cbca6abc051f7da8a988d3..3c7d66c81032636abcca4f1538ce9b7f4ddb2de2 100644 +index 086371af29bd8c7520485125deddca411e8b978b..2c6886ddcc47019be4d552d4fddfc1c3d00cbca0 100644 --- a/gin/array_buffer.h +++ b/gin/array_buffer.h @@ -21,6 +21,7 @@ class ArrayBufferAllocator : public v8::ArrayBuffer::Allocator { @@ -39,10 +39,10 @@ index 2aef366ac8194aa261cbca6abc051f7da8a988d3..3c7d66c81032636abcca4f1538ce9b7f GIN_EXPORT static ArrayBufferAllocator* SharedInstance(); diff --git a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc -index 4fbbdb2304a40ae4bca03dd51ce55615c5babae2..e2213b00d73f399bb14b7edfa0fb719aa12a6be5 100644 +index 056108a5a6f795d3971e1e808bbefe1058e3c512..50965d4f30b6ae233dab18d0a86f520bf1df8b10 100644 --- a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc +++ b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc -@@ -697,6 +697,10 @@ class ArrayBufferAllocator : public v8::ArrayBuffer::Allocator { +@@ -704,6 +704,10 @@ class ArrayBufferAllocator : public v8::ArrayBuffer::Allocator { return result; } diff --git a/patches/chromium/add_trustedauthclient_to_urlloaderfactory.patch b/patches/chromium/add_trustedauthclient_to_urlloaderfactory.patch index 15bdee34d3a9..bc0b380e8888 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 fd0f46bfd8d5b7c803042635460cd3b87d2521dc..64a7d8b08f19865cd5d824a9a48ef27abe60a02a 100644 +index 84ab373ac9472bba739ca98c52b1f97c71169e88..0bcc7e95109fea4ff1b25672ac007b926ae52984 100644 --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -228,6 +228,26 @@ struct CTPolicy { +@@ -222,6 +222,26 @@ struct CTPolicy { array excluded_legacy_spkis; }; @@ -40,7 +40,7 @@ index fd0f46bfd8d5b7c803042635460cd3b87d2521dc..64a7d8b08f19865cd5d824a9a48ef27a interface CertVerifierClient { Verify( int32 default_error, -@@ -660,6 +680,8 @@ struct URLLoaderFactoryParams { +@@ -653,6 +673,8 @@ struct URLLoaderFactoryParams { // impact because of the extra process hops, so use should be minimized. pending_remote? header_client; @@ -50,10 +50,10 @@ index fd0f46bfd8d5b7c803042635460cd3b87d2521dc..64a7d8b08f19865cd5d824a9a48ef27a // cookies) and to shard network resources, like the cache. If set, takes // precedence over ResourceRequest::TrustedParams::IsolationInfo field diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc -index 00339d4537993b97bd2a3d62e3aa95057cd41a03..165aba6599c17d74a4ffc3553f018854f7807ab0 100644 +index a6ea05b42fce15d576c029afa086a3007282ee71..14c17ccbc0e184f03c4ca6a9833ae83db386a011 100644 --- a/services/network/url_loader.cc +++ b/services/network/url_loader.cc -@@ -459,6 +459,7 @@ URLLoader::URLLoader( +@@ -462,6 +462,7 @@ URLLoader::URLLoader( base::WeakPtr keepalive_statistics_recorder, base::WeakPtr network_usage_accumulator, mojom::TrustedURLLoaderHeaderClient* url_loader_header_client, @@ -61,7 +61,7 @@ index 00339d4537993b97bd2a3d62e3aa95057cd41a03..165aba6599c17d74a4ffc3553f018854 mojom::OriginPolicyManager* origin_policy_manager, std::unique_ptr trust_token_helper_factory, const cors::OriginAccessList& origin_access_list, -@@ -523,6 +524,11 @@ URLLoader::URLLoader( +@@ -529,6 +530,11 @@ URLLoader::URLLoader( header_client_.set_disconnect_handler( base::BindOnce(&URLLoader::OnMojoDisconnect, base::Unretained(this))); } @@ -73,7 +73,7 @@ index 00339d4537993b97bd2a3d62e3aa95057cd41a03..165aba6599c17d74a4ffc3553f018854 if (want_raw_headers_) { options_ |= mojom::kURLLoadOptionSendSSLInfoWithResponse | mojom::kURLLoadOptionSendSSLInfoForCertificateError; -@@ -1169,7 +1175,7 @@ void URLLoader::OnAuthRequired(net::URLRequest* url_request, +@@ -1187,7 +1193,7 @@ void URLLoader::OnAuthRequired(net::URLRequest* url_request, // |this| may have been deleted. return; } @@ -82,7 +82,7 @@ index 00339d4537993b97bd2a3d62e3aa95057cd41a03..165aba6599c17d74a4ffc3553f018854 OnAuthCredentials(base::nullopt); return; } -@@ -1185,11 +1191,19 @@ void URLLoader::OnAuthRequired(net::URLRequest* url_request, +@@ -1203,11 +1209,19 @@ 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,10 +108,10 @@ index 00339d4537993b97bd2a3d62e3aa95057cd41a03..165aba6599c17d74a4ffc3553f018854 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 7d0dc6685a0f1f7e5e3bcde2b5beb416f2d46030..d339b2a954067c5e2adcac6e64a6507f070e550b 100644 +index e35076146d1b2205c851f815de943eef47bcdbc6..fa2beab3a2358da8a089cee78a4294af81352d2a 100644 --- a/services/network/url_loader.h +++ b/services/network/url_loader.h -@@ -129,6 +129,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader +@@ -130,6 +130,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader base::WeakPtr keepalive_statistics_recorder, base::WeakPtr network_usage_accumulator, mojom::TrustedURLLoaderHeaderClient* url_loader_header_client, @@ -119,7 +119,7 @@ index 7d0dc6685a0f1f7e5e3bcde2b5beb416f2d46030..d339b2a954067c5e2adcac6e64a6507f mojom::OriginPolicyManager* origin_policy_manager, std::unique_ptr trust_token_helper_factory, -@@ -494,6 +495,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader +@@ -497,6 +498,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader base::Optional fetch_window_id_; mojo::Remote header_client_; @@ -128,7 +128,7 @@ index 7d0dc6685a0f1f7e5e3bcde2b5beb416f2d46030..d339b2a954067c5e2adcac6e64a6507f std::unique_ptr file_opener_for_upload_; diff --git a/services/network/url_loader_factory.cc b/services/network/url_loader_factory.cc -index 3b9b240615e56ef11a32ac87df2d189aae5c3bfa..bd2f131da2432eb63f0cb6610e10ede219f179c4 100644 +index e72645de2bd9073966e3f220d3663f157d29650e..6b12fb88c25d506494e8d2b8cab950dedf89ce0c 100644 --- a/services/network/url_loader_factory.cc +++ b/services/network/url_loader_factory.cc @@ -77,6 +77,7 @@ URLLoaderFactory::URLLoaderFactory( @@ -137,18 +137,18 @@ index 3b9b240615e56ef11a32ac87df2d189aae5c3bfa..bd2f131da2432eb63f0cb6610e10ede2 coep_reporter_(std::move(params_->coep_reporter)), + auth_client_(std::move(params_->auth_client)), cors_url_loader_factory_(cors_url_loader_factory), - cookie_observer_(std::move(params_->cookie_observer)) { - DCHECK(context); -@@ -297,6 +298,7 @@ void URLLoaderFactory::CreateLoaderAndStart( + cookie_observer_(std::move(params_->cookie_observer)), + auth_cert_observer_(std::move(params_->auth_cert_observer)) { +@@ -296,6 +297,7 @@ void URLLoaderFactory::CreateLoaderAndStart( std::move(keepalive_statistics_recorder), 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(), std::move(trust_token_factory), - context_->cors_origin_access_list(), std::move(cookie_observer)); - + context_->cors_origin_access_list(), std::move(cookie_observer), + std::move(auth_cert_observer)); diff --git a/services/network/url_loader_factory.h b/services/network/url_loader_factory.h -index 182b26816da9e82d83c47c3c73ecfdcf3003b967..903a3ad083201ed85e82169698041152278697fa 100644 +index 14bf9839d142531e4e7f6dc6a461d97713d435ed..e5bca17b40fad7a553ef1b70fa6c4eacbb3cd1a9 100644 --- a/services/network/url_loader_factory.h +++ b/services/network/url_loader_factory.h @@ -74,6 +74,7 @@ class URLLoaderFactory : public mojom::URLLoaderFactory { diff --git a/patches/chromium/allow_in_process_windows_to_have_different_web_prefs.patch b/patches/chromium/allow_in_process_windows_to_have_different_web_prefs.patch index 674f2e5b7fd2..b4e113cee94d 100644 --- a/patches/chromium/allow_in_process_windows_to_have_different_web_prefs.patch +++ b/patches/chromium/allow_in_process_windows_to_have_different_web_prefs.patch @@ -42,7 +42,7 @@ index 758b0b1616ecf86b7dd090adce94395851d9baf2..55f20eb6266368c65fc0ec80d52caa33 accelerated_video_decode_enabled(false), animation_policy( diff --git a/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc b/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc -index e713617a5306c8afc24559b6065aec59a0bc3e5a..80e728d1bac10c18c7799387f6c32339db615cea 100644 +index ba1ba323ec45296c33b5931652a001d6bd24dbe0..663d47894592499531ff924c78b518325020dc04 100644 --- a/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc +++ b/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc @@ -24,6 +24,11 @@ bool StructTraitslazy_frame_loading_distance_thresholds_px) || !data.ReadLazyImageLoadingDistanceThresholdsPx( -@@ -150,6 +155,27 @@ bool StructTraitsnavigate_on_drag_drop = data.navigate_on_drag_drop(); out->v8_cache_options = data.v8_cache_options(); out->record_whole_document = data.record_whole_document(); @@ -86,7 +86,7 @@ index e713617a5306c8afc24559b6065aec59a0bc3e5a..80e728d1bac10c18c7799387f6c32339 out->accelerated_video_decode_enabled = data.accelerated_video_decode_enabled(); diff --git a/third_party/blink/public/common/web_preferences/web_preferences.h b/third_party/blink/public/common/web_preferences/web_preferences.h -index 02c341e76e009a20f1d564ff4648ef40dd5cb9f3..4a0fd299c4cced5cfe97b209065311fa2f3f4b70 100644 +index ab727750abcb0253463e83c984bf1afd9e296021..cd4598e022b144c728990b47957baa031097dfc9 100644 --- a/third_party/blink/public/common/web_preferences/web_preferences.h +++ b/third_party/blink/public/common/web_preferences/web_preferences.h @@ -9,6 +9,7 @@ @@ -97,7 +97,7 @@ index 02c341e76e009a20f1d564ff4648ef40dd5cb9f3..4a0fd299c4cced5cfe97b209065311fa #include "base/strings/string16.h" #include "base/time/time.h" #include "build/build_config.h" -@@ -159,6 +160,29 @@ struct BLINK_COMMON_EXPORT WebPreferences { +@@ -161,6 +162,29 @@ struct BLINK_COMMON_EXPORT WebPreferences { blink::mojom::V8CacheOptions v8_cache_options; bool record_whole_document; @@ -128,7 +128,7 @@ index 02c341e76e009a20f1d564ff4648ef40dd5cb9f3..4a0fd299c4cced5cfe97b209065311fa // only controls whether or not the "document.cookie" field is properly // connected to the backing store, for instance if you wanted to be able to diff --git a/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h b/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h -index 0bd751d729ecdbc556686e7d38156ca736bd7a33..a4e6b664cb28f8d7bff2955fd935cd467a64ca3b 100644 +index 68d33ca3be294fc79f6d5d1a6ae6a8dfd427f4b1..9663462132151638ad480f8431a0ea428c6f0563 100644 --- a/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h +++ b/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h @@ -6,6 +6,7 @@ @@ -139,7 +139,7 @@ index 0bd751d729ecdbc556686e7d38156ca736bd7a33..a4e6b664cb28f8d7bff2955fd935cd46 #include "mojo/public/cpp/bindings/struct_traits.h" #include "net/nqe/effective_connection_type.h" #include "third_party/blink/public/common/common_export.h" -@@ -436,6 +437,88 @@ struct BLINK_COMMON_EXPORT StructTraits(); - content_security_policy_->SetOverrideURLForSelf( + content_security_policy_->DidReceiveHeaders( diff --git a/patches/chromium/blink_local_frame.patch b/patches/chromium/blink_local_frame.patch index a390601f89dd..c897343b02e5 100644 --- a/patches/chromium/blink_local_frame.patch +++ b/patches/chromium/blink_local_frame.patch @@ -49,10 +49,10 @@ index 9305b576b06a8020583939f357cd42902302b543..d772a31a436bf8f0617d87b5fcf5bd96 // its owning reference back to our owning LocalFrame. client_->Detached(type); diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc -index ae17afa2ef54f16875107bb462ceac3e741e285f..214bf6868a56e77030583dccf190dac14bcdc190 100644 +index 3051ca0d16f64447aecb18e119c84e4a6cce9bac..7584828fda17f6b497ed9a87ff1cd6993aacf569 100644 --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -670,10 +670,6 @@ bool LocalFrame::DetachImpl(FrameDetachType type) { +@@ -672,10 +672,6 @@ bool LocalFrame::DetachImpl(FrameDetachType type) { } DCHECK(!view_ || !view_->IsAttached()); @@ -63,7 +63,7 @@ index ae17afa2ef54f16875107bb462ceac3e741e285f..214bf6868a56e77030583dccf190dac1 if (!Client()) return false; -@@ -715,6 +711,11 @@ bool LocalFrame::DetachImpl(FrameDetachType type) { +@@ -717,6 +713,11 @@ bool LocalFrame::DetachImpl(FrameDetachType type) { DCHECK(!view_->IsAttached()); Client()->WillBeDetached(); diff --git a/patches/chromium/blink_world_context.patch b/patches/chromium/blink_world_context.patch index 83679ce3a75a..34875c8f3946 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 01599517cc798843e50a7fe1c8d994c37b1cabf6..caa7048d51eeb43a4cfbbc75020e46e20b304898 100644 +index 3e0f38d60b48817790edeca17c72b06cd07f412f..34133a5a1fcbfea0580683aea7655b7cb7a612d2 100644 --- a/third_party/blink/public/web/web_local_frame.h +++ b/third_party/blink/public/web/web_local_frame.h -@@ -367,6 +367,8 @@ class WebLocalFrame : public WebFrame { +@@ -368,6 +368,8 @@ class WebLocalFrame : public WebFrame { // Returns the world ID associated with |script_context|. virtual int32_t GetScriptContextWorldId( v8::Local script_context) const = 0; @@ -20,10 +20,10 @@ index 01599517cc798843e50a7fe1c8d994c37b1cabf6..caa7048d51eeb43a4cfbbc75020e46e2 // Executes script in the context of the current page and returns the value // that the script evaluated to with callback. Script execution can be 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 f9e9ffead24fab0e5bf73f9a808aa07f30b4370a..e95e8d4e252b30a4f4a5ae16ca78737c48d9cca1 100644 +index 0513215ab03f4d55cca5144da1b3107343bc5c58..63aa333b5f16e3565b702ab1455736c0df972e17 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 -@@ -1033,6 +1033,13 @@ v8::Local WebLocalFrameImpl::GlobalProxy() const { +@@ -1038,6 +1038,13 @@ v8::Local WebLocalFrameImpl::GlobalProxy() const { return MainWorldScriptContext()->Global(); } @@ -38,10 +38,10 @@ index f9e9ffead24fab0e5bf73f9a808aa07f30b4370a..e95e8d4e252b30a4f4a5ae16ca78737c 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 786f9dd51861cffd8869f2262104ec79c2066db4..7833167f3deda00f1ccd67b5904f51f6d9162a03 100644 +index 49893b427ff1d5f7c7784461c476b903433db980..bc39ee72865f406b93f33f87998a0a3145dbc3bc 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 -@@ -162,6 +162,8 @@ class CORE_EXPORT WebLocalFrameImpl final +@@ -165,6 +165,8 @@ class CORE_EXPORT WebLocalFrameImpl final v8::Local MainWorldScriptContext() const override; int32_t GetScriptContextWorldId( v8::Local script_context) const override; diff --git a/patches/chromium/build_add_electron_tracing_category.patch b/patches/chromium/build_add_electron_tracing_category.patch index b6540d92bd17..e4964c15b932 100644 --- a/patches/chromium/build_add_electron_tracing_category.patch +++ b/patches/chromium/build_add_electron_tracing_category.patch @@ -8,13 +8,13 @@ categories in use are known / declared. This patch is required for us to introduce a new Electron category for Electron-specific tracing. diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_categories.h -index ad3e86fb45ed6e115e62e89917fff8309a0e0705..c222819b9de97b988c9a2a49f971961e11665cad 100644 +index 1a3fe9a570a1b40074396e988f376ed04e7e74ff..7087d21430e3692daf3579bf29558c650fc59fbb 100644 --- a/base/trace_event/builtin_categories.h +++ b/base/trace_event/builtin_categories.h -@@ -73,6 +73,7 @@ +@@ -75,6 +75,7 @@ X("drmcursor") \ X("dwrite") \ - X("DXVA Decoding") \ + X("DXVA_Decoding") \ + X("electron") \ X("evdev") \ X("event") \ diff --git a/patches/chromium/build_gn.patch b/patches/chromium/build_gn.patch index ff489c9c68b1..1664fe1daf6b 100644 --- a/patches/chromium/build_gn.patch +++ b/patches/chromium/build_gn.patch @@ -14,7 +14,7 @@ tradeoff is that switching from MAS_BUILD to !MAS_BUILD or vice-versa will rebuild the entire tree. diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn -index 407ca1a239c1be1012f915721110597e81e75b29..acbde830ca61f9ead221f2ded656a2bd45091d23 100644 +index fa375deef6c851867efdd8e9d6a79261b1256774..e170c988f01fb62c0193456c8e65378fad87e7b0 100644 --- a/build/config/BUILDCONFIG.gn +++ b/build/config/BUILDCONFIG.gn @@ -123,6 +123,9 @@ if (current_os == "") { @@ -27,7 +27,7 @@ index 407ca1a239c1be1012f915721110597e81e75b29..acbde830ca61f9ead221f2ded656a2bd # Set to enable the official build level of optimization. This has nothing # to do with branding, but enables an additional level of optimization above # release (!is_debug). This might be better expressed as a tri-state -@@ -345,6 +348,7 @@ default_compiler_configs = [ +@@ -334,6 +337,7 @@ default_compiler_configs = [ "//build/config/compiler/pgo:default_pgo_flags", "//build/config/coverage:default_coverage", "//build/config/sanitizers:default_sanitizer_flags", diff --git a/patches/chromium/can_create_window.patch b/patches/chromium/can_create_window.patch index ad57f5777236..c4b767054512 100644 --- a/patches/chromium/can_create_window.patch +++ b/patches/chromium/can_create_window.patch @@ -9,10 +9,10 @@ potentially prevent a window from being created. TODO(loc): this patch is currently broken. diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc -index b983f4399ceddacd050524eda2bc2936f94ae0e7..fb7b8fe6f89ffd61fa610f9085e5a9b0bbf9c379 100644 +index b820fbf20860ee9809278053947ea5e32f24131f..f6a51a0d4844bcf8aba6ad19e128a5625f7fe838 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -5327,6 +5327,7 @@ void RenderFrameHostImpl::CreateNewWindow( +@@ -5285,6 +5285,7 @@ void RenderFrameHostImpl::CreateNewWindow( last_committed_origin_, params->window_container_type, params->target_url, params->referrer.To(), params->frame_name, params->disposition, *params->features, @@ -21,10 +21,10 @@ index b983f4399ceddacd050524eda2bc2936f94ae0e7..fb7b8fe6f89ffd61fa610f9085e5a9b0 &no_javascript_access); diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 0163353f96889cf405273e78bb3c7f87a0dbf6ac..d72a6ca4307a71d0f9dc8a8b4ce32e1dce305148 100644 +index 2e461e4a61ff0556960a5448e2aa8ee645f05346..a21877e24ddfdefbccbf3bdafb2132cf244655e8 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -3541,6 +3541,14 @@ RenderFrameHostDelegate* WebContentsImpl::CreateNewWindow( +@@ -3610,6 +3610,14 @@ RenderFrameHostDelegate* WebContentsImpl::CreateNewWindow( } auto* new_contents_impl = new_contents.get(); @@ -39,8 +39,8 @@ index 0163353f96889cf405273e78bb3c7f87a0dbf6ac..d72a6ca4307a71d0f9dc8a8b4ce32e1d new_contents_impl->GetController().SetSessionStorageNamespace( partition_id, session_storage_namespace); -@@ -3582,12 +3590,6 @@ RenderFrameHostDelegate* WebContentsImpl::CreateNewWindow( - AddDestructionObserver(new_contents_impl); +@@ -3651,12 +3659,6 @@ RenderFrameHostDelegate* WebContentsImpl::CreateNewWindow( + AddWebContentsDestructionObserver(new_contents_impl); } - if (delegate_) { @@ -53,10 +53,10 @@ index 0163353f96889cf405273e78bb3c7f87a0dbf6ac..d72a6ca4307a71d0f9dc8a8b4ce32e1d new_contents_impl, opener, params.target_url, params.referrer.To(), params.disposition, diff --git a/content/common/frame.mojom b/content/common/frame.mojom -index 3530150bfcb34ceb1f7ae5f17808d0a07cb3d866..330906dd0518b1fb46872e3f62ecd4bfe459294c 100644 +index 9cf07bc99472729050b7743b7cd85a92e6af3683..0fd0a88c29ba75633af6201b3e1d498043caaf44 100644 --- a/content/common/frame.mojom +++ b/content/common/frame.mojom -@@ -324,6 +324,10 @@ struct CreateNewWindowParams { +@@ -323,6 +323,10 @@ struct CreateNewWindowParams { // The impression associated with the navigation in the new window, if // one is specified. Impression? impression; @@ -68,7 +68,7 @@ index 3530150bfcb34ceb1f7ae5f17808d0a07cb3d866..330906dd0518b1fb46872e3f62ecd4bf // 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 adc83e8b9ba01d830362c3236a22fe09684ceaf8..e3088a155d552c87f009cec282f32730d9cb3655 100644 +index 7433b453ee4a0b5c836a15971c179c555901e8b6..343fc9aa93967500f313809f825ac01122852dfe 100644 --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc @@ -554,6 +554,8 @@ bool ContentBrowserClient::CanCreateWindow( @@ -81,7 +81,7 @@ index adc83e8b9ba01d830362c3236a22fe09684ceaf8..e3088a155d552c87f009cec282f32730 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 b579683053c37211f68e75a36997a63341ac4103..ecd1d367a7634e377bffbe7590d2c21b49a56e93 100644 +index 49da693f8e214ea669257886bdaa6fbfc1f9ddd6..b1f955f30528077ab0aea5a343781b3221113249 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h @@ -154,6 +154,7 @@ class NetworkService; @@ -150,10 +150,10 @@ index 39349ef0c0223f632bddd3b82fd6055344af9fb4..6aba9de130ed9abd81ecc7cae370ed5b // 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 62c54d7c23ba2d918e7fd013d28424335f83278a..050ffabf4078b93d36d2da691644697c14eb85dc 100644 +index bf1cf31da503c4ec7dd0348ff8d6ba22f95c66cd..e3536ce02346aa60ef5e1dd36d82ace362a3c022 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc -@@ -28,6 +28,7 @@ +@@ -27,6 +27,7 @@ #include "third_party/blink/public/platform/impression_conversions.h" #include "third_party/blink/public/platform/modules/video_capture/web_video_capture_impl_manager.h" #include "third_party/blink/public/platform/url_conversion.h" @@ -161,7 +161,7 @@ index 62c54d7c23ba2d918e7fd013d28424335f83278a..050ffabf4078b93d36d2da691644697c #include "third_party/blink/public/web/modules/mediastream/web_media_stream_device_observer.h" #include "third_party/blink/public/web/web_frame_widget.h" #include "third_party/blink/public/web/web_local_frame.h" -@@ -381,6 +382,10 @@ WebView* RenderViewImpl::CreateView( +@@ -345,6 +346,10 @@ WebView* RenderViewImpl::CreateView( params->impression = blink::ConvertWebImpressionToImpression(*impression); } @@ -173,10 +173,10 @@ index 62c54d7c23ba2d918e7fd013d28424335f83278a..050ffabf4078b93d36d2da691644697c // moved on send. bool is_background_tab = diff --git a/content/web_test/browser/web_test_content_browser_client.cc b/content/web_test/browser/web_test_content_browser_client.cc -index 6450bbe41aeb2fd3a43c6731390efcffc753064d..842408de6bff1c3e4be7bbfbc0e1affa6a7af8a3 100644 +index 03167c25e9b201ea770489179d2e4ff76feceea9..53909672f57e2af2acc58492273e0b2de68c30a9 100644 --- a/content/web_test/browser/web_test_content_browser_client.cc +++ b/content/web_test/browser/web_test_content_browser_client.cc -@@ -442,6 +442,8 @@ bool WebTestContentBrowserClient::CanCreateWindow( +@@ -443,6 +443,8 @@ bool WebTestContentBrowserClient::CanCreateWindow( const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, diff --git a/patches/chromium/chore_expose_v8_initialization_isolate_callbacks.patch b/patches/chromium/chore_expose_v8_initialization_isolate_callbacks.patch index ba93072340f4..8e49c48c1625 100644 --- a/patches/chromium/chore_expose_v8_initialization_isolate_callbacks.patch +++ b/patches/chromium/chore_expose_v8_initialization_isolate_callbacks.patch @@ -9,7 +9,7 @@ we're running with contextIsolation enabled, we should be falling back to Blink's logic. This will be upstreamed in some form. diff --git a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc -index e2213b00d73f399bb14b7edfa0fb719aa12a6be5..363f9e7a823864f67faa7ce9ec6fd914f371652e 100644 +index 50965d4f30b6ae233dab18d0a86f520bf1df8b10..3dfc10c1dafced96a6e61d117aaf2fd039359e62 100644 --- a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc +++ b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc @@ -450,7 +450,7 @@ CodeGenerationCheckCallbackInMainThread(v8::Local context, diff --git a/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch b/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch index 57e0a4a974bc..3d3b1f45cbfb 100644 --- a/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch +++ b/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch @@ -95,7 +95,7 @@ index fb09bf2c5d22e3838575403b53867d0021e13b67..36e7982bbcc7c8b50bb2942ada39862b content::RenderFrameHost* requesting_frame, const blink::mojom::FullscreenOptions& options) final; diff --git a/chrome/browser/ui/ash/assistant/assistant_web_view_impl.cc b/chrome/browser/ui/ash/assistant/assistant_web_view_impl.cc -index 672d5d41e33178ed6c6f62156e69b1adaf099fe8..4c0f8db8a9c40c34df8abfa89d88b0ceaef76392 100644 +index e4f3632c84ebe4dcbbc3deb2f49e351c75ec93fd..58902fdaf316ad371ddb3e79e6ebc74cbbafc138 100644 --- a/chrome/browser/ui/ash/assistant/assistant_web_view_impl.cc +++ b/chrome/browser/ui/ash/assistant/assistant_web_view_impl.cc @@ -77,10 +77,9 @@ bool AssistantWebViewImpl::IsWebContentsCreationOverridden( @@ -126,7 +126,7 @@ index 07014765f33bdddebcc5bc32a2713d6523faf394..f866f69f9c810d89f1a0e9e4952293f6 content::WebContents* source, const content::OpenURLParams& params) override; diff --git a/chrome/browser/ui/ash/keyboard/chrome_keyboard_web_contents.cc b/chrome/browser/ui/ash/keyboard/chrome_keyboard_web_contents.cc -index dc7f3bc886e7130c66d98ae6de73c17db746cbe5..6197db3570c860f39f381370e1af37f86a0785ea 100644 +index d80b6e5d7112cd5c50d719569e4222ad36a2b124..0e9878873d60948484bff36a6ee895541140a157 100644 --- a/chrome/browser/ui/ash/keyboard/chrome_keyboard_web_contents.cc +++ b/chrome/browser/ui/ash/keyboard/chrome_keyboard_web_contents.cc @@ -64,8 +64,7 @@ class ChromeKeyboardContentsDelegate : public content::WebContentsDelegate, @@ -140,10 +140,10 @@ index dc7f3bc886e7130c66d98ae6de73c17db746cbe5..6197db3570c860f39f381370e1af37f8 } diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc -index da9ba4c8de7c30842ad397c4307220ddcbd05c1f..6937a1a08a3a784399bf233c70ebca13322f7147 100644 +index 5af69ac9d2362bff8a2a1dd854f484f5dc17aa82..42d131060744ab938d07b3f8e78fc38efa1d5878 100644 --- a/chrome/browser/ui/browser.cc +++ b/chrome/browser/ui/browser.cc -@@ -1793,12 +1793,11 @@ bool Browser::IsWebContentsCreationOverridden( +@@ -1762,12 +1762,11 @@ bool Browser::IsWebContentsCreationOverridden( content::SiteInstance* source_site_instance, content::mojom::WindowContainerType window_container_type, const GURL& opener_url, @@ -159,10 +159,10 @@ index da9ba4c8de7c30842ad397c4307220ddcbd05c1f..6937a1a08a3a784399bf233c70ebca13 WebContents* Browser::CreateCustomWebContents( diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h -index 47fee21d0f5a7f68e9debd613e50cdbe03bf7656..1511ed77d9ee90ba27a4731f978f5073b7af0a38 100644 +index 1701a29a3170fcc48eb5caa276509562f7869083..adc0d6865b8873870b2b3c76e74aa430a04459be 100644 --- a/chrome/browser/ui/browser.h +++ b/chrome/browser/ui/browser.h -@@ -788,8 +788,7 @@ class Browser : public TabStripModelObserver, +@@ -797,8 +797,7 @@ class Browser : public TabStripModelObserver, content::SiteInstance* source_site_instance, content::mojom::WindowContainerType window_container_type, const GURL& opener_url, @@ -264,10 +264,10 @@ index c5c5a7b63b5b3b62a9517cbef3ae23ce57a3c89c..4f1b7e88d6d2ae89a60311c8aeb1fcee void AddNewContents(content::WebContents* source, std::unique_ptr new_contents, diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 39ef587971d4c171fb5878efb7a94c3523b4b80c..14f3ebdc6fe53f8e4a9b3d6ec8d7a8875a20c392 100644 +index 13bd9fc314ff85ac8ce7876f9f5f8a1507d4c7d3..e137e4e16941a539346cd248a51c872159765d32 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -3493,8 +3493,7 @@ RenderFrameHostDelegate* WebContentsImpl::CreateNewWindow( +@@ -3562,8 +3562,7 @@ RenderFrameHostDelegate* WebContentsImpl::CreateNewWindow( if (delegate_ && delegate_->IsWebContentsCreationOverridden( source_site_instance, params.window_container_type, @@ -362,7 +362,7 @@ index d9e22ce31927da93f38f6a5a153222f91580f2c2..e6c8be2ad8175cd4a5b00e69f5072ff3 content::RenderFrameHost* opener, content::SiteInstance* source_site_instance, diff --git a/fuchsia/engine/browser/frame_impl.cc b/fuchsia/engine/browser/frame_impl.cc -index 3219179bf421a5d6056837c1c2b492a9ce008516..8b39bf68cfe789dee1398a200671ceac006a7de0 100644 +index 4be34546653082c6d479db7bf87d2c84a84e2b5c..a9ec63085731aea19164be50649e701cd5b560f0 100644 --- a/fuchsia/engine/browser/frame_impl.cc +++ b/fuchsia/engine/browser/frame_impl.cc @@ -372,8 +372,7 @@ bool FrameImpl::IsWebContentsCreationOverridden( @@ -376,7 +376,7 @@ index 3219179bf421a5d6056837c1c2b492a9ce008516..8b39bf68cfe789dee1398a200671ceac // can catch bad client behavior while not interfering with normal operation. constexpr size_t kMaxPendingWebContentsCount = 10; diff --git a/fuchsia/engine/browser/frame_impl.h b/fuchsia/engine/browser/frame_impl.h -index d6f69a298932496ed5fe29ee2ae43e35503476d4..656abba62cc533f8b8805ce4c9b5e782156aa6ed 100644 +index ae33b07dcc38359bef27f043ec6d3d8e498ac2ad..a9854747a113e35ecfef644e824610640dc592de 100644 --- a/fuchsia/engine/browser/frame_impl.h +++ b/fuchsia/engine/browser/frame_impl.h @@ -234,8 +234,7 @@ class FrameImpl : public fuchsia::web::Frame, @@ -390,10 +390,10 @@ index d6f69a298932496ed5fe29ee2ae43e35503476d4..656abba62cc533f8b8805ce4c9b5e782 int opener_render_process_id, int opener_render_frame_id, diff --git a/headless/lib/browser/headless_web_contents_impl.cc b/headless/lib/browser/headless_web_contents_impl.cc -index e9c7b85e6b62960e7618a5b727e3ae43dd62e8c9..909d2c126efc4efee31e7014666d921d038fbaef 100644 +index 4fdbf1c7030bb2b3765780d1e8c5a502679745de..5b59ce27eaa03897e5cbb3115b485a3ea931e871 100644 --- a/headless/lib/browser/headless_web_contents_impl.cc +++ b/headless/lib/browser/headless_web_contents_impl.cc -@@ -197,8 +197,7 @@ class HeadlessWebContentsImpl::Delegate : public content::WebContentsDelegate { +@@ -198,8 +198,7 @@ class HeadlessWebContentsImpl::Delegate : public content::WebContentsDelegate { content::SiteInstance* source_site_instance, content::mojom::WindowContainerType window_container_type, const GURL& opener_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 97a99bcce6f7..744aeeada5e8 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 68eacfbade049e2f82cb09dcb2b6944c5a200997..849bb1d3f2deb7ab89a774f61125aadf1b6fc769 100644 +index 0666cf8912fe0dca6483190f626619a0401d064e..244df419c989f27bda950747ad06cc9c4271c9a7 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -6216,6 +6216,7 @@ static_library("browser") { +@@ -6238,6 +6238,7 @@ static_library("browser") { deps += [ "//components/spellcheck/browser", "//components/spellcheck/common", diff --git a/patches/chromium/chrome_key_systems.patch b/patches/chromium/chrome_key_systems.patch index fcf4c6755800..fad186b73409 100644 --- a/patches/chromium/chrome_key_systems.patch +++ b/patches/chromium/chrome_key_systems.patch @@ -7,7 +7,7 @@ Disable persiste licence support check for widevine cdm, as its not supported in the current version of chrome. diff --git a/chrome/renderer/media/chrome_key_systems.cc b/chrome/renderer/media/chrome_key_systems.cc -index 21606970e534c73c791ee8e11d767939c334d37a..0c6671dd5175540fcb727cb4c44ed3bffbaaf555 100644 +index d0c14fb475f870cd14797c051629e629d197919c..c25f1e3770bb653168b56f877bb92369bc0416b1 100644 --- a/chrome/renderer/media/chrome_key_systems.cc +++ b/chrome/renderer/media/chrome_key_systems.cc @@ -16,7 +16,9 @@ diff --git a/patches/chromium/command-ismediakey.patch b/patches/chromium/command-ismediakey.patch index c846e6fb11b4..3a05205b4809 100644 --- a/patches/chromium/command-ismediakey.patch +++ b/patches/chromium/command-ismediakey.patch @@ -46,10 +46,10 @@ index e1c49f5cd9bd249398a14905a6fb41d54238e1ec..ad1c76e77e029d759547f6aded492ae6 } // namespace diff --git a/content/browser/media/media_keys_listener_manager_impl.cc b/content/browser/media/media_keys_listener_manager_impl.cc -index 87e716364fbd154b139cf6818b0113fef9b319e0..7d3e95cad07354ec71ae9643b2af5820e8807c9a 100644 +index 4145418210c2b1033390ec8a2e657cb1fcd048f8..5938f75742b793868638e693a9a8c8dc686dfc46 100644 --- a/content/browser/media/media_keys_listener_manager_impl.cc +++ b/content/browser/media/media_keys_listener_manager_impl.cc -@@ -286,6 +286,11 @@ void MediaKeysListenerManagerImpl::UpdateSystemMediaControlsEnabledControls() { +@@ -290,6 +290,11 @@ void MediaKeysListenerManagerImpl::UpdateSystemMediaControlsEnabledControls() { case ui::VKEY_MEDIA_STOP: system_media_controls_->SetIsStopEnabled(should_enable); break; diff --git a/patches/chromium/content_browser_main_loop.patch b/patches/chromium/content_browser_main_loop.patch index 3644274b66d0..24db72ca020a 100644 --- a/patches/chromium/content_browser_main_loop.patch +++ b/patches/chromium/content_browser_main_loop.patch @@ -8,7 +8,7 @@ run before shutdown. This is required to cleanup WebContents asynchronously in electron::api::WebContents::ResetManagedWebContents. diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc -index 5c3c8e53064c1f812ce16798737493de2d83e130..3b7e379c749244ce9d9af466ec45ffe66366d63c 100644 +index 37b9556adceca54bfe80328232c8add16381e9c8..ed60f417f3a0704ac9b42a92f3f8493f0d314149 100644 --- a/content/browser/browser_main_loop.cc +++ b/content/browser/browser_main_loop.cc @@ -1405,7 +1405,7 @@ void BrowserMainLoop::MainMessageLoopRun() { diff --git a/patches/chromium/crash_allow_setting_more_options.patch b/patches/chromium/crash_allow_setting_more_options.patch index 469c1ec50397..e805cae75401 100644 --- a/patches/chromium/crash_allow_setting_more_options.patch +++ b/patches/chromium/crash_allow_setting_more_options.patch @@ -21,10 +21,10 @@ index 9e850c0380b8a856dace5f68c80dd11a5b95a671..76993a9ec8dcd6c69cf3e58c49838264 uint64_t g_process_start_time = 0; pid_t g_pid = 0; diff --git a/components/crash/core/app/crash_reporter_client.cc b/components/crash/core/app/crash_reporter_client.cc -index 1d0fb4f2a633fa5ddbe232ce19d716c22be78a37..5b81608d6e90f62f435302a53976fb18bbbf9e98 100644 +index 89b4bfccd5d3278231726184547378805fb30ed5..9f0cb9d52e2f7fc0c1808500b775bc28b4514d00 100644 --- a/components/crash/core/app/crash_reporter_client.cc +++ b/components/crash/core/app/crash_reporter_client.cc -@@ -140,6 +140,17 @@ bool CrashReporterClient::ReportingIsEnforcedByPolicy(bool* breakpad_enabled) { +@@ -139,6 +139,17 @@ bool CrashReporterClient::ReportingIsEnforcedByPolicy(bool* breakpad_enabled) { return false; } @@ -43,7 +43,7 @@ index 1d0fb4f2a633fa5ddbe232ce19d716c22be78a37..5b81608d6e90f62f435302a53976fb18 unsigned int CrashReporterClient::GetCrashDumpPercentage() { return 100; diff --git a/components/crash/core/app/crash_reporter_client.h b/components/crash/core/app/crash_reporter_client.h -index aaa9ad1d58d7f584cbf391e0cb0a61a0d25d5c69..5b02834b5ecaf4bcb7e051d9ee98cd5eb087b4fc 100644 +index 39557cce474439238255ecd28030215085db0c81..5b3f980837911c710686ab91a2a81c318334080b 100644 --- a/components/crash/core/app/crash_reporter_client.h +++ b/components/crash/core/app/crash_reporter_client.h @@ -5,6 +5,7 @@ @@ -53,8 +53,8 @@ index aaa9ad1d58d7f584cbf391e0cb0a61a0d25d5c69..5b02834b5ecaf4bcb7e051d9ee98cd5e +#include #include - #include "base/strings/string16.h" -@@ -145,6 +146,19 @@ class CrashReporterClient { + #include "build/build_config.h" +@@ -144,6 +145,19 @@ class CrashReporterClient { // that case, |breakpad_enabled| is set to the value enforced by policies. virtual bool ReportingIsEnforcedByPolicy(bool* breakpad_enabled); @@ -102,7 +102,7 @@ index eb675321436a53e82432144d43f258bed6e938e2..ae2032a12eac7c789d790e53857d11ba arguments.push_back("--monitor-self"); } diff --git a/components/crash/core/app/crashpad_win.cc b/components/crash/core/app/crashpad_win.cc -index c199b467ffeb007f3098ccde6879fbd71e9ec9fd..a2007514e799b77fa15cbc178d38594e4d847caa 100644 +index c66a6dfc6f5ddaae7bf4ceb2f8c80af579255379..9fe127f1f67cb676492d101db21b6936efa86416 100644 --- a/components/crash/core/app/crashpad_win.cc +++ b/components/crash/core/app/crashpad_win.cc @@ -84,6 +84,7 @@ base::FilePath PlatformCrashpadInitialization( diff --git a/patches/chromium/dcheck.patch b/patches/chromium/dcheck.patch index 830012234a37..192017ad7ed4 100644 --- a/patches/chromium/dcheck.patch +++ b/patches/chromium/dcheck.patch @@ -17,10 +17,10 @@ only one or two specific checks fail. Then it's better to simply comment out the failing checks and allow the rest of the target to have them enabled. diff --git a/content/browser/renderer_host/navigation_controller_impl.cc b/content/browser/renderer_host/navigation_controller_impl.cc -index 12f5a1a1282b8790f21185c926f438fa4fc7499e..e10b228fb8145f0daa91948c98ba0e8ab8a8f049 100644 +index 055f4bc95fffd1ccf3dcc9e5f7c20bcc141559eb..9bf5f1fb04ce91659b0f629c1a0d71f661081671 100644 --- a/content/browser/renderer_host/navigation_controller_impl.cc +++ b/content/browser/renderer_host/navigation_controller_impl.cc -@@ -1313,8 +1313,10 @@ NavigationType NavigationControllerImpl::ClassifyNavigation( +@@ -1319,8 +1319,10 @@ NavigationType NavigationControllerImpl::ClassifyNavigation( return NAVIGATION_TYPE_NEW_SUBFRAME; } @@ -33,7 +33,7 @@ index 12f5a1a1282b8790f21185c926f438fa4fc7499e..e10b228fb8145f0daa91948c98ba0e8a if (rfh->GetParent()) { // All manual subframes would be did_create_new_entry and handled above, so -@@ -1604,7 +1606,10 @@ void NavigationControllerImpl::RendererDidNavigateToNewEntry( +@@ -1611,7 +1613,10 @@ void NavigationControllerImpl::RendererDidNavigateToNewEntry( new_entry->GetFavicon() = GetLastCommittedEntry()->GetFavicon(); } @@ -46,10 +46,10 @@ index 12f5a1a1282b8790f21185c926f438fa4fc7499e..e10b228fb8145f0daa91948c98ba0e8a // 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 344b847b0e272ed999cf9a58418f5857491f678c..b0191ba503f7206ee5432e4ccd0a5d62441419db 100644 +index 948c1ffcd2cf59326e4149817bd193ba3289bfa8..25921940846bd29988c3e885c18cc254f82f3d74 100644 --- a/ui/base/clipboard/clipboard_win.cc +++ b/ui/base/clipboard/clipboard_win.cc -@@ -817,10 +817,10 @@ SkBitmap ClipboardWin::ReadImageInternal(ClipboardBuffer buffer) const { +@@ -823,10 +823,10 @@ SkBitmap ClipboardWin::ReadImageInternal(ClipboardBuffer buffer) const { void ClipboardWin::WriteToClipboard(ClipboardFormatType format, HANDLE handle) { UINT cf_format = format.ToFormatEtc().cfFormat; diff --git a/patches/chromium/delay_lock_the_protocol_scheme_registry.patch b/patches/chromium/delay_lock_the_protocol_scheme_registry.patch index aba9d354eee8..098ad44b4747 100644 --- a/patches/chromium/delay_lock_the_protocol_scheme_registry.patch +++ b/patches/chromium/delay_lock_the_protocol_scheme_registry.patch @@ -19,10 +19,10 @@ https://chromium-review.googlesource.com/c/chromium/src/+/1901591, we should try re-submitting the patch. diff --git a/content/app/content_main_runner_impl.cc b/content/app/content_main_runner_impl.cc -index 829cf04246cc1dbb6a3a3ca826a652d09e990d71..cfa37c3311a888d50e0918fcf80e0b0e36db7b24 100644 +index fc2b90e1f7230049e0e0bb5ff753f1fab0630bd3..33ab8ce6fc56ec6fccaa4588b16c7d37c0e2350c 100644 --- a/content/app/content_main_runner_impl.cc +++ b/content/app/content_main_runner_impl.cc -@@ -648,7 +648,7 @@ int ContentMainRunnerImpl::Initialize(const ContentMainParams& params) { +@@ -651,7 +651,7 @@ int ContentMainRunnerImpl::Initialize(const ContentMainParams& params) { } #endif diff --git a/patches/chromium/disable-redraw-lock.patch b/patches/chromium/disable-redraw-lock.patch index f203c3ca838e..0c3455585f17 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 c347d1610d4c3d6a6ee3c7cb17d49d54482de818..53a7c6d03146994f9af9a503646e65b5c884ab23 100644 +index 0a3940b751709585b94e356e0beb02cd81f6e871..1013375edabb6e59338bcd9266f04ee09668098e 100644 --- a/ui/views/win/hwnd_message_handler.cc +++ b/ui/views/win/hwnd_message_handler.cc -@@ -304,6 +304,10 @@ constexpr int kSynthesizedMouseMessagesTimeDifference = 500; +@@ -305,6 +305,10 @@ constexpr int kSynthesizedMouseMessagesTimeDifference = 500; } // namespace @@ -29,7 +29,7 @@ index c347d1610d4c3d6a6ee3c7cb17d49d54482de818..53a7c6d03146994f9af9a503646e65b5 // 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. // -@@ -355,6 +359,7 @@ class HWNDMessageHandler::ScopedRedrawLock { +@@ -356,6 +360,7 @@ class HWNDMessageHandler::ScopedRedrawLock { cancel_unlock_(false), should_lock_(owner_->IsVisible() && !owner->HasChildRenderingWindow() && ::IsWindow(hwnd_) && @@ -37,7 +37,7 @@ index c347d1610d4c3d6a6ee3c7cb17d49d54482de818..53a7c6d03146994f9af9a503646e65b5 (!(GetWindowLong(hwnd_, GWL_STYLE) & WS_CAPTION) || !ui::win::IsAeroGlassEnabled())) { if (should_lock_) -@@ -969,6 +974,10 @@ HWNDMessageHandler::RegisterUnadjustedMouseEvent() { +@@ -971,6 +976,10 @@ HWNDMessageHandler::RegisterUnadjustedMouseEvent() { return scoped_enable; } diff --git a/patches/chromium/disable_color_correct_rendering.patch b/patches/chromium/disable_color_correct_rendering.patch index 9c934f6b5e8f..4ac27f6845c1 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_host_impl.cc b/cc/trees/layer_tree_host_impl.cc -index c07966b670c8f16b8d50a94e191ccd46a3cf9227..53bcab4feccb8ba09c21b8338495d983bb602c6f 100644 +index 413c765988dcaac6b5788248bd84d9571c3f5a00..8623bee1308ca6ac91931b270eeedc9880db4b5f 100644 --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc @@ -1771,6 +1771,10 @@ void LayerTreeHostImpl::SetIsLikelyToRequireADraw( @@ -81,7 +81,7 @@ index 4dbfd138a467462bae4ff062d9a8062b76ecaa4c..cc7c95bb0f4e6ec6b3579ced90a0f103 !command_line->HasSwitch(switches::kUIDisablePartialSwap); #if defined(OS_APPLE) diff --git a/components/viz/service/display/gl_renderer.cc b/components/viz/service/display/gl_renderer.cc -index 47ded9c4ec4cacbf14dcce9b5449d975e2fd354e..664bc4b52a9e4e600296f6a814e88bb647689f07 100644 +index ca43fd244812f22242aafb3abcf5d74fe1d145ad..2e577e69472998d8ff6859bd925b72a4ec9599b9 100644 --- a/components/viz/service/display/gl_renderer.cc +++ b/components/viz/service/display/gl_renderer.cc @@ -88,6 +88,9 @@ @@ -106,7 +106,7 @@ index 47ded9c4ec4cacbf14dcce9b5449d975e2fd354e..664bc4b52a9e4e600296f6a814e88bb6 // Use the full quad_rect for debug quads to not move the edges based on // partial swaps. -@@ -1662,7 +1666,8 @@ void GLRenderer::ChooseRPDQProgram(DrawRenderPassDrawQuadParams* params, +@@ -1664,7 +1668,8 @@ void GLRenderer::ChooseRPDQProgram(DrawRenderPassDrawQuadParams* params, params->use_color_matrix, tint_gl_composited_content_, params->apply_shader_based_rounded_corner && ShouldApplyRoundedCorner(params->quad)), @@ -116,7 +116,7 @@ index 47ded9c4ec4cacbf14dcce9b5449d975e2fd354e..664bc4b52a9e4e600296f6a814e88bb6 } void GLRenderer::UpdateRPDQUniforms(DrawRenderPassDrawQuadParams* params) { -@@ -2135,15 +2140,16 @@ void GLRenderer::DrawSolidColorQuad(const SolidColorDrawQuad* quad, +@@ -2137,15 +2142,16 @@ void GLRenderer::DrawSolidColorQuad(const SolidColorDrawQuad* quad, SetUseProgram(ProgramKey::SolidColor(use_aa ? USE_AA : NO_AA, tint_gl_composited_content_, ShouldApplyRoundedCorner(quad)), @@ -136,7 +136,7 @@ index 47ded9c4ec4cacbf14dcce9b5449d975e2fd354e..664bc4b52a9e4e600296f6a814e88bb6 gfx::ColorTransform::TriStim col(color_f.fR, color_f.fG, color_f.fB); color_transform->Transform(&col, 1); color_f.fR = col.x(); -@@ -2365,7 +2371,8 @@ void GLRenderer::DrawContentQuadAA(const ContentDrawQuadBase* quad, +@@ -2367,7 +2373,8 @@ void GLRenderer::DrawContentQuadAA(const ContentDrawQuadBase* quad, : NON_PREMULTIPLIED_ALPHA, false, false, tint_gl_composited_content_, ShouldApplyRoundedCorner(quad)), @@ -146,7 +146,7 @@ index 47ded9c4ec4cacbf14dcce9b5449d975e2fd354e..664bc4b52a9e4e600296f6a814e88bb6 if (current_program_->tint_color_matrix_location() != -1) { auto matrix = cc::DebugColors::TintCompositedContentColorTransformMatrix(); -@@ -2464,7 +2471,8 @@ void GLRenderer::DrawContentQuadNoAA(const ContentDrawQuadBase* quad, +@@ -2466,7 +2473,8 @@ void GLRenderer::DrawContentQuadNoAA(const ContentDrawQuadBase* quad, !quad->ShouldDrawWithBlending(), has_tex_clamp_rect, tint_gl_composited_content_, ShouldApplyRoundedCorner(quad)), @@ -156,7 +156,7 @@ index 47ded9c4ec4cacbf14dcce9b5449d975e2fd354e..664bc4b52a9e4e600296f6a814e88bb6 if (current_program_->tint_color_matrix_location() != -1) { auto matrix = cc::DebugColors::TintCompositedContentColorTransformMatrix(); -@@ -2574,7 +2582,8 @@ void GLRenderer::DrawYUVVideoQuad(const YUVVideoDrawQuad* quad, +@@ -2576,7 +2584,8 @@ void GLRenderer::DrawYUVVideoQuad(const YUVVideoDrawQuad* quad, // The source color space should never be RGB. DCHECK_NE(src_color_space, src_color_space.GetAsFullRangeRGB()); @@ -166,7 +166,7 @@ index 47ded9c4ec4cacbf14dcce9b5449d975e2fd354e..664bc4b52a9e4e600296f6a814e88bb6 #if defined(OS_WIN) // Force sRGB output on Windows for overlay candidate video quads to match -@@ -2754,7 +2763,8 @@ void GLRenderer::DrawStreamVideoQuad(const StreamVideoDrawQuad* quad, +@@ -2756,7 +2765,8 @@ void GLRenderer::DrawStreamVideoQuad(const StreamVideoDrawQuad* quad, SetUseProgram(ProgramKey::VideoStream(tex_coord_precision, ShouldApplyRoundedCorner(quad)), @@ -176,7 +176,7 @@ index 47ded9c4ec4cacbf14dcce9b5449d975e2fd354e..664bc4b52a9e4e600296f6a814e88bb6 DCHECK_EQ(GL_TEXTURE0, GetActiveTextureUnit(gl_)); gl_->BindTexture(GL_TEXTURE_EXTERNAL_OES, lock.texture_id()); -@@ -2825,8 +2835,8 @@ void GLRenderer::FlushTextureQuadCache(BoundGeometry flush_binding) { +@@ -2827,8 +2837,8 @@ void GLRenderer::FlushTextureQuadCache(BoundGeometry flush_binding) { draw_cache_.nearest_neighbor ? GL_NEAREST : GL_LINEAR); // Bind the program to the GL state. @@ -187,7 +187,7 @@ index 47ded9c4ec4cacbf14dcce9b5449d975e2fd354e..664bc4b52a9e4e600296f6a814e88bb6 /*adjust_src_white_level=*/draw_cache_.is_video_frame); if (current_program_->rounded_corner_rect_location() != -1) { -@@ -3653,7 +3663,9 @@ void GLRenderer::SetUseProgram(const ProgramKey& program_key_no_color, +@@ -3655,7 +3665,9 @@ void GLRenderer::SetUseProgram(const ProgramKey& program_key_no_color, const gfx::ColorSpace& src_color_space, const gfx::ColorSpace& dst_color_space, bool adjust_src_white_level) { @@ -198,7 +198,7 @@ index 47ded9c4ec4cacbf14dcce9b5449d975e2fd354e..664bc4b52a9e4e600296f6a814e88bb6 gfx::ColorSpace adjusted_src_color_space = src_color_space; if (adjust_src_white_level) { // If the input color space is HDR, and it did not specify a white level, -@@ -4033,9 +4045,9 @@ void GLRenderer::CopyRenderPassDrawQuadToOverlayResource( +@@ -4035,9 +4047,9 @@ void GLRenderer::CopyRenderPassDrawQuadToOverlayResource( cc::MathUtil::CheckedRoundUp(iosurface_height, iosurface_multiple); } @@ -211,7 +211,7 @@ index 47ded9c4ec4cacbf14dcce9b5449d975e2fd354e..664bc4b52a9e4e600296f6a814e88bb6 *new_bounds = gfx::RectF(updated_dst_rect.origin(), gfx::SizeF((*overlay_texture)->texture.size())); -@@ -4255,8 +4267,8 @@ void GLRenderer::FlushOverdrawFeedback(const gfx::Rect& output_rect) { +@@ -4257,8 +4269,8 @@ void GLRenderer::FlushOverdrawFeedback(const gfx::Rect& output_rect) { PrepareGeometry(SHARED_BINDING); @@ -222,14 +222,14 @@ index 47ded9c4ec4cacbf14dcce9b5449d975e2fd354e..664bc4b52a9e4e600296f6a814e88bb6 gfx::Transform render_matrix; render_matrix.Translate(0.5 * output_rect.width() + output_rect.x(), -@@ -4446,3 +4458,5 @@ GLRenderer::OverlayTexture::OverlayTexture() = default; +@@ -4448,3 +4460,5 @@ GLRenderer::OverlayTexture::OverlayTexture() = default; GLRenderer::OverlayTexture::~OverlayTexture() = default; } // namespace viz + +#undef PATCH_CS diff --git a/content/browser/gpu/gpu_process_host.cc b/content/browser/gpu/gpu_process_host.cc -index d5d68aa5a40b577d7d7b545cdc67f60e18acdf86..8ab5b75d7eee5f3e17b997abcd84f504ec6283ea 100644 +index 01d39c67a40567f49d8bd90e00c11034028c4895..2d30ca0c184453467ddf8415b5081c22d404af3e 100644 --- a/content/browser/gpu/gpu_process_host.cc +++ b/content/browser/gpu/gpu_process_host.cc @@ -223,6 +223,7 @@ GpuTerminationStatus ConvertToGpuTerminationStatus( @@ -241,7 +241,7 @@ index d5d68aa5a40b577d7d7b545cdc67f60e18acdf86..8ab5b75d7eee5f3e17b997abcd84f504 sandbox::policy::switches::kGpuSandboxAllowSysVShm, sandbox::policy::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 896630a5f595aa39265ceea68feb355454965ba0..3c7088341ace52d0efc5084b216beeee302ae922 100644 +index cddd153328e3e1e4154aa61e9786b3eaef3f4a05..a8885dffd9c78567f0052e490d17b427e03a74fb 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc @@ -218,6 +218,7 @@ @@ -252,7 +252,7 @@ index 896630a5f595aa39265ceea68feb355454965ba0..3c7088341ace52d0efc5084b216beeee #include "ui/gl/gl_switches.h" #include "ui/native_theme/native_theme_features.h" #include "url/origin.h" -@@ -3217,6 +3218,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3240,6 +3241,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[] = { diff --git a/patches/chromium/disable_compositor_recycling.patch b/patches/chromium/disable_compositor_recycling.patch index 6529e576a9b1..332d82177bdd 100644 --- a/patches/chromium/disable_compositor_recycling.patch +++ b/patches/chromium/disable_compositor_recycling.patch @@ -6,7 +6,7 @@ Subject: fix: disabling compositor recycling Compositor recycling is useful for Chrome because there can be many tabs and spinning up a compositor for each one would be costly. In practice, Chrome uses the parent compositor code path of browser_compositor_view_mac.mm; the NSView of each tab is detached when it's hidden and attached when it's shown. For Electron, there is no parent compositor, so we're forced into the "own compositor" code path, which seems to be non-optimal and pretty ruthless in terms of the release of resources. Electron has no real concept of multiple tabs per window, so it should be okay to disable this ruthless recycling altogether in Electron. diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm -index cd45e6c19505e553a4632dd478d33f3ee2cce0de..2090da2ac1a23a9847d0c3c14a7a2cc2c0ff2a55 100644 +index bfa99980776b9aa216644ea146fbb1d1a085a85d..7ab2cd43c5383a778261998bd433f37d312f6966 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm @@ -476,7 +476,11 @@ diff --git a/patches/chromium/disable_hidden.patch b/patches/chromium/disable_hidden.patch index 25a6d6f9c71b..3298be03fdbb 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 1b9b2c1ad23bd562b8c1895ceac220248dd70d01..d155e69df2abb9cec5f2153c7cb3c7b45cf46bbc 100644 +index a0e730813c10f3fbb662590d81fb467ba32c3747..c50126455356bbe34b3f126b652aa098d2e0758c 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc -@@ -726,6 +726,9 @@ void RenderWidgetHostImpl::WasHidden() { +@@ -734,6 +734,9 @@ void RenderWidgetHostImpl::WasHidden() { if (is_hidden_) return; @@ -20,10 +20,10 @@ index 1b9b2c1ad23bd562b8c1895ceac220248dd70d01..d155e69df2abb9cec5f2153c7cb3c7b4 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 a60325e9245af18665e34f56becc65f09fddee68..f179736afc6e675d8207bda025b4fbe1295c1bec 100644 +index 4ecd272b7fe070d0ae7a34faf1f5d007e1cf078a..1929617dcc595b5aca9ed5e981be684302f8da1f 100644 --- a/content/browser/renderer_host/render_widget_host_impl.h +++ b/content/browser/renderer_host/render_widget_host_impl.h -@@ -835,6 +835,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl +@@ -826,6 +826,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl base::Optional LastComputedVisualProperties() const; @@ -34,10 +34,10 @@ index a60325e9245af18665e34f56becc65f09fddee68..f179736afc6e675d8207bda025b4fbe1 // |routing_id| must not be MSG_ROUTING_NONE. // If this object outlives |delegate|, DetachDelegate() must be called when 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 3fa31e92b1f49f302cb91b10fd8d7489b7f7cda3..f35127f154754225015d6d8a56f4082f78bf8d3a 100644 +index ea9d026a80b3b26eeb9adde81ebb03b5dfcb1535..ff813b3dfcc793f000ca4438eb3ba6eedfe50220 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura.cc +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc -@@ -605,7 +605,7 @@ void RenderWidgetHostViewAura::HideImpl() { +@@ -595,7 +595,7 @@ void RenderWidgetHostViewAura::HideImpl() { DCHECK(visibility_ == Visibility::HIDDEN || visibility_ == Visibility::OCCLUDED); diff --git a/patches/chromium/disable_unload_metrics.patch b/patches/chromium/disable_unload_metrics.patch index cc68c3973953..d059ce8c8cf1 100644 --- a/patches/chromium/disable_unload_metrics.patch +++ b/patches/chromium/disable_unload_metrics.patch @@ -24,10 +24,10 @@ This patch temporarily disables the metrics so we can have green CI, and we should continue seeking for a real fix. diff --git a/content/browser/renderer_host/navigator.cc b/content/browser/renderer_host/navigator.cc -index f9fe438fbc14c5097c665c1e81209285646f578c..c57156ab68a65440a0ed101fbceaf5246c59e9cd 100644 +index 6013468ed431d43d635840a8a157f763a4647711..1747d257a2bdd9230e387d931fb45a4d71f4532f 100644 --- a/content/browser/renderer_host/navigator.cc +++ b/content/browser/renderer_host/navigator.cc -@@ -960,6 +960,7 @@ void Navigator::RecordNavigationMetrics( +@@ -1058,6 +1058,7 @@ void Navigator::RecordNavigationMetrics( .InMilliseconds()); } @@ -35,7 +35,7 @@ index f9fe438fbc14c5097c665c1e81209285646f578c..c57156ab68a65440a0ed101fbceaf524 // If this is a same-process navigation and we have timestamps for unload // durations, fill those metrics out as well. if (params.unload_start && params.unload_end && -@@ -1006,6 +1007,7 @@ void Navigator::RecordNavigationMetrics( +@@ -1104,6 +1105,7 @@ void Navigator::RecordNavigationMetrics( first_before_unload_start_time) .InMilliseconds()); } diff --git a/patches/chromium/don_t_use_potentially_null_getwebframe_-_view_when_get_blink.patch b/patches/chromium/don_t_use_potentially_null_getwebframe_-_view_when_get_blink.patch index 9420d8e7408d..b91708b69a7a 100644 --- a/patches/chromium/don_t_use_potentially_null_getwebframe_-_view_when_get_blink.patch +++ b/patches/chromium/don_t_use_potentially_null_getwebframe_-_view_when_get_blink.patch @@ -11,10 +11,10 @@ This regressed in https://chromium-review.googlesource.com/c/chromium/src/+/2572 Upstream: https://chromium-review.googlesource.com/c/chromium/src/+/2598393 diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc -index e9fb8a1aff0702984e7cfc96086a7d8d07908cbb..6cde6699f0872e877667a6ed92f655fa447f2e49 100644 +index db038990188455fc645c3c769a71e01af1ad3f0b..992086aa121623cd59ffa6f768559fd57e3f97d2 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -2686,7 +2686,7 @@ blink::WebLocalFrame* RenderFrameImpl::GetWebFrame() { +@@ -2643,7 +2643,7 @@ blink::WebLocalFrame* RenderFrameImpl::GetWebFrame() { } const blink::web_pref::WebPreferences& RenderFrameImpl::GetBlinkPreferences() { diff --git a/patches/chromium/enable_reset_aspect_ratio.patch b/patches/chromium/enable_reset_aspect_ratio.patch index 4d3c2c24dfc1..7486e4bec982 100644 --- a/patches/chromium/enable_reset_aspect_ratio.patch +++ b/patches/chromium/enable_reset_aspect_ratio.patch @@ -6,7 +6,7 @@ Subject: feat: enable setting aspect ratio to 0 Make SetAspectRatio accept 0 as valid input, which would reset to null. diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc -index a409755330351e7e1684c31f7c7cc6882a2dc7af..3349f38e1df8ff7e5c70f1c177b11914e4fa3e30 100644 +index 31db3cdbfad4d97b3cd9aa3bd884ea4e1dc6e564..5787a24deaefd177ddc0ed1b2f897b36a2f84d64 100644 --- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc +++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc @@ -484,7 +484,7 @@ void DesktopWindowTreeHostWin::SetOpacity(float opacity) { @@ -19,10 +19,10 @@ index a409755330351e7e1684c31f7c7cc6882a2dc7af..3349f38e1df8ff7e5c70f1c177b11914 aspect_ratio.height()); } diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc -index 53a7c6d03146994f9af9a503646e65b5c884ab23..7b0272b69132639f5074b82942c8de9729149dd5 100644 +index 1013375edabb6e59338bcd9266f04ee09668098e..80b0e1cb9f52c8b25f00d538733c0c15c2df0196 100644 --- a/ui/views/win/hwnd_message_handler.cc +++ b/ui/views/win/hwnd_message_handler.cc -@@ -919,8 +919,11 @@ void HWNDMessageHandler::SetFullscreen(bool fullscreen) { +@@ -921,8 +921,11 @@ void HWNDMessageHandler::SetFullscreen(bool fullscreen) { } void HWNDMessageHandler::SetAspectRatio(float aspect_ratio) { diff --git a/patches/chromium/expose_setuseragent_on_networkcontext.patch b/patches/chromium/expose_setuseragent_on_networkcontext.patch index 54f2af6d5b6f..061806427fdd 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 94992396b2cd4a017788bfdab6f944647b08bb8f..c575cd6d77f211b74f4a86d97ac6190a060e48fc 100644 +index 67986e284434115debf6a638b62c9585ac207c1d..ef64b8ab03b39066e1332cb6859c0012dc86e551 100644 --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -1129,6 +1129,13 @@ void NetworkContext::SetNetworkConditions( +@@ -1128,6 +1128,13 @@ void NetworkContext::SetNetworkConditions( std::move(network_conditions)); } @@ -51,7 +51,7 @@ index 94992396b2cd4a017788bfdab6f944647b08bb8f..c575cd6d77f211b74f4a86d97ac6190a // 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 c1cd4a20995af72fd386702d7baeb7d804d0844f..6377ce9636f3e86579a4877e609b80fc5aab931b 100644 +index 34281acc5a2dece3b84666b25f4af423a04bf8df..c4198cc21721f6c88074a1144618022a59689541 100644 --- a/services/network/network_context.h +++ b/services/network/network_context.h @@ -251,6 +251,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext @@ -63,10 +63,10 @@ index c1cd4a20995af72fd386702d7baeb7d804d0844f..6377ce9636f3e86579a4877e609b80fc void SetEnableReferrers(bool enable_referrers) override; #if BUILDFLAG(IS_CHROMEOS_ASH) diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom -index 620ed2a4752ded3cbe6a2ce66fce25433d64d8f6..fd0f46bfd8d5b7c803042635460cd3b87d2521dc 100644 +index efe52249cbbcfed616d3190714ef037bdbde1621..84ab373ac9472bba739ca98c52b1f97c71169e88 100644 --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -1097,6 +1097,9 @@ interface NetworkContext { +@@ -1083,6 +1083,9 @@ interface NetworkContext { SetNetworkConditions(mojo_base.mojom.UnguessableToken throttling_profile_id, NetworkConditions? conditions); @@ -77,10 +77,10 @@ index 620ed2a4752ded3cbe6a2ce66fce25433d64d8f6..fd0f46bfd8d5b7c803042635460cd3b8 SetAcceptLanguage(string new_accept_language); diff --git a/services/network/test/test_network_context.h b/services/network/test/test_network_context.h -index 3b1c2b43688f1789efeac418063e572e7a3d0626..97fa1e18fc1038e5fcd90dbf4ae4e5f76a7deda4 100644 +index e3f7acf5e828287f47eb3ba0d048a026a53f8a08..1d7bc55a002313ae8bc7e61c453f7aa113d35d8a 100644 --- a/services/network/test/test_network_context.h +++ b/services/network/test/test_network_context.h -@@ -113,6 +113,7 @@ class TestNetworkContext : public mojom::NetworkContext { +@@ -114,6 +114,7 @@ class TestNetworkContext : public mojom::NetworkContext { void CloseIdleConnections(CloseIdleConnectionsCallback callback) override {} void SetNetworkConditions(const base::UnguessableToken& throttling_profile_id, mojom::NetworkConditionsPtr conditions) override {} 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 a00ac9eec793..27d62b13f0b3 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,10 +6,10 @@ 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 df522c390d930536a646d6a410ab98b8be0fa58d..a4a7bdfa597fa20695b515cc5b4fe8aff5bf252b 100644 +index 8d3e54fc773b1de7083e0630bac39c211973cd17..7acb88e44627804e356ffec3a3f3e6c06437d606 100644 --- a/content/browser/renderer_host/render_view_host_impl.cc +++ b/content/browser/renderer_host/render_view_host_impl.cc -@@ -597,6 +597,11 @@ void RenderViewHostImpl::SetBackgroundOpaque(bool opaque) { +@@ -581,6 +581,11 @@ void RenderViewHostImpl::SetBackgroundOpaque(bool opaque) { GetWidget()->GetAssociatedFrameWidget()->SetBackgroundOpaque(opaque); } @@ -22,11 +22,11 @@ index df522c390d930536a646d6a410ab98b8be0fa58d..a4a7bdfa597fa20695b515cc5b4fe8af return is_active(); } diff --git a/content/browser/renderer_host/render_view_host_impl.h b/content/browser/renderer_host/render_view_host_impl.h -index df589265f13c811d6ade9cbc487a6e8ed6e67574..040de7d598e4a1c40a46a273f4144f4c220a7fcf 100644 +index 9ac4773bb3600395b7e360b7c42aeb5e240607fc..cf7515a7c36cc394c37f851dd8c1371ebfeaa844 100644 --- a/content/browser/renderer_host/render_view_host_impl.h +++ b/content/browser/renderer_host/render_view_host_impl.h -@@ -133,6 +133,7 @@ class CONTENT_EXPORT RenderViewHostImpl - SiteInstanceImpl* GetSiteInstance() override; +@@ -132,6 +132,7 @@ class CONTENT_EXPORT RenderViewHostImpl + RenderViewHostDelegate* GetDelegate() override; bool IsRenderViewLive() override; + void SetSchedulerThrottling(bool allowed) override; @@ -34,10 +34,10 @@ index df589265f13c811d6ade9cbc487a6e8ed6e67574..040de7d598e4a1c40a46a273f4144f4c void SendRendererPreferencesToRenderer( const blink::RendererPreferences& preferences); diff --git a/content/public/browser/render_view_host.h b/content/public/browser/render_view_host.h -index 4c082605daf6841205f51789c1df329cc10ce57e..f450523c978c7603af4358fb928c6be70fc3130a 100644 +index 0edd8ddc099b2e66869d2d4fff42f761d3be6079..bcc704efaf27f9b042b349fa0b097917716b5acd 100644 --- a/content/public/browser/render_view_host.h +++ b/content/public/browser/render_view_host.h -@@ -91,6 +91,9 @@ class CONTENT_EXPORT RenderViewHost { +@@ -88,6 +88,9 @@ class CONTENT_EXPORT RenderViewHost { // Returns true if the RenderView is active and has not crashed. virtual bool IsRenderViewLive() = 0; @@ -48,10 +48,10 @@ index 4c082605daf6841205f51789c1df329cc10ce57e..f450523c978c7603af4358fb928c6be7 // This interface should only be implemented inside content. friend class RenderViewHostImpl; diff --git a/content/renderer/render_view_impl.h b/content/renderer/render_view_impl.h -index 56374d40d7fdb606dc00d76fbbe5b4d24cc247a9..9c966d711235dd8f041134108e33f03f7551e49a 100644 +index 3f455e17e167bd01a219abf2f6fd2b8e235cf3c8..5dd40d3e2f28cf53729801c6960a6f64d057bf7f 100644 --- a/content/renderer/render_view_impl.h +++ b/content/renderer/render_view_impl.h -@@ -234,6 +234,8 @@ class CONTENT_EXPORT RenderViewImpl : public blink::WebViewClient, +@@ -224,6 +224,8 @@ class CONTENT_EXPORT RenderViewImpl : public blink::WebViewClient, static WindowOpenDisposition NavigationPolicyToDisposition( blink::WebNavigationPolicy policy); @@ -85,10 +85,10 @@ index e8212d4566666683d67590ef0fe11e452d71b6fc..b19500d4af881c795e84baff16e9973e // 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 509a0dcc6620ead11ad91bafec7563c213492af2..1da5d311360171bbb8a5c5da50f6f9e676d8d13e 100644 +index a730ed9b13fc355542b7520b66fa015ac7ca58c4..fb994344ea53e17df84f176ad7d8722793b72cfd 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -3495,6 +3495,13 @@ PageScheduler* WebViewImpl::Scheduler() const { +@@ -3516,6 +3516,13 @@ PageScheduler* WebViewImpl::Scheduler() const { return GetPage()->GetPageScheduler(); } @@ -102,7 +102,7 @@ index 509a0dcc6620ead11ad91bafec7563c213492af2..1da5d311360171bbb8a5c5da50f6f9e6 void WebViewImpl::SetVisibilityState( mojom::blink::PageVisibilityState visibility_state, bool is_initial_state) { -@@ -3505,7 +3512,8 @@ void WebViewImpl::SetVisibilityState( +@@ -3528,7 +3535,8 @@ void WebViewImpl::SetVisibilityState( } GetPage()->SetVisibilityState(visibility_state, is_initial_state); GetPage()->GetPageScheduler()->SetPageVisible( @@ -113,10 +113,10 @@ index 509a0dcc6620ead11ad91bafec7563c213492af2..1da5d311360171bbb8a5c5da50f6f9e6 mojom::blink::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 40b74bd0b01e7271aa8d729777651f8ba79245d3..e9962f2dc5dccc510ab543e97dbf1c672c86a423 100644 +index a76b09c9226e45742847fbeac18bab6d8b7b7b7e..f1f878e483c9f7185c621cd803ac4855cb5e2067 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.h +++ b/third_party/blink/renderer/core/exported/web_view_impl.h -@@ -363,6 +363,7 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -368,6 +368,7 @@ class CORE_EXPORT WebViewImpl final : public WebView, LocalDOMWindow* PagePopupWindow() const; PageScheduler* Scheduler() const override; @@ -124,7 +124,7 @@ index 40b74bd0b01e7271aa8d729777651f8ba79245d3..e9962f2dc5dccc510ab543e97dbf1c67 void SetVisibilityState(mojom::blink::PageVisibilityState visibility_state, bool is_initial_state) override; mojom::blink::PageVisibilityState GetVisibilityState() override; -@@ -759,11 +760,18 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -764,11 +765,18 @@ class CORE_EXPORT WebViewImpl final : public WebView, SkColor background_color_override_ = Color::kTransparent; float zoom_factor_override_ = 0.f; diff --git a/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch b/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch index bdf70cadca9b..fbf67aae9960 100644 --- a/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch +++ b/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch @@ -81,10 +81,10 @@ index 1026b739d283f0fc252fa2af83a6d4cf51bc8553..fe562ab60ce98b8bb0c5080a6428deb3 private: const HWND hwnd_; diff --git a/components/viz/service/BUILD.gn b/components/viz/service/BUILD.gn -index 0f6a5a2fa3d82ae76889ef55af14e18b86cacffc..e33cd6305f53aa9287c61bf2d38848f878a14d30 100644 +index 85a18008a1344ab7c76d8df1338f8c7ab12850f8..3cc6f722fb63d47535fb91cfc2b1362c3328df2a 100644 --- a/components/viz/service/BUILD.gn +++ b/components/viz/service/BUILD.gn -@@ -119,6 +119,8 @@ viz_component("service") { +@@ -129,6 +129,8 @@ viz_component("service") { "display_embedder/output_surface_provider_impl.h", "display_embedder/server_shared_bitmap_manager.cc", "display_embedder/server_shared_bitmap_manager.h", diff --git a/patches/chromium/fix_add_check_for_sandbox_then_result.patch b/patches/chromium/fix_add_check_for_sandbox_then_result.patch new file mode 100644 index 000000000000..27884a21e40d --- /dev/null +++ b/patches/chromium/fix_add_check_for_sandbox_then_result.patch @@ -0,0 +1,21 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Samuel Attard +Date: Wed, 3 Mar 2021 15:52:46 -0800 +Subject: fix: add CHECK for sandbox then_result + +It fixes things, we do not know why, we should look at reverting this +patch and doing further investigation in the future. This patch cannot +be upstreamed. + +diff --git a/sandbox/linux/bpf_dsl/bpf_dsl.cc b/sandbox/linux/bpf_dsl/bpf_dsl.cc +index 82a40696b8756305e6af83beec351c58c9c1a9e6..5ef1852331b8ebe0834c9951fb67177226997e8b 100644 +--- a/sandbox/linux/bpf_dsl/bpf_dsl.cc ++++ b/sandbox/linux/bpf_dsl/bpf_dsl.cc +@@ -305,6 +305,7 @@ Elser::~Elser() { + } + + Elser Elser::ElseIf(BoolExpr cond, ResultExpr then_result) const { ++ CHECK(then_result); + return Elser(Cons(std::make_pair(std::move(cond), std::move(then_result)), + clause_list_)); + } diff --git a/patches/chromium/fix_properly_honor_printing_page_ranges.patch b/patches/chromium/fix_properly_honor_printing_page_ranges.patch index c81d3bb7ba46..c61dfd566221 100644 --- a/patches/chromium/fix_properly_honor_printing_page_ranges.patch +++ b/patches/chromium/fix_properly_honor_printing_page_ranges.patch @@ -62,10 +62,10 @@ index aa950b59390fdae9a5152affb7a7438cb78eb6f4..9b5307bda7b73cb502fe185be2a7c02e PMPrintSettings print_settings = static_cast([print_info_.get() PMPrintSettings]); diff --git a/printing/printing_context_system_dialog_win.cc b/printing/printing_context_system_dialog_win.cc -index d3c8677f30d72efc49b28f293260c74c7b8d8b4e..f6e66aaa58ab1881d64dcbb320ae8b5ac7631b28 100644 +index fe7fc797504dcc7097a3d79a2dab2c18de737048..20c63b1f657f2969850b31eaafdff7e500c60de8 100644 --- a/printing/printing_context_system_dialog_win.cc +++ b/printing/printing_context_system_dialog_win.cc -@@ -52,14 +52,28 @@ void PrintingContextSystemDialogWin::AskUserForSettings( +@@ -53,14 +53,28 @@ void PrintingContextSystemDialogWin::AskUserForSettings( PRINTPAGERANGE ranges[32]; dialog_options.nStartPage = START_PAGE_GENERAL; if (max_pages) { 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 3ce1c664b34c..6b4ddb323575 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 2b81f39b61ad77bdf5382b15d3874532f017b93b..07b77b9eda090403d7d69e19085c2f574a18007f 100644 +index 5c06f5d680357028cffa00f3dfdc17ff02a4a560..cefe0bab7ab42c8b0697cb64fc687545251f7410 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -2960,11 +2960,13 @@ bool WebContentsImpl::HandleMouseEvent(const blink::WebMouseEvent& event) { +@@ -3026,11 +3026,13 @@ bool WebContentsImpl::HandleMouseEvent(const blink::WebMouseEvent& event) { WebContentsImpl* outermost = GetOutermostWebContents(); if (event.button == blink::WebPointerProperties::Button::kBack && outermost->GetController().CanGoBack()) { diff --git a/patches/chromium/frame_host_manager.patch b/patches/chromium/frame_host_manager.patch index aed89e5315cd..53e59e7c357f 100644 --- a/patches/chromium/frame_host_manager.patch +++ b/patches/chromium/frame_host_manager.patch @@ -42,10 +42,10 @@ index 65e627f2fa89352b0be27b5813d71a622bf1d326..113f4fd00f1cf994b39f64c9da387855 // another SiteInstance for the same site. void RegisterSiteInstance(SiteInstanceImpl* site_instance); diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc -index 95f300136a587d19316d6c91a1611a0afa6fa347..e09b590396a9c660079287459cd60e4d4f06ee99 100644 +index 7bd420257285961e5cd6f7b2367e251dbec97749..13a291fb52a4b588257522fbcf6bafb330f94ed2 100644 --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc -@@ -1518,6 +1518,21 @@ void NavigationRequest::BeginNavigation() { +@@ -1538,6 +1538,21 @@ void NavigationRequest::BeginNavigation() { if (IsSameDocument()) { render_frame_host_ = frame_tree_node_->current_frame_host(); } else { @@ -67,7 +67,7 @@ index 95f300136a587d19316d6c91a1611a0afa6fa347..e09b590396a9c660079287459cd60e4d // Select an appropriate RenderFrameHost. std::string frame_host_choice_reason; render_frame_host_ = -@@ -5516,6 +5531,7 @@ void NavigationRequest::CheckStateTransition(NavigationState state) const { +@@ -5574,6 +5589,7 @@ void NavigationRequest::CheckStateTransition(NavigationState state) const { {WILL_START_REQUEST, { WILL_REDIRECT_REQUEST, WILL_PROCESS_RESPONSE, @@ -75,7 +75,7 @@ index 95f300136a587d19316d6c91a1611a0afa6fa347..e09b590396a9c660079287459cd60e4d READY_TO_COMMIT, DID_COMMIT, CANCELING, -@@ -5529,10 +5545,14 @@ void NavigationRequest::CheckStateTransition(NavigationState state) const { +@@ -5587,10 +5603,14 @@ void NavigationRequest::CheckStateTransition(NavigationState state) const { WILL_FAIL_REQUEST, }}, {WILL_PROCESS_RESPONSE, { @@ -91,7 +91,7 @@ index 95f300136a587d19316d6c91a1611a0afa6fa347..e09b590396a9c660079287459cd60e4d NOT_STARTED, DID_COMMIT, diff --git a/content/browser/renderer_host/navigation_request.h b/content/browser/renderer_host/navigation_request.h -index e29e67f5c91215a317d4244c7b62d89bea91a1fe..7ed0f9e6586b42b073d9dea8225baf3816516f5c 100644 +index 5dbfedddef3b345844863db6444e9d23ea2c5fe8..d7307760c29af9f902c7385b5c77c061860542ba 100644 --- a/content/browser/renderer_host/navigation_request.h +++ b/content/browser/renderer_host/navigation_request.h @@ -133,6 +133,10 @@ class CONTENT_EXPORT NavigationRequest @@ -106,10 +106,10 @@ index e29e67f5c91215a317d4244c7b62d89bea91a1fe..7ed0f9e6586b42b073d9dea8225baf38 READY_TO_COMMIT, diff --git a/content/browser/renderer_host/render_frame_host_manager.cc b/content/browser/renderer_host/render_frame_host_manager.cc -index 91f88109dacae55b8bb849e13d06309e89d028db..b57dbf3fb0aa6f9398cf09839d4208c5f055ee70 100644 +index 8c15970fce8516a96aab3c4c23c62cd56ad2516a..31665aeb08b5b7c68e3cc8168d209ba12f7869ee 100644 --- a/content/browser/renderer_host/render_frame_host_manager.cc +++ b/content/browser/renderer_host/render_frame_host_manager.cc -@@ -2745,6 +2745,16 @@ scoped_refptr +@@ -2758,6 +2758,16 @@ scoped_refptr RenderFrameHostManager::GetSiteInstanceForNavigationRequest( NavigationRequest* request, std::string* reason) { @@ -126,7 +126,7 @@ index 91f88109dacae55b8bb849e13d06309e89d028db..b57dbf3fb0aa6f9398cf09839d4208c5 SiteInstance* current_site_instance = render_frame_host_->GetSiteInstance(); // All children of MHTML documents must be MHTML documents. They all live in -@@ -2772,10 +2782,59 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( +@@ -2785,10 +2795,59 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( // // TODO(clamy): We should also consider as a candidate SiteInstance the // speculative SiteInstance that was computed on redirects. @@ -190,7 +190,7 @@ index 91f88109dacae55b8bb849e13d06309e89d028db..b57dbf3fb0aa6f9398cf09839d4208c5 // Account for renderer-initiated reload as well. // Needed as a workaround for https://crbug.com/1045524, remove it when it is -@@ -2815,6 +2874,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( +@@ -2828,6 +2887,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( request->ResetStateForSiteInstanceChange(); } @@ -201,7 +201,7 @@ index 91f88109dacae55b8bb849e13d06309e89d028db..b57dbf3fb0aa6f9398cf09839d4208c5 } diff --git a/content/browser/site_instance_impl.cc b/content/browser/site_instance_impl.cc -index 17ba2e76bc9b1e39c0b9e6e8938764c3096cfac4..9f36ec582037cb1b25fad95b1df5145c233f9b94 100644 +index 5dc7e7e2a1a9809f71fd115c240d736e09553314..55bdf011d7af564096e2f453faaf580172887878 100644 --- a/content/browser/site_instance_impl.cc +++ b/content/browser/site_instance_impl.cc @@ -792,6 +792,10 @@ bool SiteInstanceImpl::HasRelatedSiteInstance(const SiteInfo& site_info) { @@ -216,10 +216,10 @@ index 17ba2e76bc9b1e39c0b9e6e8938764c3096cfac4..9f36ec582037cb1b25fad95b1df5145c const GURL& url) { return GetRelatedSiteInstanceImpl( diff --git a/content/browser/site_instance_impl.h b/content/browser/site_instance_impl.h -index 1d79bf9261aad6e649a029257f7e6848cc34ad69..64cd5e188786ed60e474aeb1cabacd3d85069ae0 100644 +index 6aae4093ee732480f711a210fea0873a5e7ac77a..cb11fa9e3a425377ebc39067be69563047003d21 100644 --- a/content/browser/site_instance_impl.h +++ b/content/browser/site_instance_impl.h -@@ -323,6 +323,7 @@ class CONTENT_EXPORT SiteInstanceImpl final : public SiteInstance, +@@ -335,6 +335,7 @@ class CONTENT_EXPORT SiteInstanceImpl final : public SiteInstance, BrowserContext* GetBrowserContext() override; const GURL& GetSiteURL() override; scoped_refptr GetRelatedSiteInstance(const GURL& url) override; @@ -228,7 +228,7 @@ index 1d79bf9261aad6e649a029257f7e6848cc34ad69..64cd5e188786ed60e474aeb1cabacd3d 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 e3088a155d552c87f009cec282f32730d9cb3655..d645a77362fad0033a256c2b946e8d6ce803c771 100644 +index 343fc9aa93967500f313809f825ac01122852dfe..f7fa2a7fcf14a049f1cfa29bd86d335a3cb044c9 100644 --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc @@ -66,6 +66,21 @@ @@ -254,7 +254,7 @@ index e3088a155d552c87f009cec282f32730d9cb3655..d645a77362fad0033a256c2b946e8d6c const MainFunctionParams& parameters) { return nullptr; diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h -index ecd1d367a7634e377bffbe7590d2c21b49a56e93..84a0da56a65770f061728329b2a178533278aeec 100644 +index b1f955f30528077ab0aea5a343781b3221113249..2f828109553a26b91270d84d320e988a3793a822 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h @@ -254,8 +254,45 @@ class CONTENT_EXPORT ContentBrowserClient { diff --git a/patches/chromium/gin_enable_disable_v8_platform.patch b/patches/chromium/gin_enable_disable_v8_platform.patch index 38871fc951da..94ae28fb7ca8 100644 --- a/patches/chromium/gin_enable_disable_v8_platform.patch +++ b/patches/chromium/gin_enable_disable_v8_platform.patch @@ -7,10 +7,10 @@ We don't use gin to create the V8 platform, because we need to inject Node things. diff --git a/gin/isolate_holder.cc b/gin/isolate_holder.cc -index 872025f8e29907f90b6b775f1bda4ad2dc19d491..5633e066f6ec829d050f4d154d618cf664ec8dc0 100644 +index 73435b1c2c008a376421f8c94059fdb61d58feed..9ded78a8fd05bf4278c9800fcd0cdea6cefa2ac8 100644 --- a/gin/isolate_holder.cc +++ b/gin/isolate_holder.cc -@@ -107,9 +107,10 @@ IsolateHolder::~IsolateHolder() { +@@ -105,9 +105,10 @@ IsolateHolder::~IsolateHolder() { // static void IsolateHolder::Initialize(ScriptMode mode, v8::ArrayBuffer::Allocator* allocator, @@ -24,10 +24,10 @@ index 872025f8e29907f90b6b775f1bda4ad2dc19d491..5633e066f6ec829d050f4d154d618cf6 g_reference_table = reference_table; } diff --git a/gin/public/isolate_holder.h b/gin/public/isolate_holder.h -index a8eb7190ddb87405e8d5b810c75d3fac6bab2120..689571089c3619f45d2f03df01f83bd73df55ba2 100644 +index f23af2d9738f3aa76e3a49301e1c3216ee4a64b4..ede178acabc63c3c33d6ce93efd5632bec50ba89 100644 --- a/gin/public/isolate_holder.h +++ b/gin/public/isolate_holder.h -@@ -89,7 +89,8 @@ class GIN_EXPORT IsolateHolder { +@@ -88,7 +88,8 @@ class GIN_EXPORT IsolateHolder { // reference pointers. Otherwise, it can be nullptr. static void Initialize(ScriptMode mode, v8::ArrayBuffer::Allocator* allocator, @@ -38,7 +38,7 @@ index a8eb7190ddb87405e8d5b810c75d3fac6bab2120..689571089c3619f45d2f03df01f83bd7 v8::Isolate* isolate() { return isolate_; } diff --git a/gin/v8_initializer.cc b/gin/v8_initializer.cc -index 2aba21ed3233460a660845b12ed7b88d33985dba..2b9e4956d8abb80f5cd44345816ed8af98d277f1 100644 +index ac74939f36630673c4ee9db02bef320f17c86154..3dd0f2be0be9ac5194523333aa0d822eaa9eb814 100644 --- a/gin/v8_initializer.cc +++ b/gin/v8_initializer.cc @@ -198,12 +198,14 @@ enum LoadV8FileResult { diff --git a/patches/chromium/gritsettings_resource_ids.patch b/patches/chromium/gritsettings_resource_ids.patch index b3fdf94a161f..5ed849b53d51 100644 --- a/patches/chromium/gritsettings_resource_ids.patch +++ b/patches/chromium/gritsettings_resource_ids.patch @@ -6,10 +6,10 @@ Subject: gritsettings_resource_ids.patch Add electron resources file to the list of resource ids generation. diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec -index 91e764e8a85f041df9577d0212f9a62c65556e0d..6b4725f517593990b8b3baf6d6fe487b9926a571 100644 +index 6d19ae8a5a125b28d2228408383ccbed9496f10f..407f779d5ca671a065e60c166486cfc6fd912713 100644 --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec -@@ -701,6 +701,11 @@ +@@ -723,6 +723,11 @@ "includes": [3880], }, diff --git a/patches/chromium/hack_plugin_response_interceptor_to_point_to_electron.patch b/patches/chromium/hack_plugin_response_interceptor_to_point_to_electron.patch index efb83be53172..a88e6e632b0a 100644 --- a/patches/chromium/hack_plugin_response_interceptor_to_point_to_electron.patch +++ b/patches/chromium/hack_plugin_response_interceptor_to_point_to_electron.patch @@ -8,7 +8,7 @@ require a largeish patch to get working, so just redirect it to our implementation instead. diff --git a/chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.cc b/chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.cc -index e6348dc2ec5d57b9288380791ded9c978774e506..32decd4a731170d60e0fe633530bd1b9f95d348f 100644 +index b8f419e2b78576a3f5bdc6f53ee79bf6468c52c2..103761649c95841ca4b46c3bb6a905c01b2a9625 100644 --- a/chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.cc +++ b/chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.cc @@ -9,8 +9,8 @@ diff --git a/patches/chromium/ignore_rc_check.patch b/patches/chromium/ignore_rc_check.patch index 26296230dce2..1d8b29e7f479 100644 --- a/patches/chromium/ignore_rc_check.patch +++ b/patches/chromium/ignore_rc_check.patch @@ -7,10 +7,10 @@ Dont compare RC.exe and RC.py output. FIXME: It has to be reverted once the script is fixed. diff --git a/build/toolchain/win/rc/rc.py b/build/toolchain/win/rc/rc.py -index 74761866eecfe4e742af974aab71ec05817c3a6a..91ad9ac4c7d59be0cc95341d61e0e30a23869601 100755 +index 2ab41225fba8d22a974286835e4c454ef2e54f54..97a61e24e726144ff56d4a68dab5240555613d1a 100755 --- a/build/toolchain/win/rc/rc.py +++ b/build/toolchain/win/rc/rc.py -@@ -234,7 +234,10 @@ def CompareToMsRcOutput(preprocessed_output, is_utf8, flags): +@@ -245,7 +245,10 @@ def CompareToMsRcOutput(preprocessed_output, is_utf8, flags): # Assert Microsoft rc.exe and rc.py produced identical .res files. if rc_exe_exit_code == 0: import filecmp diff --git a/patches/chromium/isolate_holder.patch b/patches/chromium/isolate_holder.patch index 07ec7fa1ec18..b697d91fde51 100644 --- a/patches/chromium/isolate_holder.patch +++ b/patches/chromium/isolate_holder.patch @@ -8,7 +8,7 @@ needs to register on an isolate so that it can be used later down in the initialization process of an isolate. diff --git a/gin/isolate_holder.cc b/gin/isolate_holder.cc -index 5633e066f6ec829d050f4d154d618cf664ec8dc0..2604ec42fbb6e04499c660e064a5fa2f676037e2 100644 +index 9ded78a8fd05bf4278c9800fcd0cdea6cefa2ac8..f25c4bc7aa0e13ef772294afec7d94c01c498205 100644 --- a/gin/isolate_holder.cc +++ b/gin/isolate_holder.cc @@ -53,7 +53,8 @@ IsolateHolder::IsolateHolder( @@ -35,10 +35,10 @@ index 5633e066f6ec829d050f4d154d618cf664ec8dc0..2604ec42fbb6e04499c660e064a5fa2f new PerIsolateData(isolate_, allocator, access_mode_, task_runner)); if (isolate_creation_mode == IsolateCreationMode::kCreateSnapshot) { diff --git a/gin/public/isolate_holder.h b/gin/public/isolate_holder.h -index 689571089c3619f45d2f03df01f83bd73df55ba2..7c50707f2ec40fbf27c956460e4b0e6c8e4db8f7 100644 +index ede178acabc63c3c33d6ce93efd5632bec50ba89..ffe7331cf1806417a32e66970f81b7797b9b80fc 100644 --- a/gin/public/isolate_holder.h +++ b/gin/public/isolate_holder.h -@@ -76,7 +76,8 @@ class GIN_EXPORT IsolateHolder { +@@ -75,7 +75,8 @@ class GIN_EXPORT IsolateHolder { AccessMode access_mode, AllowAtomicsWaitMode atomics_wait_mode, IsolateType isolate_type, diff --git a/patches/chromium/mas_disable_remote_accessibility.patch b/patches/chromium/mas_disable_remote_accessibility.patch index 2297a8403003..a55009516f1d 100644 --- a/patches/chromium/mas_disable_remote_accessibility.patch +++ b/patches/chromium/mas_disable_remote_accessibility.patch @@ -117,7 +117,7 @@ index 055d28d8c6f6cc6826db1f888b1ea0f535c3c716..1eedb217a700ffdc73d30c5daadf003d // Used to force the NSApplication's focused accessibility element to be the // content::BrowserAccessibilityCocoa accessibility tree when the NSView for diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm -index e811980fc5798e668163adafce4e72a7188d94fe..cd45e6c19505e553a4632dd478d33f3ee2cce0de 100644 +index 2b1574aa1669b0b5c9e7a38aba3f0345602bc440..bfa99980776b9aa216644ea146fbb1d1a085a85d 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm @@ -234,8 +234,10 @@ @@ -154,7 +154,7 @@ index e811980fc5798e668163adafce4e72a7188d94fe..cd45e6c19505e553a4632dd478d33f3e } bool RenderWidgetHostViewMac::SyncIsWidgetForMainFrame( -@@ -1905,12 +1911,14 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback, +@@ -1906,12 +1912,14 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback, void RenderWidgetHostViewMac::SetRemoteAccessibilityWindowToken( const std::vector& window_token) { @@ -170,10 +170,10 @@ index e811980fc5798e668163adafce4e72a7188d94fe..cd45e6c19505e553a4632dd478d33f3e /////////////////////////////////////////////////////////////////////////////// diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn -index abb7355a2f5bf8475d902aafd153115d51b703cb..f0d596e4021b44f13ec399b1dcfbdd5a77a1971f 100644 +index 8987ed3c59a3b482cae14f2cce71a6febfd41a73..dc646e919475198d332004d59cde25d2a3044988 100644 --- a/ui/base/BUILD.gn +++ b/ui/base/BUILD.gn -@@ -312,6 +312,13 @@ component("base") { +@@ -314,6 +314,13 @@ component("base") { ] } diff --git a/patches/chromium/mas_no_private_api.patch b/patches/chromium/mas_no_private_api.patch index 2af40aad5882..5c8ed2f47af3 100644 --- a/patches/chromium/mas_no_private_api.patch +++ b/patches/chromium/mas_no_private_api.patch @@ -383,10 +383,10 @@ index b5940319ae17bfaf43daf18feb42722bf3705bdd..d997cfaa6275a570686d0c1703c30f21 - (id)accessibilityFocusedUIElement { diff --git a/content/browser/accessibility/browser_accessibility_manager_mac.mm b/content/browser/accessibility/browser_accessibility_manager_mac.mm -index d67fba3acaa02aaa6f5ee4a5004c378007b353a3..4b8b4e5e07d5e7c591903cf4a67c258cde9ce9e2 100644 +index 03eb8ace47bc9262a05ac82747e1e67ffb1d5c97..ef39544bbf418099621784362660f5004934835d 100644 --- a/content/browser/accessibility/browser_accessibility_manager_mac.mm +++ b/content/browser/accessibility/browser_accessibility_manager_mac.mm -@@ -484,7 +484,7 @@ void PostAnnouncementNotification(NSString* announcement) { +@@ -483,7 +483,7 @@ void PostAnnouncementNotification(NSString* announcement) { if (native_focus_object && [native_focus_object instanceActive]) { [user_info setObject:native_focus_object forKey:ui::NSAccessibilityTextChangeElement]; @@ -395,7 +395,7 @@ index d67fba3acaa02aaa6f5ee4a5004c378007b353a3..4b8b4e5e07d5e7c591903cf4a67c258c id selected_text = [native_focus_object selectedTextMarkerRange]; if (selected_text) { NSString* const NSAccessibilitySelectedTextMarkerRangeAttribute = -@@ -492,6 +492,7 @@ void PostAnnouncementNotification(NSString* announcement) { +@@ -491,6 +491,7 @@ void PostAnnouncementNotification(NSString* announcement) { [user_info setObject:selected_text forKey:NSAccessibilitySelectedTextMarkerRangeAttribute]; } @@ -548,10 +548,10 @@ index a994f74bb68d1e57ffa787e159f0a6c69e7b6953..1d84f84b59b2bae75c10c00da730022e } diff --git a/net/dns/dns_config_service_posix.cc b/net/dns/dns_config_service_posix.cc -index 3ab9e10949db76a31fdea78ba02945b7fdf73bf1..67d1808fc77fe4aa685b2a99a3df2fb999a28887 100644 +index dddd4a98a99fdea4c32d9c5b33a8fc661c75f590..a210069a9576d4aca436cdc8a2cd4322714aa24c 100644 --- a/net/dns/dns_config_service_posix.cc +++ b/net/dns/dns_config_service_posix.cc -@@ -242,8 +242,8 @@ class DnsConfigServicePosix::Watcher : public DnsConfigService::Watcher { +@@ -136,8 +136,8 @@ class DnsConfigServicePosix::Watcher : public DnsConfigService::Watcher { bool Watch() override { CheckOnCorrectSequence(); @@ -561,10 +561,10 @@ index 3ab9e10949db76a31fdea78ba02945b7fdf73bf1..67d1808fc77fe4aa685b2a99a3df2fb9 if (!config_watcher_.Watch(base::BindRepeating(&Watcher::OnConfigChanged, base::Unretained(this)))) { LOG(ERROR) << "DNS config watch failed to start."; -@@ -261,6 +261,7 @@ class DnsConfigServicePosix::Watcher : public DnsConfigService::Watcher { +@@ -154,6 +154,7 @@ class DnsConfigServicePosix::Watcher : public DnsConfigService::Watcher { success = false; } - #endif // !defined(OS_ANDROID) && !defined(OS_IOS) + #endif // !defined(OS_IOS) +#endif return success; } 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 0e15b6f08b9b..6e02b00ee312 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 db667e13f2e4d9e96e9ac28f17c61412d6279ec7..94992396b2cd4a017788bfdab6f944647b08bb8f 100644 +index dc1d135df68e8f11619faffb57dfd38b41bc06d1..67986e284434115debf6a638b62c9585ac207c1d 100644 --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -118,6 +118,11 @@ +@@ -117,6 +117,11 @@ #include "services/network/url_loader.h" #include "services/network/url_request_context_builder_mojo.h" @@ -22,7 +22,7 @@ index db667e13f2e4d9e96e9ac28f17c61412d6279ec7..94992396b2cd4a017788bfdab6f94464 #if BUILDFLAG(IS_CT_SUPPORTED) #include "components/certificate_transparency/chrome_ct_policy_enforcer.h" #include "components/certificate_transparency/chrome_require_ct_delegate.h" -@@ -376,6 +381,79 @@ bool SCTAuditingDelegate::IsSCTAuditingEnabled() { +@@ -375,6 +380,79 @@ bool SCTAuditingDelegate::IsSCTAuditingEnabled() { } // namespace @@ -102,7 +102,7 @@ index db667e13f2e4d9e96e9ac28f17c61412d6279ec7..94992396b2cd4a017788bfdab6f94464 constexpr uint32_t NetworkContext::kMaxOutstandingRequestsPerProcess; NetworkContext::PendingCertVerify::PendingCertVerify() = default; -@@ -575,6 +653,13 @@ void NetworkContext::SetClient( +@@ -574,6 +652,13 @@ void NetworkContext::SetClient( client_.Bind(std::move(client)); } @@ -116,67 +116,18 @@ index db667e13f2e4d9e96e9ac28f17c61412d6279ec7..94992396b2cd4a017788bfdab6f94464 void NetworkContext::CreateURLLoaderFactory( mojo::PendingReceiver receiver, mojom::URLLoaderFactoryParamsPtr params) { -@@ -1878,8 +1963,9 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( - "NetworkContext should pass CertVerifierServiceRemoteParams."; - - std::unique_ptr cert_verifier; -+ std::unique_ptr temp_verifier; - if (g_cert_verifier_for_testing) { -- cert_verifier = std::make_unique(); -+ temp_verifier = std::make_unique(); - } else { - if (params_->cert_verifier_params && - params_->cert_verifier_params->is_remote_params()) { -@@ -1907,7 +1993,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( - cert_net_fetcher_ = - base::MakeRefCounted(); - -- cert_verifier = CreateCertVerifier(creation_params, cert_net_fetcher_); -+ temp_verifier = CreateCertVerifier(creation_params, cert_net_fetcher_); - } - - #if BUILDFLAG(IS_CT_SUPPORTED) -@@ -1931,9 +2017,9 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( - - // Whether the cert verifier is remote or in-process, we should wrap it in - // caching and coalescing layers to avoid extra verifications and IPCs. -- cert_verifier = std::make_unique( -+ temp_verifier = std::make_unique( - std::make_unique( -- std::move(cert_verifier))); -+ std::move(temp_verifier))); - - #if BUILDFLAG(IS_CHROMEOS_ASH) - cert_verifier_with_trust_anchors_ = -@@ -1945,10 +2031,24 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -1917,6 +2002,9 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( std::move(cert_verifier)); cert_verifier = base::WrapUnique(cert_verifier_with_trust_anchors_); #endif // BUILDFLAG(IS_CHROMEOS_ASH) -+ if (!temp_verifier) { -+#if !defined(OS_LINUX) -+ temp_verifier = std::make_unique( -+ net::CertVerifyProc::CreateSystemVerifyProc(std::move(cert_net_fetcher_))); -+#else -+ temp_verifier = std::make_unique( -+ net::CertVerifyProc::CreateBuiltinVerifyProc(std::move(cert_net_fetcher_))); -+#endif -+ } -+ auto remote_cert_verifier = std::make_unique(std::move(temp_verifier)); ++ auto remote_cert_verifier = std::make_unique(std::move(cert_verifier)); + remote_cert_verifier_ = remote_cert_verifier.get(); + cert_verifier = std::make_unique(std::move(remote_cert_verifier)); } -- builder.SetCertVerifier(IgnoreErrorsCertVerifier::MaybeWrapCertVerifier( -- *command_line, nullptr, std::move(cert_verifier))); -+ cert_verifier = IgnoreErrorsCertVerifier::MaybeWrapCertVerifier( -+ *command_line, nullptr, std::move(cert_verifier)); -+ -+ builder.SetCertVerifier(std::move(cert_verifier)); - - #if BUILDFLAG(IS_CT_SUPPORTED) - if (params_->enforce_chrome_ct_policy) { + builder.SetCertVerifier(IgnoreErrorsCertVerifier::MaybeWrapCertVerifier( diff --git a/services/network/network_context.h b/services/network/network_context.h -index 8c7a354d0e0deae7fab9990832b34c966b2e1e9f..c1cd4a20995af72fd386702d7baeb7d804d0844f 100644 +index 102548a7f132cd1f7d46421fc2ae941dbff7c29d..34281acc5a2dece3b84666b25f4af423a04bf8df 100644 --- a/services/network/network_context.h +++ b/services/network/network_context.h @@ -90,6 +90,7 @@ class DomainReliabilityMonitor; @@ -196,7 +147,7 @@ index 8c7a354d0e0deae7fab9990832b34c966b2e1e9f..c1cd4a20995af72fd386702d7baeb7d8 void ResetURLLoaderFactories() override; void GetCookieManager( mojo::PendingReceiver receiver) override; -@@ -699,6 +702,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -693,6 +696,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext CertVerifierWithTrustAnchors* cert_verifier_with_trust_anchors_ = nullptr; #endif @@ -206,10 +157,10 @@ index 8c7a354d0e0deae7fab9990832b34c966b2e1e9f..c1cd4a20995af72fd386702d7baeb7d8 // CertNetFetcher is not used by the current platform, or if the actual // net::CertVerifier is instantiated outside of the network service. diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom -index 9b0c830f36ae7de9987c0c27ad9fafce31d146e7..620ed2a4752ded3cbe6a2ce66fce25433d64d8f6 100644 +index 6f5abd0fa955f15584cb15a4a0dee6d47c657a1e..efe52249cbbcfed616d3190714ef037bdbde1621 100644 --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -228,6 +228,17 @@ struct CTPolicy { +@@ -222,6 +222,17 @@ struct CTPolicy { array excluded_legacy_spkis; }; @@ -227,7 +178,7 @@ index 9b0c830f36ae7de9987c0c27ad9fafce31d146e7..620ed2a4752ded3cbe6a2ce66fce2543 // Parameters for constructing a network context. struct NetworkContextParams { // Name used by memory tools to identify the context. -@@ -884,6 +895,9 @@ interface NetworkContext { +@@ -870,6 +881,9 @@ interface NetworkContext { // Sets a client for this network context. SetClient(pending_remote client); diff --git a/patches/chromium/no_cache_storage_check.patch b/patches/chromium/no_cache_storage_check.patch index 619ed42dd56a..1109cd0e1416 100644 --- a/patches/chromium/no_cache_storage_check.patch +++ b/patches/chromium/no_cache_storage_check.patch @@ -7,10 +7,10 @@ Do not check for unique origin in CacheStorage, in Electron we may have scripts running without an origin. diff --git a/content/browser/cache_storage/legacy/legacy_cache_storage.cc b/content/browser/cache_storage/legacy/legacy_cache_storage.cc -index 9a2b73ae09ae1f2fe5379905c48679668ec8447f..d7f29d25110c2242a6c92ed5d0b397b3c6b56460 100644 +index a0f581505efbdd53b28e9daff631d65f251667ea..7f0b416ec0572dc472aa308bd1bcc1bb73bfff58 100644 --- a/content/browser/cache_storage/legacy/legacy_cache_storage.cc +++ b/content/browser/cache_storage/legacy/legacy_cache_storage.cc -@@ -108,7 +108,7 @@ class LegacyCacheStorage::CacheLoader { +@@ -107,7 +107,7 @@ class LegacyCacheStorage::CacheLoader { cache_storage_(cache_storage), origin_(origin), owner_(owner) { diff --git a/patches/chromium/notification_provenance.patch b/patches/chromium/notification_provenance.patch index 88267aab2435..0cec9be43590 100644 --- a/patches/chromium/notification_provenance.patch +++ b/patches/chromium/notification_provenance.patch @@ -68,10 +68,10 @@ index dcb0b03f0b814238860a17f88c1d7ed00546dad4..17184d672af88947c04b30de0aa62acd notification_service_remote_.BindNewPipeAndPassReceiver()); diff --git a/content/browser/notifications/platform_notification_context_impl.cc b/content/browser/notifications/platform_notification_context_impl.cc -index 15ba957ffdd3742912b7f7cac3e7ac57931c8954..5dc153c2a0f5680e05e7f397b2102982b28021bc 100644 +index 8d516c814ef9882f15aaa903121a1c7a8270d28e..da523905809761a10cabb0963a691dd268d08f1c 100644 --- a/content/browser/notifications/platform_notification_context_impl.cc +++ b/content/browser/notifications/platform_notification_context_impl.cc -@@ -257,12 +257,13 @@ void PlatformNotificationContextImpl::Shutdown() { +@@ -284,12 +284,13 @@ void PlatformNotificationContextImpl::Shutdown() { } void PlatformNotificationContextImpl::CreateService( @@ -88,7 +88,7 @@ index 15ba957ffdd3742912b7f7cac3e7ac57931c8954..5dc153c2a0f5680e05e7f397b2102982 void PlatformNotificationContextImpl::RemoveService( diff --git a/content/browser/notifications/platform_notification_context_impl.h b/content/browser/notifications/platform_notification_context_impl.h -index f9b6a18aa73968506ddeca13de69b368f4ca8606..d45cb1c32be1b5c76840dafcd96fd06cb7c92d10 100644 +index 60558d5f40b765ed3ca2f7d1abc1b95f7518fee9..ab44370dc89f64fe2b86089fd9781b710fbcec8a 100644 --- a/content/browser/notifications/platform_notification_context_impl.h +++ b/content/browser/notifications/platform_notification_context_impl.h @@ -24,6 +24,7 @@ @@ -108,10 +108,10 @@ index f9b6a18aa73968506ddeca13de69b368f4ca8606..d45cb1c32be1b5c76840dafcd96fd06c 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 c31df2f900b6b3b58a1c6c803908bfd6d7adae17..8212fbd81dfd5a513a25aae31b6173b88e278d08 100644 +index 0f62a9f4e236e8e91e06dfb5751cde17dddb7233..df3ff59008839c786217661e8862ba54580590ed 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -2162,7 +2162,7 @@ void RenderProcessHostImpl::CreateNotificationService( +@@ -2179,7 +2179,7 @@ void RenderProcessHostImpl::CreateNotificationService( mojo::PendingReceiver receiver) { DCHECK_CURRENTLY_ON(BrowserThread::UI); storage_partition_impl_->GetPlatformNotificationContext()->CreateService( diff --git a/patches/chromium/pepper_plugin_support.patch b/patches/chromium/pepper_plugin_support.patch index ba758ca3514c..224700c1a79e 100644 --- a/patches/chromium/pepper_plugin_support.patch +++ b/patches/chromium/pepper_plugin_support.patch @@ -7,7 +7,7 @@ This tweaks Chrome's pepper flash and PDF plugin support to make it usable from Electron. diff --git a/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc b/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc -index 0a04a1e0ec56126a7e44537141d024332b22a190..5384d7ac2f2eaf708bf001dd885f401783ac7133 100644 +index e90525fdee7b7f1e299e56899ddca51af93d7aa6..4afb696f57d83935dabd0abc97bfe80018b56977 100644 --- a/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc +++ b/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc @@ -7,17 +7,21 @@ @@ -73,7 +73,7 @@ index 0a04a1e0ec56126a7e44537141d024332b22a190..5384d7ac2f2eaf708bf001dd885f4017 Profile* PepperIsolatedFileSystemMessageFilter::GetProfile() { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); ProfileManager* profile_manager = g_browser_process->profile_manager(); -@@ -120,6 +127,7 @@ PepperIsolatedFileSystemMessageFilter::CreateCrxFileSystem(Profile* profile) { +@@ -118,6 +125,7 @@ PepperIsolatedFileSystemMessageFilter::CreateCrxFileSystem(Profile* profile) { return storage::IsolatedContext::ScopedFSHandle(); #endif } @@ -81,7 +81,7 @@ index 0a04a1e0ec56126a7e44537141d024332b22a190..5384d7ac2f2eaf708bf001dd885f4017 int32_t PepperIsolatedFileSystemMessageFilter::OnOpenFileSystem( ppapi::host::HostMessageContext* context, -@@ -128,7 +136,7 @@ int32_t PepperIsolatedFileSystemMessageFilter::OnOpenFileSystem( +@@ -126,7 +134,7 @@ int32_t PepperIsolatedFileSystemMessageFilter::OnOpenFileSystem( case PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_INVALID: break; case PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_CRX: @@ -90,7 +90,7 @@ index 0a04a1e0ec56126a7e44537141d024332b22a190..5384d7ac2f2eaf708bf001dd885f4017 case PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_PLUGINPRIVATE: return OpenPluginPrivateFileSystem(context); } -@@ -138,6 +146,7 @@ int32_t PepperIsolatedFileSystemMessageFilter::OnOpenFileSystem( +@@ -136,6 +144,7 @@ int32_t PepperIsolatedFileSystemMessageFilter::OnOpenFileSystem( return PP_ERROR_FAILED; } @@ -98,7 +98,7 @@ index 0a04a1e0ec56126a7e44537141d024332b22a190..5384d7ac2f2eaf708bf001dd885f4017 int32_t PepperIsolatedFileSystemMessageFilter::OpenCrxFileSystem( ppapi::host::HostMessageContext* context) { #if BUILDFLAG(ENABLE_EXTENSIONS) -@@ -178,6 +187,7 @@ int32_t PepperIsolatedFileSystemMessageFilter::OpenCrxFileSystem( +@@ -176,6 +185,7 @@ int32_t PepperIsolatedFileSystemMessageFilter::OpenCrxFileSystem( return PP_ERROR_NOTSUPPORTED; #endif } diff --git a/patches/chromium/picture-in-picture.patch b/patches/chromium/picture-in-picture.patch index 00f46b376a10..b34857a79fec 100644 --- a/patches/chromium/picture-in-picture.patch +++ b/patches/chromium/picture-in-picture.patch @@ -35,7 +35,7 @@ index 79b969d83f5b2dcee7ece6c18ac9a1dcf47ac5a1..a4d38d5d0e248cf92195f649b96c77cd #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 67790686e1d006095d1969489064f6a06b457428..5f8bba605e0bd9b540860fe379305ef638d963de 100644 +index 33c56c2c7b50561d03ba93346caa12b9da0fa6ab..f0daf2e4125f1aa34750b636449d0af2b70397bc 100644 --- a/chrome/browser/ui/views/overlay/overlay_window_views.cc +++ b/chrome/browser/ui/views/overlay/overlay_window_views.cc @@ -15,16 +15,18 @@ diff --git a/patches/chromium/printing.patch b/patches/chromium/printing.patch index c34aa805a8f5..33e5aa7aea88 100644 --- a/patches/chromium/printing.patch +++ b/patches/chromium/printing.patch @@ -102,7 +102,7 @@ index 47a5b3c2a11ec595ff926df10f856ed3c5375c55..38769ab454b143a1f50d1291a363092c } diff --git a/chrome/browser/printing/print_view_manager_base.cc b/chrome/browser/printing/print_view_manager_base.cc -index ce47c91c4c0908ce01c6227ae30ee230f64e86cc..3bd261c89d3138d59bd40a86967d1f7f39c23adc 100644 +index 81df8a2cb0c374c6a93520fdd3c1951752b3c1f3..cad3c7ab1f7182f596484fe29ad8a60d5f953a78 100644 --- a/chrome/browser/printing/print_view_manager_base.cc +++ b/chrome/browser/printing/print_view_manager_base.cc @@ -28,10 +28,10 @@ @@ -154,7 +154,7 @@ index ce47c91c4c0908ce01c6227ae30ee230f64e86cc..3bd261c89d3138d59bd40a86967d1f7f RenderParamsFromPrintSettings(printer_query->settings(), params->params.get()); params->params->document_cookie = printer_query->cookie(); -@@ -343,12 +349,14 @@ PrintViewManagerBase::PrintViewManagerBase(content::WebContents* web_contents) +@@ -348,12 +354,14 @@ PrintViewManagerBase::PrintViewManagerBase(content::WebContents* web_contents) : PrintManager(web_contents), queue_(g_browser_process->print_job_manager()->queue()) { DCHECK(queue_); @@ -169,7 +169,7 @@ index ce47c91c4c0908ce01c6227ae30ee230f64e86cc..3bd261c89d3138d59bd40a86967d1f7f } PrintViewManagerBase::~PrintViewManagerBase() { -@@ -356,7 +364,10 @@ PrintViewManagerBase::~PrintViewManagerBase() { +@@ -361,7 +369,10 @@ PrintViewManagerBase::~PrintViewManagerBase() { DisconnectFromCurrentPrintJob(); } @@ -181,7 +181,7 @@ index ce47c91c4c0908ce01c6227ae30ee230f64e86cc..3bd261c89d3138d59bd40a86967d1f7f DisconnectFromCurrentPrintJob(); // Don't print / print preview crashed tabs. -@@ -364,7 +375,14 @@ bool PrintViewManagerBase::PrintNow(content::RenderFrameHost* rfh) { +@@ -369,7 +380,14 @@ bool PrintViewManagerBase::PrintNow(content::RenderFrameHost* rfh) { return false; SetPrintingRFH(rfh); @@ -197,7 +197,7 @@ index ce47c91c4c0908ce01c6227ae30ee230f64e86cc..3bd261c89d3138d59bd40a86967d1f7f return true; } -@@ -485,9 +503,9 @@ void PrintViewManagerBase::StartLocalPrintJob( +@@ -490,9 +508,9 @@ void PrintViewManagerBase::StartLocalPrintJob( void PrintViewManagerBase::UpdatePrintingEnabled() { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); // The Unretained() is safe because ForEachFrame() is synchronous. @@ -210,7 +210,7 @@ index ce47c91c4c0908ce01c6227ae30ee230f64e86cc..3bd261c89d3138d59bd40a86967d1f7f } void PrintViewManagerBase::NavigationStopped() { -@@ -604,12 +622,13 @@ void PrintViewManagerBase::DidPrintDocument( +@@ -609,12 +627,13 @@ void PrintViewManagerBase::DidPrintDocument( void PrintViewManagerBase::GetDefaultPrintSettings( GetDefaultPrintSettingsCallback callback) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); @@ -225,7 +225,7 @@ index ce47c91c4c0908ce01c6227ae30ee230f64e86cc..3bd261c89d3138d59bd40a86967d1f7f content::RenderFrameHost* render_frame_host = print_manager_host_receivers_.GetCurrentTargetFrame(); -@@ -625,11 +644,12 @@ void PrintViewManagerBase::UpdatePrintSettings( +@@ -630,11 +649,12 @@ void PrintViewManagerBase::UpdatePrintSettings( base::Value job_settings, UpdatePrintSettingsCallback callback) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); @@ -239,7 +239,7 @@ index ce47c91c4c0908ce01c6227ae30ee230f64e86cc..3bd261c89d3138d59bd40a86967d1f7f if (!job_settings.FindIntKey(kSettingPrinterType)) { UpdatePrintSettingsReply(std::move(callback), nullptr, false); return; -@@ -668,7 +688,7 @@ void PrintViewManagerBase::PrintingFailed(int32_t cookie) { +@@ -673,7 +693,7 @@ void PrintViewManagerBase::PrintingFailed(int32_t cookie) { PrintManager::PrintingFailed(cookie); #if BUILDFLAG(ENABLE_PRINT_PREVIEW) @@ -248,7 +248,7 @@ index ce47c91c4c0908ce01c6227ae30ee230f64e86cc..3bd261c89d3138d59bd40a86967d1f7f #endif ReleasePrinterQuery(); -@@ -680,6 +700,11 @@ void PrintViewManagerBase::PrintingFailed(int32_t cookie) { +@@ -685,6 +705,11 @@ void PrintViewManagerBase::PrintingFailed(int32_t cookie) { } void PrintViewManagerBase::ShowInvalidPrinterSettingsError() { @@ -260,7 +260,7 @@ index ce47c91c4c0908ce01c6227ae30ee230f64e86cc..3bd261c89d3138d59bd40a86967d1f7f base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::BindOnce(&ShowWarningMessageBox, l10n_util::GetStringUTF16( -@@ -749,9 +774,13 @@ void PrintViewManagerBase::OnNotifyPrintJobEvent( +@@ -754,9 +779,13 @@ void PrintViewManagerBase::OnNotifyPrintJobEvent( content::NotificationService::NoDetails()); break; } @@ -276,7 +276,7 @@ index ce47c91c4c0908ce01c6227ae30ee230f64e86cc..3bd261c89d3138d59bd40a86967d1f7f NOTREACHED(); break; } -@@ -849,8 +878,10 @@ bool PrintViewManagerBase::CreateNewPrintJob( +@@ -854,8 +883,10 @@ bool PrintViewManagerBase::CreateNewPrintJob( DCHECK(!quit_inner_loop_); DCHECK(query); @@ -289,7 +289,7 @@ index ce47c91c4c0908ce01c6227ae30ee230f64e86cc..3bd261c89d3138d59bd40a86967d1f7f // We can't print if there is no renderer. if (!web_contents()->GetMainFrame()->GetRenderViewHost() || -@@ -871,8 +902,6 @@ bool PrintViewManagerBase::CreateNewPrintJob( +@@ -876,8 +907,6 @@ bool PrintViewManagerBase::CreateNewPrintJob( /*source_id=*/""); #endif @@ -298,7 +298,7 @@ index ce47c91c4c0908ce01c6227ae30ee230f64e86cc..3bd261c89d3138d59bd40a86967d1f7f printing_succeeded_ = false; return true; } -@@ -921,14 +950,22 @@ void PrintViewManagerBase::ReleasePrintJob() { +@@ -926,14 +955,22 @@ void PrintViewManagerBase::ReleasePrintJob() { content::RenderFrameHost* rfh = printing_rfh_; printing_rfh_ = nullptr; @@ -323,7 +323,7 @@ index ce47c91c4c0908ce01c6227ae30ee230f64e86cc..3bd261c89d3138d59bd40a86967d1f7f // Don't close the worker thread. print_job_ = nullptr; } -@@ -964,7 +1001,7 @@ bool PrintViewManagerBase::RunInnerMessageLoop() { +@@ -969,7 +1006,7 @@ bool PrintViewManagerBase::RunInnerMessageLoop() { } bool PrintViewManagerBase::OpportunisticallyCreatePrintJob(int cookie) { @@ -387,10 +387,10 @@ index 4fde003f2a12794bfcd479ef2797cc6281c5720b..bc3bc4aee26f9373de35366ddb07f7ba // 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 bf5d2e30dbf6e01d435f523aefa36492b6e669b9..3ac6b4e60f25734e6e01abccf7227b7cd37ae420 100644 +index cd1237696ff28e92aae5dd569b436a16deaf8777..c925bee8086b3b7918bcea9523244cffbe3671a1 100644 --- a/components/printing/renderer/print_render_frame_helper.cc +++ b/components/printing/renderer/print_render_frame_helper.cc -@@ -38,6 +38,7 @@ +@@ -41,6 +41,7 @@ #include "printing/metafile_skia.h" #include "printing/mojom/print.mojom.h" #include "printing/print_job_constants.h" @@ -398,7 +398,7 @@ index bf5d2e30dbf6e01d435f523aefa36492b6e669b9..3ac6b4e60f25734e6e01abccf7227b7c #include "printing/units.h" #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h" #include "third_party/blink/public/common/associated_interfaces/associated_interface_registry.h" -@@ -1166,7 +1167,8 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) { +@@ -1169,7 +1170,8 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) { if (!weak_this) return; @@ -408,7 +408,7 @@ index bf5d2e30dbf6e01d435f523aefa36492b6e669b9..3ac6b4e60f25734e6e01abccf7227b7c if (weak_this) web_frame->DispatchAfterPrintEvent(); -@@ -1193,7 +1195,7 @@ void PrintRenderFrameHelper::BindPrintRenderFrameReceiver( +@@ -1196,7 +1198,7 @@ void PrintRenderFrameHelper::BindPrintRenderFrameReceiver( receivers_.Add(this, std::move(receiver)); } @@ -417,7 +417,7 @@ index bf5d2e30dbf6e01d435f523aefa36492b6e669b9..3ac6b4e60f25734e6e01abccf7227b7c ScopedIPC scoped_ipc(weak_ptr_factory_.GetWeakPtr()); if (ipc_nesting_level_ > 1) return; -@@ -1208,7 +1210,7 @@ void PrintRenderFrameHelper::PrintRequestedPages() { +@@ -1211,7 +1213,7 @@ void PrintRenderFrameHelper::PrintRequestedPages() { // that instead. auto plugin = delegate_->GetPdfElement(frame); @@ -426,7 +426,7 @@ index bf5d2e30dbf6e01d435f523aefa36492b6e669b9..3ac6b4e60f25734e6e01abccf7227b7c if (!render_frame_gone_) frame->DispatchAfterPrintEvent(); -@@ -1227,7 +1229,8 @@ void PrintRenderFrameHelper::PrintForSystemDialog() { +@@ -1230,7 +1232,8 @@ void PrintRenderFrameHelper::PrintForSystemDialog() { } Print(frame, print_preview_context_.source_node(), @@ -436,7 +436,7 @@ index bf5d2e30dbf6e01d435f523aefa36492b6e669b9..3ac6b4e60f25734e6e01abccf7227b7c if (!render_frame_gone_) print_preview_context_.DispatchAfterPrintEvent(); // WARNING: |this| may be gone at this point. Do not do any more work here and -@@ -1275,6 +1278,8 @@ void PrintRenderFrameHelper::PrintPreview(base::Value settings) { +@@ -1278,6 +1281,8 @@ void PrintRenderFrameHelper::PrintPreview(base::Value settings) { if (ipc_nesting_level_ > 1) return; @@ -445,7 +445,7 @@ index bf5d2e30dbf6e01d435f523aefa36492b6e669b9..3ac6b4e60f25734e6e01abccf7227b7c print_preview_context_.OnPrintPreview(); if (print_preview_context_.IsForArc()) { -@@ -1809,7 +1814,8 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { +@@ -1852,7 +1857,8 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { return; Print(duplicate_node.GetDocument().GetFrame(), duplicate_node, @@ -455,7 +455,7 @@ index bf5d2e30dbf6e01d435f523aefa36492b6e669b9..3ac6b4e60f25734e6e01abccf7227b7c // Check if |this| is still valid. if (!weak_this) return; -@@ -1824,7 +1830,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { +@@ -1867,7 +1873,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, const blink::WebNode& node, @@ -466,7 +466,7 @@ index bf5d2e30dbf6e01d435f523aefa36492b6e669b9..3ac6b4e60f25734e6e01abccf7227b7c // If still not finished with earlier print request simply ignore. if (prep_frame_view_) return; -@@ -1832,7 +1840,7 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, +@@ -1875,7 +1883,7 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, FrameReference frame_ref(frame); uint32_t expected_page_count = 0; @@ -475,7 +475,7 @@ index bf5d2e30dbf6e01d435f523aefa36492b6e669b9..3ac6b4e60f25734e6e01abccf7227b7c DidFinishPrinting(FAIL_PRINT_INIT); return; // Failed to init print page settings. } -@@ -1851,8 +1859,41 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, +@@ -1894,8 +1902,41 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, print_pages_params_->params->print_scaling_option; auto self = weak_ptr_factory_.GetWeakPtr(); @@ -518,7 +518,7 @@ index bf5d2e30dbf6e01d435f523aefa36492b6e669b9..3ac6b4e60f25734e6e01abccf7227b7c // Check if |this| is still valid. if (!self) return; -@@ -2096,7 +2137,9 @@ void PrintRenderFrameHelper::IPCProcessed() { +@@ -2144,7 +2185,9 @@ void PrintRenderFrameHelper::IPCProcessed() { } } @@ -529,7 +529,7 @@ index bf5d2e30dbf6e01d435f523aefa36492b6e669b9..3ac6b4e60f25734e6e01abccf7227b7c mojom::PrintPagesParams settings; settings.params = mojom::PrintParams::New(); GetPrintManagerHost()->GetDefaultPrintSettings(&settings.params); -@@ -2120,12 +2163,14 @@ bool PrintRenderFrameHelper::InitPrintSettings(bool fit_to_paper_size) { +@@ -2168,12 +2211,14 @@ bool PrintRenderFrameHelper::InitPrintSettings(bool fit_to_paper_size) { return result; } @@ -548,7 +548,7 @@ index bf5d2e30dbf6e01d435f523aefa36492b6e669b9..3ac6b4e60f25734e6e01abccf7227b7c notify_browser_of_print_failure_ = false; GetPrintManagerHost()->ShowInvalidPrinterSettingsError(); return false; -@@ -2469,18 +2514,7 @@ void PrintRenderFrameHelper::RequestPrintPreview(PrintPreviewRequestType type) { +@@ -2517,18 +2562,7 @@ void PrintRenderFrameHelper::RequestPrintPreview(PrintPreviewRequestType type) { } bool PrintRenderFrameHelper::CheckForCancel() { diff --git a/patches/chromium/proxy_config_monitor.patch b/patches/chromium/proxy_config_monitor.patch index 3de9d2f0c6b6..c3481a475682 100644 --- a/patches/chromium/proxy_config_monitor.patch +++ b/patches/chromium/proxy_config_monitor.patch @@ -6,7 +6,7 @@ Subject: proxy_config_monitor.patch Allow monitoring proxy config changes for a pref service. diff --git a/chrome/browser/net/proxy_config_monitor.cc b/chrome/browser/net/proxy_config_monitor.cc -index 08a7a0260f6a2e3053e6da39b394eb90fa132bf9..fbee7cabb1865c337290d30675a106110369b3b4 100644 +index 55cc762b92193ed3f65b4d0b562202869530e1ac..d4c2a4e49eb469d3e2278fdc972c0aedc849d3f6 100644 --- a/chrome/browser/net/proxy_config_monitor.cc +++ b/chrome/browser/net/proxy_config_monitor.cc @@ -11,7 +11,9 @@ @@ -20,7 +20,7 @@ index 08a7a0260f6a2e3053e6da39b394eb90fa132bf9..fbee7cabb1865c337290d30675a10611 #include "content/public/browser/browser_thread.h" #include "mojo/public/cpp/bindings/pending_remote.h" @@ -21,12 +23,13 @@ - #include "chrome/browser/chromeos/profiles/profile_helper.h" + #include "chrome/browser/ash/profiles/profile_helper.h" #endif // BUILDFLAG(IS_CHROMEOS_ASH) -#if BUILDFLAG(ENABLE_EXTENSIONS) diff --git a/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch b/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch index d5a729ddef04..d14d8d0869d9 100644 --- a/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch +++ b/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch @@ -8,7 +8,7 @@ Chrome moved the SetCursor IPC message to mojo, which we use to tell OSR about ` Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2172779 diff --git a/content/browser/renderer_host/render_widget_host_delegate.h b/content/browser/renderer_host/render_widget_host_delegate.h -index bd204e18eb16517c9f008f15fb530bd1b46af203..83267d1da9caf2b83799af46a6089683ede5ee1e 100644 +index e3fe7f35ddad36765bda4e38042ce77b58f37b3f..e5e45826022f65d57eccb2a0049344395303a019 100644 --- a/content/browser/renderer_host/render_widget_host_delegate.h +++ b/content/browser/renderer_host/render_widget_host_delegate.h @@ -14,6 +14,7 @@ @@ -19,7 +19,7 @@ index bd204e18eb16517c9f008f15fb530bd1b46af203..83267d1da9caf2b83799af46a6089683 #include "content/public/common/drop_data.h" #include "services/metrics/public/cpp/ukm_recorder.h" #include "third_party/blink/public/common/input/web_input_event.h" -@@ -266,6 +267,9 @@ class CONTENT_EXPORT RenderWidgetHostDelegate { +@@ -262,6 +263,9 @@ class CONTENT_EXPORT RenderWidgetHostDelegate { // Returns the associated RenderViewHostDelegateView*, if possible. virtual RenderViewHostDelegateView* GetDelegateView(); @@ -30,10 +30,10 @@ index bd204e18eb16517c9f008f15fb530bd1b46af203..83267d1da9caf2b83799af46a6089683 // RenderWidgetHost on the main frame, and false otherwise. virtual bool IsWidgetForMainFrame(RenderWidgetHostImpl*); diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc -index d155e69df2abb9cec5f2153c7cb3c7b45cf46bbc..037a25e8f59b76181423e27865f0d4768da672b0 100644 +index c50126455356bbe34b3f126b652aa098d2e0758c..34f9c18f8a35903e9ab97574a0e08a3b46696889 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc -@@ -1920,6 +1920,8 @@ void RenderWidgetHostImpl::FilterDropData(DropData* drop_data) { +@@ -1928,6 +1928,8 @@ void RenderWidgetHostImpl::FilterDropData(DropData* drop_data) { void RenderWidgetHostImpl::SetCursor(const ui::Cursor& cursor) { if (view_) view_->UpdateCursor(WebCursor(cursor)); @@ -43,10 +43,10 @@ index d155e69df2abb9cec5f2153c7cb3c7b45cf46bbc..037a25e8f59b76181423e27865f0d476 void RenderWidgetHostImpl::ShowContextMenuAtPoint( diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index d72a6ca4307a71d0f9dc8a8b4ce32e1dce305148..39ef587971d4c171fb5878efb7a94c3523b4b80c 100644 +index a21877e24ddfdefbccbf3bdafb2132cf244655e8..13bd9fc314ff85ac8ce7876f9f5f8a1507d4c7d3 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -4087,6 +4087,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() { +@@ -4159,6 +4159,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() { return text_input_manager_.get(); } @@ -59,19 +59,19 @@ index d72a6ca4307a71d0f9dc8a8b4ce32e1dce305148..39ef587971d4c171fb5878efb7a94c35 RenderWidgetHostImpl* render_widget_host) { return render_widget_host == GetMainFrame()->GetRenderWidgetHost(); diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h -index a603ad8d4ff72be85f07746dc2790df66f18122b..f9ef4e3a7f7c4447cd9503954c512ce3f679c639 100644 +index a861fc353dc845f294b0001544738dfa4d3ca1d1..f9fd8ebc471af32ad7158a0054f1b2dc6098026d 100644 --- a/content/browser/web_contents/web_contents_impl.h +++ b/content/browser/web_contents/web_contents_impl.h -@@ -968,6 +968,7 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents, +@@ -951,6 +951,7 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents, blink::mojom::FrameVisibility visibility) override; void SendScreenRects() override; TextInputManager* GetTextInputManager() override; + void OnCursorChanged(const WebCursor& cursor) override; bool IsWidgetForMainFrame(RenderWidgetHostImpl* render_widget_host) override; - bool AddDomainInfoToRapporSample(rappor::Sample* sample) override; bool IsShowingContextMenuOnPage() const override; + void DidChangeScreenOrientation() override; diff --git a/content/public/browser/web_contents_observer.h b/content/public/browser/web_contents_observer.h -index 9ab0a264e9ec660950e17cc608c375bf6366ac4a..45f56a4ea05e40b0b8287cea77810b7c9bdd1020 100644 +index adbfea805ecc09f9612b4ec9de31a408c8ca0019..3445d590b01918324dc4e5913ee1fc5dda27ab5d 100644 --- a/content/public/browser/web_contents_observer.h +++ b/content/public/browser/web_contents_observer.h @@ -14,6 +14,7 @@ @@ -82,7 +82,7 @@ index 9ab0a264e9ec660950e17cc608c375bf6366ac4a..45f56a4ea05e40b0b8287cea77810b7c #include "content/public/browser/allow_service_worker_result.h" #include "content/public/browser/cookie_access_details.h" #include "content/public/browser/navigation_controller.h" -@@ -367,6 +368,9 @@ class CONTENT_EXPORT WebContentsObserver : public IPC::Listener { +@@ -363,6 +364,9 @@ class CONTENT_EXPORT WebContentsObserver : public IPC::Listener { // Invoked every time the WebContents changes visibility. virtual void OnVisibilityChanged(Visibility visibility) {} diff --git a/patches/chromium/render_widget_host_view_base.patch b/patches/chromium/render_widget_host_view_base.patch index 6ac806eb035b..97ca21ba86fb 100644 --- a/patches/chromium/render_widget_host_view_base.patch +++ b/patches/chromium/render_widget_host_view_base.patch @@ -6,7 +6,7 @@ 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 463690a6dfdab2c7ffd3ec35a751fecbf25c74c7..7b61cd4714a09d7ba1955d690251bc52b76c71b3 100644 +index fc77bac7d93213272a46cfd4cb1111f41e16ece2..067ffb6a7f235e421644b51fbafff361cbd0129d 100644 --- a/content/browser/renderer_host/render_widget_host_view_base.cc +++ b/content/browser/renderer_host/render_widget_host_view_base.cc @@ -567,6 +567,13 @@ bool RenderWidgetHostViewBase::ScreenRectIsUnstableFor( @@ -24,7 +24,7 @@ index 463690a6dfdab2c7ffd3ec35a751fecbf25c74c7..7b61cd4714a09d7ba1955d690251bc52 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 be9de2cbeb28fd75e6d9ee4d42eb59a3dac8e9b7..5d3edd2c131c4615dc22ae361f130469620d7175 100644 +index 2607251a60c9fee6cd1ab08ac967af7a1b64024c..df311890f06447939f4befdc7306c3d6bc7f5d73 100644 --- a/content/browser/renderer_host/render_widget_host_view_base.h +++ b/content/browser/renderer_host/render_widget_host_view_base.h @@ -25,8 +25,10 @@ @@ -36,9 +36,9 @@ index be9de2cbeb28fd75e6d9ee4d42eb59a3dac8e9b7..5d3edd2c131c4615dc22ae361f130469 #include "content/public/browser/render_frame_metadata_provider.h" +#include "content/public/browser/render_widget_host.h" #include "content/public/browser/render_widget_host_view.h" + #include "content/public/browser/visibility.h" #include "content/public/common/widget_type.h" - #include "services/viz/public/mojom/hit_test/hit_test_region_list.mojom.h" -@@ -64,9 +66,11 @@ class CursorManager; +@@ -65,9 +67,11 @@ class CursorManager; class MouseWheelPhaseHandler; class RenderWidgetHostImpl; class RenderWidgetHostViewBaseObserver; @@ -50,7 +50,7 @@ index be9de2cbeb28fd75e6d9ee4d42eb59a3dac8e9b7..5d3edd2c131c4615dc22ae361f130469 class WebCursor; class WebContentsAccessibility; class DelegatedFrameHost; -@@ -122,6 +126,9 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { +@@ -123,6 +127,9 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { bool show_reason_unoccluded, bool show_reason_bfcache_restore) final; @@ -60,7 +60,7 @@ index be9de2cbeb28fd75e6d9ee4d42eb59a3dac8e9b7..5d3edd2c131c4615dc22ae361f130469 // This only needs to be overridden by RenderWidgetHostViewBase subclasses // that handle content embedded within other RenderWidgetHostViews. gfx::PointF TransformPointToRootCoordSpaceF( -@@ -282,6 +289,11 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { +@@ -283,6 +290,11 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { 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 b88b1f49d1c1..c607a80a3d09 100644 --- a/patches/chromium/resource_file_conflict.patch +++ b/patches/chromium/resource_file_conflict.patch @@ -52,10 +52,10 @@ 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 fa57158747bffc85a8f15b22af56012a91d89edb..4f9c74142fdcb04e10591422f1c1a529851cb327 100644 +index 6f386508b11746fb9d313b51642e3450bfdf2ef5..247c6bc34f6405c4b186c93387c2731b149d243c 100644 --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn -@@ -1422,7 +1422,7 @@ if (is_chrome_branded && !is_android) { +@@ -1423,7 +1423,7 @@ if (is_chrome_branded && !is_android) { } } @@ -64,7 +64,7 @@ index fa57158747bffc85a8f15b22af56012a91d89edb..4f9c74142fdcb04e10591422f1c1a529 chrome_paks("packed_resources") { if (is_mac) { output_dir = "$root_gen_dir/repack" -@@ -1442,6 +1442,12 @@ if (!is_android) { +@@ -1443,6 +1443,12 @@ if (!is_android) { } } diff --git a/patches/chromium/revert_remove_contentrendererclient_shouldfork.patch b/patches/chromium/revert_remove_contentrendererclient_shouldfork.patch index dd28cfb9116c..84c7c0ede732 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 4f53d65a88a1afd030ae2afcb418022007e5cdcf..6bf0c4df4219fbb492a38dd0421c38d276cff497 100644 +index 092cb7aa6b5d1e2b516569eae8b9dabed6661dfc..963196951c0dce346220c11287ceeab32fec2e32 100644 --- a/chrome/renderer/chrome_content_renderer_client.cc +++ b/chrome/renderer/chrome_content_renderer_client.cc -@@ -1258,6 +1258,25 @@ ChromeContentRendererClient::GetProtocolHandlerSecurityLevel() { +@@ -1266,6 +1266,25 @@ ChromeContentRendererClient::GetProtocolHandlerSecurityLevel() { #endif } @@ -92,10 +92,10 @@ index 357df68c64071ef7dca98ce4aab885dd936b1c49..f501a2ab0bd6d4664dad13913671c4d7 // |url|. If the function returns a valid |new_url|, the request must be // updated to use it. diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc -index 74f4881d51e671e178f8d4ff32a49b0010e9efb2..e9fb8a1aff0702984e7cfc96086a7d8d07908cbb 100644 +index 49b0d9012c43661a4fb4b9b8b8a68c156c7a76b6..db038990188455fc645c3c769a71e01af1ad3f0b 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -5432,6 +5432,23 @@ void RenderFrameImpl::BeginNavigation( +@@ -5313,6 +5313,23 @@ void RenderFrameImpl::BeginNavigation( // we can do a per-frame check here rather than a process-wide check. bool should_fork = HasWebUIScheme(url) || HasWebUIScheme(old_url) || (enabled_bindings_ & kWebUIBindingsPolicyMask); diff --git a/patches/chromium/scroll_bounce_flag.patch b/patches/chromium/scroll_bounce_flag.patch index 6cf975c325c0..f42ba112fa2c 100644 --- a/patches/chromium/scroll_bounce_flag.patch +++ b/patches/chromium/scroll_bounce_flag.patch @@ -6,10 +6,10 @@ 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 482b84f3d92515ee0edf495625b765a8d7023992..1a63b709316df222300529f47dfb0aff44cbfb6c 100644 +index 0059045f81b205157e7e4bf772500a49808edb31..5b7a11d3c2b18f403fc0123d0c6d58757daeeec2 100644 --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc -@@ -1277,7 +1277,7 @@ bool RenderThreadImpl::IsLcdTextEnabled() { +@@ -1274,7 +1274,7 @@ bool RenderThreadImpl::IsLcdTextEnabled() { } bool RenderThreadImpl::IsElasticOverscrollEnabled() { diff --git a/patches/chromium/skip_atk_toolchain_check.patch b/patches/chromium/skip_atk_toolchain_check.patch index df833d523303..c43c307f0155 100644 --- a/patches/chromium/skip_atk_toolchain_check.patch +++ b/patches/chromium/skip_atk_toolchain_check.patch @@ -21,11 +21,11 @@ See //ui/accessibility/BUILD.gn:297:20: which caused the file to be included. which we don't build diff --git a/build/config/linux/atk/BUILD.gn b/build/config/linux/atk/BUILD.gn -index aad2efa60d6c9b555e5679e9883e0f10bf8b0008..db083cd0c0ed9a846bbe827efc4783637439be7b 100644 +index bc8e27894732a6d3e834d6b21f00441eca02dd63..f7381c1d5b5842521e0c35476ae468ab508c0fea 100644 --- a/build/config/linux/atk/BUILD.gn +++ b/build/config/linux/atk/BUILD.gn -@@ -10,7 +10,7 @@ import("//build/config/ui.gni") - assert(!is_chromeos) +@@ -12,7 +12,7 @@ import("//build/config/ui.gni") + assert(!is_chromeos_ash) # These packages should _only_ be expected when building for a target. -assert(current_toolchain == default_toolchain) diff --git a/patches/chromium/support_mixed_sandbox_with_zygote.patch b/patches/chromium/support_mixed_sandbox_with_zygote.patch index 76f4b14e1c8d..d1a296b3de86 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 8212fbd81dfd5a513a25aae31b6173b88e278d08..896630a5f595aa39265ceea68feb355454965ba0 100644 +index df3ff59008839c786217661e8862ba54580590ed..cddd153328e3e1e4154aa61e9786b3eaef3f4a05 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc @@ -405,6 +405,11 @@ class RendererSandboxedProcessLauncherDelegate @@ -37,7 +37,7 @@ index 8212fbd81dfd5a513a25aae31b6173b88e278d08..896630a5f595aa39265ceea68feb3554 ~RendererSandboxedProcessLauncherDelegate() override = default; #if defined(OS_WIN) -@@ -427,6 +432,9 @@ class RendererSandboxedProcessLauncherDelegate +@@ -433,6 +438,9 @@ class RendererSandboxedProcessLauncherDelegate #if BUILDFLAG(USE_ZYGOTE_HANDLE) ZygoteHandle GetZygote() override { @@ -47,7 +47,7 @@ index 8212fbd81dfd5a513a25aae31b6173b88e278d08..896630a5f595aa39265ceea68feb3554 const base::CommandLine& browser_command_line = *base::CommandLine::ForCurrentProcess(); base::CommandLine::StringType renderer_prefix = -@@ -441,10 +449,13 @@ class RendererSandboxedProcessLauncherDelegate +@@ -447,10 +455,13 @@ class RendererSandboxedProcessLauncherDelegate return sandbox::policy::SandboxType::kRenderer; } @@ -62,7 +62,7 @@ index 8212fbd81dfd5a513a25aae31b6173b88e278d08..896630a5f595aa39265ceea68feb3554 }; const char kSessionStorageHolderKey[] = "kSessionStorageHolderKey"; -@@ -1900,11 +1911,18 @@ bool RenderProcessHostImpl::Init() { +@@ -1909,11 +1920,18 @@ bool RenderProcessHostImpl::Init() { cmd_line->PrependWrapper(renderer_prefix); AppendRendererCommandLine(cmd_line.get()); diff --git a/patches/chromium/unsandboxed_ppapi_processes_skip_zygote.patch b/patches/chromium/unsandboxed_ppapi_processes_skip_zygote.patch index 157b32d0a490..e003f93d5b27 100644 --- a/patches/chromium/unsandboxed_ppapi_processes_skip_zygote.patch +++ b/patches/chromium/unsandboxed_ppapi_processes_skip_zygote.patch @@ -6,7 +6,7 @@ Subject: unsandboxed_ppapi_processes_skip_zygote.patch Unsandboxed ppapi processes should skip zygote. diff --git a/content/browser/ppapi_plugin_process_host.cc b/content/browser/ppapi_plugin_process_host.cc -index ae0a8f39952a4cfb90393d3bb00bed494ce8c5f1..dd85840f1294e2f9f2063a2d24fe372bd571c723 100644 +index 4ee1f46e8b8ee1685f1c9eb8bafe48fa299b69e2..ce5a23d935e09a4f4c41ed108f18ccc0fbeab3b6 100644 --- a/content/browser/ppapi_plugin_process_host.cc +++ b/content/browser/ppapi_plugin_process_host.cc @@ -111,6 +111,9 @@ class PpapiPluginSandboxedProcessLauncherDelegate diff --git a/patches/chromium/web_contents.patch b/patches/chromium/web_contents.patch index 1141f047542c..54b01b275b2b 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 14f3ebdc6fe53f8e4a9b3d6ec8d7a8875a20c392..2b81f39b61ad77bdf5382b15d3874532f017b93b 100644 +index e137e4e16941a539346cd248a51c872159765d32..5c06f5d680357028cffa00f3dfdc17ff02a4a560 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -2708,6 +2708,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { +@@ -2734,6 +2734,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { frame_tree_.Init(site_instance.get(), params.renderer_initiated_creation, params.main_frame_name); @@ -25,7 +25,7 @@ index 14f3ebdc6fe53f8e4a9b3d6ec8d7a8875a20c392..2b81f39b61ad77bdf5382b15d3874532 WebContentsViewDelegate* delegate = GetContentClient()->browser()->GetWebContentsViewDelegate(this); -@@ -2718,6 +2724,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { +@@ -2744,6 +2750,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { view_.reset(CreateWebContentsView(this, delegate, &render_view_host_delegate_view_)); } @@ -34,10 +34,10 @@ index 14f3ebdc6fe53f8e4a9b3d6ec8d7a8875a20c392..2b81f39b61ad77bdf5382b15d3874532 CHECK(view_.get()); diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h -index 53df8356eab8406962df12b8d047ea30007ba359..d35204c145a9ce5ddceaea86870fafcac3e76f8a 100644 +index 8a913c6aa050fce21b71a0b493abb6c90d2f2931..79af85209da3ca2d6eb7bc27f97e5becad7312e4 100644 --- a/content/public/browser/web_contents.h +++ b/content/public/browser/web_contents.h -@@ -88,8 +88,11 @@ class BrowserContext; +@@ -87,8 +87,11 @@ class BrowserContext; class BrowserPluginGuestDelegate; class RenderFrameHost; class RenderViewHost; @@ -49,7 +49,7 @@ index 53df8356eab8406962df12b8d047ea30007ba359..d35204c145a9ce5ddceaea86870fafca class WebUI; struct DropData; struct MHTMLGenerationParams; -@@ -222,6 +225,10 @@ class WebContents : public PageNavigator, +@@ -221,6 +224,10 @@ class WebContents : public PageNavigator, // Sandboxing flags set on the new WebContents. network::mojom::WebSandboxFlags starting_sandbox_flags; diff --git a/patches/chromium/webview_cross_drag.patch b/patches/chromium/webview_cross_drag.patch index ecaddd89c65e..8ae9fcd9d6c2 100644 --- a/patches/chromium/webview_cross_drag.patch +++ b/patches/chromium/webview_cross_drag.patch @@ -8,10 +8,10 @@ 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 6c527e2955a3962dc21eb8a8e579c92f980f1418..0c678c609a68000864b0b8498a64d588d7723b32 100644 +index 4bdcc50a40e498f83eef230780d538c77e038c80..5b6f371b80675a8681accf28eeeb1ce5fc981d36 100644 --- a/content/browser/web_contents/web_contents_view_aura.cc +++ b/content/browser/web_contents/web_contents_view_aura.cc -@@ -797,9 +797,7 @@ gfx::NativeView WebContentsViewAura::GetRenderWidgetHostViewParent() const { +@@ -794,9 +794,7 @@ gfx::NativeView WebContentsViewAura::GetRenderWidgetHostViewParent() const { bool WebContentsViewAura::IsValidDragTarget( RenderWidgetHostImpl* target_rwh) const { diff --git a/patches/chromium/worker_context_will_destroy.patch b/patches/chromium/worker_context_will_destroy.patch index bffb1ed910c6..3c50bec68e57 100644 --- a/patches/chromium/worker_context_will_destroy.patch +++ b/patches/chromium/worker_context_will_destroy.patch @@ -26,10 +26,10 @@ index a4695ba832fc5ae6f458baf38bbf7efa95dc610e..357df68c64071ef7dca98ce4aab885dd // An empty URL is returned if the URL is not overriden. virtual GURL OverrideFlashEmbedWithHTML(const GURL& url); diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc -index 4964d3567530153ad672b5f42d89547a406084f6..86d0bee87e7f6cb20214c609a3f95a2878d3640b 100644 +index 9362fb2b7cb2fa0054c3b8578f1e56c7bfd82627..e7ee8f52f4cf276d301522e00fed6ab9f34e1f56 100644 --- a/content/renderer/renderer_blink_platform_impl.cc +++ b/content/renderer/renderer_blink_platform_impl.cc -@@ -899,6 +899,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() { +@@ -910,6 +910,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() { WorkerThreadRegistry::Instance()->WillStopCurrentWorkerThread(); } @@ -43,10 +43,10 @@ index 4964d3567530153ad672b5f42d89547a406084f6..86d0bee87e7f6cb20214c609a3f95a28 const v8::Local& worker) { GetContentClient()->renderer()->DidInitializeWorkerContextOnWorkerThread( diff --git a/content/renderer/renderer_blink_platform_impl.h b/content/renderer/renderer_blink_platform_impl.h -index c8470ab1919a3b23793373495df02051798e81b3..801eaf387e3af6b800b65a667d356e5b26e57fcf 100644 +index aea8d1c53436dbb90352f2de1eebb287815e7e78..534c8f6032124d6b94e35f036158bbe8122f85bb 100644 --- a/content/renderer/renderer_blink_platform_impl.h +++ b/content/renderer/renderer_blink_platform_impl.h -@@ -194,6 +194,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { +@@ -196,6 +196,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { void DidStartWorkerThread() override; void WillStopWorkerThread() override; void WorkerContextCreated(const v8::Local& worker) override; @@ -55,10 +55,10 @@ index c8470ab1919a3b23793373495df02051798e81b3..801eaf387e3af6b800b65a667d356e5b const blink::WebSecurityOrigin& script_origin) override; blink::ProtocolHandlerSecurityLevel GetProtocolHandlerSecurityLevel() diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h -index e43136e0621f5d5db93f18140abab684006afae8..8dfef4f1d53c61aae04f46040a7cec683534b870 100644 +index 563c13288c6664469c0c5ae121b0c7add38a1ddd..96c5370e38f9960aa14d7dcfcc841a427b129aca 100644 --- a/third_party/blink/public/platform/platform.h +++ b/third_party/blink/public/platform/platform.h -@@ -690,6 +690,7 @@ class BLINK_PLATFORM_EXPORT Platform { +@@ -697,6 +697,7 @@ class BLINK_PLATFORM_EXPORT Platform { virtual void DidStartWorkerThread() {} virtual void WillStopWorkerThread() {} virtual void WorkerContextCreated(const v8::Local& worker) {} @@ -67,10 +67,10 @@ index e43136e0621f5d5db93f18140abab684006afae8..8dfef4f1d53c61aae04f46040a7cec68 const WebSecurityOrigin& script_origin) { return false; diff --git a/third_party/blink/renderer/core/workers/worker_thread.cc b/third_party/blink/renderer/core/workers/worker_thread.cc -index 2e66c480af8993d28d4bca0bcb31743541019914..edb621dbe888444a15035581891500b959d10d48 100644 +index cf8326757d4f1ad8acb27ad61c65ab0db61874c3..10292488d8700123edaa6f9834a6f37ae4c169f0 100644 --- a/third_party/blink/renderer/core/workers/worker_thread.cc +++ b/third_party/blink/renderer/core/workers/worker_thread.cc -@@ -735,6 +735,12 @@ void WorkerThread::PrepareForShutdownOnWorkerThread() { +@@ -737,6 +737,12 @@ void WorkerThread::PrepareForShutdownOnWorkerThread() { nested_runner_->QuitNow(); } diff --git a/patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch b/patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch index 054b7b287878..e92c4ccde381 100644 --- a/patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch +++ b/patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch @@ -35,10 +35,10 @@ index f501a2ab0bd6d4664dad13913671c4d7d5a96c1e..e633d1755405feeae8c45c0bcbf90f67 // from the worker thread. virtual void WillDestroyWorkerContextOnWorkerThread( diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc -index 86d0bee87e7f6cb20214c609a3f95a2878d3640b..0f3b8a3ed43a04f1fd9d69b2a08cdaca7b8c5df2 100644 +index e7ee8f52f4cf276d301522e00fed6ab9f34e1f56..99906d5d855f2331332065d609c44b919dfe5edf 100644 --- a/content/renderer/renderer_blink_platform_impl.cc +++ b/content/renderer/renderer_blink_platform_impl.cc -@@ -911,6 +911,12 @@ void RendererBlinkPlatformImpl::WorkerContextCreated( +@@ -922,6 +922,12 @@ void RendererBlinkPlatformImpl::WorkerContextCreated( worker); } @@ -52,10 +52,10 @@ index 86d0bee87e7f6cb20214c609a3f95a2878d3640b..0f3b8a3ed43a04f1fd9d69b2a08cdaca const blink::WebSecurityOrigin& script_origin) { return GetContentClient()->renderer()->AllowScriptExtensionForServiceWorker( diff --git a/content/renderer/renderer_blink_platform_impl.h b/content/renderer/renderer_blink_platform_impl.h -index 801eaf387e3af6b800b65a667d356e5b26e57fcf..364b832172f2c0008f5ae62048c74bd39ff4fafc 100644 +index 534c8f6032124d6b94e35f036158bbe8122f85bb..ac95f5daea0919464f87aeeab99a0c5e5581318b 100644 --- a/content/renderer/renderer_blink_platform_impl.h +++ b/content/renderer/renderer_blink_platform_impl.h -@@ -194,6 +194,8 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { +@@ -196,6 +196,8 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { void DidStartWorkerThread() override; void WillStopWorkerThread() override; void WorkerContextCreated(const v8::Local& worker) override; @@ -65,10 +65,10 @@ index 801eaf387e3af6b800b65a667d356e5b26e57fcf..364b832172f2c0008f5ae62048c74bd3 bool AllowScriptExtensionForServiceWorker( const blink::WebSecurityOrigin& script_origin) override; diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h -index 8dfef4f1d53c61aae04f46040a7cec683534b870..685f38c7604cd0b3393851b4fe74fbd75c4c2672 100644 +index 96c5370e38f9960aa14d7dcfcc841a427b129aca..92fda0b5d32f75fff1508e146333082a3eb9ef1c 100644 --- a/third_party/blink/public/platform/platform.h +++ b/third_party/blink/public/platform/platform.h -@@ -690,6 +690,8 @@ class BLINK_PLATFORM_EXPORT Platform { +@@ -697,6 +697,8 @@ class BLINK_PLATFORM_EXPORT Platform { virtual void DidStartWorkerThread() {} virtual void WillStopWorkerThread() {} virtual void WorkerContextCreated(const v8::Local& worker) {} diff --git a/patches/node/.patches b/patches/node/.patches index 755455d996dc..bf2a25bdc4ec 100644 --- a/patches/node/.patches +++ b/patches/node/.patches @@ -31,3 +31,4 @@ fix_add_safeforterminationscopes_for_sigint_interruptions.patch remove_makeexternal_case_for_uncached_internal_strings.patch fix_remove_outdated_--experimental-wasm-bigint_flag.patch fix_crypto_tests_to_run_with_bssl.patch +build_add_mjs_support_to_js2c.patch diff --git a/patches/node/build_add_gn_build_files.patch b/patches/node/build_add_gn_build_files.patch index 0e075bfc5ff8..a62422e83ce8 100644 --- a/patches/node/build_add_gn_build_files.patch +++ b/patches/node/build_add_gn_build_files.patch @@ -846,10 +846,10 @@ index 0000000000000000000000000000000000000000..2c9d2826c85bdd033f1df1d6188df636 +} diff --git a/filenames.json b/filenames.json new file mode 100644 -index 0000000000000000000000000000000000000000..2dfbb6aae48b65312f212ab01474763d5a796a23 +index 0000000000000000000000000000000000000000..2dc4680dd90f854ac965266c6f14a7196da1dba0 --- /dev/null +++ b/filenames.json -@@ -0,0 +1,538 @@ +@@ -0,0 +1,542 @@ +// This file is automatically generated by generate_gn_filenames_json.py +// DO NOT EDIT +{ @@ -877,15 +877,19 @@ index 0000000000000000000000000000000000000000..2dfbb6aae48b65312f212ab01474763d + "//v8/include/cppgc/ephemeron-pair.h", + "//v8/include/cppgc/garbage-collected.h", + "//v8/include/cppgc/heap-consistency.h", ++ "//v8/include/cppgc/heap-state.h", + "//v8/include/cppgc/heap.h", + "//v8/include/cppgc/liveness-broker.h", + "//v8/include/cppgc/macros.h", + "//v8/include/cppgc/member.h", + "//v8/include/cppgc/name-provider.h", ++ "//v8/include/cppgc/object-size-trait.h", + "//v8/include/cppgc/persistent.h", + "//v8/include/cppgc/platform.h", + "//v8/include/cppgc/prefinalizer.h", ++ "//v8/include/cppgc/sentinel-pointer.h", + "//v8/include/cppgc/source-location.h", ++ "//v8/include/cppgc/testing.h", + "//v8/include/cppgc/trace-trait.h", + "//v8/include/cppgc/type-traits.h", + "//v8/include/cppgc/visitor.h" @@ -1172,17 +1176,17 @@ index 0000000000000000000000000000000000000000..2dfbb6aae48b65312f212ab01474763d + "lib/internal/streams/state.js", + "lib/internal/streams/pipeline.js", + "lib/internal/streams/end-of-stream.js", -+ "//v8/tools/splaytree.js", -+ "//v8/tools/codemap.js", -+ "//v8/tools/consarray.js", -+ "//v8/tools/csvparser.js", -+ "//v8/tools/profile.js", -+ "//v8/tools/profile_view.js", -+ "//v8/tools/logreader.js", -+ "//v8/tools/arguments.js", -+ "//v8/tools/tickprocessor.js", -+ "//v8/tools/SourceMap.js", -+ "//v8/tools/tickprocessor-driver.js", ++ "//v8/tools/splaytree.mjs", ++ "//v8/tools/codemap.mjs", ++ "//v8/tools/consarray.mjs", ++ "//v8/tools/csvparser.mjs", ++ "//v8/tools/profile.mjs", ++ "//v8/tools/profile_view.mjs", ++ "//v8/tools/logreader.mjs", ++ "//v8/tools/arguments.mjs", ++ "//v8/tools/tickprocessor.mjs", ++ "//v8/tools/sourcemap.mjs", ++ "//v8/tools/tickprocessor-driver.mjs", + "deps/node-inspect/lib/_inspect.js", + "deps/node-inspect/lib/internal/inspect_client.js", + "deps/node-inspect/lib/internal/inspect_repl.js", @@ -1388,6 +1392,39 @@ index 0000000000000000000000000000000000000000..2dfbb6aae48b65312f212ab01474763d + "//v8/include/v8.h" + ] +} +diff --git a/node.gyp b/node.gyp +index f18a0d58a84c798abc946d2b389987009f80fa2d..4f13c5b2d4e9e22f37dab47cd44b475f515ebe97 100644 +--- a/node.gyp ++++ b/node.gyp +@@ -235,17 +235,17 @@ + 'lib/internal/streams/state.js', + 'lib/internal/streams/pipeline.js', + 'lib/internal/streams/end-of-stream.js', +- 'deps/v8/tools/splaytree.js', +- 'deps/v8/tools/codemap.js', +- 'deps/v8/tools/consarray.js', +- 'deps/v8/tools/csvparser.js', +- 'deps/v8/tools/profile.js', +- 'deps/v8/tools/profile_view.js', +- 'deps/v8/tools/logreader.js', +- 'deps/v8/tools/arguments.js', +- 'deps/v8/tools/tickprocessor.js', +- 'deps/v8/tools/SourceMap.js', +- 'deps/v8/tools/tickprocessor-driver.js', ++ 'deps/v8/tools/splaytree.mjs', ++ 'deps/v8/tools/codemap.mjs', ++ 'deps/v8/tools/consarray.mjs', ++ 'deps/v8/tools/csvparser.mjs', ++ 'deps/v8/tools/profile.mjs', ++ 'deps/v8/tools/profile_view.mjs', ++ 'deps/v8/tools/logreader.mjs', ++ 'deps/v8/tools/arguments.mjs', ++ 'deps/v8/tools/tickprocessor.mjs', ++ 'deps/v8/tools/sourcemap.mjs', ++ 'deps/v8/tools/tickprocessor-driver.mjs', + 'deps/node-inspect/lib/_inspect.js', + 'deps/node-inspect/lib/internal/inspect_client.js', + 'deps/node-inspect/lib/internal/inspect_repl.js', diff --git a/src/inspector/BUILD.gn b/src/inspector/BUILD.gn new file mode 100644 index 0000000000000000000000000000000000000000..f3c5c798c0aefcb8cf9b1570a7b4817c477aecf6 diff --git a/patches/node/build_add_mjs_support_to_js2c.patch b/patches/node/build_add_mjs_support_to_js2c.patch new file mode 100644 index 000000000000..8182734f0b1a --- /dev/null +++ b/patches/node/build_add_mjs_support_to_js2c.patch @@ -0,0 +1,172 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: John Kleinschmidt +Date: Thu, 18 Feb 2021 17:35:39 -0500 +Subject: build: add .mjs support to js2c + +V8 now uses .mjs files, so this updates js2c to handle those files. + +diff --git a/lib/internal/v8_prof_polyfill.js b/lib/internal/v8_prof_polyfill.js +index 5f5922c5386543189d6ae9293108425cf212b054..605c7274c1fff1a2f1bd0b6c4f667f86145036bd 100644 +--- a/lib/internal/v8_prof_polyfill.js ++++ b/lib/internal/v8_prof_polyfill.js +@@ -69,7 +69,7 @@ function read(fileName) { + const quit = process.exit; + + // Polyfill "readline()". +-const logFile = arguments[arguments.length - 1]; ++const logFile = globalThis.arguments[globalThis.arguments.length - 1]; + try { + fs.accessSync(logFile); + } catch(e) { +@@ -159,3 +159,11 @@ function macCppfiltNm(out) { + return prefix + (filtered[i++] || postfix); + }); + } ++ ++Object.assign(globalThis, { ++ os, ++ print, ++ read, ++ quit, ++ readline, ++}); +diff --git a/lib/internal/v8_prof_processor.js b/lib/internal/v8_prof_processor.js +index daae650b2ad8ef146eb3a55c95dc80e0dbc2e3d7..7d6c7dce30058a73427dc7705f3dd98c4a6f4319 100644 +--- a/lib/internal/v8_prof_processor.js ++++ b/lib/internal/v8_prof_processor.js +@@ -3,43 +3,51 @@ + const { + ArrayPrototypePush, + ArrayPrototypeSlice, +- JSONStringify, ++ StringPrototypeSlice, + } = primordials; + ++const Buffer = require('buffer').Buffer; ++const console = require('internal/console/global'); + const vm = require('vm'); ++const { SourceTextModule } = require('internal/vm/module'); + +-const scriptFiles = [ +- 'internal/v8_prof_polyfill', +- 'internal/deps/v8/tools/splaytree', +- 'internal/deps/v8/tools/codemap', +- 'internal/deps/v8/tools/csvparser', +- 'internal/deps/v8/tools/consarray', +- 'internal/deps/v8/tools/profile', +- 'internal/deps/v8/tools/profile_view', +- 'internal/deps/v8/tools/logreader', +- 'internal/deps/v8/tools/arguments', +- 'internal/deps/v8/tools/tickprocessor', +- 'internal/deps/v8/tools/SourceMap', +- 'internal/deps/v8/tools/tickprocessor-driver' +-]; +-let script = ''; +- +-for (const s of scriptFiles) { +- script += internalBinding('natives')[s] + '\n'; +-} ++const natives = internalBinding('natives'); + +-const tickArguments = []; +-if (process.platform === 'darwin') { +- ArrayPrototypePush(tickArguments, '--mac'); +-} else if (process.platform === 'win32') { +- ArrayPrototypePush(tickArguments, '--windows'); ++async function linker(specifier, referencingModule) { ++ // Transform "./file.mjs" to "file" ++ const file = StringPrototypeSlice(specifier, 2, -4); ++ const code = natives[`internal/deps/v8/tools/${file}`]; ++ return new SourceTextModule(code, { context: referencingModule.context }); + } +-ArrayPrototypePush(tickArguments, +- ...ArrayPrototypeSlice(process.argv, 1)); +-script = `(function(module, require) { +- arguments = ${JSONStringify(tickArguments)}; +- function write (s) { process.stdout.write(s) } +- function printErr(err) { console.error(err); } +- ${script} +-})`; +-vm.runInThisContext(script)(module, require); ++ ++(async () => { ++ const tickArguments = []; ++ if (process.platform === 'darwin') { ++ ArrayPrototypePush(tickArguments, '--mac'); ++ } else if (process.platform === 'win32') { ++ ArrayPrototypePush(tickArguments, '--windows'); ++ } ++ ArrayPrototypePush(tickArguments, ++ ...ArrayPrototypeSlice(process.argv, 1)); ++ ++ const context = vm.createContext({ ++ arguments: tickArguments, ++ write(s) { process.stdout.write(s); }, ++ printErr(err) { console.error(err); }, ++ console, ++ process, ++ Buffer, ++ }); ++ ++ const polyfill = natives['internal/v8_prof_polyfill']; ++ const script = `(function(module, require) { ++ ${polyfill} ++ })`; ++ ++ vm.runInContext(script, context)(module, require); ++ ++ const tickProcessor = natives['internal/deps/v8/tools/tickprocessor-driver']; ++ const tickprocessorDriver = new SourceTextModule(tickProcessor, { context }); ++ await tickprocessorDriver.link(linker); ++ await tickprocessorDriver.evaluate(); ++})(); +\ No newline at end of file +diff --git a/tools/js2c.py b/tools/js2c.py +index bca4c44a31d1ffe7c9ae15b6f60cd55e325f707d..7acb27e753e31429fbb5de30c62dd30a3be3b5bc 100755 +--- a/tools/js2c.py ++++ b/tools/js2c.py +@@ -151,20 +151,21 @@ def JS2C(source_files, target, only_js): + # Build source code lines + definitions = [] + initializers = [] +- +- for filename in source_files['.js']: +- AddModule(filename, definitions, initializers) +- +- # Electron: Expose fs module without asar support. +- if filename == 'lib/fs.js': +- # Node's 'fs' and 'internal/fs/ have lazy-loaded circular +- # dependencies. So to expose the unmodified Node 'fs' functionality here, +- # we have to copy both 'fs' *and* 'internal/fs/' files and modify the +- # copies to depend on each other instead of on our asarified 'fs' code. +- AddModule('lib/original-fs.js', definitions, initializers, lambda _: ReadFile(filename).replace("require('internal/fs/", "require('internal/original-fs/")) +- elif filename.startswith('lib/internal/fs/'): +- original_fs_filename = filename.replace('internal/fs/', 'internal/original-fs/') +- AddModule(original_fs_filename, definitions, initializers, lambda _: ReadFile(filename).replace("require('fs')", "require('original-fs')")) ++ for extension in source_files.keys(): ++ for filename in source_files[extension]: ++ if extension == '.js' or extension == '.mjs': ++ AddModule(filename, definitions, initializers) ++ ++ # Electron: Expose fs module without asar support. ++ if filename == 'lib/fs.js': ++ # Node's 'fs' and 'internal/fs/ have lazy-loaded circular ++ # dependencies. So to expose the unmodified Node 'fs' functionality here, ++ # we have to copy both 'fs' *and* 'internal/fs/' files and modify the ++ # copies to depend on each other instead of on our asarified 'fs' code. ++ AddModule('lib/original-fs.js', definitions, initializers, lambda _: ReadFile(filename).replace("require('internal/fs/", "require('internal/original-fs/")) ++ elif filename.startswith('lib/internal/fs/'): ++ original_fs_filename = filename.replace('internal/fs/', 'internal/original-fs/') ++ AddModule(original_fs_filename, definitions, initializers, lambda _: ReadFile(filename).replace("require('fs')", "require('original-fs')")) + + config_size = 0 + if not only_js: +@@ -240,7 +241,7 @@ def main(): + if options.only_js: + assert len(source_files) == 1 + else: +- assert len(source_files) == 2 ++ assert len(source_files) == 3 + # Currently config.gypi is the only `.gypi` file allowed + assert source_files['.gypi'][0].endswith('config.gypi') + source_files['config.gypi'] = source_files.pop('.gypi')[0] diff --git a/patches/v8/.patches b/patches/v8/.patches index 1bc3fa828558..c28181e02f98 100644 --- a/patches/v8/.patches +++ b/patches/v8/.patches @@ -7,4 +7,3 @@ workaround_an_undefined_symbol_error.patch do_not_export_private_v8_symbols_on_windows.patch fix_build_deprecated_attirbute_for_older_msvc_versions.patch chore_disallow_copying_cppheapcreateparams.patch -mac_wasm_work_around_macos_11_2_code_page_decommit_failures.patch diff --git a/patches/v8/add_realloc.patch b/patches/v8/add_realloc.patch index f5a73bd0b288..66e69651237a 100644 --- a/patches/v8/add_realloc.patch +++ b/patches/v8/add_realloc.patch @@ -12,10 +12,10 @@ when we override ReallocateBufferMemory, so we therefore need to implement Realloc on the v8 side. diff --git a/include/v8.h b/include/v8.h -index f292758e8f93d9b00eefe0d80b7891ffec96777b..f98795e3e211875a0930f3ffec8405af9c8bc535 100644 +index 63bd969ed6f83f8728a2cbb4479e269d1e3ffbc0..0d79c72077d05c69312d527b0e23b68f85a7cfd7 100644 --- a/include/v8.h +++ b/include/v8.h -@@ -5296,6 +5296,13 @@ class V8_EXPORT ArrayBuffer : public Object { +@@ -5295,6 +5295,13 @@ class V8_EXPORT ArrayBuffer : public Object { */ virtual void* AllocateUninitialized(size_t length) = 0; @@ -30,10 +30,10 @@ index f292758e8f93d9b00eefe0d80b7891ffec96777b..f98795e3e211875a0930f3ffec8405af * Free the memory block of size |length|, pointed to by |data|. * That memory is guaranteed to be previously allocated by |Allocate|. diff --git a/src/api/api.cc b/src/api/api.cc -index 3656bc689df8516283717db1165d4f4c01b4f1bf..f8c1dc45f36b87c3cf1339cec2528e267113e0b7 100644 +index 1107b70b672d783b479a28f7a66afb10959e41d8..3e00ce21aeba97372b0b849ecc47e1e9a5b3c804 100644 --- a/src/api/api.cc +++ b/src/api/api.cc -@@ -547,6 +547,10 @@ void V8::SetSnapshotDataBlob(StartupData* snapshot_blob) { +@@ -313,6 +313,10 @@ void V8::SetSnapshotDataBlob(StartupData* snapshot_blob) { i::V8::SetSnapshotBlob(snapshot_blob); } diff --git a/patches/v8/build_gn.patch b/patches/v8/build_gn.patch index 178f0dc399f6..92f2156e3682 100644 --- a/patches/v8/build_gn.patch +++ b/patches/v8/build_gn.patch @@ -9,10 +9,10 @@ necessary for native modules to load. Also, some fixes relating to mksnapshot on ARM. diff --git a/BUILD.gn b/BUILD.gn -index 0c7841f6bf68d4836a6798c3bce4f70c903f04c6..8c6b1a5c0c6f86dd5e9d332d90811ad459cbae81 100644 +index 2b6029fd109844fc140c6576a19c621f812bea93..54a421d6541a3811b7a6e24cd4ac55fa1c1d7a1a 100644 --- a/BUILD.gn +++ b/BUILD.gn -@@ -435,7 +435,7 @@ config("internal_config") { +@@ -441,7 +441,7 @@ config("internal_config") { ":cppgc_header_features", ] @@ -21,7 +21,7 @@ index 0c7841f6bf68d4836a6798c3bce4f70c903f04c6..8c6b1a5c0c6f86dd5e9d332d90811ad4 defines += [ "BUILDING_V8_SHARED" ] } } -@@ -4785,7 +4785,7 @@ if (current_toolchain == v8_generator_toolchain) { +@@ -4877,7 +4877,7 @@ if (current_toolchain == v8_generator_toolchain) { "src/interpreter/bytecodes.h", ] @@ -30,7 +30,7 @@ index 0c7841f6bf68d4836a6798c3bce4f70c903f04c6..8c6b1a5c0c6f86dd5e9d332d90811ad4 deps = [ ":v8_libbase", -@@ -4822,6 +4822,8 @@ if (current_toolchain == v8_snapshot_toolchain) { +@@ -4914,6 +4914,8 @@ if (current_toolchain == v8_snapshot_toolchain) { configs = [ ":internal_config" ] diff --git a/patches/v8/chore_disallow_copying_cppheapcreateparams.patch b/patches/v8/chore_disallow_copying_cppheapcreateparams.patch index c023da5b44ef..50c7c8a0f187 100644 --- a/patches/v8/chore_disallow_copying_cppheapcreateparams.patch +++ b/patches/v8/chore_disallow_copying_cppheapcreateparams.patch @@ -11,10 +11,10 @@ implicitly deletes its copy ctor, so this commit makes it explicit. Xref: https://chromium-review.googlesource.com/c/v8/v8/+/2536642 diff --git a/include/v8-cppgc.h b/include/v8-cppgc.h -index 33e06f4495979eab3fa1e0ac7af3e0b306254446..08e63751fcd2fe590299b0708b19e9c741bd3e40 100644 +index 8860ea8a78de67ab9e9ac453ec1774c8c6b17b8a..1ae9c485bbf083449d7e812696975ffef5e37573 100644 --- a/include/v8-cppgc.h +++ b/include/v8-cppgc.h -@@ -25,8 +25,13 @@ namespace internal { +@@ -26,8 +26,13 @@ namespace internal { class CppHeap; } // namespace internal @@ -30,14 +30,13 @@ index 33e06f4495979eab3fa1e0ac7af3e0b306254446..08e63751fcd2fe590299b0708b19e9c7 /** diff --git a/include/v8.h b/include/v8.h -index f98795e3e211875a0930f3ffec8405af9c8bc535..afa10ecb6b19e97ff7dc4848610611294cd26588 100644 +index 0d79c72077d05c69312d527b0e23b68f85a7cfd7..5e03f54a918191650d5dd6768a6e8c3a31de4300 100644 --- a/include/v8.h +++ b/include/v8.h -@@ -93,7 +93,7 @@ class Utils; +@@ -93,6 +93,7 @@ class Utils; class Value; class WasmMemoryObject; class WasmModuleObject; --struct CppHeapCreateParams; +class CppHeapCreateParams; template class GlobalValueMap; diff --git a/patches/v8/dcheck.patch b/patches/v8/dcheck.patch index ba5c3e338e76..e8f5db7b831e 100644 --- a/patches/v8/dcheck.patch +++ b/patches/v8/dcheck.patch @@ -6,10 +6,10 @@ Subject: dcheck.patch https://github.com/auchenberg/volkswagen diff --git a/src/api/api.cc b/src/api/api.cc -index f8c1dc45f36b87c3cf1339cec2528e267113e0b7..a2d7272f7da99dbe20c0be24a017ced7729d25d9 100644 +index 3e00ce21aeba97372b0b849ecc47e1e9a5b3c804..5c5498a5c0732158bf4f4eb37c7d21231ccac45d 100644 --- a/src/api/api.cc +++ b/src/api/api.cc -@@ -9025,7 +9025,7 @@ void Isolate::SetPromiseRejectCallback(PromiseRejectCallback callback) { +@@ -8798,7 +8798,7 @@ void Isolate::SetPromiseRejectCallback(PromiseRejectCallback callback) { } void Isolate::PerformMicrotaskCheckpoint() { @@ -19,10 +19,10 @@ index f8c1dc45f36b87c3cf1339cec2528e267113e0b7..a2d7272f7da99dbe20c0be24a017ced7 isolate->default_microtask_queue()->PerformCheckpoint(this); } diff --git a/src/heap/heap.cc b/src/heap/heap.cc -index 86049c4890848af9b0aae04b4656175ef6a62385..9e20eecf4839ff5638833cf2161a821939308a29 100644 +index 23b84296be18f17371ae1aaa3d4389e23963e313..5b53bc8ee05824bab22302e8a731839f3b3f2318 100644 --- a/src/heap/heap.cc +++ b/src/heap/heap.cc -@@ -5544,9 +5544,9 @@ void Heap::TearDown() { +@@ -5551,9 +5551,9 @@ void Heap::TearDown() { void Heap::AddGCPrologueCallback(v8::Isolate::GCCallbackWithData callback, GCType gc_type, void* data) { DCHECK_NOT_NULL(callback); diff --git a/patches/v8/do_not_export_private_v8_symbols_on_windows.patch b/patches/v8/do_not_export_private_v8_symbols_on_windows.patch index 8c6bc38eb2c3..e52411d9d208 100644 --- a/patches/v8/do_not_export_private_v8_symbols_on_windows.patch +++ b/patches/v8/do_not_export_private_v8_symbols_on_windows.patch @@ -12,10 +12,10 @@ This patch can be safely removed if, when it is removed, `node.lib` does not contain any standard C++ library exports (e.g. `std::ostringstream`). diff --git a/BUILD.gn b/BUILD.gn -index 5b2a7b672f7360e4edf028c868a3cc7ffb4d2784..83a404d1adfe962fb258d555be278ff21bb1ce92 100644 +index 77760d840e62acfd214633108da576f296d32ce8..6d3202f21931cccbd69765d27926b8c92dc9aad1 100644 --- a/BUILD.gn +++ b/BUILD.gn -@@ -435,6 +435,10 @@ config("internal_config") { +@@ -441,6 +441,10 @@ config("internal_config") { ":cppgc_header_features", ] diff --git a/patches/v8/export_symbols_needed_for_windows_build.patch b/patches/v8/export_symbols_needed_for_windows_build.patch index 2d1be16f8b5c..5cffe9e6f8a9 100644 --- a/patches/v8/export_symbols_needed_for_windows_build.patch +++ b/patches/v8/export_symbols_needed_for_windows_build.patch @@ -6,10 +6,10 @@ Subject: Export symbols needed for Windows build These symbols are required to build v8 with BUILD_V8_SHARED on Windows. diff --git a/src/objects/objects.h b/src/objects/objects.h -index a6b6cd2d2445f5247e5ec3d5e1cd41972c1fa278..50f575f3ea3a5a24116fafc9cc60123323f50307 100644 +index 73b3369da085f8950d6f92589f93cd80273a57ab..da598f60382f54d30abae1ad30256f998b7b2628 100644 --- a/src/objects/objects.h +++ b/src/objects/objects.h -@@ -825,7 +825,7 @@ enum class KeyCollectionMode { +@@ -826,7 +826,7 @@ enum class KeyCollectionMode { // Utility superclass for stack-allocated objects that must be updated // on gc. It provides two ways for the gc to update instances, either // iterating or updating after gc. diff --git a/patches/v8/expose_mksnapshot.patch b/patches/v8/expose_mksnapshot.patch index 1c90bc7b3667..c0539fe6b2ba 100644 --- a/patches/v8/expose_mksnapshot.patch +++ b/patches/v8/expose_mksnapshot.patch @@ -6,10 +6,10 @@ Subject: expose_mksnapshot.patch Needed in order to target mksnapshot for mksnapshot zip. diff --git a/BUILD.gn b/BUILD.gn -index 8c6b1a5c0c6f86dd5e9d332d90811ad459cbae81..5b2a7b672f7360e4edf028c868a3cc7ffb4d2784 100644 +index 54a421d6541a3811b7a6e24cd4ac55fa1c1d7a1a..77760d840e62acfd214633108da576f296d32ce8 100644 --- a/BUILD.gn +++ b/BUILD.gn -@@ -4796,7 +4796,6 @@ if (current_toolchain == v8_generator_toolchain) { +@@ -4888,7 +4888,6 @@ if (current_toolchain == v8_generator_toolchain) { if (current_toolchain == v8_snapshot_toolchain) { v8_executable("mksnapshot") { diff --git a/patches/v8/mac_wasm_work_around_macos_11_2_code_page_decommit_failures.patch b/patches/v8/mac_wasm_work_around_macos_11_2_code_page_decommit_failures.patch deleted file mode 100644 index 7758aa2fa86c..000000000000 --- a/patches/v8/mac_wasm_work_around_macos_11_2_code_page_decommit_failures.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: deepak1556 -Date: Mon, 8 Feb 2021 13:20:09 -0800 -Subject: Work around MacOS 11.2 code page decommit failures - -MacOS 11.2 refuses to set "no access" permissions on memory that -we previously used for JIT-compiled code. It is still unclear -whether this is WAI on the part of the kernel. In the meantime, -as a workaround, we use madvise(..., MADV_FREE_REUSABLE) instead -of mprotect(..., NONE) when discarding code pages. This is inspired -by what Chromium's gin platform does. - -Fixed: v8:11389 -Change-Id: I866586932573b4253002436ae5eee4e0411c45fc -Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2679688 -Commit-Queue: Jakob Kummerow -Commit-Queue: Michael Lippautz -Auto-Submit: Jakob Kummerow -Reviewed-by: Michael Lippautz -Cr-Commit-Position: refs/heads/master@{#72559} - -diff --git a/src/base/platform/platform-posix.cc b/src/base/platform/platform-posix.cc -index ab0d7839a453d87a8404ca791c1022871e8fd606..67746173d582c5c404083be8ef3fa36c7dfc8cfe 100644 ---- a/src/base/platform/platform-posix.cc -+++ b/src/base/platform/platform-posix.cc -@@ -415,6 +415,16 @@ bool OS::SetPermissions(void* address, size_t size, MemoryPermission access) { - - int prot = GetProtectionFromMemoryPermission(access); - int ret = mprotect(address, size, prot); -+ -+ // MacOS 11.2 on Apple Silicon refuses to switch permissions from -+ // rwx to none. Just use madvise instead. -+#if defined(V8_OS_MACOSX) -+ if (ret != 0 && access == OS::MemoryPermission::kNoAccess) { -+ ret = madvise(address, size, MADV_FREE_REUSABLE); -+ return ret == 0; -+ } -+#endif -+ - if (ret == 0 && access == OS::MemoryPermission::kNoAccess) { - // This is advisory; ignore errors and continue execution. - USE(DiscardSystemPages(address, size)); diff --git a/patches/v8/workaround_an_undefined_symbol_error.patch b/patches/v8/workaround_an_undefined_symbol_error.patch index a80d0bd43a83..99a908147397 100644 --- a/patches/v8/workaround_an_undefined_symbol_error.patch +++ b/patches/v8/workaround_an_undefined_symbol_error.patch @@ -12,10 +12,10 @@ By moving some functions out of the the arm64-assembler header file, this error no longer seems to happen. diff --git a/src/codegen/arm64/assembler-arm64.cc b/src/codegen/arm64/assembler-arm64.cc -index 8a44d21428b047eed73e0cf405c5064a0649b8cf..495c950b6cf725f4c4287e204d601ce178dc825d 100644 +index 441f299a17a6f870f545dbcd2c28a5e49b952ac3..79249d463c8fe7d73caca6b36ed6033b3c363c67 100644 --- a/src/codegen/arm64/assembler-arm64.cc +++ b/src/codegen/arm64/assembler-arm64.cc -@@ -3653,6 +3653,22 @@ void Assembler::MoveWide(const Register& rd, uint64_t imm, int shift, +@@ -3658,6 +3658,22 @@ void Assembler::MoveWide(const Register& rd, uint64_t imm, int shift, ImmMoveWide(static_cast(imm)) | ShiftMoveWide(shift)); } diff --git a/script/sysroots.json b/script/sysroots.json index 440b3cc01a7a..3ca3f7885b63 100644 --- a/script/sysroots.json +++ b/script/sysroots.json @@ -1,36 +1,36 @@ { "sid_amd64": { - "Sha1Sum": "d0e41d72491213f37d9e0a59aab2e8b5c4c5edba", + "Sha1Sum": "81acf7310188100883fceb352226c79bf8625638", "SysrootDir": "debian_sid_amd64-sysroot", "Tarball": "debian_sid_amd64_sysroot.tar.xz" }, "sid_arm": { - "Sha1Sum": "e42ced6f8e348e475b7ea0a61b3e3af9c8e2f890", + "Sha1Sum": "203fa714f60ac9efd99a368edaf87ca415142594", "SysrootDir": "debian_sid_arm-sysroot", "Tarball": "debian_sid_arm_sysroot.tar.xz" }, "sid_arm64": { - "Sha1Sum": "b1cae89cb6e71ea132ccdfe3d3ecf709d356a715", + "Sha1Sum": "090973dc7d1f2f4b71e720f5f50053f92b4daefb", "SysrootDir": "debian_sid_arm64-sysroot", "Tarball": "debian_sid_arm64_sysroot.tar.xz" }, "sid_armel": { - "Sha1Sum": "1cbeb754d41a4a5da2be578288461d1ac9a64f1b", + "Sha1Sum": "bf7453915610aed2c7aa5bda3740e7b0688903b0", "SysrootDir": "debian_sid_armel-sysroot", "Tarball": "debian_sid_armel_sysroot.tar.xz" }, "sid_i386": { - "Sha1Sum": "5702f88f06b5994e0cc9fd64cdcaf642c1aa7f40", + "Sha1Sum": "c5be98b9769327400acce5990ed9a50b9c5218d6", "SysrootDir": "debian_sid_i386-sysroot", "Tarball": "debian_sid_i386_sysroot.tar.xz" }, "sid_mips": { - "Sha1Sum": "d6e8af2aa0c560b704a7bbcc0b1f3376c5b9a54a", + "Sha1Sum": "778ff68e0de9a2a4f71d234aee56031b0a147097", "SysrootDir": "debian_sid_mips-sysroot", "Tarball": "debian_sid_mips_sysroot.tar.xz" }, "sid_mips64el": { - "Sha1Sum": "1b952bf7971332eaba9e83f71c0515b057ef76be", + "Sha1Sum": "adc487e6b5b944259d10972e5a88efb8994e397d", "SysrootDir": "debian_sid_mips64el-sysroot", "Tarball": "debian_sid_mips64el_sysroot.tar.xz" } diff --git a/shell/app/electron_crash_reporter_client.cc b/shell/app/electron_crash_reporter_client.cc index 91fd12b13dd5..07fc91e30c1a 100644 --- a/shell/app/electron_crash_reporter_client.cc +++ b/shell/app/electron_crash_reporter_client.cc @@ -125,11 +125,11 @@ base::FilePath ElectronCrashReporterClient::GetReporterLogFilename() { #if defined(OS_WIN) void ElectronCrashReporterClient::GetProductNameAndVersion( - const base::string16& exe_path, - base::string16* product_name, - base::string16* version, - base::string16* special_build, - base::string16* channel_name) { + const std::wstring& exe_path, + std::wstring* product_name, + std::wstring* version, + std::wstring* special_build, + std::wstring* channel_name) { *product_name = base::UTF8ToUTF16(ELECTRON_PRODUCT_NAME); *version = base::UTF8ToUTF16(ELECTRON_VERSION_STRING); } @@ -137,7 +137,7 @@ void ElectronCrashReporterClient::GetProductNameAndVersion( #if defined(OS_WIN) bool ElectronCrashReporterClient::GetCrashDumpLocation( - base::string16* crash_dir_str) { + std::wstring* crash_dir_str) { base::FilePath crash_dir; if (!base::PathService::Get(electron::DIR_CRASH_DUMPS, &crash_dir)) return false; diff --git a/shell/app/electron_crash_reporter_client.h b/shell/app/electron_crash_reporter_client.h index 287a38ab942c..f5f50671cf59 100644 --- a/shell/app/electron_crash_reporter_client.h +++ b/shell/app/electron_crash_reporter_client.h @@ -39,15 +39,15 @@ class ElectronCrashReporterClient : public crash_reporter::CrashReporterClient { #endif #if defined(OS_WIN) - void GetProductNameAndVersion(const base::string16& exe_path, - base::string16* product_name, - base::string16* version, - base::string16* special_build, - base::string16* channel_name) override; + void GetProductNameAndVersion(const std::wstring& exe_path, + std::wstring* product_name, + std::wstring* version, + std::wstring* special_build, + std::wstring* channel_name) override; #endif #if defined(OS_WIN) - bool GetCrashDumpLocation(base::string16* crash_dir) override; + bool GetCrashDumpLocation(std::wstring* crash_dir) override; #else bool GetCrashDumpLocation(base::FilePath* crash_dir) override; #endif diff --git a/shell/browser/api/electron_api_browser_window.cc b/shell/browser/api/electron_api_browser_window.cc index 501f557cd527..75d4daf51c4c 100644 --- a/shell/browser/api/electron_api_browser_window.cc +++ b/shell/browser/api/electron_api_browser_window.cc @@ -133,14 +133,14 @@ void BrowserWindow::RenderViewHostChanged(content::RenderViewHost* old_host, new_host->GetWidget()->AddInputEventObserver(this); } -void BrowserWindow::RenderViewCreated( - content::RenderViewHost* render_view_host) { +void BrowserWindow::RenderFrameCreated( + content::RenderFrameHost* render_frame_host) { if (!window()->transparent()) return; content::RenderWidgetHostImpl* impl = content::RenderWidgetHostImpl::FromID( - render_view_host->GetProcess()->GetID(), - render_view_host->GetRoutingID()); + render_frame_host->GetProcess()->GetID(), + render_frame_host->GetRoutingID()); if (impl) impl->owner_delegate()->SetBackgroundOpaque(false); } diff --git a/shell/browser/api/electron_api_browser_window.h b/shell/browser/api/electron_api_browser_window.h index 0824defa22ad..a3423b3a83fb 100644 --- a/shell/browser/api/electron_api_browser_window.h +++ b/shell/browser/api/electron_api_browser_window.h @@ -48,7 +48,7 @@ class BrowserWindow : public BaseWindow, // content::WebContentsObserver: void RenderViewHostChanged(content::RenderViewHost* old_host, content::RenderViewHost* new_host) override; - void RenderViewCreated(content::RenderViewHost* render_view_host) override; + void RenderFrameCreated(content::RenderFrameHost* render_frame_host) override; void DidFirstVisuallyNonEmptyPaint() override; void BeforeUnloadDialogCancelled() override; void OnRendererUnresponsive(content::RenderProcessHost*) override; diff --git a/shell/browser/api/electron_api_crash_reporter.cc b/shell/browser/api/electron_api_crash_reporter.cc index 70143c3f6e4c..e0ee02960907 100644 --- a/shell/browser/api/electron_api_crash_reporter.cc +++ b/shell/browser/api/electron_api_crash_reporter.cc @@ -30,8 +30,8 @@ #include "shell/common/node_includes.h" #if !defined(MAS_BUILD) -#include "chrome/browser/crash_upload_list/crash_upload_list_crashpad.h" #include "components/crash/core/app/crashpad.h" // nogncheck +#include "components/crash/core/browser/crash_upload_list_crashpad.h" // nogncheck #include "components/crash/core/common/crash_key.h" #include "shell/app/electron_crash_reporter_client.h" #include "shell/common/crash_keys.h" diff --git a/shell/browser/api/electron_api_data_pipe_holder.cc b/shell/browser/api/electron_api_data_pipe_holder.cc index 229999e67c2c..227caa06ff58 100644 --- a/shell/browser/api/electron_api_data_pipe_holder.cc +++ b/shell/browser/api/electron_api_data_pipe_holder.cc @@ -44,11 +44,12 @@ class DataPipeReader { mojo::SimpleWatcher::ArmingPolicy::MANUAL, base::SequencedTaskRunnerHandle::Get()) { // Get a new data pipe and start. - mojo::DataPipe data_pipe; - data_pipe_getter_->Read(std::move(data_pipe.producer_handle), + mojo::ScopedDataPipeProducerHandle producer_handle; + CHECK_EQ(mojo::CreateDataPipe(nullptr, producer_handle, data_pipe_), + MOJO_RESULT_OK); + data_pipe_getter_->Read(std::move(producer_handle), base::BindOnce(&DataPipeReader::ReadCallback, weak_factory_.GetWeakPtr())); - data_pipe_ = std::move(data_pipe.consumer_handle); handle_watcher_.Watch(data_pipe_.get(), MOJO_HANDLE_SIGNAL_READABLE, base::BindRepeating(&DataPipeReader::OnHandleReadable, weak_factory_.GetWeakPtr())); diff --git a/shell/browser/api/electron_api_web_contents.cc b/shell/browser/api/electron_api_web_contents.cc index c36f92bfd491..bf5908568a50 100644 --- a/shell/browser/api/electron_api_web_contents.cc +++ b/shell/browser/api/electron_api_web_contents.cc @@ -503,7 +503,7 @@ std::string RegisterFileSystem(content::WebContents* web_contents, std::string root_name(kRootName); storage::IsolatedContext::ScopedFSHandle file_system = isolated_context->RegisterFileSystemForPath( - storage::kFileSystemTypeNativeLocal, std::string(), path, &root_name); + storage::kFileSystemTypeLocal, std::string(), path, &root_name); content::ChildProcessSecurityPolicy* policy = content::ChildProcessSecurityPolicy::GetInstance(); @@ -1273,14 +1273,7 @@ void WebContents::RendererResponsive( bool WebContents::HandleContextMenu(content::RenderFrameHost* render_frame_host, const content::ContextMenuParams& params) { - if (params.custom_context.is_pepper_menu) { - Emit("pepper-context-menu", std::make_pair(params, web_contents()), - base::BindOnce(&content::WebContents::NotifyContextMenuClosed, - base::Unretained(web_contents()), - params.custom_context)); - } else { - Emit("context-menu", std::make_pair(params, web_contents())); - } + Emit("context-menu", std::make_pair(params, web_contents())); return true; } @@ -1357,30 +1350,27 @@ void WebContents::BeforeUnloadFired(bool proceed, // there are two virtual functions named BeforeUnloadFired. } -void WebContents::RenderViewCreated(content::RenderViewHost* render_view_host) { - if (!background_throttling_) - render_view_host->SetSchedulerThrottling(false); - - // Set the background color of RenderWidgetHostView. - auto* const view = web_contents()->GetRenderWidgetHostView(); - auto* web_preferences = WebContentsPreferences::From(web_contents()); - if (view && web_preferences) { - std::string color_name; - if (web_preferences->GetPreference(options::kBackgroundColor, - &color_name)) { - view->SetBackgroundColor(ParseHexColor(color_name)); - } else { - view->SetBackgroundColor(SK_ColorTRANSPARENT); - } - } -} - void WebContents::RenderFrameCreated( content::RenderFrameHost* render_frame_host) { auto* rwhv = render_frame_host->GetView(); if (!rwhv) return; + // Set the background color of RenderWidgetHostView. + auto* web_preferences = WebContentsPreferences::From(web_contents()); + if (web_preferences) { + std::string color_name; + if (web_preferences->GetPreference(options::kBackgroundColor, + &color_name)) { + rwhv->SetBackgroundColor(ParseHexColor(color_name)); + } else { + rwhv->SetBackgroundColor(SK_ColorTRANSPARENT); + } + } + + if (!background_throttling_) + render_frame_host->GetRenderViewHost()->SetSchedulerThrottling(false); + auto* rwh_impl = static_cast(rwhv->GetRenderWidgetHost()); if (rwh_impl) diff --git a/shell/browser/api/electron_api_web_contents.h b/shell/browser/api/electron_api_web_contents.h index 927f28db54e5..a490ba6f94ec 100644 --- a/shell/browser/api/electron_api_web_contents.h +++ b/shell/browser/api/electron_api_web_contents.h @@ -549,7 +549,6 @@ class WebContents : public gin::Wrappable, // content::WebContentsObserver: void BeforeUnloadFired(bool proceed, const base::TimeTicks& proceed_time) override; - void RenderViewCreated(content::RenderViewHost* render_view_host) override; void RenderFrameCreated(content::RenderFrameHost* render_frame_host) override; void RenderViewDeleted(content::RenderViewHost*) override; void RenderProcessGone(base::TerminationStatus status) override; diff --git a/shell/browser/api/frame_subscriber.cc b/shell/browser/api/frame_subscriber.cc index 3524a9ea4e07..42bbe5e6a24d 100644 --- a/shell/browser/api/frame_subscriber.cc +++ b/shell/browser/api/frame_subscriber.cc @@ -62,9 +62,10 @@ void FrameSubscriber::DetachFromHost() { host_ = nullptr; } -void FrameSubscriber::RenderViewCreated(content::RenderViewHost* host) { +void FrameSubscriber::RenderFrameCreated( + content::RenderFrameHost* render_frame_host) { if (!host_) - AttachToHost(host->GetWidget()); + AttachToHost(render_frame_host->GetRenderWidgetHost()); } void FrameSubscriber::RenderViewDeleted(content::RenderViewHost* host) { diff --git a/shell/browser/api/frame_subscriber.h b/shell/browser/api/frame_subscriber.h index 8ab1cc756bad..486cee454597 100644 --- a/shell/browser/api/frame_subscriber.h +++ b/shell/browser/api/frame_subscriber.h @@ -41,7 +41,7 @@ class FrameSubscriber : public content::WebContentsObserver, void AttachToHost(content::RenderWidgetHost* host); void DetachFromHost(); - void RenderViewCreated(content::RenderViewHost* host) override; + void RenderFrameCreated(content::RenderFrameHost* render_frame_host) override; void RenderViewDeleted(content::RenderViewHost* host) override; void RenderViewHostChanged(content::RenderViewHost* old_host, content::RenderViewHost* new_host) override; diff --git a/shell/browser/browser_process_impl.cc b/shell/browser/browser_process_impl.cc index 1bad228805ef..9aa7488c0fc5 100644 --- a/shell/browser/browser_process_impl.cc +++ b/shell/browser/browser_process_impl.cc @@ -128,10 +128,6 @@ metrics::MetricsService* BrowserProcessImpl::metrics_service() { return nullptr; } -rappor::RapporServiceImpl* BrowserProcessImpl::rappor_service() { - return nullptr; -} - ProfileManager* BrowserProcessImpl::profile_manager() { return nullptr; } diff --git a/shell/browser/browser_process_impl.h b/shell/browser/browser_process_impl.h index d50f32769ae7..662d1813ed2c 100644 --- a/shell/browser/browser_process_impl.h +++ b/shell/browser/browser_process_impl.h @@ -51,7 +51,6 @@ class BrowserProcessImpl : public BrowserProcess { metrics_services_manager::MetricsServicesManager* GetMetricsServicesManager() override; metrics::MetricsService* metrics_service() override; - rappor::RapporServiceImpl* rappor_service() override; ProfileManager* profile_manager() override; PrefService* local_state() override; scoped_refptr shared_url_loader_factory() diff --git a/shell/browser/electron_autofill_driver.cc b/shell/browser/electron_autofill_driver.cc index dec5f519f83f..029df62158e7 100644 --- a/shell/browser/electron_autofill_driver.cc +++ b/shell/browser/electron_autofill_driver.cc @@ -17,10 +17,10 @@ namespace electron { AutofillDriver::AutofillDriver( content::RenderFrameHost* render_frame_host, - mojom::ElectronAutofillDriverAssociatedRequest request) - : render_frame_host_(render_frame_host), binding_(this) { + mojo::PendingAssociatedReceiver request) + : render_frame_host_(render_frame_host), + receiver_(this, std::move(request)) { autofill_popup_ = std::make_unique(); - binding_.Bind(std::move(request)); } AutofillDriver::~AutofillDriver() = default; diff --git a/shell/browser/electron_autofill_driver.h b/shell/browser/electron_autofill_driver.h index 98ba569b7d94..f1085e730901 100644 --- a/shell/browser/electron_autofill_driver.h +++ b/shell/browser/electron_autofill_driver.h @@ -12,15 +12,17 @@ #include "shell/browser/ui/autofill_popup.h" #endif -#include "mojo/public/cpp/bindings/associated_binding.h" +#include "mojo/public/cpp/bindings/associated_receiver.h" +#include "mojo/public/cpp/bindings/pending_associated_receiver.h" #include "shell/common/api/api.mojom.h" namespace electron { class AutofillDriver : public mojom::ElectronAutofillDriver { public: - AutofillDriver(content::RenderFrameHost* render_frame_host, - mojom::ElectronAutofillDriverAssociatedRequest request); + AutofillDriver( + content::RenderFrameHost* render_frame_host, + mojo::PendingAssociatedReceiver request); ~AutofillDriver() override; @@ -36,7 +38,7 @@ class AutofillDriver : public mojom::ElectronAutofillDriver { std::unique_ptr autofill_popup_; #endif - mojo::AssociatedBinding binding_; + mojo::AssociatedReceiver receiver_; }; } // namespace electron diff --git a/shell/browser/electron_browser_client.cc b/shell/browser/electron_browser_client.cc index c00a61155acf..7ae833bb084a 100644 --- a/shell/browser/electron_browser_client.cc +++ b/shell/browser/electron_browser_client.cc @@ -35,7 +35,6 @@ #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/client_certificate_delegate.h" #include "content/public/browser/login_delegate.h" -#include "content/public/browser/non_network_url_loader_factory_base.h" #include "content/public/browser/overlay_window.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_process_host.h" @@ -59,6 +58,7 @@ #include "services/device/public/cpp/geolocation/location_provider.h" #include "services/network/public/cpp/features.h" #include "services/network/public/cpp/resource_request_body.h" +#include "services/network/public/cpp/self_deleting_url_loader_factory.h" #include "shell/app/electron_crash_reporter_client.h" #include "shell/browser/api/electron_api_app.h" #include "shell/browser/api/electron_api_crash_reporter.h" @@ -1295,7 +1295,7 @@ namespace { // The FileURLLoaderFactory provided to the extension background pages. // Checks with the ChildProcessSecurityPolicy to validate the file access. -class FileURLLoaderFactory : public content::NonNetworkURLLoaderFactoryBase { +class FileURLLoaderFactory : public network::SelfDeletingURLLoaderFactory { public: static mojo::PendingRemote Create( int child_id) { @@ -1313,7 +1313,7 @@ class FileURLLoaderFactory : public content::NonNetworkURLLoaderFactoryBase { explicit FileURLLoaderFactory( int child_id, mojo::PendingReceiver factory_receiver) - : content::NonNetworkURLLoaderFactoryBase(std::move(factory_receiver)), + : network::SelfDeletingURLLoaderFactory(std::move(factory_receiver)), child_id_(child_id) {} ~FileURLLoaderFactory() override = default; diff --git a/shell/browser/electron_browser_context.cc b/shell/browser/electron_browser_context.cc index 79770f22f7fc..2f48d7f2e86d 100644 --- a/shell/browser/electron_browser_context.cc +++ b/shell/browser/electron_browser_context.cc @@ -354,6 +354,8 @@ ElectronBrowserContext::GetURLLoaderFactory() { auto* storage_partition = content::BrowserContext::GetDefaultStoragePartition(this); + params->auth_cert_observer = + storage_partition->CreateAuthAndCertObserverForNavigationRequest(-1); storage_partition->GetNetworkContext()->CreateURLLoaderFactory( std::move(factory_receiver), std::move(params)); url_loader_factory_ = @@ -432,28 +434,23 @@ ElectronBrowserContext::GetStorageNotificationService() { } void ElectronBrowserContext::SetCorsOriginAccessListForOrigin( + TargetBrowserContexts target_mode, const url::Origin& source_origin, std::vector allow_patterns, std::vector block_patterns, base::OnceClosure closure) { - auto& context_map = ElectronBrowserContext::browser_context_map(); - auto barrier_closure = - BarrierClosure(1 + context_map.size(), std::move(closure)); - - for (auto& iter : context_map) { - if (iter.second) { - auto bc_setter = base::MakeRefCounted( - source_origin, - content::CorsOriginPatternSetter::ClonePatterns(allow_patterns), - content::CorsOriginPatternSetter::ClonePatterns(block_patterns), - barrier_closure); - ForEachStoragePartition( - std::move(iter.second.get()), - base::BindRepeating(&content::CorsOriginPatternSetter::SetLists, - base::RetainedRef(bc_setter.get()))); - } - } + using content::CorsOriginPatternSetter; + // We ignore target_mode because we don't support extensions in in-memory + // sessions. + auto barrier_closure = BarrierClosure(2, std::move(closure)); + base::MakeRefCounted( + source_origin, CorsOriginPatternSetter::ClonePatterns(allow_patterns), + CorsOriginPatternSetter::ClonePatterns(block_patterns), barrier_closure) + ->ApplyToEachStoragePartition(this); + // Keep the per-profile access list up to date so that we can use this to + // restore NetworkContext settings at anytime, e.g. on restarting the + // network service. shared_cors_origin_access_list_->SetForOrigin( source_origin, std::move(allow_patterns), std::move(block_patterns), barrier_closure); diff --git a/shell/browser/electron_browser_context.h b/shell/browser/electron_browser_context.h index e840dbea1f2e..1a55d7191cc8 100644 --- a/shell/browser/electron_browser_context.h +++ b/shell/browser/electron_browser_context.h @@ -115,6 +115,7 @@ class ElectronBrowserContext // extensions deps void SetCorsOriginAccessListForOrigin( + TargetBrowserContexts target_mode, const url::Origin& source_origin, std::vector allow_patterns, std::vector block_patterns, diff --git a/shell/browser/electron_browser_main_parts.cc b/shell/browser/electron_browser_main_parts.cc index 991b47856ad9..e4ae699c6047 100644 --- a/shell/browser/electron_browser_main_parts.cc +++ b/shell/browser/electron_browser_main_parts.cc @@ -86,7 +86,7 @@ #endif #if defined(OS_WIN) -#include "ui/base/cursor/cursor_loader_win.h" +#include "ui/base/cursor/win/win_cursor_factory.h" #include "ui/base/l10n/l10n_util_win.h" #include "ui/display/win/dpi.h" #include "ui/gfx/system_fonts_win.h" @@ -408,7 +408,7 @@ void ElectronBrowserMainParts::ToolkitInitialized() { wchar_t module_name[MAX_PATH] = {0}; if (GetModuleFileName(NULL, module_name, base::size(module_name))) - ui::CursorLoaderWin::SetCursorResourceModule(module_name); + ui::SetCursorResourceModule(module_name); #endif #if defined(OS_MAC) diff --git a/shell/browser/extensions/electron_extension_host_delegate.cc b/shell/browser/extensions/electron_extension_host_delegate.cc index 91e27343c0fb..82dbe4ca9960 100644 --- a/shell/browser/extensions/electron_extension_host_delegate.cc +++ b/shell/browser/extensions/electron_extension_host_delegate.cc @@ -24,7 +24,7 @@ void ElectronExtensionHostDelegate::OnExtensionHostCreated( ElectronExtensionWebContentsObserver::CreateForWebContents(web_contents); } -void ElectronExtensionHostDelegate::OnRenderViewCreatedForBackgroundPage( +void ElectronExtensionHostDelegate::OnMainFrameCreatedForBackgroundPage( ExtensionHost* host) {} content::JavaScriptDialogManager* diff --git a/shell/browser/extensions/electron_extension_host_delegate.h b/shell/browser/extensions/electron_extension_host_delegate.h index 7334603c39b2..6be6b437e770 100644 --- a/shell/browser/extensions/electron_extension_host_delegate.h +++ b/shell/browser/extensions/electron_extension_host_delegate.h @@ -21,7 +21,7 @@ class ElectronExtensionHostDelegate : public ExtensionHostDelegate { // ExtensionHostDelegate implementation. void OnExtensionHostCreated(content::WebContents* web_contents) override; - void OnRenderViewCreatedForBackgroundPage(ExtensionHost* host) override; + void OnMainFrameCreatedForBackgroundPage(ExtensionHost* host) override; content::JavaScriptDialogManager* GetJavaScriptDialogManager() override; void CreateTab(std::unique_ptr web_contents, const std::string& extension_id, diff --git a/shell/browser/feature_list.cc b/shell/browser/feature_list.cc index 29a3e7b8a52c..9e1fbb5213ad 100644 --- a/shell/browser/feature_list.cc +++ b/shell/browser/feature_list.cc @@ -35,8 +35,7 @@ void InitializeFeatureList() { // https://groups.google.com/a/chromium.org/g/embedder-dev/c/4yJi4Twj2NM/m/9bhpWureCAAJ std::string(",") + net::features::kSameSiteByDefaultCookies.name + std::string(",") + - net::features::kCookiesWithoutSameSiteMustBeSecure.name + - std::string(",") + network::features::kCertVerifierService.name; + net::features::kCookiesWithoutSameSiteMustBeSecure.name; // https://www.polymer-project.org/blog/2018-10-02-webcomponents-v0-deprecations // https://chromium-review.googlesource.com/c/chromium/src/+/1869562 diff --git a/shell/browser/net/asar/asar_url_loader.cc b/shell/browser/net/asar/asar_url_loader.cc index 394d0f9db34d..78f8fd694e2c 100644 --- a/shell/browser/net/asar/asar_url_loader.cc +++ b/shell/browser/net/asar/asar_url_loader.cc @@ -135,8 +135,10 @@ class AsarURLLoader : public network::mojom::URLLoader { info.offset = 0; } - mojo::DataPipe pipe(kDefaultFileUrlPipeSize); - if (!pipe.consumer_handle.is_valid()) { + mojo::ScopedDataPipeProducerHandle producer_handle; + mojo::ScopedDataPipeConsumerHandle consumer_handle; + if (mojo::CreateDataPipe(kDefaultFileUrlPipeSize, producer_handle, + consumer_handle) != MOJO_RESULT_OK) { OnClientComplete(net::ERR_FAILED); return; } @@ -201,9 +203,9 @@ class AsarURLLoader : public network::mojom::URLLoader { static_cast(read_result.bytes_read - first_byte_to_send), static_cast(total_bytes_to_send)); const uint32_t expected_write_size = write_size; - MojoResult result = pipe.producer_handle->WriteData( - &initial_read_buffer[first_byte_to_send], &write_size, - MOJO_WRITE_DATA_FLAG_NONE); + MojoResult result = + producer_handle->WriteData(&initial_read_buffer[first_byte_to_send], + &write_size, MOJO_WRITE_DATA_FLAG_NONE); if (result != MOJO_RESULT_OK || write_size != expected_write_size) { OnFileWritten(result); return; @@ -228,7 +230,7 @@ class AsarURLLoader : public network::mojom::URLLoader { head->mime_type.c_str()); } client_->OnReceiveResponse(std::move(head)); - client_->OnStartLoadingResponseBody(std::move(pipe.consumer_handle)); + client_->OnStartLoadingResponseBody(std::move(consumer_handle)); if (total_bytes_to_send == 0) { // There's definitely no more data, so we're already done. @@ -245,8 +247,8 @@ class AsarURLLoader : public network::mojom::URLLoader { first_byte_to_send + info.offset, first_byte_to_send + info.offset + total_bytes_to_send); - data_producer_ = std::make_unique( - std::move(pipe.producer_handle)); + data_producer_ = + std::make_unique(std::move(producer_handle)); data_producer_->Write( std::move(file_data_source), base::BindOnce(&AsarURLLoader::OnFileWritten, base::Unretained(this))); diff --git a/shell/browser/net/electron_url_loader_factory.cc b/shell/browser/net/electron_url_loader_factory.cc index fb79875b0036..6944e0da67a1 100644 --- a/shell/browser/net/electron_url_loader_factory.cc +++ b/shell/browser/net/electron_url_loader_factory.cc @@ -12,7 +12,6 @@ #include "base/strings/string_number_conversions.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/storage_partition.h" -#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/system/data_pipe_producer.h" #include "mojo/public/cpp/system/string_data_source.h" #include "net/base/filename_util.h" @@ -185,7 +184,7 @@ ElectronURLLoaderFactory::ElectronURLLoaderFactory( ProtocolType type, const ProtocolHandler& handler, mojo::PendingReceiver factory_receiver) - : content::NonNetworkURLLoaderFactoryBase(std::move(factory_receiver)), + : network::SelfDeletingURLLoaderFactory(std::move(factory_receiver)), type_(type), handler_(handler) {} diff --git a/shell/browser/net/electron_url_loader_factory.h b/shell/browser/net/electron_url_loader_factory.h index 301a20b32b97..3957557c9d0c 100644 --- a/shell/browser/net/electron_url_loader_factory.h +++ b/shell/browser/net/electron_url_loader_factory.h @@ -9,12 +9,12 @@ #include #include -#include "content/public/browser/non_network_url_loader_factory_base.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver_set.h" #include "mojo/public/cpp/bindings/remote.h" #include "net/url_request/url_request_job_factory.h" +#include "services/network/public/cpp/self_deleting_url_loader_factory.h" #include "services/network/public/mojom/url_loader_factory.mojom.h" #include "services/network/public/mojom/url_response_head.mojom.h" #include "shell/common/gin_helper/dictionary.h" @@ -40,8 +40,7 @@ using HandlersMap = std::map>; // Implementation of URLLoaderFactory. -class ElectronURLLoaderFactory - : public content::NonNetworkURLLoaderFactoryBase { +class ElectronURLLoaderFactory : public network::SelfDeletingURLLoaderFactory { public: static mojo::PendingRemote Create( ProtocolType type, diff --git a/shell/browser/net/node_stream_loader.cc b/shell/browser/net/node_stream_loader.cc index 0c5c3343fe11..a6925494639f 100644 --- a/shell/browser/net/node_stream_loader.cc +++ b/shell/browser/net/node_stream_loader.cc @@ -14,15 +14,15 @@ namespace electron { NodeStreamLoader::NodeStreamLoader( network::mojom::URLResponseHeadPtr head, - network::mojom::URLLoaderRequest loader, + mojo::PendingReceiver loader, mojo::PendingRemote client, v8::Isolate* isolate, v8::Local emitter) - : binding_(this, std::move(loader)), + : url_loader_(this, std::move(loader)), client_(std::move(client)), isolate_(isolate), emitter_(isolate, emitter) { - binding_.set_connection_error_handler( + url_loader_.set_disconnect_handler( base::BindOnce(&NodeStreamLoader::NotifyComplete, weak_factory_.GetWeakPtr(), net::ERR_FAILED)); diff --git a/shell/browser/net/node_stream_loader.h b/shell/browser/net/node_stream_loader.h index 118bf017eb12..03fec18aa254 100644 --- a/shell/browser/net/node_stream_loader.h +++ b/shell/browser/net/node_stream_loader.h @@ -12,7 +12,6 @@ #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/remote.h" -#include "mojo/public/cpp/bindings/strong_binding.h" #include "mojo/public/cpp/system/data_pipe_producer.h" #include "services/network/public/mojom/url_loader.mojom.h" #include "services/network/public/mojom/url_response_head.mojom.h" @@ -31,7 +30,7 @@ namespace electron { class NodeStreamLoader : public network::mojom::URLLoader { public: NodeStreamLoader(network::mojom::URLResponseHeadPtr head, - network::mojom::URLLoaderRequest loader, + mojo::PendingReceiver loader, mojo::PendingRemote client, v8::Isolate* isolate, v8::Local emitter); @@ -61,7 +60,7 @@ class NodeStreamLoader : public network::mojom::URLLoader { void PauseReadingBodyFromNet() override {} void ResumeReadingBodyFromNet() override {} - mojo::Binding binding_; + mojo::Receiver url_loader_; mojo::Remote client_; v8::Isolate* isolate_; diff --git a/shell/browser/net/proxying_url_loader_factory.cc b/shell/browser/net/proxying_url_loader_factory.cc index 9f1335d08ea2..b63960c11008 100644 --- a/shell/browser/net/proxying_url_loader_factory.cc +++ b/shell/browser/net/proxying_url_loader_factory.cc @@ -11,7 +11,6 @@ #include "base/strings/string_util.h" #include "content/public/browser/browser_context.h" #include "extensions/browser/extension_navigation_ui_data.h" -#include "mojo/public/cpp/bindings/binding.h" #include "net/base/completion_repeating_callback.h" #include "net/base/load_flags.h" #include "net/http/http_util.h" diff --git a/shell/browser/net/proxying_url_loader_factory.h b/shell/browser/net/proxying_url_loader_factory.h index 95e393a91072..6980890ac391 100644 --- a/shell/browser/net/proxying_url_loader_factory.h +++ b/shell/browser/net/proxying_url_loader_factory.h @@ -14,7 +14,6 @@ #include "base/optional.h" #include "content/public/browser/content_browser_client.h" #include "extensions/browser/api/web_request/web_request_info.h" -#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver_set.h" diff --git a/shell/browser/net/proxying_websocket.h b/shell/browser/net/proxying_websocket.h index 9682c7190789..6caa8d33e06b 100644 --- a/shell/browser/net/proxying_websocket.h +++ b/shell/browser/net/proxying_websocket.h @@ -31,7 +31,7 @@ namespace electron { // The code is referenced from the // extensions::WebRequestProxyingWebSocket class. class ProxyingWebSocket : public network::mojom::WebSocketHandshakeClient, - public network::mojom::AuthenticationHandler, + public network::mojom::WebSocketAuthenticationHandler, public network::mojom::TrustedHeaderClient { public: using WebSocketFactory = content::ContentBrowserClient::WebSocketFactory; @@ -79,7 +79,7 @@ class ProxyingWebSocket : public network::mojom::WebSocketHandshakeClient, mojo::ScopedDataPipeConsumerHandle readable, mojo::ScopedDataPipeProducerHandle writable) override; - // network::mojom::AuthenticationHandler method: + // network::mojom::WebSocketAuthenticationHandler method: void OnAuthRequired(const net::AuthChallengeInfo& auth_info, const scoped_refptr& headers, const net::IPEndPoint& remote_endpoint, @@ -144,7 +144,7 @@ class ProxyingWebSocket : public network::mojom::WebSocketHandshakeClient, forwarding_handshake_client_; mojo::Receiver receiver_as_handshake_client_{this}; - mojo::Receiver + mojo::Receiver receiver_as_auth_handler_{this}; mojo::Receiver receiver_as_header_client_{this}; diff --git a/shell/browser/net/system_network_context_manager.cc b/shell/browser/net/system_network_context_manager.cc index 8816f2ba308d..f2454e27fa3a 100644 --- a/shell/browser/net/system_network_context_manager.cc +++ b/shell/browser/net/system_network_context_manager.cc @@ -13,7 +13,6 @@ #include "content/public/browser/browser_thread.h" #include "content/public/browser/network_service_instance.h" #include "content/public/common/content_features.h" -#include "mojo/public/cpp/bindings/associated_interface_ptr.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "net/net_buildflags.h" #include "services/network/network_service.h" @@ -157,6 +156,11 @@ SystemNetworkContextManager::CreateDefaultNetworkContextParams() { network::mojom::NetworkContextParams::New(); ConfigureDefaultNetworkContextParams(network_context_params.get()); + + network::mojom::CertVerifierCreationParamsPtr cert_verifier_creation_params = + network::mojom::CertVerifierCreationParams::New(); + network_context_params->cert_verifier_params = + content::GetCertVerifierParams(std::move(cert_verifier_creation_params)); return network_context_params; } diff --git a/shell/browser/net/url_pipe_loader.cc b/shell/browser/net/url_pipe_loader.cc index a7ff48cdb812..a290478f4af4 100644 --- a/shell/browser/net/url_pipe_loader.cc +++ b/shell/browser/net/url_pipe_loader.cc @@ -15,12 +15,12 @@ namespace electron { URLPipeLoader::URLPipeLoader( scoped_refptr factory, std::unique_ptr request, - network::mojom::URLLoaderRequest loader, + mojo::PendingReceiver loader, mojo::PendingRemote client, const net::NetworkTrafficAnnotationTag& annotation, base::DictionaryValue upload_data) - : binding_(this, std::move(loader)), client_(std::move(client)) { - binding_.set_connection_error_handler(base::BindOnce( + : url_loader_(this, std::move(loader)), client_(std::move(client)) { + url_loader_.set_disconnect_handler(base::BindOnce( &URLPipeLoader::NotifyComplete, base::Unretained(this), net::ERR_FAILED)); // PostTask since it might destruct. diff --git a/shell/browser/net/url_pipe_loader.h b/shell/browser/net/url_pipe_loader.h index 79c1a4179d70..1b24325487ff 100644 --- a/shell/browser/net/url_pipe_loader.h +++ b/shell/browser/net/url_pipe_loader.h @@ -11,7 +11,6 @@ #include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/remote.h" -#include "mojo/public/cpp/bindings/strong_binding.h" #include "mojo/public/cpp/system/data_pipe_producer.h" #include "services/network/public/cpp/simple_url_loader.h" #include "services/network/public/cpp/simple_url_loader_stream_consumer.h" @@ -35,7 +34,7 @@ class URLPipeLoader : public network::mojom::URLLoader, public: URLPipeLoader(scoped_refptr factory, std::unique_ptr request, - network::mojom::URLLoaderRequest loader, + mojo::PendingReceiver loader, mojo::PendingRemote client, const net::NetworkTrafficAnnotationTag& annotation, base::DictionaryValue upload_data); @@ -69,7 +68,7 @@ class URLPipeLoader : public network::mojom::URLLoader, void PauseReadingBodyFromNet() override {} void ResumeReadingBodyFromNet() override {} - mojo::Binding binding_; + mojo::Receiver url_loader_; mojo::Remote client_; std::unique_ptr producer_; diff --git a/shell/browser/osr/osr_render_widget_host_view.cc b/shell/browser/osr/osr_render_widget_host_view.cc index af7b33a1ba4b..449e296929db 100644 --- a/shell/browser/osr/osr_render_widget_host_view.cc +++ b/shell/browser/osr/osr_render_widget_host_view.cc @@ -188,7 +188,7 @@ OffScreenRenderWidgetHostView::OffScreenRenderWidgetHostView( DCHECK(render_widget_host_); DCHECK(!render_widget_host_->GetView()); - current_device_scale_factor_ = kDefaultScaleFactor; + set_current_device_scale_factor(kDefaultScaleFactor); delegated_frame_host_allocator_.GenerateId(); delegated_frame_host_surface_id_ = @@ -474,7 +474,7 @@ void OffScreenRenderWidgetHostView::GetScreenInfo( screen_info->depth = 24; screen_info->depth_per_component = 8; screen_info->orientation_angle = 0; - screen_info->device_scale_factor = current_device_scale_factor_; + screen_info->device_scale_factor = current_device_scale_factor(); screen_info->orientation_type = blink::mojom::ScreenOrientation::kLandscapePrimary; screen_info->rect = gfx::Rect(size_); @@ -514,7 +514,7 @@ void OffScreenRenderWidgetHostView::ImeCompositionRangeChanged( gfx::Size OffScreenRenderWidgetHostView::GetCompositorViewportPixelSize() { return gfx::ScaleToCeiledSize(GetRequestedRendererSize(), - current_device_scale_factor_); + current_device_scale_factor()); } content::RenderWidgetHostViewBase* @@ -665,10 +665,10 @@ void OffScreenRenderWidgetHostView::OnPaint(const gfx::Rect& damage_rect, gfx::Size OffScreenRenderWidgetHostView::SizeInPixels() { if (IsPopupWidget()) { return gfx::ToFlooredSize(gfx::ConvertSizeToPixels( - popup_position_.size(), current_device_scale_factor_)); + popup_position_.size(), current_device_scale_factor())); } else { return gfx::ToFlooredSize(gfx::ConvertSizeToPixels( - GetViewBounds().size(), current_device_scale_factor_)); + GetViewBounds().size(), current_device_scale_factor())); } } @@ -694,7 +694,7 @@ void OffScreenRenderWidgetHostView::CompositeFrame( gfx::Rect rect = popup_host_view_->popup_position_; gfx::Point origin_in_pixels = gfx::ToFlooredPoint(gfx::ConvertPointToPixels( - rect.origin(), current_device_scale_factor_)); + rect.origin(), current_device_scale_factor())); canvas.writePixels(popup_host_view_->GetBacking(), origin_in_pixels.x(), origin_in_pixels.y()); } @@ -703,7 +703,7 @@ void OffScreenRenderWidgetHostView::CompositeFrame( gfx::Rect rect = proxy_view->GetBounds(); gfx::Point origin_in_pixels = gfx::ToFlooredPoint(gfx::ConvertPointToPixels( - rect.origin(), current_device_scale_factor_)); + rect.origin(), current_device_scale_factor())); canvas.writePixels(*proxy_view->GetBitmap(), origin_in_pixels.x(), origin_in_pixels.y()); } @@ -720,13 +720,13 @@ void OffScreenRenderWidgetHostView::CompositeFrame( void OffScreenRenderWidgetHostView::OnPopupPaint(const gfx::Rect& damage_rect) { InvalidateBounds(gfx::ToEnclosingRect( - gfx::ConvertRectToPixels(damage_rect, current_device_scale_factor_))); + gfx::ConvertRectToPixels(damage_rect, current_device_scale_factor()))); } void OffScreenRenderWidgetHostView::OnProxyViewPaint( const gfx::Rect& damage_rect) { InvalidateBounds(gfx::ToEnclosingRect( - gfx::ConvertRectToPixels(damage_rect, current_device_scale_factor_))); + gfx::ConvertRectToPixels(damage_rect, current_device_scale_factor()))); } void OffScreenRenderWidgetHostView::HoldResize() { @@ -976,9 +976,9 @@ void OffScreenRenderWidgetHostView::ResizeRootLayer(bool force) { display::Screen::GetScreen()->GetDisplayNearestView(GetNativeView()); const float scaleFactor = display.device_scale_factor(); const bool scaleFactorDidChange = - (scaleFactor != current_device_scale_factor_); + (scaleFactor != current_device_scale_factor()); - current_device_scale_factor_ = scaleFactor; + set_current_device_scale_factor(scaleFactor); gfx::Size size; if (!IsPopupWidget()) @@ -993,12 +993,12 @@ void OffScreenRenderWidgetHostView::ResizeRootLayer(bool force) { GetRootLayer()->SetBounds(gfx::Rect(size)); const gfx::Size& size_in_pixels = gfx::ToFlooredSize( - gfx::ConvertSizeToPixels(size, current_device_scale_factor_)); + gfx::ConvertSizeToPixels(size, current_device_scale_factor())); if (compositor_) { compositor_allocator_.GenerateId(); compositor_surface_id_ = compositor_allocator_.GetCurrentLocalSurfaceId(); - compositor_->SetScaleAndSize(current_device_scale_factor_, size_in_pixels, + compositor_->SetScaleAndSize(current_device_scale_factor(), size_in_pixels, compositor_surface_id_); } diff --git a/shell/browser/protocol_registry.cc b/shell/browser/protocol_registry.cc index a89600a51e91..60137d9db9b2 100644 --- a/shell/browser/protocol_registry.cc +++ b/shell/browser/protocol_registry.cc @@ -5,7 +5,7 @@ #include #include -#include "content/public/browser/non_network_url_loader_factory_base.h" +#include "services/network/public/cpp/self_deleting_url_loader_factory.h" #include "shell/browser/electron_browser_context.h" #include "shell/browser/net/asar/asar_url_loader.h" #include "shell/browser/protocol_registry.h" @@ -15,13 +15,13 @@ namespace electron { namespace { // Provide support for accessing asar archives in file:// protocol. -class AsarURLLoaderFactory : public content::NonNetworkURLLoaderFactoryBase { +class AsarURLLoaderFactory : public network::SelfDeletingURLLoaderFactory { public: static mojo::PendingRemote Create() { mojo::PendingRemote pending_remote; // The AsarURLLoaderFactory will delete itself when there are no more - // receivers - see the NonNetworkURLLoaderFactoryBase::OnDisconnect method. + // receivers - see the SelfDeletingURLLoaderFactory::OnDisconnect method. new AsarURLLoaderFactory(pending_remote.InitWithNewPipeAndPassReceiver()); return pending_remote; @@ -30,7 +30,7 @@ class AsarURLLoaderFactory : public content::NonNetworkURLLoaderFactoryBase { private: AsarURLLoaderFactory( mojo::PendingReceiver factory_receiver) - : content::NonNetworkURLLoaderFactoryBase(std::move(factory_receiver)) {} + : network::SelfDeletingURLLoaderFactory(std::move(factory_receiver)) {} ~AsarURLLoaderFactory() override = default; // network::mojom::URLLoaderFactory: diff --git a/shell/browser/ui/drag_util_views.cc b/shell/browser/ui/drag_util_views.cc index 64205e663192..f151028ed1ee 100644 --- a/shell/browser/ui/drag_util_views.cc +++ b/shell/browser/ui/drag_util_views.cc @@ -6,8 +6,8 @@ #include "ui/aura/client/drag_drop_client.h" #include "ui/aura/window.h" +#include "ui/base/clipboard/file_info.h" #include "ui/base/dragdrop/drag_drop_types.h" -#include "ui/base/dragdrop/file_info/file_info.h" #include "ui/base/dragdrop/mojom/drag_drop_types.mojom-shared.h" #include "ui/base/dragdrop/os_exchange_data.h" #include "ui/display/screen.h" diff --git a/shell/browser/ui/gtk/app_indicator_icon.cc b/shell/browser/ui/gtk/app_indicator_icon.cc index 7064c5b4ef0f..f87b752fbef1 100644 --- a/shell/browser/ui/gtk/app_indicator_icon.cc +++ b/shell/browser/ui/gtk/app_indicator_icon.cc @@ -282,8 +282,9 @@ AppIndicatorIcon::WriteKDE4TempImageOnWorkerThread( std::max(bitmap.height(), kMinimalSize)); scaled_bitmap.eraseARGB(0, 0, 0, 0); SkCanvas canvas(scaled_bitmap); - canvas.drawBitmap(bitmap, (scaled_bitmap.width() - bitmap.width()) / 2, - (scaled_bitmap.height() - bitmap.height()) / 2); + canvas.drawImage(bitmap.asImage(), + (scaled_bitmap.width() - bitmap.width()) / 2, + (scaled_bitmap.height() - bitmap.height()) / 2); base::FilePath image_path = image_dir.Append(icon_name + ".png"); if (!WriteFile(image_path, scaled_bitmap)) diff --git a/shell/common/gin_converters/content_converter.cc b/shell/common/gin_converters/content_converter.cc index b93fb7c2b199..953f0cd48d9e 100644 --- a/shell/common/gin_converters/content_converter.cc +++ b/shell/common/gin_converters/content_converter.cc @@ -25,21 +25,20 @@ namespace { void ExecuteCommand(content::WebContents* web_contents, int action, - const blink::CustomContextMenuContext& context) { - web_contents->ExecuteCustomContextMenuCommand(action, context); + const GURL& link_followed) { + web_contents->ExecuteCustomContextMenuCommand(action, link_followed); } // Forward declaration for nested recursive call. v8::Local MenuToV8(v8::Isolate* isolate, content::WebContents* web_contents, - const blink::CustomContextMenuContext& context, + const GURL& link_followed, const std::vector& menu); -v8::Local MenuItemToV8( - v8::Isolate* isolate, - content::WebContents* web_contents, - const blink::CustomContextMenuContext& context, - const blink::MenuItem& item) { +v8::Local MenuItemToV8(v8::Isolate* isolate, + content::WebContents* web_contents, + const GURL& link_followed, + const blink::MenuItem& item) { gin_helper::Dictionary v8_item = gin::Dictionary::CreateEmpty(isolate); switch (item.type) { case blink::MenuItem::CHECKABLE_OPTION: @@ -56,21 +55,22 @@ v8::Local MenuItemToV8( } if (item.type == blink::MenuItem::SUBMENU) v8_item.Set("submenu", - MenuToV8(isolate, web_contents, context, item.submenu)); + MenuToV8(isolate, web_contents, link_followed, item.submenu)); else if (item.action > 0) v8_item.Set("click", base::BindRepeating(ExecuteCommand, web_contents, - item.action, context)); + item.action, link_followed)); return v8_item.GetHandle(); } v8::Local MenuToV8(v8::Isolate* isolate, content::WebContents* web_contents, - const blink::CustomContextMenuContext& context, + const GURL& link_followed, const std::vector& menu) { std::vector> v8_menu; v8_menu.reserve(menu.size()); for (const auto& menu_item : menu) - v8_menu.push_back(MenuItemToV8(isolate, web_contents, context, menu_item)); + v8_menu.push_back( + MenuItemToV8(isolate, web_contents, link_followed, menu_item)); return gin::ConvertToV8(isolate, v8_menu); } @@ -166,9 +166,6 @@ v8::Local Converter::ToV8( dict.Set("inputFieldType", params.input_field_type); dict.Set("menuSourceType", params.source_type); - if (params.custom_context.is_pepper_menu) - dict.Set("menu", MenuToV8(isolate, val.second, params.custom_context, - params.custom_items)); return gin::ConvertToV8(isolate, dict); }