diff --git a/BUILD.gn b/BUILD.gn index de90247359..a369924a97 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -1149,6 +1149,7 @@ if (is_mac) { ] data = [] + data_deps = [] data += [ "$root_out_dir/resources.pak" ] data += [ "$root_out_dir/chrome_100_percent.pak" ] @@ -1167,6 +1168,10 @@ if (is_mac) { public_deps = [ "//tools/v8_context_snapshot:v8_context_snapshot" ] } + if (is_linux) { + data_deps += [ "//components/crash/core/app:chrome_crashpad_handler" ] + } + if (is_win) { sources += [ # TODO: we should be generating our .rc files more like how chrome does diff --git a/DEPS b/DEPS index 5e3720a63f..d7ed104363 100644 --- a/DEPS +++ b/DEPS @@ -15,7 +15,7 @@ gclient_gn_args = [ vars = { 'chromium_version': - '94.0.4590.2', + '95.0.4612.5', 'node_version': 'v16.7.0', 'nan_version': diff --git a/build/args/all.gn b/build/args/all.gn index 86200887ef..bb27de7d11 100644 --- a/build/args/all.gn +++ b/build/args/all.gn @@ -33,3 +33,7 @@ is_cfi = false allow_runtime_configurable_key_storage = true enable_cet_shadow_stack = false + +# TODO(deepak1556): remove once https://bugs.chromium.org/p/chromium/issues/detail?id=1241610 +# is fixed. +enable_blink_heap_use_v8_oilpan = false diff --git a/docs/api/cookies.md b/docs/api/cookies.md index 5f876f971e..47bdfed31f 100644 --- a/docs/api/cookies.md +++ b/docs/api/cookies.md @@ -93,7 +93,7 @@ the response. * `domain` String (optional) - The domain of the cookie; this will be normalized with a preceding dot so that it's also valid for subdomains. Empty by default if omitted. * `path` String (optional) - The path of the cookie. Empty by default if omitted. * `secure` Boolean (optional) - Whether the cookie should be marked as Secure. Defaults to - false. + false unless [Same Site=None](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite#samesitenone_requires_secure) attribute is used. * `httpOnly` Boolean (optional) - Whether the cookie should be marked as HTTP only. Defaults to false. * `expirationDate` Double (optional) - The expiration date of the cookie as the number of diff --git a/patches/chromium/.patches b/patches/chromium/.patches index b9d4941539..a764e98755 100644 --- a/patches/chromium/.patches +++ b/patches/chromium/.patches @@ -104,5 +104,6 @@ don_t_run_pcscan_notifythreadcreated_if_pcscan_is_disabled.patch add_gin_wrappable_crash_key.patch logging_win32_only_create_a_console_if_logging_to_stderr.patch disable_use_lld_for_macos.patch -fix_fix_the_build_on_windows_on_arm.patch fix_media_key_usage_with_globalshortcuts.patch +feat_expose_raw_response_headers_from_urlloader.patch +revert_roll_clang_llvmorg-14-init-1002-gb5e470aa-1.patch diff --git a/patches/chromium/add_didinstallconditionalfeatures.patch b/patches/chromium/add_didinstallconditionalfeatures.patch index 99453306e3..9f549bbd08 100644 --- a/patches/chromium/add_didinstallconditionalfeatures.patch +++ b/patches/chromium/add_didinstallconditionalfeatures.patch @@ -23,10 +23,10 @@ index e24c169444c699f295de2c1f1f42683eeca73436..4675cdccb1876a318a9a0253cdf552bb int32_t world_id) {} virtual void DidClearWindowObject() {} diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc -index b0d68dc86bfb32f528bb392c6fe8d5c60805a41b..8c0fb0274650b2a4a36a446a1b0ce01e93c6304b 100644 +index da75e85c94b1dba16c423066940cf27c90c1081c..7884866e2358f78a994dd784f187fdb8bd592bad 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -4413,6 +4413,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local context, +@@ -4446,6 +4446,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local context, observer.DidCreateScriptContext(context, world_id); } @@ -40,10 +40,10 @@ index b0d68dc86bfb32f528bb392c6fe8d5c60805a41b..8c0fb0274650b2a4a36a446a1b0ce01e int world_id) { for (auto& observer : observers_) diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h -index 73ad48a8f044ee4ffc795d3aeed17fc921eb44ee..27ade0af23c48dd9875d78113e6d5bb03c964fe1 100644 +index a2577aefe0f7121daa46765014fd94cc9c5264b9..302aeb4257105b04cb8ca4ce484354021757ee8d 100644 --- a/content/renderer/render_frame_impl.h +++ b/content/renderer/render_frame_impl.h -@@ -587,6 +587,8 @@ class CONTENT_EXPORT RenderFrameImpl +@@ -588,6 +588,8 @@ class CONTENT_EXPORT RenderFrameImpl blink::WebLocalFrameClient::LazyLoadBehavior lazy_load_behavior) override; void DidCreateScriptContext(v8::Local context, int world_id) override; @@ -67,10 +67,10 @@ index 99ddb8f449481647a499a5bb3fd7f5d5272ae414..00d7f0bbb8dc3afdc2303668481cf17f virtual void WillReleaseScriptContext(v8::Local, int32_t world_id) {} diff --git a/third_party/blink/renderer/bindings/core/v8/local_window_proxy.cc b/third_party/blink/renderer/bindings/core/v8/local_window_proxy.cc -index 82750b58500681015be4cd75e9362d235a54c82f..497179aa9b4da053a44513103cdb93fd3fbc94e4 100644 +index b0d5db60fbe57275dda835113b0fb21acb9a422f..b6c9c389943088004a419677a2a17be0c6ab6398 100644 --- a/third_party/blink/renderer/bindings/core/v8/local_window_proxy.cc +++ b/third_party/blink/renderer/bindings/core/v8/local_window_proxy.cc -@@ -187,6 +187,7 @@ void LocalWindowProxy::Initialize() { +@@ -201,6 +201,7 @@ void LocalWindowProxy::Initialize() { } InstallConditionalFeatures(); @@ -79,10 +79,10 @@ index 82750b58500681015be4cd75e9362d235a54c82f..497179aa9b4da053a44513103cdb93fd if (World().IsMainWorld()) { GetFrame()->Loader().DispatchDidClearWindowObjectInMainWorld(); diff --git a/third_party/blink/renderer/core/frame/local_frame_client.h b/third_party/blink/renderer/core/frame/local_frame_client.h -index fd9d33e9ee3214673757d2857f339fff70e139f2..ed2ccb72e394f177ec17d823fbf22d725ba43853 100644 +index 8d7a0e9445d7817441f02b4def1777020d35618f..6f0f79b2766ee8f42815c15744ccfc2a75976b0b 100644 --- a/third_party/blink/renderer/core/frame/local_frame_client.h +++ b/third_party/blink/renderer/core/frame/local_frame_client.h -@@ -299,6 +299,8 @@ class CORE_EXPORT LocalFrameClient : public FrameClient { +@@ -300,6 +300,8 @@ class CORE_EXPORT LocalFrameClient : public FrameClient { virtual void DidCreateScriptContext(v8::Local, int32_t world_id) = 0; @@ -92,7 +92,7 @@ index fd9d33e9ee3214673757d2857f339fff70e139f2..ed2ccb72e394f177ec17d823fbf22d72 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 96aea6ae2dc5322699741701569e8a1ccd4b9728..92a957fc4971ed3d5b343e8db4db9d603f11b1e9 100644 +index 94e332a2da9522e83ce55d8b7ce303a383e37d05..a3fa8d72ffb450f502de161a8875a81d72c075e8 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 @@ -273,6 +273,13 @@ void LocalFrameClientImpl::DidCreateScriptContext( @@ -110,7 +110,7 @@ index 96aea6ae2dc5322699741701569e8a1ccd4b9728..92a957fc4971ed3d5b343e8db4db9d60 v8::Local context, int32_t world_id) { diff --git a/third_party/blink/renderer/core/frame/local_frame_client_impl.h b/third_party/blink/renderer/core/frame/local_frame_client_impl.h -index b66e501d692b75e37f50fa3be018df092fc35176..3135bdfa960e9e914ded8ee87f227d5897c9ed33 100644 +index 0d7ecf011c802f8c4d874815e345b16ac3a0b5dc..572968b7f6495ee544cdf265aa9b7f6728c74cc9 100644 --- a/third_party/blink/renderer/core/frame/local_frame_client_impl.h +++ b/third_party/blink/renderer/core/frame/local_frame_client_impl.h @@ -77,6 +77,8 @@ class CORE_EXPORT LocalFrameClientImpl final : public LocalFrameClient { @@ -123,10 +123,10 @@ index b66e501d692b75e37f50fa3be018df092fc35176..3135bdfa960e9e914ded8ee87f227d58 int32_t world_id) override; diff --git a/third_party/blink/renderer/core/loader/empty_clients.h b/third_party/blink/renderer/core/loader/empty_clients.h -index e405538cf1f520c67bcb72e164c66f4a4859d588..054df6b7718cef2c891eb4d00c95792dde5abd4b 100644 +index ec4dfeb2d6fd5206c1d6d697a36d5d78899023cb..7b978f119d3321416dffcc2dea266403dd86f2b6 100644 --- a/third_party/blink/renderer/core/loader/empty_clients.h +++ b/third_party/blink/renderer/core/loader/empty_clients.h -@@ -355,6 +355,8 @@ class CORE_EXPORT EmptyLocalFrameClient : public LocalFrameClient { +@@ -356,6 +356,8 @@ class CORE_EXPORT EmptyLocalFrameClient : public LocalFrameClient { void DidCreateScriptContext(v8::Local, int32_t world_id) override {} diff --git a/patches/chromium/add_gin_wrappable_crash_key.patch b/patches/chromium/add_gin_wrappable_crash_key.patch index eddd55499a..ed4c04fe77 100644 --- a/patches/chromium/add_gin_wrappable_crash_key.patch +++ b/patches/chromium/add_gin_wrappable_crash_key.patch @@ -14,6 +14,21 @@ help determine where the crash originated from. This patch should not be upstreamed, and can be removed in Electron 15 and beyond once we identify the cause of the crash. +diff --git a/gin/BUILD.gn b/gin/BUILD.gn +index c6059fdb0e0f74ee3ef78c5517634ed5a36f1b10..e16b2ec43b98c3b8724fd85085a33fe52a1e1979 100644 +--- a/gin/BUILD.gn ++++ b/gin/BUILD.gn +@@ -88,6 +88,10 @@ component("gin") { + frameworks = [ "CoreFoundation.framework" ] + } + ++ if (!is_mas_build) { ++ public_deps += [ "//components/crash/core/common:crash_key" ] ++ } ++ + configs += [ + "//tools/v8_context_snapshot:use_v8_context_snapshot", + "//v8:external_startup_data", diff --git a/gin/wrappable.cc b/gin/wrappable.cc index fe07eb94a8e679859bba6d76ff0d6ee86bd0c67e..ecb0aa2c4ec57e1814f4c94194e775440f4e35ee 100644 --- a/gin/wrappable.cc diff --git a/patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch b/patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch index fdeb5369cf..0d7914bbac 100644 --- a/patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch +++ b/patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch @@ -6,10 +6,10 @@ Subject: 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 8f8e095a1dc959a2db5b1a5bc692f9b28896e282..8070f4cf34f341a772c54c47c50335b3db491b5a 100644 +index e4f71e2ce9cf7cce68c0b2c336d6a7329a7cd564..30bd888e778d27c738eb67df2316db191a3c3066 100644 --- a/content/browser/renderer_host/render_view_host_impl.cc +++ b/content/browser/renderer_host/render_view_host_impl.cc -@@ -631,6 +631,11 @@ void RenderViewHostImpl::SetBackgroundOpaque(bool opaque) { +@@ -616,6 +616,11 @@ void RenderViewHostImpl::SetBackgroundOpaque(bool opaque) { GetWidget()->GetAssociatedFrameWidget()->SetBackgroundOpaque(opaque); } @@ -22,7 +22,7 @@ index 8f8e095a1dc959a2db5b1a5bc692f9b28896e282..8070f4cf34f341a772c54c47c50335b3 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 f6716de3d78c301cb5283dd800cd23756bb2fbfa..da1af3187872645b89997192cbf5a16f79321ddd 100644 +index b9a91d4cf22379408c296742f8ec66eb20c34f7e..f110151e555fc90f9ad863a43b6185c7481cf3b3 100644 --- a/content/browser/renderer_host/render_view_host_impl.h +++ b/content/browser/renderer_host/render_view_host_impl.h @@ -137,6 +137,7 @@ class CONTENT_EXPORT RenderViewHostImpl @@ -85,10 +85,10 @@ index f54b993e9fb9fedcedef327290c2e5d706c699a7..73874e124e2810f07b72fc094f57c85c // 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 920ccfdb9d4c465e2ddf3963bf9c20df22c013da..afe02087fb46273f76069cf5c8d605a0d1e8ec3f 100644 +index 7995eb16a7cf6a824653736ca067baa5e688834f..c26e087f2f4d7a1446ce439e5a08a34aa2ccfec4 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -3625,6 +3625,13 @@ PageScheduler* WebViewImpl::Scheduler() const { +@@ -3630,6 +3630,13 @@ PageScheduler* WebViewImpl::Scheduler() const { return GetPage()->GetPageScheduler(); } @@ -102,7 +102,7 @@ index 920ccfdb9d4c465e2ddf3963bf9c20df22c013da..afe02087fb46273f76069cf5c8d605a0 void WebViewImpl::SetVisibilityState( mojom::blink::PageVisibilityState visibility_state, bool is_initial_state) { -@@ -3636,7 +3643,8 @@ void WebViewImpl::SetVisibilityState( +@@ -3641,7 +3648,8 @@ void WebViewImpl::SetVisibilityState( } GetPage()->SetVisibilityState(visibility_state, is_initial_state); GetPage()->GetPageScheduler()->SetPageVisible( diff --git a/patches/chromium/allow_setting_secondary_label_via_simplemenumodel.patch b/patches/chromium/allow_setting_secondary_label_via_simplemenumodel.patch index 1042f847af..6334459358 100644 --- a/patches/chromium/allow_setting_secondary_label_via_simplemenumodel.patch +++ b/patches/chromium/allow_setting_secondary_label_via_simplemenumodel.patch @@ -6,7 +6,7 @@ Subject: Allow setting secondary label via SimpleMenuModel Builds on https://chromium-review.googlesource.com/c/chromium/src/+/2208976 diff --git a/ui/base/models/simple_menu_model.cc b/ui/base/models/simple_menu_model.cc -index e7504cd790821ffa213961b51c0c9ab7763ddd82..bd96c37404e930a59d5c91c921b324a10aae38d3 100644 +index 1bfe8fb90673a0d0f9f9228a43eafc3b01b00c5f..1484fc4e477b97b6deb8e23b8a749264990cc1c6 100644 --- a/ui/base/models/simple_menu_model.cc +++ b/ui/base/models/simple_menu_model.cc @@ -53,6 +53,11 @@ std::u16string SimpleMenuModel::Delegate::GetLabelForCommandId( @@ -33,7 +33,7 @@ index e7504cd790821ffa213961b51c0c9ab7763ddd82..bd96c37404e930a59d5c91c921b324a1 void SimpleMenuModel::SetMinorText(int index, const std::u16string& minor_text) { items_[ValidateItemIndex(index)].minor_text = minor_text; -@@ -391,6 +401,12 @@ std::u16string SimpleMenuModel::GetLabelAt(int index) const { +@@ -396,6 +406,12 @@ std::u16string SimpleMenuModel::GetLabelAt(int index) const { return items_[ValidateItemIndex(index)].label; } @@ -47,7 +47,7 @@ index e7504cd790821ffa213961b51c0c9ab7763ddd82..bd96c37404e930a59d5c91c921b324a1 return items_[ValidateItemIndex(index)].minor_text; } diff --git a/ui/base/models/simple_menu_model.h b/ui/base/models/simple_menu_model.h -index 4536b388717844cc74905760828e80ea6d64b7b1..2f9b507b623307e37eb1eb216e96363881404b25 100644 +index 529be99f6c5aa64c79745ecf83601ea11fe47c1c..ae9c78a65a5e32de90ae190b7ff170c6de82d84d 100644 --- a/ui/base/models/simple_menu_model.h +++ b/ui/base/models/simple_menu_model.h @@ -50,6 +50,7 @@ class COMPONENT_EXPORT(UI_BASE) SimpleMenuModel : public MenuModel { @@ -68,7 +68,7 @@ index 4536b388717844cc74905760828e80ea6d64b7b1..2f9b507b623307e37eb1eb216e963638 // Sets the minor text for the item at |index|. void SetMinorText(int index, const std::u16string& minor_text); -@@ -192,6 +196,7 @@ class COMPONENT_EXPORT(UI_BASE) SimpleMenuModel : public MenuModel { +@@ -196,6 +200,7 @@ class COMPONENT_EXPORT(UI_BASE) SimpleMenuModel : public MenuModel { ui::MenuSeparatorType GetSeparatorTypeAt(int index) const override; int GetCommandIdAt(int index) const override; std::u16string GetLabelAt(int index) const override; @@ -76,7 +76,7 @@ index 4536b388717844cc74905760828e80ea6d64b7b1..2f9b507b623307e37eb1eb216e963638 std::u16string GetMinorTextAt(int index) const override; ImageModel GetMinorIconAt(int index) const override; bool IsItemDynamicAt(int index) const override; -@@ -230,6 +235,7 @@ class COMPONENT_EXPORT(UI_BASE) SimpleMenuModel : public MenuModel { +@@ -235,6 +240,7 @@ class COMPONENT_EXPORT(UI_BASE) SimpleMenuModel : public MenuModel { int command_id = 0; ItemType type = TYPE_COMMAND; std::u16string label; diff --git a/patches/chromium/blink_local_frame.patch b/patches/chromium/blink_local_frame.patch index c6a7d1bdeb..0fba56f7c8 100644 --- a/patches/chromium/blink_local_frame.patch +++ b/patches/chromium/blink_local_frame.patch @@ -49,7 +49,7 @@ index 8bf6b4bc077cc41da5e0e6b13302bc343537c68f..01bddc0bcb7476408023c4cfc042a088 // 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 c90b14523f9507c41cc0c723d46a20cdb0fdbac4..c261a26a81d7491b17969a250ccc80def4bfec91 100644 +index a9c4d4efe4d66a152c02c7d6029d8c7e3740ebfb..cce1fc3bc9d7779215cd3536553e09078c8d9680 100644 --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc @@ -553,10 +553,6 @@ bool LocalFrame::DetachImpl(FrameDetachType type) { diff --git a/patches/chromium/boringssl_build_gn.patch b/patches/chromium/boringssl_build_gn.patch index 8237d30a34..87106fad5b 100644 --- a/patches/chromium/boringssl_build_gn.patch +++ b/patches/chromium/boringssl_build_gn.patch @@ -6,10 +6,10 @@ Subject: boringssl BUILD.gn Build BoringSSL with some extra functions that nodejs needs. diff --git a/third_party/boringssl/BUILD.gn b/third_party/boringssl/BUILD.gn -index 00563d7c895eafc16789699cdb5fa82c4fb540a7..ccae86b66cdeddf20ab8a92078a9dc34e960d125 100644 +index 23c167f1178705cedb0e309f5017052bbed1e089..feb8013545b5ee11f57d91cf942fb5cc7147e8f7 100644 --- a/third_party/boringssl/BUILD.gn +++ b/third_party/boringssl/BUILD.gn -@@ -45,6 +45,19 @@ config("no_asm_config") { +@@ -40,6 +40,19 @@ config("no_asm_config") { all_sources = crypto_sources + ssl_sources all_headers = crypto_headers + ssl_headers diff --git a/patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch b/patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch index 96e0b6f4d0..ded08ddd58 100644 --- a/patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch +++ b/patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch @@ -11,10 +11,10 @@ if we ever align our .pak file generation with Chrome we can remove this patch. diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn -index 8e91c62655726024b75aefa312bbe2bd1dae1e76..5be231490705a83533e358e85278f959650d1843 100644 +index d4436b93723cac8b33a6ffab1437b221446a1fb0..3aef47b5f85c11845962e48efd75a1d5064b7412 100644 --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn -@@ -164,11 +164,16 @@ if (!is_android && !is_mac) { +@@ -165,11 +165,16 @@ if (!is_android && !is_mac) { "common/crash_keys.h", ] @@ -33,10 +33,10 @@ index 8e91c62655726024b75aefa312bbe2bd1dae1e76..5be231490705a83533e358e85278f959 "//base", "//build:branding_buildflags", diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn -index 741c131a70336335690cc0c8790da7b526e86d9d..fc12d5e2b41f4bbcc38f9c38299b611c8cf0d21e 100644 +index 74f816aef514eef1263d9b2c25cf3a52359860a6..a9cb81f06f1a4ef57e90190b9dde01df5dc67124 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -4326,7 +4326,7 @@ static_library("browser") { +@@ -4367,7 +4367,7 @@ static_library("browser") { # On Windows, the hashes are embedded in //chrome:chrome_initial rather # than here in :chrome_dll. @@ -46,10 +46,10 @@ index 741c131a70336335690cc0c8790da7b526e86d9d..fc12d5e2b41f4bbcc38f9c38299b611c } diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn -index dd272ac9bde95c6b4a972bc4e3ca13d9d23c627f..b5b8ce4d721d9fbd596e1d2c38d174a18e91ff27 100644 +index c506774eef1725c67f6b56abe36f5541ef940cd0..4585132bb6b2d35560d851940ef0d71441fda6a9 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -5292,7 +5292,6 @@ test("unit_tests") { +@@ -5328,7 +5328,6 @@ test("unit_tests") { assert(toolkit_views) sources += [ "../browser/ui/startup/credential_provider_signin_info_fetcher_win_unittest.cc" ] deps += [ @@ -57,7 +57,7 @@ index dd272ac9bde95c6b4a972bc4e3ca13d9d23c627f..b5b8ce4d721d9fbd596e1d2c38d174a1 "//chrome/browser:chrome_process_finder", "//chrome/browser/safe_browsing/chrome_cleaner", "//chrome/browser/safe_browsing/chrome_cleaner:public", -@@ -5305,6 +5304,12 @@ test("unit_tests") { +@@ -5341,6 +5340,12 @@ test("unit_tests") { "//components/chrome_cleaner/public/proto", "//ui/events/devices:test_support", ] @@ -69,8 +69,8 @@ index dd272ac9bde95c6b4a972bc4e3ca13d9d23c627f..b5b8ce4d721d9fbd596e1d2c38d174a1 + } } - if (is_win || is_chromeos_ash || is_mac) { -@@ -5876,7 +5881,6 @@ test("unit_tests") { + # TODO(crbug.com/931218): Ninja cannot handle certain characters appearing +@@ -5933,7 +5938,6 @@ test("unit_tests") { } deps += [ @@ -78,7 +78,7 @@ index dd272ac9bde95c6b4a972bc4e3ca13d9d23c627f..b5b8ce4d721d9fbd596e1d2c38d174a1 "//chrome/browser:cart_db_content_proto", "//chrome/browser/media/router:test_support", "//chrome/browser/promo_browser_command:mojo_bindings", -@@ -5912,6 +5916,9 @@ test("unit_tests") { +@@ -5969,6 +5973,9 @@ test("unit_tests") { "//ui/color:test_support", "//ui/native_theme:test_support", ] diff --git a/patches/chromium/can_create_window.patch b/patches/chromium/can_create_window.patch index ef17032354..b68db1cd79 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 c58f10aadf159d30531b6d3ad53cc735ca3868d0..8b7cc22096230163a1c1212c37b65b24add07474 100644 +index ac98459fd07c4daee384c50e2ac4b19da14ccaf6..b5f7104ffde611652c55ebe85e3969394dbf76fc 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -6266,6 +6266,7 @@ void RenderFrameHostImpl::CreateNewWindow( +@@ -6348,6 +6348,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 c58f10aadf159d30531b6d3ad53cc735ca3868d0..8b7cc22096230163a1c1212c37b65b24 &no_javascript_access); diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index a55a44e2a72f3245211fe6afe8fb827c06da8a2e..fb42b663cf63c38de27c7da98630951be77c3ee1 100644 +index 6f0d2cee13b39ef0fb60ceec0bbf25f17f8b1152..183fa12d38d28f3de40bdd9f26155388658e8ffe 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -3735,6 +3735,14 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -3727,6 +3727,14 @@ FrameTree* WebContentsImpl::CreateNewWindow( } auto* new_contents_impl = new_contents.get(); @@ -39,7 +39,7 @@ index a55a44e2a72f3245211fe6afe8fb827c06da8a2e..fb42b663cf63c38de27c7da98630951b new_contents_impl->GetController().SetSessionStorageNamespace( partition_id, session_storage_namespace); -@@ -3777,12 +3785,6 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -3769,12 +3777,6 @@ FrameTree* WebContentsImpl::CreateNewWindow( AddWebContentsDestructionObserver(new_contents_impl); } @@ -53,7 +53,7 @@ index a55a44e2a72f3245211fe6afe8fb827c06da8a2e..fb42b663cf63c38de27c7da98630951b 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 192a5084eac3e9426ac8ddc4984b572d55c7a88a..63f53ff39240ea59a03f1a6f9d032444b0e4214d 100644 +index 72fd11b1733aa5433c1905933c357aa58c02578d..d6cdf5cfe1287cddf29279e28ce878cf11616cca 100644 --- a/content/common/frame.mojom +++ b/content/common/frame.mojom @@ -523,6 +523,10 @@ struct CreateNewWindowParams { @@ -68,10 +68,10 @@ index 192a5084eac3e9426ac8ddc4984b572d55c7a88a..63f53ff39240ea59a03f1a6f9d032444 // 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 b5022114e4e196f8fc038b4a2079356596696bc0..9a16e8a4d35552712f154dc03df0564d169c377c 100644 +index 757313d3543d3777b0fb751197a6c16cb262514a..8bcdbc88d1445df9c833f7d6cd5f768c7a1b9c62 100644 --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc -@@ -563,6 +563,8 @@ bool ContentBrowserClient::CanCreateWindow( +@@ -556,6 +556,8 @@ bool ContentBrowserClient::CanCreateWindow( const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, @@ -81,7 +81,7 @@ index b5022114e4e196f8fc038b4a2079356596696bc0..9a16e8a4d35552712f154dc03df0564d 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 aae2616d650761fbb1482f63fff6794ceea69cb7..7628a3f9ecc95dd2eb6580fbf1a7c6fe57bb5a1c 100644 +index f97d7367f0e46eb7c59d6654138a6aec607beeea..75227e160dda6724e59271e702c956ea1470a40e 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h @@ -164,6 +164,7 @@ class NetworkService; @@ -92,7 +92,7 @@ index aae2616d650761fbb1482f63fff6794ceea69cb7..7628a3f9ecc95dd2eb6580fbf1a7c6fe } // namespace network namespace sandbox { -@@ -927,6 +928,8 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -921,6 +922,8 @@ class CONTENT_EXPORT ContentBrowserClient { const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, @@ -102,7 +102,7 @@ index aae2616d650761fbb1482f63fff6794ceea69cb7..7628a3f9ecc95dd2eb6580fbf1a7c6fe bool opener_suppressed, bool* no_javascript_access); diff --git a/content/public/browser/web_contents_delegate.cc b/content/public/browser/web_contents_delegate.cc -index a5b63a551ee8efba5f9ff666e8c27dc59558d703..ba12175d4458a7134eeb2080b3762b386fa05511 100644 +index 4a57554c9e540516af83567183a34384ac722ebf..31c73efb73bb69076abd6b9c4f139072a9f7f603 100644 --- a/content/public/browser/web_contents_delegate.cc +++ b/content/public/browser/web_contents_delegate.cc @@ -28,6 +28,17 @@ namespace content { @@ -124,7 +124,7 @@ index a5b63a551ee8efba5f9ff666e8c27dc59558d703..ba12175d4458a7134eeb2080b3762b38 const OpenURLParams& params) { return nullptr; diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h -index 78d340f66b5573fd9039956c9aa9f54a206055cd..a5c1cd18896881066cc4a8954092ab859e4768c1 100644 +index a0da74d5cbe4ab8be84d6f1a92f444e858320745..5936fa4bce09895595ccb294504f5b89c967d8c0 100644 --- a/content/public/browser/web_contents_delegate.h +++ b/content/public/browser/web_contents_delegate.h @@ -16,6 +16,7 @@ @@ -135,7 +135,7 @@ index 78d340f66b5573fd9039956c9aa9f54a206055cd..a5c1cd18896881066cc4a8954092ab85 #include "content/public/browser/eye_dropper.h" #include "content/public/browser/invalidate_type.h" #include "content/public/browser/media_stream_request.h" -@@ -338,6 +339,13 @@ class CONTENT_EXPORT WebContentsDelegate { +@@ -335,6 +336,13 @@ class CONTENT_EXPORT WebContentsDelegate { const StoragePartitionId& partition_id, SessionStorageNamespace* session_storage_namespace); @@ -150,7 +150,7 @@ index 78d340f66b5573fd9039956c9aa9f54a206055cd..a5c1cd18896881066cc4a8954092ab85 // 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 afec7767d905488a51b2dbba031b8a85d6d0138a..57f970d15bf03f817680982fa8605c333485804b 100644 +index 092352d96858b45a46ac1eddd162a63b1e468031..aa1cf3dfca39c4443311895a3d7abfc89aad8951 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc @@ -31,6 +31,7 @@ @@ -220,10 +220,10 @@ index 84d32491a56528a84b4395fba1d54cdbb38d522b..09998a83c449ef8cd9f360fbcdcf7edc } // namespace blink diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc -index 071399cc4e72a01e9973fe1dbab63e388ee3e09d..d97f53b51113222ed15d607a0796cf19e785eb45 100644 +index 1a46a0589b5891ca0513ba9854fca034c56b25b8..d1040bc168dfd20405a09436e089a29696e31d41 100644 --- a/third_party/blink/renderer/core/frame/local_dom_window.cc +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc -@@ -1999,6 +1999,7 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, +@@ -2008,6 +2008,7 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, WebWindowFeatures window_features = GetWindowFeaturesFromString(features, incumbent_window); diff --git a/patches/chromium/chore_expose_v8_initialization_isolate_callbacks.patch b/patches/chromium/chore_expose_v8_initialization_isolate_callbacks.patch index 13b9a0d832..3e0fa14698 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 bcc26d522043fe2f6ce0ffa68e4974340b4568da..a4b0c75ac58fc0df97f486f568ceba2f0c0c6425 100644 +index c98a621a366c21fef73be108c7ac809517ca9815..62cd22b0b42df76c5e527d0ad0b953a460f3aaee 100644 --- a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc +++ b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc @@ -448,7 +448,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 f37d73ac3e..514ce2cf6d 100644 --- a/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch +++ b/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch @@ -35,10 +35,10 @@ index 5b4d70991e19edcdfee731c56251932bf43e535f..fe1977c5e6ce0f5b30e8be529b9efa51 #endif // CHROME_BROWSER_ANDROID_DOCUMENT_DOCUMENT_WEB_CONTENTS_DELEGATE_H_ diff --git a/chrome/browser/media/offscreen_tab.cc b/chrome/browser/media/offscreen_tab.cc -index 412e6b05265a97077c3b617e12908c88719e6e73..8365a0d5923beb2ffbd837535db2abc23e32e891 100644 +index d6295d809381f4f4a86a9948762079232ba6c93c..ad429250984cf367e1194bda67bc56a886f650ae 100644 --- a/chrome/browser/media/offscreen_tab.cc +++ b/chrome/browser/media/offscreen_tab.cc -@@ -282,8 +282,7 @@ bool OffscreenTab::IsWebContentsCreationOverridden( +@@ -283,8 +283,7 @@ bool OffscreenTab::IsWebContentsCreationOverridden( content::SiteInstance* source_site_instance, content::mojom::WindowContainerType window_container_type, const GURL& opener_url, @@ -49,10 +49,10 @@ index 412e6b05265a97077c3b617e12908c88719e6e73..8365a0d5923beb2ffbd837535db2abc2 // uses this to spawn new windows/tabs, which is also not allowed for // offscreen tabs. diff --git a/chrome/browser/media/offscreen_tab.h b/chrome/browser/media/offscreen_tab.h -index fb09bf2c5d22e3838575403b53867d0021e13b67..36e7982bbcc7c8b50bb2942ada39862bad4bbc22 100644 +index 3fd38bcb861174f99369d0e53b9946c632baf21a..de1a4df623538cc2857f8bb85b05e17d411c45a0 100644 --- a/chrome/browser/media/offscreen_tab.h +++ b/chrome/browser/media/offscreen_tab.h -@@ -106,8 +106,7 @@ class OffscreenTab final : public ProfileObserver, +@@ -103,8 +103,7 @@ class OffscreenTab final : public ProfileObserver, content::SiteInstance* source_site_instance, content::mojom::WindowContainerType window_container_type, const GURL& opener_url, @@ -108,10 +108,10 @@ index ef84e04d628fb5cdbaf8fbbf84af3bf23e00c522..f1ee0bee5bfd08227a29498f8410d5d3 } diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc -index 6de89182ca0e481a82bfb4671888919eddcceb42..805b6f82adb55db387cc64d6031a76197e825b3e 100644 +index c522e51369fbcdf482a467475abce309bd8195c5..f7c95b019f4a19c94ec95234e7bdda84d8bfcf51 100644 --- a/chrome/browser/ui/browser.cc +++ b/chrome/browser/ui/browser.cc -@@ -1786,12 +1786,11 @@ bool Browser::IsWebContentsCreationOverridden( +@@ -1788,12 +1788,11 @@ bool Browser::IsWebContentsCreationOverridden( content::SiteInstance* source_site_instance, content::mojom::WindowContainerType window_container_type, const GURL& opener_url, @@ -127,10 +127,10 @@ index 6de89182ca0e481a82bfb4671888919eddcceb42..805b6f82adb55db387cc64d6031a7619 WebContents* Browser::CreateCustomWebContents( diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h -index feee6e100b38a76302cfdd95954cf9c7e64c9ff5..163b199dd5de858c4adcb93c54cefd335e32c3f3 100644 +index 17c3233034d0e40970887253c2518486cc32825e..795a8390c23ac016d05ea8898f2a082cd5a80fbc 100644 --- a/chrome/browser/ui/browser.h +++ b/chrome/browser/ui/browser.h -@@ -802,8 +802,7 @@ class Browser : public TabStripModelObserver, +@@ -798,8 +798,7 @@ class Browser : public TabStripModelObserver, content::SiteInstance* source_site_instance, content::mojom::WindowContainerType window_container_type, const GURL& opener_url, @@ -232,10 +232,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 fef25ed773a93ff56cc31c2a81fb3b2d188b664b..a4d8c96190c97162ce1adaab3a3bb2a3a666dd8a 100644 +index 1e38a16e950a4ee5ed63405576b57185fe7b9e3c..8b9e76ad6eee5e03bfa97a2f5c6c7d8898f0dfe5 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -3683,8 +3683,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -3675,8 +3675,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( if (delegate_ && delegate_->IsWebContentsCreationOverridden( source_site_instance, params.window_container_type, @@ -246,7 +246,7 @@ index fef25ed773a93ff56cc31c2a81fb3b2d188b664b..a4d8c96190c97162ce1adaab3a3bb2a3 static_cast(delegate_->CreateCustomWebContents( opener, source_site_instance, is_new_browsing_instance, diff --git a/content/public/browser/web_contents_delegate.cc b/content/public/browser/web_contents_delegate.cc -index ba12175d4458a7134eeb2080b3762b386fa05511..8b0481e71cd62b45eebfcb340671feb92283802f 100644 +index 31c73efb73bb69076abd6b9c4f139072a9f7f603..3867f45d32c409ce6a738519ba539b51685c7d3e 100644 --- a/content/public/browser/web_contents_delegate.cc +++ b/content/public/browser/web_contents_delegate.cc @@ -136,8 +136,7 @@ bool WebContentsDelegate::IsWebContentsCreationOverridden( @@ -260,10 +260,10 @@ index ba12175d4458a7134eeb2080b3762b386fa05511..8b0481e71cd62b45eebfcb340671feb9 } diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h -index a5c1cd18896881066cc4a8954092ab859e4768c1..a03e54ec79b92fd69c5dc1f4b78210e3ae1c764d 100644 +index 5936fa4bce09895595ccb294504f5b89c967d8c0..7186e17271d727c2df1d58e9cb300d22dd4e52e5 100644 --- a/content/public/browser/web_contents_delegate.h +++ b/content/public/browser/web_contents_delegate.h -@@ -317,8 +317,7 @@ class CONTENT_EXPORT WebContentsDelegate { +@@ -314,8 +314,7 @@ class CONTENT_EXPORT WebContentsDelegate { SiteInstance* source_site_instance, content::mojom::WindowContainerType window_container_type, const GURL& opener_url, @@ -330,7 +330,7 @@ index bb90319f768ed2f3a3e530d64bf622de585ce163..d84de1d218267887f6b8624f913438eb 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 3e943e814ed1876c2f612faceb91abbb2f34c5f4..532740723aa9f061ea2122f4dee6084afb8cbdbe 100644 +index 2863abb239a77b96e638c83f47ae7219cf0ccec8..5675ad386efa99383067eb404b385cf2ec46142e 100644 --- a/fuchsia/engine/browser/frame_impl.cc +++ b/fuchsia/engine/browser/frame_impl.cc @@ -388,8 +388,7 @@ bool FrameImpl::IsWebContentsCreationOverridden( 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 283b01f28e..f8d0c75db5 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 0341863512846e143ccba91f3ae56b65a8ca8ff8..741c131a70336335690cc0c8790da7b526e86d9d 100644 +index 708f198ecb05fe37ea979cd7d79c6613a3fd3ff5..74f816aef514eef1263d9b2c25cf3a52359860a6 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -6551,6 +6551,7 @@ static_library("browser") { +@@ -6635,6 +6635,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 5de0be8ea2..01285d7b0f 100644 --- a/patches/chromium/chrome_key_systems.patch +++ b/patches/chromium/chrome_key_systems.patch @@ -7,10 +7,10 @@ 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 f0e1a2dda1dd933bb15d726c5d95de416039649b..1d7df102cdc9e3cf7f8ae5b0858bf0fe1d9301be 100644 +index aac62ca6dc5054c62b01e7369ee8e1eb38345672..f19a358036e28da1948ec0db64743f94e021fe7c 100644 --- a/chrome/renderer/media/chrome_key_systems.cc +++ b/chrome/renderer/media/chrome_key_systems.cc -@@ -16,7 +16,9 @@ +@@ -17,7 +17,9 @@ #include "base/strings/utf_string_conversions.h" #include "build/build_config.h" #include "build/chromeos_buildflags.h" @@ -20,7 +20,7 @@ index f0e1a2dda1dd933bb15d726c5d95de416039649b..1d7df102cdc9e3cf7f8ae5b0858bf0fe #include "components/cdm/renderer/external_clear_key_key_system_properties.h" #include "components/cdm/renderer/widevine_key_system_properties.h" #include "content/public/renderer/render_thread.h" -@@ -258,12 +260,14 @@ SupportedCodecs GetSupportedCodecs(const media::CdmCapability& capability) { +@@ -265,12 +267,14 @@ SupportedCodecs GetSupportedCodecs(const media::CdmCapability& capability) { // Returns persistent-license session support. EmeSessionTypeSupport GetPersistentLicenseSupport(bool supported_by_the_cdm) { diff --git a/patches/chromium/crash_allow_setting_more_options.patch b/patches/chromium/crash_allow_setting_more_options.patch index 0016add76e..e531afa433 100644 --- a/patches/chromium/crash_allow_setting_more_options.patch +++ b/patches/chromium/crash_allow_setting_more_options.patch @@ -75,7 +75,7 @@ index 39557cce474439238255ecd28030215085db0c81..5b3f980837911c710686ab91a2a81c31 // Used by WebView to sample crashes without generating the unwanted dumps. If // the returned value is less than 100, crash dumping will be sampled to that diff --git a/components/crash/core/app/crashpad_linux.cc b/components/crash/core/app/crashpad_linux.cc -index 5f97c1ef00d9c63a7b16265cc97d9f145adae550..8c3028f228373b5e1145fe3235dc06663f8b087f 100644 +index 1abde7faf44a4526d7c622e6ce2d6fafe957a4c8..68d745567c1a0e37fa4ebc9e7e705d2a24f3e1fe 100644 --- a/components/crash/core/app/crashpad_linux.cc +++ b/components/crash/core/app/crashpad_linux.cc @@ -165,6 +165,7 @@ base::FilePath PlatformCrashpadInitialization( diff --git a/patches/chromium/dcheck.patch b/patches/chromium/dcheck.patch index f0979a8eea..f6d701883b 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/ui/base/clipboard/clipboard_win.cc b/ui/base/clipboard/clipboard_win.cc -index 2e5645c53037a156cb2a2d1fe6d3a78b8ab685ee..ab43c864fd0b51f1c9c3e6da8383862f6096a543 100644 +index 9422954679f29f24db141120e6167c35fad7a890..e548bcc0c5908ea6f1db8fdba143304afebde8cd 100644 --- a/ui/base/clipboard/clipboard_win.cc +++ b/ui/base/clipboard/clipboard_win.cc -@@ -938,10 +938,10 @@ SkBitmap ClipboardWin::ReadImageInternal(ClipboardBuffer buffer) const { +@@ -941,10 +941,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 e87e079c26..0c7bc144e3 100644 --- a/patches/chromium/delay_lock_the_protocol_scheme_registry.patch +++ b/patches/chromium/delay_lock_the_protocol_scheme_registry.patch @@ -32,10 +32,10 @@ index 095bc943529c38c4f469bf69b79006ca48a4e0d5..0e358e2d140bccf2e987db234cd59227 #if !defined(OS_ANDROID) diff --git a/content/common/url_schemes.cc b/content/common/url_schemes.cc -index dc37f121130d83e200d73dd1ad566847548ac0fd..63080c1bc486a488841fc5d2081f4d5d4a00bde3 100644 +index 29d38782f197cb72a875effab00ffc7960435ac1..694fe67ef751b2a84d8fc3f5ad82854fe2287a11 100644 --- a/content/common/url_schemes.cc +++ b/content/common/url_schemes.cc -@@ -49,7 +49,7 @@ std::vector& GetMutableServiceWorkerSchemes() { +@@ -50,7 +50,7 @@ std::vector& GetMutableServiceWorkerSchemes() { } // namespace @@ -44,7 +44,7 @@ index dc37f121130d83e200d73dd1ad566847548ac0fd..63080c1bc486a488841fc5d2081f4d5d // On Android and in tests, schemes may have been registered already. if (g_registered_url_schemes) return; -@@ -106,7 +106,8 @@ void RegisterContentSchemes() { +@@ -110,7 +110,8 @@ void RegisterContentSchemes() { // threadsafe so must be called when GURL isn't used on any other thread. This // is really easy to mess up, so we say that all calls to Add*Scheme in Chrome // must be inside this function. diff --git a/patches/chromium/desktop_media_list.patch b/patches/chromium/desktop_media_list.patch index 9e233c1a94..6d949f1b14 100644 --- a/patches/chromium/desktop_media_list.patch +++ b/patches/chromium/desktop_media_list.patch @@ -20,14 +20,15 @@ the implementation in a given frame. but this call is not a one-shot but rather repeats the observer signals for every frame. This is the call which chrome currently uses. +* Disabled WindowCaptureMacV2 feature for https://github.com/electron/electron/pull/30507 This patch allows us to get the one-shot effect with the above classes. diff --git a/chrome/browser/media/webrtc/desktop_media_list.h b/chrome/browser/media/webrtc/desktop_media_list.h -index 9663606890f30c82500118b8338ced4e84a69423..ff3d103e35c9809d4291942f1bb56a535870aad4 100644 +index d9737047f54bbf3811ae2a347790f6b3d286da3d..6a038c68bb7f31b8fe145a4a345d95a3e659cd48 100644 --- a/chrome/browser/media/webrtc/desktop_media_list.h +++ b/chrome/browser/media/webrtc/desktop_media_list.h -@@ -49,6 +49,9 @@ class DesktopMediaList { +@@ -59,6 +59,9 @@ class DesktopMediaList { virtual ~DesktopMediaList() {} @@ -37,7 +38,7 @@ index 9663606890f30c82500118b8338ced4e84a69423..ff3d103e35c9809d4291942f1bb56a53 // Sets time interval between updates. By default list of sources and their // thumbnail are updated once per second. If called after StartUpdating() then // it will take effect only after the next update. -@@ -80,6 +83,7 @@ class DesktopMediaList { +@@ -90,6 +93,7 @@ class DesktopMediaList { virtual int GetSourceCount() const = 0; virtual const Source& GetSource(int index) const = 0; @@ -128,7 +129,7 @@ index ad7f766a36b1b6b2a8bc0f96369f1aaadf6681f7..f6c6c14a0937430df62c9b9c1132c591 protected: virtual ~DesktopMediaListObserver() {} diff --git a/chrome/browser/media/webrtc/native_desktop_media_list.cc b/chrome/browser/media/webrtc/native_desktop_media_list.cc -index 0d38b92ccb7ef1ada0d2165d714d80a844c999b8..d1254c8e1acbadb3a1976097031889f19a02554d 100644 +index 5a851f4c89b4ed2b41640bf8bad47b7d8eba8ca1..7687bad18acad2cd607d14d3d3ac39f81e7dcc8a 100644 --- a/chrome/browser/media/webrtc/native_desktop_media_list.cc +++ b/chrome/browser/media/webrtc/native_desktop_media_list.cc @@ -11,15 +11,16 @@ @@ -149,7 +150,18 @@ index 0d38b92ccb7ef1ada0d2165d714d80a844c999b8..d1254c8e1acbadb3a1976097031889f1 #include "media/base/video_util.h" #include "third_party/libyuv/include/libyuv/scale_argb.h" #include "third_party/skia/include/core/SkBitmap.h" -@@ -266,6 +267,8 @@ void NativeDesktopMediaList::Worker::RefreshNextThumbnail() { +@@ -94,8 +95,9 @@ gfx::ImageSkia ScaleDesktopFrame(std::unique_ptr frame, + } + + #if defined(OS_MAC) ++// Refs https://github.com/electron/electron/pull/30507 + const base::Feature kWindowCaptureMacV2{"WindowCaptureMacV2", +- base::FEATURE_ENABLED_BY_DEFAULT}; ++ base::FEATURE_DISABLED_BY_DEFAULT}; + #endif + + } // namespace +@@ -271,6 +273,8 @@ void NativeDesktopMediaList::Worker::RefreshNextThumbnail() { FROM_HERE, base::BindOnce(&NativeDesktopMediaList::UpdateNativeThumbnailsFinished, media_list_)); diff --git a/patches/chromium/disable_color_correct_rendering.patch b/patches/chromium/disable_color_correct_rendering.patch index 5e64ccc9ae..172d974b21 100644 --- a/patches/chromium/disable_color_correct_rendering.patch +++ b/patches/chromium/disable_color_correct_rendering.patch @@ -20,10 +20,10 @@ 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 e1a99c0a66bfc4fcc6af07632543066a592b9cff..359be58dcba64bb9cfa1b1b543b1c576c27826ae 100644 +index 63f61838cbfa9733b0a0f6831ccf0d9a1958e81e..a6fb9b69ba52af1b0d76cf8110c784058e2599d7 100644 --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc -@@ -1783,6 +1783,10 @@ void LayerTreeHostImpl::SetIsLikelyToRequireADraw( +@@ -1802,6 +1802,10 @@ void LayerTreeHostImpl::SetIsLikelyToRequireADraw( gfx::ColorSpace LayerTreeHostImpl::GetRasterColorSpace( gfx::ContentColorUsage content_color_usage) const { @@ -81,7 +81,7 @@ index f919df4d79a1168269c1538ac13a2a944586cf4e..fc34cf5d7dab95e7b6fc0576674b3e2b !command_line->HasSwitch(switches::kUIDisablePartialSwap); diff --git a/components/viz/service/display/gl_renderer.cc b/components/viz/service/display/gl_renderer.cc -index 2cd58b05621c11ccda6163cb471b719015b74379..1911003301766cbf05ce0f0b828b8faf971a1dbc 100644 +index 1e2ad6423a5e316a9a1713abab7579ea0d2a82f9..22df5e1728e5dc2879c9b96911f6e7340d455b2a 100644 --- a/components/viz/service/display/gl_renderer.cc +++ b/components/viz/service/display/gl_renderer.cc @@ -90,6 +90,9 @@ @@ -187,7 +187,7 @@ index 2cd58b05621c11ccda6163cb471b719015b74379..1911003301766cbf05ce0f0b828b8faf /*adjust_src_white_level=*/draw_cache_.is_video_frame, locked_quad.hdr_metadata()); -@@ -3692,7 +3702,9 @@ void GLRenderer::SetUseProgram(const ProgramKey& program_key_no_color, +@@ -3694,7 +3704,9 @@ void GLRenderer::SetUseProgram(const ProgramKey& program_key_no_color, const gfx::ColorSpace& dst_color_space, bool adjust_src_white_level, absl::optional hdr_metadata) { @@ -198,7 +198,7 @@ index 2cd58b05621c11ccda6163cb471b719015b74379..1911003301766cbf05ce0f0b828b8faf gfx::ColorSpace adjusted_src_color_space = src_color_space; if (adjust_src_white_level && src_color_space.IsHDR()) { // TODO(b/183236148): consider using the destination's HDR static metadata -@@ -4075,9 +4087,9 @@ void GLRenderer::CopyRenderPassDrawQuadToOverlayResource( +@@ -4077,9 +4089,9 @@ void GLRenderer::CopyRenderPassDrawQuadToOverlayResource( cc::MathUtil::CheckedRoundUp(iosurface_height, iosurface_multiple); } @@ -211,7 +211,7 @@ index 2cd58b05621c11ccda6163cb471b719015b74379..1911003301766cbf05ce0f0b828b8faf *new_bounds = gfx::RectF(updated_dst_rect.origin(), gfx::SizeF((*overlay_texture)->texture.size())); -@@ -4297,8 +4309,8 @@ void GLRenderer::FlushOverdrawFeedback(const gfx::Rect& output_rect) { +@@ -4299,8 +4311,8 @@ void GLRenderer::FlushOverdrawFeedback(const gfx::Rect& output_rect) { PrepareGeometry(SHARED_BINDING); @@ -222,14 +222,14 @@ index 2cd58b05621c11ccda6163cb471b719015b74379..1911003301766cbf05ce0f0b828b8faf gfx::Transform render_matrix; render_matrix.Translate(0.5 * output_rect.width() + output_rect.x(), -@@ -4487,3 +4499,5 @@ GLRenderer::OverlayTexture::OverlayTexture() = default; +@@ -4489,3 +4501,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 90cfcd777422e9e4a0ab3aa5216305102b2c4f35..621e300402ff646bafbf6d5d8101012cef24121d 100644 +index 20c70c62a8e085a50cef7b90ef859efd014d16c9..8a780e2324935f196db9720649ff974ee43f3d3a 100644 --- a/content/browser/gpu/gpu_process_host.cc +++ b/content/browser/gpu/gpu_process_host.cc @@ -224,6 +224,7 @@ GpuTerminationStatus ConvertToGpuTerminationStatus( @@ -241,7 +241,7 @@ index 90cfcd777422e9e4a0ab3aa5216305102b2c4f35..621e300402ff646bafbf6d5d8101012c 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 bad0a564a81fc45d86558be449d83dbc6d7c073f..bfe45bdb892f610304e0b3a10ce160d2aa8da29d 100644 +index 8c61ce5f2035a63675d17fda429b839c1e1e8e3b..b6b26ce465407a75dd8e15138187d614a3415941 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc @@ -219,6 +219,7 @@ @@ -252,7 +252,7 @@ index bad0a564a81fc45d86558be449d83dbc6d7c073f..bfe45bdb892f610304e0b3a10ce160d2 #include "ui/gl/gl_switches.h" #include "ui/native_theme/native_theme_features.h" #include "url/origin.h" -@@ -3356,6 +3357,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3381,6 +3382,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 b7b7c12169..66697ab5e3 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 23d00ebbd6563a2bee1c79819c3745f56ad6f53b..fc26b0cb92c0b4ace52d64a5994422ad056de034 100644 +index e9f3e0d499c53cebc20d417d396190f7dc384c69..950dbc9e0644accbbc3131c8973c6b738274530e 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm @@ -482,7 +482,11 @@ diff --git a/patches/chromium/disable_hidden.patch b/patches/chromium/disable_hidden.patch index 78e92c68a5..9c21a02384 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 6db8f91c390a0338588ec144d018e94aadd5e302..ce7e99c55b9c555ca8b6d0b7755db64e8f56330e 100644 +index ebb771918923b3d8552bde02602ab88a2e1d61a7..4bec6c3593de51f6098c632a08793508106ec21d 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc -@@ -771,6 +771,9 @@ void RenderWidgetHostImpl::WasHidden() { +@@ -773,6 +773,9 @@ void RenderWidgetHostImpl::WasHidden() { if (is_hidden_) return; @@ -34,10 +34,10 @@ index d082d920c4124b38f1e0358f065ab9b6a18baa76..f966eb89e61a56571d8478f385d5623a // |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 93d2c89e52b02469fa18819bd5b461c70d0ad40b..86eda068a54e78fe7be0278e8e586662cd9ca102 100644 +index 0ff5615d8d8704086aad1361334a93fd9465e670..a8bbfa6a50acf6318290308cb4ff6d4854df49c5 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura.cc +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc -@@ -594,7 +594,7 @@ void RenderWidgetHostViewAura::HideImpl() { +@@ -598,7 +598,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 0bad46d0e0..ed2b68294a 100644 --- a/patches/chromium/disable_unload_metrics.patch +++ b/patches/chromium/disable_unload_metrics.patch @@ -24,7 +24,7 @@ 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 8d14c49f2dc83a538118fb478b24e5f687814a04..064af99748a7c45744f45917e2575c531ec2ba00 100644 +index ab2f90337a64aa9737ada27bfa7c4344f1358bb6..1d308e7ec0bcf302d86f61fd5e39cb3e87c9a25b 100644 --- a/content/browser/renderer_host/navigator.cc +++ b/content/browser/renderer_host/navigator.cc @@ -1092,6 +1092,7 @@ void Navigator::RecordNavigationMetrics( diff --git a/patches/chromium/disable_use_lld_for_macos.patch b/patches/chromium/disable_use_lld_for_macos.patch index 224ff93017..c235858f95 100644 --- a/patches/chromium/disable_use_lld_for_macos.patch +++ b/patches/chromium/disable_use_lld_for_macos.patch @@ -7,15 +7,15 @@ This patch disables use_lld on macOS, in order to prevent a linking bug that occurs when building for arm64. diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni -index 995ee26e64fb65310e50442b0e5922a756e10a05..0bce1708a755405daa28a59c56231679e3e3d6f1 100644 +index 6f1faaf10fa67a82077023ebbac31cca12cd6578..d7167629fa4cf5b2e46d2959d104e0dcec4acac4 100644 --- a/build/config/compiler/compiler.gni +++ b/build/config/compiler/compiler.gni @@ -200,7 +200,7 @@ declare_args() { # Set to true to use lld, the LLVM linker. - # The default linker everywhere except on iOS. - # TODO(https://crbug.com/1233174): Make work in mac PGO builds. -- use_lld = is_clang && !is_ios && !(is_mac && chrome_pgo_phase == 1) -+ use_lld = is_clang && !is_ios + # In late bring-up on macOS (see docs/mac_lld.md), and not functional at all for + # iOS. The default linker everywhere else. +- use_lld = is_clang && (!is_apple || host_os == "linux") ++ use_lld = is_clang && !is_apple } declare_args() { diff --git a/patches/chromium/dom_storage_limits.patch b/patches/chromium/dom_storage_limits.patch index 5cb3198fa1..c62cc1719f 100644 --- a/patches/chromium/dom_storage_limits.patch +++ b/patches/chromium/dom_storage_limits.patch @@ -32,7 +32,7 @@ index 3fd108c89c3b070a08790850db4dfd6cc8a3ce44..c393f51709efd8b28b07edfe452d2b84 } // namespace storage diff --git a/third_party/blink/public/mojom/dom_storage/storage_area.mojom b/third_party/blink/public/mojom/dom_storage/storage_area.mojom -index c9f9124eb6f4900988ad63fa38a03b7b6c5d1abb..9cba4e5af9a624d358697d806f151ee3998f0b58 100644 +index adbb73ef9c5a5a59fd0bfe0137d0dc9219d376e9..7e1e10faba4263d8ec1afefdebb3202da1944d34 100644 --- a/third_party/blink/public/mojom/dom_storage/storage_area.mojom +++ b/third_party/blink/public/mojom/dom_storage/storage_area.mojom @@ -50,7 +50,8 @@ struct KeyValue { 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 4c83d510e2..ae7322bd18 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 8c0fb0274650b2a4a36a446a1b0ce01e93c6304b..b55db9ecdd824f3a4c473980f2050ed661c4c4ac 100644 +index 7884866e2358f78a994dd784f187fdb8bd592bad..336fef1c0da9c1a729c90323cf9bfc26d75f1411 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -2356,7 +2356,7 @@ const blink::WebView* RenderFrameImpl::GetWebView() const { +@@ -2358,7 +2358,7 @@ const blink::WebView* RenderFrameImpl::GetWebView() const { } 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 1564db137d..5f42135b04 100644 --- a/patches/chromium/enable_reset_aspect_ratio.patch +++ b/patches/chromium/enable_reset_aspect_ratio.patch @@ -6,10 +6,10 @@ 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 6a60f9dd07602383a778bc8bfd4b4622be1e2108..c0dfd89cf3884dd340570cbc37776135227c116a 100644 +index 042fb2b5d16533767bf33ca8fffa9c4bc5c35f87..fdcd982e77838b3fd128f5af25575101a4575b41 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 -@@ -517,7 +517,7 @@ void DesktopWindowTreeHostWin::SetOpacity(float opacity) { +@@ -527,7 +527,7 @@ void DesktopWindowTreeHostWin::SetOpacity(float opacity) { } void DesktopWindowTreeHostWin::SetAspectRatio(const gfx::SizeF& aspect_ratio) { diff --git a/patches/chromium/expose_setuseragent_on_networkcontext.patch b/patches/chromium/expose_setuseragent_on_networkcontext.patch index 8983db5519..92ba3a79b5 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 f6ffe4fd17beda171df181a28b8a7b6e4b39b982..cc6960e647205e3a8d7ac96e6b116458aef79207 100644 +index 94085578e6b80d082b5ac67730381c998a418601..1877a2b555423ca65e051fb128ef3ff546e248ea 100644 --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -1195,6 +1195,13 @@ void NetworkContext::SetNetworkConditions( +@@ -1287,6 +1287,13 @@ void NetworkContext::SetNetworkConditions( std::move(network_conditions)); } @@ -51,10 +51,10 @@ index f6ffe4fd17beda171df181a28b8a7b6e4b39b982..cc6960e647205e3a8d7ac96e6b116458 // 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 c701d79bbe05f52c03eb0c0c13ad00cdfc3263fb..01e65839c7cb180f9e94f51eda71193fec1f4f30 100644 +index db9baee0a272674db2eb807932fc8123b9c3a24d..e526cfe29452faf33f7301cf05eddbf3a06129a2 100644 --- a/services/network/network_context.h +++ b/services/network/network_context.h -@@ -256,6 +256,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -269,6 +269,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext void CloseIdleConnections(CloseIdleConnectionsCallback callback) override; void SetNetworkConditions(const base::UnguessableToken& throttling_profile_id, mojom::NetworkConditionsPtr conditions) override; @@ -63,10 +63,10 @@ index c701d79bbe05f52c03eb0c0c13ad00cdfc3263fb..01e65839c7cb180f9e94f51eda71193f 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 2606002021db94fe208c9f8e4d8dea6a5478b697..b60b0102e865e656c2df309c5e5ec4db1975e06f 100644 +index 987e464333e1f8db3fa810dfa9aaa00e6dae6722..c8f312c3a453d7eaddff65415c9325f3460c68d5 100644 --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -958,6 +958,9 @@ interface NetworkContext { +@@ -988,6 +988,9 @@ interface NetworkContext { SetNetworkConditions(mojo_base.mojom.UnguessableToken throttling_profile_id, NetworkConditions? conditions); @@ -77,10 +77,10 @@ index 2606002021db94fe208c9f8e4d8dea6a5478b697..b60b0102e865e656c2df309c5e5ec4db SetAcceptLanguage(string new_accept_language); diff --git a/services/network/test/test_network_context.h b/services/network/test/test_network_context.h -index 0d928e7db97bcc2ac99eea0e46a2f0b8405ddfb9..b325c08a447abb2424f08fb11abe2b1375e4b920 100644 +index 09a537564e30ac14807b7e5c4c1b154ab160f70a..2348e7d78c22d1e8b98860ecf10422e27c523032 100644 --- a/services/network/test/test_network_context.h +++ b/services/network/test/test_network_context.h -@@ -123,6 +123,7 @@ class TestNetworkContext : public mojom::NetworkContext { +@@ -126,6 +126,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/extend_apply_webpreferences.patch b/patches/chromium/extend_apply_webpreferences.patch index 66f387a1bb..4676aba8ab 100644 --- a/patches/chromium/extend_apply_webpreferences.patch +++ b/patches/chromium/extend_apply_webpreferences.patch @@ -12,7 +12,7 @@ Ideally we could add an embedder observer pattern here but that can be done in future work. 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 afe02087fb46273f76069cf5c8d605a0d1e8ec3f..8003ef3231e1fa392c071f8c9ce2113fe3fb7506 100644 +index c26e087f2f4d7a1446ce439e5a08a34aa2ccfec4..e4e942300652dfff86aded228307d800c59c1012 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc @@ -155,6 +155,7 @@ @@ -23,7 +23,7 @@ index afe02087fb46273f76069cf5c8d605a0d1e8ec3f..8003ef3231e1fa392c071f8c9ce2113f #include "third_party/blink/renderer/platform/graphics/image.h" #include "third_party/blink/renderer/platform/graphics/paint/cull_rect.h" #include "third_party/blink/renderer/platform/graphics/paint/paint_record_builder.h" -@@ -1794,6 +1795,7 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs, +@@ -1791,6 +1792,7 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs, #if defined(OS_MAC) web_view_impl->SetMaximumLegibleScale( prefs.default_maximum_page_scale_factor); diff --git a/patches/chromium/feat_add_set_theme_source_to_allow_apps_to.patch b/patches/chromium/feat_add_set_theme_source_to_allow_apps_to.patch index 5f68866978..2501d50a50 100644 --- a/patches/chromium/feat_add_set_theme_source_to_allow_apps_to.patch +++ b/patches/chromium/feat_add_set_theme_source_to_allow_apps_to.patch @@ -13,10 +13,10 @@ uses internally for things like menus and devtools. We can remove this patch once it has in some shape been upstreamed. diff --git a/ui/native_theme/native_theme.cc b/ui/native_theme/native_theme.cc -index be9f0b16529c27f3631e70941b05b8977c78e063..37614c69f19211d50532ef76a04395a8b038f3a6 100644 +index 6471581569072714141e1ccea083f5600def6c4f..b203baecad684f37d9f193da12647767ffc938ef 100644 --- a/ui/native_theme/native_theme.cc +++ b/ui/native_theme/native_theme.cc -@@ -148,6 +148,8 @@ absl::optional NativeTheme::GetColorProviderColor( +@@ -149,6 +149,8 @@ absl::optional NativeTheme::GetColorProviderColor( } bool NativeTheme::ShouldUseDarkColors() const { @@ -26,10 +26,10 @@ index be9f0b16529c27f3631e70941b05b8977c78e063..37614c69f19211d50532ef76a04395a8 } diff --git a/ui/native_theme/native_theme.h b/ui/native_theme/native_theme.h -index ca2b4479866644b510a0381b7e2107dbc1ff71bf..8c70e2fdb17a60ab657acdc1e11e790bfc3c6663 100644 +index 44cd465c17b509b247b2257b1c978504e2eb2254..7e5666964836c71e587ba230320afe70b69afe24 100644 --- a/ui/native_theme/native_theme.h +++ b/ui/native_theme/native_theme.h -@@ -404,6 +404,22 @@ class NATIVE_THEME_EXPORT NativeTheme { +@@ -405,6 +405,22 @@ class NATIVE_THEME_EXPORT NativeTheme { SkColor GetUnprocessedSystemColor(ColorId color_id, ColorScheme color_scheme) const; @@ -61,7 +61,7 @@ index ca2b4479866644b510a0381b7e2107dbc1ff71bf..8c70e2fdb17a60ab657acdc1e11e790b SEQUENCE_CHECKER(sequence_checker_); diff --git a/ui/native_theme/native_theme_win.cc b/ui/native_theme/native_theme_win.cc -index c7b96990129262d3b831006af10e85a208bdc581..d4365a3a7e393d5b7ded6030c256176c2858f8f4 100644 +index f9772f86a1e233bbf3cc429e36dac8c62f61cd20..2615af462feed395974e76a4fbaf8ee4b3b4c0a1 100644 --- a/ui/native_theme/native_theme_win.cc +++ b/ui/native_theme/native_theme_win.cc @@ -748,6 +748,8 @@ bool NativeThemeWin::ShouldUseDarkColors() const { diff --git a/patches/chromium/feat_add_streaming-protocol_registry_to_multibuffer_data_source.patch b/patches/chromium/feat_add_streaming-protocol_registry_to_multibuffer_data_source.patch index 2e9ad36d56..28f13a7223 100644 --- a/patches/chromium/feat_add_streaming-protocol_registry_to_multibuffer_data_source.patch +++ b/patches/chromium/feat_add_streaming-protocol_registry_to_multibuffer_data_source.patch @@ -13,10 +13,10 @@ other protocols to register their streaming behavior. MultibufferDataSource::Ass then refers to the list so that it can correctly determine the data source's settings. diff --git a/third_party/blink/public/platform/media/multi_buffer_data_source.h b/third_party/blink/public/platform/media/multi_buffer_data_source.h -index 3a116703a77ef03715c8e3afca77b90205b32d63..e2bfe736c76d2c35ab5a0533b7569d86b22422f6 100644 +index 274308e54f2b5c6311d68daa162c146113ba669e..e450fe31011620d87219ce28ef37fb5eba7cc348 100644 --- a/third_party/blink/public/platform/media/multi_buffer_data_source.h +++ b/third_party/blink/public/platform/media/multi_buffer_data_source.h -@@ -33,6 +33,8 @@ namespace blink { +@@ -34,6 +34,8 @@ namespace blink { class BufferedDataSourceHost; class MultiBufferReader; diff --git a/patches/chromium/feat_allow_embedders_to_add_observers_on_created_hunspell.patch b/patches/chromium/feat_allow_embedders_to_add_observers_on_created_hunspell.patch index e811a6ffa4..6a88cfc72c 100644 --- a/patches/chromium/feat_allow_embedders_to_add_observers_on_created_hunspell.patch +++ b/patches/chromium/feat_allow_embedders_to_add_observers_on_created_hunspell.patch @@ -7,7 +7,7 @@ Subject: feat: allow embedders to add observers on created hunspell This patch is used by Electron to implement spellchecker events. diff --git a/chrome/browser/spellchecker/spellcheck_service.cc b/chrome/browser/spellchecker/spellcheck_service.cc -index 6ba3efb81955c5f4cb43d99314790b2dd2d0ac8c..5ed5c24a5494fa4c954ee40d930dc9b49cb7161a 100644 +index 23980dfd5e35ac9160b82bd0d29bd98762897d1f..aece7fe0a4d45a40afbc0339073ffffb2c0d4f5e 100644 --- a/chrome/browser/spellchecker/spellcheck_service.cc +++ b/chrome/browser/spellchecker/spellcheck_service.cc @@ -466,6 +466,9 @@ void SpellcheckService::LoadDictionaries() { 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 c40ede52df..860a15f832 100644 --- a/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch +++ b/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch @@ -37,10 +37,10 @@ index 3b00759e513dc7e19fd68398e853c8ce6ac73905..47f4e7cc2e8b3141dcaf9e7a498fec32 // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. diff --git a/components/viz/host/host_display_client.h b/components/viz/host/host_display_client.h -index 5e260e13762f61971c99f755e93d73aa794d9175..a57770718b71def04fa35c7655d9368a58f39f20 100644 +index 94c5293d528a60c16ec209b68da93217d030e068..e833b204d02869b57d888d6e9480a6a484013581 100644 --- a/components/viz/host/host_display_client.h +++ b/components/viz/host/host_display_client.h -@@ -39,10 +39,9 @@ class VIZ_HOST_EXPORT HostDisplayClient : public mojom::DisplayClient { +@@ -38,10 +38,9 @@ class VIZ_HOST_EXPORT HostDisplayClient : public mojom::DisplayClient { const gfx::CALayerParams& ca_layer_params) override; #endif @@ -81,7 +81,7 @@ index 1026b739d283f0fc252fa2af83a6d4cf51bc8553..fe562ab60ce98b8bb0c5080a6428deb3 private: const HWND hwnd_; diff --git a/components/viz/service/BUILD.gn b/components/viz/service/BUILD.gn -index ab57419ebec4ea33d7063a803af97c5adda71b52..607669250e9525fd565063cbb253481e454778b8 100644 +index f0eb025056501c5d87a0ef814ec4070a3df29bcc..148adf8b17209eeb142c02674a2a24312e588e80 100644 --- a/components/viz/service/BUILD.gn +++ b/components/viz/service/BUILD.gn @@ -137,6 +137,8 @@ viz_component("service") { @@ -544,10 +544,10 @@ index 409115f95787e3cf037f762a33368b173441012f..45a7a1607b8711420ba4e1a5455a61fb // Notifies that a swap has occurred and provides information about the pixel diff --git a/services/viz/privileged/mojom/compositing/frame_sink_manager.mojom b/services/viz/privileged/mojom/compositing/frame_sink_manager.mojom -index 8d7cfe54e819f3d6c362c62db2f183c901bea991..e08c4556240f0f566a91c3fb9ba142170b4b0c3a 100644 +index e33e5de0bfb59afe9b21ee27bb6dad5d898932b6..55aff8c8d05ce55bef8440185ac73f48f589d06c 100644 --- a/services/viz/privileged/mojom/compositing/frame_sink_manager.mojom +++ b/services/viz/privileged/mojom/compositing/frame_sink_manager.mojom -@@ -30,6 +30,7 @@ struct RootCompositorFrameSinkParams { +@@ -32,6 +32,7 @@ struct RootCompositorFrameSinkParams { // Disables begin frame rate limiting for the display compositor. bool disable_frame_rate_limit = false; bool use_preferred_interval_for_video = false; diff --git a/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch b/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch new file mode 100644 index 0000000000..3b498e5e28 --- /dev/null +++ b/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch @@ -0,0 +1,64 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: deepak1556 +Date: Tue, 17 Aug 2021 22:42:42 -0700 +Subject: feat: expose raw response headers from URLLoader + +With https://chromium-review.googlesource.com/c/chromium/src/+/2856099 +unfiltered response headers are only available via trusted channel +through //services/network/public/mojom/devtools_observer.mojom. +https://github.com/electron/electron/pull/30503/commits/28f4da1582d046e96cb58f3cbb590503e89dfd0d +was an attempt to use this interface but given the original response is +signalled on a different interface via URLLoaderClient::OnReceiveResponse +it is harder to sync these data from two different channels for a synchronous +event emitted on the SimpleURLLoaderWrapper::OnResponseStarted. + +This patch does the minimal approach to add back the raw response +headers, moving forward we should find a way in upstream to provide +access to these headers for loader clients created on the browser process. + +diff --git a/services/network/public/mojom/url_response_head.mojom b/services/network/public/mojom/url_response_head.mojom +index cea1fb864ab46b4b0eabf1db11a0392d6cd575c1..df033f65d50b088778268827e506963afebe0a23 100644 +--- a/services/network/public/mojom/url_response_head.mojom ++++ b/services/network/public/mojom/url_response_head.mojom +@@ -7,6 +7,7 @@ module network.mojom; + import "mojo/public/mojom/base/time.mojom"; + import "mojo/public/mojom/base/unguessable_token.mojom"; + import "services/network/public/mojom/fetch_api.mojom"; ++import "services/network/public/mojom/http_raw_headers.mojom"; + import "services/network/public/mojom/ip_endpoint.mojom"; + import "services/network/public/mojom/load_timing_info.mojom"; + import "services/network/public/mojom/network_param.mojom"; +@@ -28,6 +29,9 @@ struct URLResponseHead { + // The response headers or NULL if the URL type does not support headers. + HttpResponseHeaders headers; + ++ // Actual response headers, as obtained from the network stack. ++ array raw_response_headers; ++ + // The mime type of the response. This may be a derived value. + string mime_type; + +diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc +index 0c0f52fdba85b3a7a5d256e6649763d436b74ee3..92c96b4b693d59ea393bff98a50567e631fdc804 100644 +--- a/services/network/url_loader.cc ++++ b/services/network/url_loader.cc +@@ -1259,6 +1259,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) { + response_ = network::mojom::URLResponseHead::New(); + PopulateResourceResponse(url_request_.get(), is_load_timing_enabled_, + options_, response_.get()); ++ if (raw_response_headers_ && devtools_request_id()) { ++ std::vector header_array; ++ size_t iterator = 0; ++ std::string name, value; ++ while (raw_response_headers_->EnumerateHeaderLines(&iterator, &name, &value)) { ++ network::mojom::HttpRawHeaderPairPtr pair = ++ network::mojom::HttpRawHeaderPair::New(); ++ pair->key = name; ++ pair->value = value; ++ header_array.push_back(std::move(pair)); ++ } ++ response_->raw_response_headers = std::move(header_array); ++ } + + // Parse and remove the Trust Tokens response headers, if any are expected, + // potentially failing the request if an error occurs. diff --git a/patches/chromium/fix_expose_decrementcapturercount_in_web_contents_impl.patch b/patches/chromium/fix_expose_decrementcapturercount_in_web_contents_impl.patch index 3ee0848b3a..1d281261ff 100644 --- a/patches/chromium/fix_expose_decrementcapturercount_in_web_contents_impl.patch +++ b/patches/chromium/fix_expose_decrementcapturercount_in_web_contents_impl.patch @@ -8,10 +8,10 @@ we invoke it in order to expose contents.decrementCapturerCount([stayHidden, sta to users. We should try to upstream this. diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h -index 6ddba0914379d2f1135144447f2cf6c990f34e94..19dbad406dcffad2ef588358fcef6ed7f7cbfaca 100644 +index 6240a5a997894055bd5f7c2d9ceb741cd9bfe1e4..cbf2121193b63d1bcf9018e65f06f4fc4f7eae47 100644 --- a/content/browser/web_contents/web_contents_impl.h +++ b/content/browser/web_contents/web_contents_impl.h -@@ -1782,10 +1782,12 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents, +@@ -1769,10 +1769,12 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents, // outermost frame trees in this WebContents. std::vector GetOutermostMainFrames(); @@ -26,10 +26,10 @@ index 6ddba0914379d2f1135144447f2cf6c990f34e94..19dbad406dcffad2ef588358fcef6ed7 // state into account. PageVisibilityState CalculatePageVisibilityState(Visibility visibility) const; diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h -index 529b8008f0247dcff819e3178312776d0d46d372..0fecccfd3f7d9a8b464d24a0ab0bd504fc898de3 100644 +index 383d0fd95d7e807b83f4cd972c107fa27fefaac6..ae7a7f187b24bb3ec97bea37881f85ede8689936 100644 --- a/content/public/browser/web_contents.h +++ b/content/public/browser/web_contents.h -@@ -623,6 +623,8 @@ class WebContents : public PageNavigator, +@@ -633,6 +633,8 @@ class WebContents : public PageNavigator, bool stay_hidden, bool stay_awake) WARN_UNUSED_RESULT = 0; diff --git a/patches/chromium/fix_fix_the_build_on_windows_on_arm.patch b/patches/chromium/fix_fix_the_build_on_windows_on_arm.patch deleted file mode 100644 index 0b6d814e26..0000000000 --- a/patches/chromium/fix_fix_the_build_on_windows_on_arm.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Charles Kerr -Date: Tue, 10 Aug 2021 11:54:41 -0500 -Subject: fix: Fix the build on Windows on ARM - -https://chromium-review.googlesource.com/c/chromium/src/+/3056003 - -Cherry-picking this upstream fix because the roll has been paused for -a long time and this appears to be the only blocker remaining before the -current roller-bot PR goes green, so the risk/reward of bumping DEPS -leans in favor of merging what we've got before unpausing. - -diff --git a/chrome/installer/util/additional_parameters.cc b/chrome/installer/util/additional_parameters.cc -index 275c635154111521a27a174b590685062021a09d..ddddd5bbfb4058b10d6cb21f69216b5fd5940e21 100644 ---- a/chrome/installer/util/additional_parameters.cc -+++ b/chrome/installer/util/additional_parameters.cc -@@ -201,6 +201,8 @@ std::wstring GetChannelIdentifier(version_info::Channel channel, - static constexpr base::WStringPiece kArchSuffix = L"-arch_x64"; - #elif defined(ARCH_CPU_X86) - static constexpr base::WStringPiece kArchSuffix = L"-arch_x86"; -+#elif defined(ARCH_CPU_ARM64) -+ static constexpr base::WStringPiece kArchSuffix = L"-arch_arm64"; - #else - #error unsupported processor architecture. - #endif -@@ -236,6 +238,8 @@ std::wstring GetChannelIdentifier(version_info::Channel channel, - return L"x64-stable"; - #elif defined(ARCH_CPU_X86) - return L"stable-arch_x86"; -+#elif defined(ARCH_CPU_ARM64) -+ return L"stable-arch_arm64"; - #else - #error unsupported processor architecture. - #endif diff --git a/patches/chromium/frame_host_manager.patch b/patches/chromium/frame_host_manager.patch index 7b5c3b93c3..567921d74f 100644 --- a/patches/chromium/frame_host_manager.patch +++ b/patches/chromium/frame_host_manager.patch @@ -6,10 +6,10 @@ Subject: frame_host_manager.patch Allows embedder to intercept site instances created by chromium. diff --git a/content/browser/renderer_host/render_frame_host_manager.cc b/content/browser/renderer_host/render_frame_host_manager.cc -index 70b9878fe12c1bf57b598150bcb2bcbde9a6c86f..e29deff6b7312601daac5785461ca3811785836a 100644 +index 93416b8626adc4495f02dac56f106727e83ff427..c37624b1a2af3fbd4f42c2e11e5b7b46a82bf1df 100644 --- a/content/browser/renderer_host/render_frame_host_manager.cc +++ b/content/browser/renderer_host/render_frame_host_manager.cc -@@ -3045,6 +3045,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( +@@ -3078,6 +3078,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( request->ResetStateForSiteInstanceChange(); } @@ -20,7 +20,7 @@ index 70b9878fe12c1bf57b598150bcb2bcbde9a6c86f..e29deff6b7312601daac5785461ca381 } diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h -index 7628a3f9ecc95dd2eb6580fbf1a7c6fe57bb5a1c..b0aa7a8bef6bf4216ec1f0390174678f11fff071 100644 +index 75227e160dda6724e59271e702c956ea1470a40e..19a146dcac3e3acfcd23e64fec3f7993aa4a92bd 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h @@ -269,6 +269,11 @@ 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 93a86c4071..db487d6cf0 100644 --- a/patches/chromium/gin_enable_disable_v8_platform.patch +++ b/patches/chromium/gin_enable_disable_v8_platform.patch @@ -38,7 +38,7 @@ index 41e516899dccb6352aabadcd66a93d69e13031b6..e476c6b4a58caa30d81d082200bfd8c8 // Returns whether `Initialize` has already been invoked in the process. // Initialization is a one-way operation (i.e., this method cannot return diff --git a/gin/v8_initializer.cc b/gin/v8_initializer.cc -index 4ba7c59e97fd0c6234c35db3a10bcb51e6088804..32aa9eda0baba8fbe81f98504f2a6c5acc60a2f3 100644 +index 042ce4e6d0cb20686d3493ba034dcf41edcd658c..a9b2c43bacdf851b12c24b53080b40585405c4ae 100644 --- a/gin/v8_initializer.cc +++ b/gin/v8_initializer.cc @@ -267,7 +267,8 @@ void SetV8FlagsIfOverridden(const base::Feature& feature, diff --git a/patches/chromium/gritsettings_resource_ids.patch b/patches/chromium/gritsettings_resource_ids.patch index 985898aac4..d930974e3c 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 c921510f74cbeee5d5004a2057a8c27fc744b24c..0d00c29a73790b954259f4c537d79ed6dd0064a1 100644 +index 50dded5f9fcbc3620d78f83d0c9210aeacd9ba34..1b2dbfa0fb76c5d2cafbda956d486acc6c13ab5d 100644 --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec -@@ -837,6 +837,11 @@ +@@ -844,6 +844,11 @@ "includes": [3880], }, diff --git a/patches/chromium/hack_to_allow_gclient_sync_with_host_os_mac_on_linux_in_ci.patch b/patches/chromium/hack_to_allow_gclient_sync_with_host_os_mac_on_linux_in_ci.patch index faaf9fbbd9..7273396577 100644 --- a/patches/chromium/hack_to_allow_gclient_sync_with_host_os_mac_on_linux_in_ci.patch +++ b/patches/chromium/hack_to_allow_gclient_sync_with_host_os_mac_on_linux_in_ci.patch @@ -11,10 +11,10 @@ If removing this patch causes no sync failures, it's safe to delete :+1: Ref https://chromium-review.googlesource.com/c/chromium/src/+/2953903 diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py -index b8f44d2cfbd1810f2861a71a3b3d11fcec1c18bc..8928b73e328fad7b3ec7280249060d2c857e753c 100755 +index 57107a56480343778baf3445fd5725ac8130dd52..56b1a39e7883c89fbf27a205c136fc2c12a785f5 100755 --- a/tools/clang/scripts/update.py +++ b/tools/clang/scripts/update.py -@@ -287,6 +287,8 @@ def main(): +@@ -286,6 +286,8 @@ def main(): 'win32': 'win', } default_host_os = _PLATFORM_HOST_OS_MAP.get(sys.platform, sys.platform) diff --git a/patches/chromium/mas-cfisobjc.patch b/patches/chromium/mas-cfisobjc.patch index 0567a2a8f0..ae6c892b29 100644 --- a/patches/chromium/mas-cfisobjc.patch +++ b/patches/chromium/mas-cfisobjc.patch @@ -6,10 +6,10 @@ Subject: mas: avoid usage of _CFIsObjC Removes usage of the _CFIsObjC private API. diff --git a/base/mac/foundation_util.mm b/base/mac/foundation_util.mm -index 622625b0277aa2c4d4456ce2e79a8b28c507121a..18df5fbb790ce1a3f9723cdc3bf0b2684a7d66b2 100644 +index 89818822c348b8df2d3c8ce25cac50bf9fc15a3b..209cdf0a788b7594bb5f9d58abf1690c846bf374 100644 --- a/base/mac/foundation_util.mm +++ b/base/mac/foundation_util.mm -@@ -29,12 +29,6 @@ +@@ -31,12 +31,6 @@ #if !defined(OS_IOS) CFTypeID SecACLGetTypeID(); CFTypeID SecTrustedApplicationGetTypeID(); @@ -22,7 +22,7 @@ index 622625b0277aa2c4d4456ce2e79a8b28c507121a..18df5fbb790ce1a3f9723cdc3bf0b268 #endif } // extern "C" -@@ -327,8 +321,7 @@ void SetBaseBundleID(const char* new_base_bundle_id) { +@@ -329,8 +323,7 @@ void SetBaseBundleID(const char* new_base_bundle_id) { const_cast(reinterpret_cast(cf_val)); DCHECK(!cf_val || CTFontGetTypeID() == CFGetTypeID(cf_val) || @@ -32,7 +32,7 @@ index 622625b0277aa2c4d4456ce2e79a8b28c507121a..18df5fbb790ce1a3f9723cdc3bf0b268 return ns_val; } -@@ -399,9 +392,6 @@ CTFontRef NSToCFCast(NSFont* ns_val) { +@@ -401,9 +394,6 @@ CTFontRef NSToCFCast(NSFont* ns_val) { return (CTFontRef)(cf_val); } diff --git a/patches/chromium/mas_disable_remote_accessibility.patch b/patches/chromium/mas_disable_remote_accessibility.patch index 363b05d1a3..6b2cd1383d 100644 --- a/patches/chromium/mas_disable_remote_accessibility.patch +++ b/patches/chromium/mas_disable_remote_accessibility.patch @@ -87,7 +87,7 @@ index c3a9fbf0f9d2b80c1de42a22ad094a286f0b559b..02493d4b62c98a3aebd3e460c459218a DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostNSViewBridgeOwner); }; diff --git a/content/browser/renderer_host/render_widget_host_view_mac.h b/content/browser/renderer_host/render_widget_host_view_mac.h -index ffa437e300635290525658642cc83882fd08231a..7616391e80408ce11817c078c0ad280ecda4b4e7 100644 +index 5eeea0e2f0ee51c21542dee1963c41b0e0401bc8..d54e2b86ce8ccb94cdc5c882fdd77a5417f4849c 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.h +++ b/content/browser/renderer_host/render_widget_host_view_mac.h @@ -47,7 +47,9 @@ class ScopedPasswordInputEnabler; @@ -114,7 +114,7 @@ index ffa437e300635290525658642cc83882fd08231a..7616391e80408ce11817c078c0ad280e // 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 cdbfdb7b904533c72721e7605ca801b5e79c51fb..23d00ebbd6563a2bee1c79819c3745f56ad6f53b 100644 +index 2615d14ebae066833cf346d47641ce2fa5bde678..e9f3e0d499c53cebc20d417d396190f7dc384c69 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm @@ -240,8 +240,10 @@ @@ -167,7 +167,7 @@ index cdbfdb7b904533c72721e7605ca801b5e79c51fb..23d00ebbd6563a2bee1c79819c3745f5 /////////////////////////////////////////////////////////////////////////////// diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn -index 898f3292fafc7b8fcb4e290c61f5b1395c94376d..47c8dbe3b11420f399cdacaf8390280ba163392f 100644 +index 338e600b4495096e45494b72d950a7c051e36097..e81bcb074d3dc78bd68433640928a2c6eff80fc5 100644 --- a/ui/base/BUILD.gn +++ b/ui/base/BUILD.gn @@ -320,6 +320,13 @@ component("base") { diff --git a/patches/chromium/mas_no_private_api.patch b/patches/chromium/mas_no_private_api.patch index 1229f1321d..18f81fbc08 100644 --- a/patches/chromium/mas_no_private_api.patch +++ b/patches/chromium/mas_no_private_api.patch @@ -7,10 +7,10 @@ Guard usages in blink of private Mac APIs by MAS_BUILD, so they can be excluded for people who want to submit their apps to the Mac App store. diff --git a/content/browser/accessibility/accessibility_tree_formatter_mac.mm b/content/browser/accessibility/accessibility_tree_formatter_mac.mm -index cc78b48b37e52ca32d0bb2fc1331cf5e0e3c2d09..daf60b60b13c2a0729323583a4ee9a0fd7d10d3f 100644 +index 6d3ddaf426f170431f68ed05f863a0913df89208..8630e3b40611fd92cd71d5e895c8091c8356e211 100644 --- a/content/browser/accessibility/accessibility_tree_formatter_mac.mm +++ b/content/browser/accessibility/accessibility_tree_formatter_mac.mm -@@ -293,7 +293,7 @@ +@@ -294,7 +294,7 @@ return PopulateSize([value sizeValue]); } } @@ -19,7 +19,7 @@ index cc78b48b37e52ca32d0bb2fc1331cf5e0e3c2d09..daf60b60b13c2a0729323583a4ee9a0f // AXTextMarker if (content::IsAXTextMarker(value)) { return PopulateTextPosition(content::AXTextMarkerToAXPosition(value), -@@ -304,6 +304,7 @@ +@@ -305,6 +305,7 @@ if (content::IsAXTextMarkerRange(value)) { return PopulateTextMarkerRange(value, line_indexer); } @@ -27,7 +27,7 @@ index cc78b48b37e52ca32d0bb2fc1331cf5e0e3c2d09..daf60b60b13c2a0729323583a4ee9a0f // AXValue if (CFGetTypeID(value) == AXValueGetTypeID()) { -@@ -423,7 +424,7 @@ +@@ -424,7 +425,7 @@ AXMakeConst(affinity)); return set; } @@ -36,7 +36,7 @@ index cc78b48b37e52ca32d0bb2fc1331cf5e0e3c2d09..daf60b60b13c2a0729323583a4ee9a0f base::Value AccessibilityTreeFormatterMac::PopulateTextMarkerRange( id marker_range, const LineIndexer* line_indexer) const { -@@ -439,7 +440,7 @@ +@@ -440,7 +441,7 @@ PopulateTextPosition(ax_range.focus()->Clone(), line_indexer)); return dict; } @@ -191,7 +191,7 @@ index c786676b3758d004601b786c4de87f1b874f2fb7..6ae540b44f2ce1ce8aea1c43d86b600f // is concerned. @property(nonatomic, readonly) NSString* subrole; diff --git a/content/browser/accessibility/browser_accessibility_cocoa.mm b/content/browser/accessibility/browser_accessibility_cocoa.mm -index febb3c5e24f6e1d82f5d48cae5d92ed26c051748..528188e527a169e261aab4d6f174b0ff5f5e2080 100644 +index f3cb26f6310ad95edba124828be17939e3b36fa9..ab6c0c2010a2aac4cf94349ca446fbb94423f672 100644 --- a/content/browser/accessibility/browser_accessibility_cocoa.mm +++ b/content/browser/accessibility/browser_accessibility_cocoa.mm @@ -205,6 +205,7 @@ @@ -281,7 +281,7 @@ index febb3c5e24f6e1d82f5d48cae5d92ed26c051748..528188e527a169e261aab4d6f174b0ff {NSAccessibilitySizeAttribute, @"size"}, {NSAccessibilitySortDirectionAttribute, @"sortDirection"}, {NSAccessibilitySubroleAttribute, @"subrole"}, -@@ -1382,6 +1396,7 @@ - (NSNumber*)enabled { +@@ -1383,6 +1397,7 @@ - (NSNumber*)enabled { ax::mojom::Restriction::kDisabled); } @@ -289,7 +289,7 @@ index febb3c5e24f6e1d82f5d48cae5d92ed26c051748..528188e527a169e261aab4d6f174b0ff // Returns a text marker that points to the last character in the document that // can be selected with VoiceOver. - (id)endTextMarker { -@@ -1390,6 +1405,7 @@ - (id)endTextMarker { +@@ -1391,6 +1406,7 @@ - (id)endTextMarker { BrowserAccessibility::AXPosition position = _owner->CreateTextPositionAt(0); return CreateTextMarker(position->CreatePositionAtEndOfContent()); } @@ -297,7 +297,7 @@ index febb3c5e24f6e1d82f5d48cae5d92ed26c051748..528188e527a169e261aab4d6f174b0ff - (NSNumber*)expanded { if (![self instanceActive]) -@@ -1590,6 +1606,7 @@ - (bool)findRowIndex:(BrowserAccessibilityCocoa*)toFind +@@ -1591,6 +1607,7 @@ - (bool)findRowIndex:(BrowserAccessibilityCocoa*)toFind return false; } @@ -305,7 +305,7 @@ index febb3c5e24f6e1d82f5d48cae5d92ed26c051748..528188e527a169e261aab4d6f174b0ff - (NSNumber*)insertionPointLineNumber { if (![self instanceActive]) return nil; -@@ -1615,6 +1632,7 @@ - (NSNumber*)insertionPointLineNumber { +@@ -1616,6 +1633,7 @@ - (NSNumber*)insertionPointLineNumber { caretPosition->AsTextPosition()->text_offset()); return @(std::distance(lineBreaks.begin(), iterator)); } @@ -313,7 +313,7 @@ index febb3c5e24f6e1d82f5d48cae5d92ed26c051748..528188e527a169e261aab4d6f174b0ff // Returns whether or not this node should be ignored in the // accessibility tree. -@@ -1973,8 +1991,12 @@ - (BOOL)shouldExposeTitleUIElement { +@@ -1974,8 +1992,12 @@ - (BOOL)shouldExposeTitleUIElement { return content::AXTextEdit(newValue, std::u16string(), nil); } } @@ -326,7 +326,7 @@ index febb3c5e24f6e1d82f5d48cae5d92ed26c051748..528188e527a169e261aab4d6f174b0ff } - (BOOL)instanceActive { -@@ -2300,6 +2322,7 @@ - (NSArray*)selectedChildren { +@@ -2301,6 +2323,7 @@ - (NSArray*)selectedChildren { return ret; } @@ -334,7 +334,7 @@ index febb3c5e24f6e1d82f5d48cae5d92ed26c051748..528188e527a169e261aab4d6f174b0ff - (NSString*)selectedText { if (![self instanceActive]) return nil; -@@ -2311,11 +2334,13 @@ - (NSString*)selectedText { +@@ -2312,11 +2335,13 @@ - (NSString*)selectedText { return nil; return base::SysUTF16ToNSString(range.GetText()); } @@ -348,7 +348,7 @@ index febb3c5e24f6e1d82f5d48cae5d92ed26c051748..528188e527a169e261aab4d6f174b0ff - (NSValue*)selectedTextRange { if (![self instanceActive]) return nil; -@@ -2340,7 +2365,9 @@ - (NSValue*)selectedTextRange { +@@ -2341,7 +2366,9 @@ - (NSValue*)selectedTextRange { int selLength = range.GetText().length(); return [NSValue valueWithRange:NSMakeRange(selStart, selLength)]; } @@ -358,7 +358,7 @@ index febb3c5e24f6e1d82f5d48cae5d92ed26c051748..528188e527a169e261aab4d6f174b0ff - (id)selectedTextMarkerRange { if (![self instanceActive]) return nil; -@@ -2352,6 +2379,7 @@ - (id)selectedTextMarkerRange { +@@ -2353,6 +2380,7 @@ - (id)selectedTextMarkerRange { // words correctly. return CreateTextMarkerRange(ax_range.AsBackwardRange()); } @@ -366,7 +366,7 @@ index febb3c5e24f6e1d82f5d48cae5d92ed26c051748..528188e527a169e261aab4d6f174b0ff - (NSValue*)size { if (![self instanceActive]) -@@ -2384,6 +2412,7 @@ - (NSString*)sortDirection { +@@ -2385,6 +2413,7 @@ - (NSString*)sortDirection { return nil; } @@ -374,7 +374,7 @@ index febb3c5e24f6e1d82f5d48cae5d92ed26c051748..528188e527a169e261aab4d6f174b0ff // Returns a text marker that points to the first character in the document that // can be selected with VoiceOver. - (id)startTextMarker { -@@ -2392,6 +2421,7 @@ - (id)startTextMarker { +@@ -2393,6 +2422,7 @@ - (id)startTextMarker { BrowserAccessibility::AXPosition position = _owner->CreateTextPositionAt(0); return CreateTextMarker(position->CreatePositionAtStartOfContent()); } @@ -382,7 +382,7 @@ index febb3c5e24f6e1d82f5d48cae5d92ed26c051748..528188e527a169e261aab4d6f174b0ff // Returns a subrole based upon the role. - (NSString*)subrole { -@@ -2725,12 +2755,14 @@ - (NSAttributedString*)attributedValueForRange:(NSRange)range { +@@ -2726,12 +2756,14 @@ - (NSAttributedString*)attributedValueForRange:(NSRange)range { NSMutableAttributedString* attributedInnerText = [[[NSMutableAttributedString alloc] initWithString:base::SysUTF16ToNSString(innerText)] autorelease]; @@ -397,7 +397,7 @@ index febb3c5e24f6e1d82f5d48cae5d92ed26c051748..528188e527a169e261aab4d6f174b0ff return [attributedInnerText attributedSubstringFromRange:range]; } -@@ -2843,6 +2875,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute +@@ -2844,6 +2876,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute return ToBrowserAccessibilityCocoa(cell); } @@ -405,7 +405,7 @@ index febb3c5e24f6e1d82f5d48cae5d92ed26c051748..528188e527a169e261aab4d6f174b0ff if ([attribute isEqualToString: NSAccessibilityUIElementForTextMarkerParameterizedAttribute]) { -@@ -3166,6 +3199,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute +@@ -3167,6 +3200,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute return CreateTextMarker(root->CreateTextPositionAt(index)); } @@ -413,7 +413,7 @@ index febb3c5e24f6e1d82f5d48cae5d92ed26c051748..528188e527a169e261aab4d6f174b0ff if ([attribute isEqualToString: NSAccessibilityBoundsForRangeParameterizedAttribute]) { -@@ -3196,6 +3230,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute +@@ -3197,6 +3231,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute return nil; } @@ -421,7 +421,7 @@ index febb3c5e24f6e1d82f5d48cae5d92ed26c051748..528188e527a169e261aab4d6f174b0ff if ([attribute isEqualToString: NSAccessibilityLineTextMarkerRangeForTextMarkerParameterizedAttribute]) { -@@ -3315,6 +3350,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute +@@ -3316,6 +3351,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute return @(child->GetIndexInParent()); } @@ -429,27 +429,27 @@ index febb3c5e24f6e1d82f5d48cae5d92ed26c051748..528188e527a169e261aab4d6f174b0ff return nil; } -@@ -3850,6 +3886,7 @@ - (void)accessibilitySetValue:(id)value forAttribute:(NSString*)attribute { - ->AsLeafTextPosition())); +@@ -3852,6 +3888,7 @@ - (void)accessibilitySetValue:(id)value forAttribute:(NSString*)attribute { + ->AsTextSelectionPosition())); } } +#ifndef MAS_BUILD if ([attribute isEqualToString:NSAccessibilitySelectedTextMarkerRangeAttribute]) { BrowserAccessibility::AXRange range = CreateRangeFromTextMarkerRange(value); -@@ -3860,6 +3897,7 @@ - (void)accessibilitySetValue:(id)value forAttribute:(NSString*)attribute { - BrowserAccessibility::AXRange(range.anchor()->AsLeafTextPosition(), - range.focus()->AsLeafTextPosition())); +@@ -3862,6 +3899,7 @@ - (void)accessibilitySetValue:(id)value forAttribute:(NSString*)attribute { + range.anchor()->AsTextSelectionPosition(), + range.focus()->AsTextSelectionPosition())); } +#endif } - (id)accessibilityFocusedUIElement { diff --git a/content/browser/accessibility/browser_accessibility_manager_mac.mm b/content/browser/accessibility/browser_accessibility_manager_mac.mm -index a6b5a26aab2467ae074070d2ddee4ef8ac05922c..c737936326d455422d81497e1f544ca5f1e3aee0 100644 +index 91e7c04b310eedb4fa4e6aa4c186a7f8a80b1e3c..37508b4566c8ffd6a6f2996138f875e3cc2245cf 100644 --- a/content/browser/accessibility/browser_accessibility_manager_mac.mm +++ b/content/browser/accessibility/browser_accessibility_manager_mac.mm -@@ -500,7 +500,7 @@ void PostAnnouncementNotification(NSString* announcement) { +@@ -501,7 +501,7 @@ void PostAnnouncementNotification(NSString* announcement) { if (native_focus_object && [native_focus_object instanceActive]) { [user_info setObject:native_focus_object forKey:ui::NSAccessibilityTextChangeElement]; @@ -458,7 +458,7 @@ index a6b5a26aab2467ae074070d2ddee4ef8ac05922c..c737936326d455422d81497e1f544ca5 id selected_text = [native_focus_object selectedTextMarkerRange]; if (selected_text) { NSString* const NSAccessibilitySelectedTextMarkerRangeAttribute = -@@ -508,6 +508,7 @@ void PostAnnouncementNotification(NSString* announcement) { +@@ -509,6 +509,7 @@ void PostAnnouncementNotification(NSString* announcement) { [user_info setObject:selected_text forKey:NSAccessibilitySelectedTextMarkerRangeAttribute]; } @@ -581,7 +581,7 @@ index 54d902424796eb0687ebeedb6f1a9cd4a926e5b0..9d3ca310a7554c5606f95e9df26ea35e void BluetoothAdapterMac::RemovePairingDelegateInternal( diff --git a/media/audio/BUILD.gn b/media/audio/BUILD.gn -index d7a46d050eb2ab63849397cf0d36a23f193a8413..1396a4b8ed4d5ec761d4026a564447ccb4cd168b 100644 +index 9c8628a08045c7793f088200b58b492b9f0581cf..1c5b6e85bce201fc13c34671b076176793ae053c 100644 --- a/media/audio/BUILD.gn +++ b/media/audio/BUILD.gn @@ -175,6 +175,12 @@ source_set("audio") { @@ -611,7 +611,7 @@ index 261596b9b7414e5c732bef945610c0cdf1384da8..f58ac1d55acac1895391579275a12b0f } diff --git a/net/dns/dns_config_service_posix.cc b/net/dns/dns_config_service_posix.cc -index c9640117214022052aa28f6f5db7a2365c891ff1..78f9dadb51a0be31d1310ac8910b7f611eb82217 100644 +index 2de14574f1b7e848fc03ff1071fddf8307bc9ea2..75a86416bad754f1e9c92afb2fad27a501b9cc6c 100644 --- a/net/dns/dns_config_service_posix.cc +++ b/net/dns/dns_config_service_posix.cc @@ -136,8 +136,8 @@ class DnsConfigServicePosix::Watcher : public DnsConfigService::Watcher { 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 caa1c071cd..bfc49b7f9b 100644 --- a/patches/chromium/network_service_allow_remote_certificate_verification_logic.patch +++ b/patches/chromium/network_service_allow_remote_certificate_verification_logic.patch @@ -7,7 +7,7 @@ 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 ddbaa949aafa98934aea32824cf065fe4842552f..f6ffe4fd17beda171df181a28b8a7b6e4b39b982 100644 +index 57b5f7a56368bd27464df83d2d45dab8bb68fc30..94085578e6b80d082b5ac67730381c998a418601 100644 --- a/services/network/network_context.cc +++ b/services/network/network_context.cc @@ -117,6 +117,11 @@ @@ -22,7 +22,7 @@ index ddbaa949aafa98934aea32824cf065fe4842552f..f6ffe4fd17beda171df181a28b8a7b6e #if BUILDFLAG(IS_CT_SUPPORTED) #include "components/certificate_transparency/chrome_ct_policy_enforcer.h" #include "components/certificate_transparency/chrome_require_ct_delegate.h" -@@ -400,6 +405,79 @@ void GetCTPolicyConfigForCTLogInfo( +@@ -395,6 +400,79 @@ void GetCTPolicyConfigForCTLogInfo( } // namespace @@ -102,7 +102,7 @@ index ddbaa949aafa98934aea32824cf065fe4842552f..f6ffe4fd17beda171df181a28b8a7b6e constexpr uint32_t NetworkContext::kMaxOutstandingRequestsPerProcess; NetworkContext::PendingCertVerify::PendingCertVerify() = default; -@@ -612,6 +690,13 @@ void NetworkContext::SetClient( +@@ -624,6 +702,13 @@ void NetworkContext::SetClient( client_.Bind(std::move(client)); } @@ -116,7 +116,7 @@ index ddbaa949aafa98934aea32824cf065fe4842552f..f6ffe4fd17beda171df181a28b8a7b6e void NetworkContext::CreateURLLoaderFactory( mojo::PendingReceiver receiver, mojom::URLLoaderFactoryParamsPtr params) { -@@ -1996,6 +2081,9 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -2080,6 +2165,9 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( std::move(cert_verifier)); cert_verifier = base::WrapUnique(cert_verifier_with_trust_anchors_); #endif // BUILDFLAG(IS_CHROMEOS_ASH) @@ -127,10 +127,10 @@ index ddbaa949aafa98934aea32824cf065fe4842552f..f6ffe4fd17beda171df181a28b8a7b6e builder.SetCertVerifier(IgnoreErrorsCertVerifier::MaybeWrapCertVerifier( diff --git a/services/network/network_context.h b/services/network/network_context.h -index ecd8081254310bf900552984fe4f37214b70ec1f..c701d79bbe05f52c03eb0c0c13ad00cdfc3263fb 100644 +index 6912997330a1e1d52f558921e83e8d5fb3be85f9..db9baee0a272674db2eb807932fc8123b9c3a24d 100644 --- a/services/network/network_context.h +++ b/services/network/network_context.h -@@ -92,6 +92,7 @@ class DomainReliabilityMonitor; +@@ -98,6 +98,7 @@ class DomainReliabilityMonitor; namespace network { class CertVerifierWithTrustAnchors; @@ -138,7 +138,7 @@ index ecd8081254310bf900552984fe4f37214b70ec1f..c701d79bbe05f52c03eb0c0c13ad00cd class CookieManager; class ExpectCTReporter; class HostResolver; -@@ -196,6 +197,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -209,6 +210,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext void CreateURLLoaderFactory( mojo::PendingReceiver receiver, mojom::URLLoaderFactoryParamsPtr params) override; @@ -147,7 +147,7 @@ index ecd8081254310bf900552984fe4f37214b70ec1f..c701d79bbe05f52c03eb0c0c13ad00cd void ResetURLLoaderFactories() override; void GetCookieManager( mojo::PendingReceiver receiver) override; -@@ -708,6 +711,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -736,6 +739,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext CertVerifierWithTrustAnchors* cert_verifier_with_trust_anchors_ = nullptr; #endif @@ -157,7 +157,7 @@ index ecd8081254310bf900552984fe4f37214b70ec1f..c701d79bbe05f52c03eb0c0c13ad00cd // 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 a43270290499dee221cc64c5ae0bc1c01968a2ec..2606002021db94fe208c9f8e4d8dea6a5478b697 100644 +index b51365f91caa268c2c9d24e85d7dc0ba3a3aa694..987e464333e1f8db3fa810dfa9aaa00e6dae6722 100644 --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom @@ -190,6 +190,17 @@ struct CTPolicy { @@ -178,7 +178,7 @@ index a43270290499dee221cc64c5ae0bc1c01968a2ec..2606002021db94fe208c9f8e4d8dea6a // Parameters for constructing a network context. struct NetworkContextParams { // Name used by memory tools to identify the context. -@@ -725,6 +736,9 @@ interface NetworkContext { +@@ -755,6 +766,9 @@ interface NetworkContext { // Sets a client for this network context. SetClient(pending_remote client); diff --git a/patches/chromium/notification_provenance.patch b/patches/chromium/notification_provenance.patch index 0200613aa3..2189a9490e 100644 --- a/patches/chromium/notification_provenance.patch +++ b/patches/chromium/notification_provenance.patch @@ -67,7 +67,7 @@ index 25a35dc7647d8bcb503c9b023bd912a5c0542877..cea756feb06f1b0ee1f7f5bd8b68fd4d /*document_url=*/GURL(), 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 4e194cbe896ff9eecd8963f2d4fc99f4068a11a2..12bd02b217678346f2b851c404a1985086906ff7 100644 +index 0a967ad0f3e649e997e596dde2368a2309779874..0e52ad1497b6b787a7db3253083da45ffddb7736 100644 --- a/content/browser/notifications/platform_notification_context_impl.cc +++ b/content/browser/notifications/platform_notification_context_impl.cc @@ -284,13 +284,14 @@ void PlatformNotificationContextImpl::Shutdown() { @@ -88,10 +88,10 @@ index 4e194cbe896ff9eecd8963f2d4fc99f4068a11a2..12bd02b217678346f2b851c404a19850 void PlatformNotificationContextImpl::RemoveService( diff --git a/content/browser/notifications/platform_notification_context_impl.h b/content/browser/notifications/platform_notification_context_impl.h -index 9ee758d7d7a5abe59e070f65f6381186b3239249..986f20ff7b077203e1ea3c76787e9478d9c1ace1 100644 +index 78f9ab684d2eeef9a647d82ccb39c1b208e999d4..d55a4e51a0d263ec07ca115715cccc30f89bd9e0 100644 --- a/content/browser/notifications/platform_notification_context_impl.h +++ b/content/browser/notifications/platform_notification_context_impl.h -@@ -44,6 +44,7 @@ class BrowserContext; +@@ -48,6 +48,7 @@ class BrowserContext; struct NotificationDatabaseData; class PlatformNotificationServiceProxy; class ServiceWorkerContextWrapper; @@ -99,7 +99,7 @@ index 9ee758d7d7a5abe59e070f65f6381186b3239249..986f20ff7b077203e1ea3c76787e9478 // Implementation of the Web Notification storage context. The public methods // defined in this interface must only be called on the UI thread. -@@ -68,6 +69,7 @@ class CONTENT_EXPORT PlatformNotificationContextImpl +@@ -72,6 +73,7 @@ class CONTENT_EXPORT PlatformNotificationContextImpl // Creates a BlinkNotificationServiceImpl that is owned by this context. // |document_url| is empty when originating from a worker. void CreateService( @@ -108,10 +108,10 @@ index 9ee758d7d7a5abe59e070f65f6381186b3239249..986f20ff7b077203e1ea3c76787e9478 const GURL& document_url, 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 e1dbbdbbbc4012db533424b8053112705e5985cc..93c46f70bc733c0e50bbe4d930e90effba34e517 100644 +index 36a63aac2ea769a75d596ad74310cf168de1be48..80826440781926cb6a244c62117f8e2964c701d0 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -2290,7 +2290,7 @@ void RenderProcessHostImpl::CreateNotificationService( +@@ -2299,7 +2299,7 @@ void RenderProcessHostImpl::CreateNotificationService( document_url = rfh->GetLastCommittedURL(); storage_partition_impl_->GetPlatformNotificationContext()->CreateService( diff --git a/patches/chromium/picture-in-picture.patch b/patches/chromium/picture-in-picture.patch index 9edf2aa6ea..79a15130a1 100644 --- a/patches/chromium/picture-in-picture.patch +++ b/patches/chromium/picture-in-picture.patch @@ -22,7 +22,7 @@ index 3afa0d34a6aff1d8882592fc4a3720698124a9c4..18de9f4e9c3c9599d1ab83a638bbd887 #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/gfx/color_palette.h" diff --git a/chrome/browser/ui/views/overlay/back_to_tab_label_button.cc b/chrome/browser/ui/views/overlay/back_to_tab_label_button.cc -index 4a6cb79a1589c0be623277accc17142d501b50b4..5af6119affd28eff7e3547965bac8e52752638db 100644 +index 701d21200fe38870d08c2da93a1b8d139af79b5b..c5fc046b16e927efb017e40d980d98fa830b5bd4 100644 --- a/chrome/browser/ui/views/overlay/back_to_tab_label_button.cc +++ b/chrome/browser/ui/views/overlay/back_to_tab_label_button.cc @@ -5,7 +5,7 @@ @@ -61,7 +61,7 @@ index 7b711bdbaf4afddd6ccf300af7bab26487942243..987a60b81554b676661d8f1a53facbc9 #include "ui/base/l10n/l10n_util.h" #include "ui/gfx/paint_vector_icon.h" diff --git a/chrome/browser/ui/views/overlay/overlay_window_views.cc b/chrome/browser/ui/views/overlay/overlay_window_views.cc -index d437976fa81a9b8f35f8649631b1c29594e214e2..28663e10cd36b96b554621afa3876e2acefc3869 100644 +index 5464e3e8ced91bbeba197d5d31e37b6c3e993076..1e2295b1611df0091cad60ec2bf7371e9536c9b5 100644 --- a/chrome/browser/ui/views/overlay/overlay_window_views.cc +++ b/chrome/browser/ui/views/overlay/overlay_window_views.cc @@ -16,9 +16,11 @@ diff --git a/patches/chromium/printing.patch b/patches/chromium/printing.patch index 23622d1470..05095365b1 100644 --- a/patches/chromium/printing.patch +++ b/patches/chromium/printing.patch @@ -126,7 +126,7 @@ index 2824b97e715a493082734d40f62860c8cafa5f34..584d4ef2b73a0f89458224eb134a8d8a } diff --git a/chrome/browser/printing/print_view_manager_base.cc b/chrome/browser/printing/print_view_manager_base.cc -index 34e26cabaf8172a6db26c5084260f1fd88967d68..7bad89e6eedba717469feeb6e407c93b94582823 100644 +index e4cacbf9a82da8dca062cc33df885a0575e74830..143ee383668965ba04da092e3445fc9f4a33a433 100644 --- a/chrome/browser/printing/print_view_manager_base.cc +++ b/chrome/browser/printing/print_view_manager_base.cc @@ -28,10 +28,10 @@ @@ -150,7 +150,7 @@ index 34e26cabaf8172a6db26c5084260f1fd88967d68..7bad89e6eedba717469feeb6e407c93b #include "mojo/public/cpp/system/buffer.h" #include "printing/buildflags/buildflags.h" #include "printing/metafile_skia.h" -@@ -110,6 +111,8 @@ crosapi::mojom::PrintJobPtr PrintJobToMojom( +@@ -111,6 +112,8 @@ crosapi::mojom::PrintJobPtr PrintJobToMojom( #endif void ShowWarningMessageBox(const std::u16string& message) { @@ -159,7 +159,7 @@ index 34e26cabaf8172a6db26c5084260f1fd88967d68..7bad89e6eedba717469feeb6e407c93b // Runs always on the UI thread. static bool is_dialog_shown = false; if (is_dialog_shown) -@@ -118,6 +121,7 @@ void ShowWarningMessageBox(const std::u16string& message) { +@@ -119,6 +122,7 @@ void ShowWarningMessageBox(const std::u16string& message) { base::AutoReset auto_reset(&is_dialog_shown, true); chrome::ShowWarningMessageBox(nullptr, std::u16string(), message); @@ -167,7 +167,7 @@ index 34e26cabaf8172a6db26c5084260f1fd88967d68..7bad89e6eedba717469feeb6e407c93b } #if BUILDFLAG(ENABLE_PRINT_PREVIEW) -@@ -236,7 +240,9 @@ void UpdatePrintSettingsReplyOnIO( +@@ -237,7 +241,9 @@ void UpdatePrintSettingsReplyOnIO( DCHECK_CURRENTLY_ON(content::BrowserThread::IO); DCHECK(printer_query); mojom::PrintPagesParamsPtr params = CreateEmptyPrintPagesParamsPtr(); @@ -178,7 +178,7 @@ index 34e26cabaf8172a6db26c5084260f1fd88967d68..7bad89e6eedba717469feeb6e407c93b RenderParamsFromPrintSettings(printer_query->settings(), params->params.get()); params->params->document_cookie = printer_query->cookie(); -@@ -339,12 +345,14 @@ PrintViewManagerBase::PrintViewManagerBase(content::WebContents* web_contents) +@@ -340,12 +346,14 @@ PrintViewManagerBase::PrintViewManagerBase(content::WebContents* web_contents) : PrintManager(web_contents), queue_(g_browser_process->print_job_manager()->queue()) { DCHECK(queue_); @@ -193,7 +193,7 @@ index 34e26cabaf8172a6db26c5084260f1fd88967d68..7bad89e6eedba717469feeb6e407c93b } PrintViewManagerBase::~PrintViewManagerBase() { -@@ -352,7 +360,10 @@ PrintViewManagerBase::~PrintViewManagerBase() { +@@ -353,7 +361,10 @@ PrintViewManagerBase::~PrintViewManagerBase() { DisconnectFromCurrentPrintJob(); } @@ -205,7 +205,7 @@ index 34e26cabaf8172a6db26c5084260f1fd88967d68..7bad89e6eedba717469feeb6e407c93b auto weak_this = weak_ptr_factory_.GetWeakPtr(); DisconnectFromCurrentPrintJob(); if (!weak_this) -@@ -367,7 +378,14 @@ bool PrintViewManagerBase::PrintNow(content::RenderFrameHost* rfh) { +@@ -368,7 +379,14 @@ bool PrintViewManagerBase::PrintNow(content::RenderFrameHost* rfh) { // go in `ReleasePrintJob()`. SetPrintingRFH(rfh); @@ -221,7 +221,7 @@ index 34e26cabaf8172a6db26c5084260f1fd88967d68..7bad89e6eedba717469feeb6e407c93b return true; } -@@ -522,9 +540,9 @@ void PrintViewManagerBase::ScriptedPrintReply( +@@ -523,9 +541,9 @@ void PrintViewManagerBase::ScriptedPrintReply( void PrintViewManagerBase::UpdatePrintingEnabled() { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); // The Unretained() is safe because ForEachFrame() is synchronous. @@ -234,7 +234,7 @@ index 34e26cabaf8172a6db26c5084260f1fd88967d68..7bad89e6eedba717469feeb6e407c93b } void PrintViewManagerBase::NavigationStopped() { -@@ -638,12 +656,13 @@ void PrintViewManagerBase::DidPrintDocument( +@@ -639,12 +657,13 @@ void PrintViewManagerBase::DidPrintDocument( void PrintViewManagerBase::GetDefaultPrintSettings( GetDefaultPrintSettingsCallback callback) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); @@ -249,7 +249,7 @@ index 34e26cabaf8172a6db26c5084260f1fd88967d68..7bad89e6eedba717469feeb6e407c93b content::RenderFrameHost* render_frame_host = GetCurrentTargetFrame(); auto callback_wrapper = base::BindOnce(&PrintViewManagerBase::GetDefaultPrintSettingsReply, -@@ -661,12 +680,13 @@ void PrintViewManagerBase::UpdatePrintSettings( +@@ -662,18 +681,20 @@ void PrintViewManagerBase::UpdatePrintSettings( base::Value job_settings, UpdatePrintSettingsCallback callback) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); @@ -264,7 +264,22 @@ index 34e26cabaf8172a6db26c5084260f1fd88967d68..7bad89e6eedba717469feeb6e407c93b if (!job_settings.FindIntKey(kSettingPrinterType)) { UpdatePrintSettingsReply(std::move(callback), CreateEmptyPrintPagesParamsPtr(), false); -@@ -711,13 +731,17 @@ void PrintViewManagerBase::PrintingFailed(int32_t cookie) { + return; + } + ++#if 0 + content::BrowserContext* context = + web_contents() ? web_contents()->GetBrowserContext() : nullptr; + PrefService* prefs = +@@ -683,6 +704,7 @@ void PrintViewManagerBase::UpdatePrintSettings( + if (value > 0) + job_settings.SetIntKey(kSettingRasterizePdfDpi, value); + } ++#endif + + content::RenderFrameHost* render_frame_host = GetCurrentTargetFrame(); + auto callback_wrapper = +@@ -722,13 +744,17 @@ void PrintViewManagerBase::PrintingFailed(int32_t cookie) { PrintManager::PrintingFailed(cookie); #if BUILDFLAG(ENABLE_PRINT_PREVIEW) @@ -283,7 +298,7 @@ index 34e26cabaf8172a6db26c5084260f1fd88967d68..7bad89e6eedba717469feeb6e407c93b base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::BindOnce(&ShowWarningMessageBox, l10n_util::GetStringUTF16( -@@ -796,6 +820,11 @@ void PrintViewManagerBase::OnNotifyPrintJobEvent( +@@ -807,6 +833,11 @@ void PrintViewManagerBase::OnNotifyPrintJobEvent( #endif break; } @@ -295,7 +310,7 @@ index 34e26cabaf8172a6db26c5084260f1fd88967d68..7bad89e6eedba717469feeb6e407c93b case JobEventDetails::JOB_DONE: // Printing is done, we don't need it anymore. // print_job_->is_job_pending() may still be true, depending on the order -@@ -865,7 +894,10 @@ bool PrintViewManagerBase::CreateNewPrintJob( +@@ -876,7 +907,10 @@ bool PrintViewManagerBase::CreateNewPrintJob( // Disconnect the current |print_job_|. auto weak_this = weak_ptr_factory_.GetWeakPtr(); @@ -307,7 +322,7 @@ index 34e26cabaf8172a6db26c5084260f1fd88967d68..7bad89e6eedba717469feeb6e407c93b if (!weak_this) return false; -@@ -888,8 +920,6 @@ bool PrintViewManagerBase::CreateNewPrintJob( +@@ -899,8 +933,6 @@ bool PrintViewManagerBase::CreateNewPrintJob( /*source_id=*/""); #endif @@ -316,7 +331,7 @@ index 34e26cabaf8172a6db26c5084260f1fd88967d68..7bad89e6eedba717469feeb6e407c93b printing_succeeded_ = false; return true; } -@@ -941,14 +971,22 @@ void PrintViewManagerBase::ReleasePrintJob() { +@@ -952,14 +984,22 @@ void PrintViewManagerBase::ReleasePrintJob() { content::RenderFrameHost* rfh = printing_rfh_; printing_rfh_ = nullptr; @@ -341,7 +356,7 @@ index 34e26cabaf8172a6db26c5084260f1fd88967d68..7bad89e6eedba717469feeb6e407c93b // Don't close the worker thread. print_job_ = nullptr; } -@@ -987,7 +1025,7 @@ bool PrintViewManagerBase::RunInnerMessageLoop() { +@@ -998,7 +1038,7 @@ bool PrintViewManagerBase::RunInnerMessageLoop() { } bool PrintViewManagerBase::OpportunisticallyCreatePrintJob(int cookie) { @@ -392,10 +407,10 @@ index eaa0e162a339ba68d42c920fdd30869d259b4f27..8381f5171970aa89fc5c406d57d2665e // This means we are _blocking_ until all the necessary pages have been // rendered or the print settings are being loaded. diff --git a/components/printing/common/print.mojom b/components/printing/common/print.mojom -index 623659a3c78ce069cbcc83eeccfbc7265437ff01..f02cb6bced9f8382c84f560b5b40c9247db790ce 100644 +index 51ebcb4ae399018d3fd8566656596a7ef1f148af..5f2b807fc364131f4c3e6a1646ec522ddc826d9c 100644 --- a/components/printing/common/print.mojom +++ b/components/printing/common/print.mojom -@@ -270,7 +270,7 @@ interface PrintPreviewUI { +@@ -274,7 +274,7 @@ interface PrintPreviewUI { interface PrintRenderFrame { // Tells the RenderFrame to switch the CSS to print media type, render every // requested page, and then switch back the CSS to display media type. @@ -405,7 +420,7 @@ index 623659a3c78ce069cbcc83eeccfbc7265437ff01..f02cb6bced9f8382c84f560b5b40c924 // 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 868f1706b1b8db28b995cc2dc9fcfefec62b6574..9224b935815f28086ce4df05e3f4c81b6dd92e7f 100644 +index ed3178671552bd673820f1d078374cf34e704797..4a5ccdadabfdd6eea89b9bb5e726938fbad4cf5f 100644 --- a/components/printing/renderer/print_render_frame_helper.cc +++ b/components/printing/renderer/print_render_frame_helper.cc @@ -38,6 +38,7 @@ @@ -416,7 +431,7 @@ index 868f1706b1b8db28b995cc2dc9fcfefec62b6574..9224b935815f28086ce4df05e3f4c81b #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" -@@ -1218,7 +1219,8 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) { +@@ -1221,7 +1222,8 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) { if (!weak_this) return; @@ -426,7 +441,7 @@ index 868f1706b1b8db28b995cc2dc9fcfefec62b6574..9224b935815f28086ce4df05e3f4c81b if (!weak_this) return; -@@ -1249,7 +1251,7 @@ void PrintRenderFrameHelper::BindPrintRenderFrameReceiver( +@@ -1252,7 +1254,7 @@ void PrintRenderFrameHelper::BindPrintRenderFrameReceiver( receivers_.Add(this, std::move(receiver)); } @@ -435,7 +450,7 @@ index 868f1706b1b8db28b995cc2dc9fcfefec62b6574..9224b935815f28086ce4df05e3f4c81b ScopedIPC scoped_ipc(weak_ptr_factory_.GetWeakPtr()); if (ipc_nesting_level_ > kAllowedIpcDepthForPrint) return; -@@ -1264,7 +1266,7 @@ void PrintRenderFrameHelper::PrintRequestedPages() { +@@ -1267,7 +1269,7 @@ void PrintRenderFrameHelper::PrintRequestedPages() { // that instead. auto plugin = delegate_->GetPdfElement(frame); @@ -444,7 +459,7 @@ index 868f1706b1b8db28b995cc2dc9fcfefec62b6574..9224b935815f28086ce4df05e3f4c81b if (!render_frame_gone_) frame->DispatchAfterPrintEvent(); -@@ -1295,7 +1297,8 @@ void PrintRenderFrameHelper::PrintForSystemDialog() { +@@ -1298,7 +1300,8 @@ void PrintRenderFrameHelper::PrintForSystemDialog() { } Print(frame, print_preview_context_.source_node(), @@ -454,7 +469,7 @@ index 868f1706b1b8db28b995cc2dc9fcfefec62b6574..9224b935815f28086ce4df05e3f4c81b if (!render_frame_gone_) print_preview_context_.DispatchAfterPrintEvent(); // WARNING: |this| may be gone at this point. Do not do any more work here and -@@ -1342,6 +1345,8 @@ void PrintRenderFrameHelper::PrintPreview(base::Value settings) { +@@ -1345,6 +1348,8 @@ void PrintRenderFrameHelper::PrintPreview(base::Value settings) { if (ipc_nesting_level_ > kAllowedIpcDepthForPrint) return; @@ -463,7 +478,7 @@ index 868f1706b1b8db28b995cc2dc9fcfefec62b6574..9224b935815f28086ce4df05e3f4c81b print_preview_context_.OnPrintPreview(); if (print_preview_context_.IsForArc()) { -@@ -1878,7 +1883,8 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { +@@ -1881,7 +1886,8 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { return; Print(duplicate_node.GetDocument().GetFrame(), duplicate_node, @@ -473,7 +488,7 @@ index 868f1706b1b8db28b995cc2dc9fcfefec62b6574..9224b935815f28086ce4df05e3f4c81b // Check if |this| is still valid. if (!weak_this) return; -@@ -1893,7 +1899,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { +@@ -1896,7 +1902,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, const blink::WebNode& node, @@ -484,7 +499,7 @@ index 868f1706b1b8db28b995cc2dc9fcfefec62b6574..9224b935815f28086ce4df05e3f4c81b // If still not finished with earlier print request simply ignore. if (prep_frame_view_) return; -@@ -1901,7 +1909,7 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, +@@ -1904,7 +1912,7 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, FrameReference frame_ref(frame); uint32_t expected_page_count = 0; @@ -493,7 +508,7 @@ index 868f1706b1b8db28b995cc2dc9fcfefec62b6574..9224b935815f28086ce4df05e3f4c81b DidFinishPrinting(FAIL_PRINT_INIT); return; // Failed to init print page settings. } -@@ -1920,8 +1928,41 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, +@@ -1923,8 +1931,15 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, print_pages_params_->params->print_scaling_option; auto self = weak_ptr_factory_.GetWeakPtr(); @@ -502,33 +517,7 @@ index 868f1706b1b8db28b995cc2dc9fcfefec62b6574..9224b935815f28086ce4df05e3f4c81b + + if (silent) { + print_settings = mojom::PrintPagesParams::New(); -+ print_settings->params = mojom::PrintParams::New( -+ print_pages_params_->params->page_size, -+ print_pages_params_->params->content_size, -+ print_pages_params_->params->printable_area, -+ print_pages_params_->params->margin_top, -+ print_pages_params_->params->margin_left, -+ print_pages_params_->params->page_orientation, -+ print_pages_params_->params->dpi, -+ print_pages_params_->params->scale_factor, -+ print_pages_params_->params->document_cookie, -+ print_pages_params_->params->selection_only, -+ print_pages_params_->params->supports_alpha_blend, -+ print_pages_params_->params->preview_ui_id, -+ print_pages_params_->params->preview_request_id, -+ print_pages_params_->params->is_first_request, -+ print_pages_params_->params->print_scaling_option, -+ print_pages_params_->params->print_to_pdf, -+ print_pages_params_->params->display_header_footer, -+ print_pages_params_->params->title, -+ print_pages_params_->params->url, -+ print_pages_params_->params->header_template, -+ print_pages_params_->params->footer_template, -+ print_pages_params_->params->rasterize_pdf, -+ print_pages_params_->params->should_print_backgrounds, -+ print_pages_params_->params->printed_doc_type, -+ print_pages_params_->params->prefer_css_page_size, -+ print_pages_params_->params->pages_per_sheet); ++ print_settings->params = print_pages_params_->params->Clone(); + } else { + print_settings = GetPrintSettingsFromUser( frame_ref.GetFrame(), node, expected_page_count, print_request_type); @@ -536,7 +525,7 @@ index 868f1706b1b8db28b995cc2dc9fcfefec62b6574..9224b935815f28086ce4df05e3f4c81b // Check if |this| is still valid. if (!self) return; -@@ -2169,7 +2210,9 @@ void PrintRenderFrameHelper::IPCProcessed() { +@@ -2172,7 +2187,9 @@ void PrintRenderFrameHelper::IPCProcessed() { } } @@ -547,7 +536,7 @@ index 868f1706b1b8db28b995cc2dc9fcfefec62b6574..9224b935815f28086ce4df05e3f4c81b mojom::PrintPagesParams settings; settings.params = mojom::PrintParams::New(); GetPrintManagerHost()->GetDefaultPrintSettings(&settings.params); -@@ -2193,12 +2236,14 @@ bool PrintRenderFrameHelper::InitPrintSettings(bool fit_to_paper_size) { +@@ -2196,12 +2213,14 @@ bool PrintRenderFrameHelper::InitPrintSettings(bool fit_to_paper_size) { return result; } @@ -566,7 +555,7 @@ index 868f1706b1b8db28b995cc2dc9fcfefec62b6574..9224b935815f28086ce4df05e3f4c81b notify_browser_of_print_failure_ = false; GetPrintManagerHost()->ShowInvalidPrinterSettingsError(); return false; -@@ -2569,18 +2614,7 @@ void PrintRenderFrameHelper::RequestPrintPreview(PrintPreviewRequestType type) { +@@ -2572,18 +2591,7 @@ void PrintRenderFrameHelper::RequestPrintPreview(PrintPreviewRequestType type) { } bool PrintRenderFrameHelper::CheckForCancel() { diff --git a/patches/chromium/put_back_deleted_colors_for_autofill.patch b/patches/chromium/put_back_deleted_colors_for_autofill.patch index 0169929abc..2b8b8dd0d7 100644 --- a/patches/chromium/put_back_deleted_colors_for_autofill.patch +++ b/patches/chromium/put_back_deleted_colors_for_autofill.patch @@ -8,7 +8,7 @@ needed in chromium but our autofill implementation uses them. This patch can be our autofill implementation to work like Chromium's. diff --git a/ui/native_theme/common_theme.cc b/ui/native_theme/common_theme.cc -index 52daef274c283eed9334e1dfc010dd488938b608..6c03311271820689ba1106443d975155a20526b4 100644 +index 37fe41cb525ebc19a32a592f5695f7a083135116..d70767e072799c15b5ee0c4eeb4c76d82dfb247c 100644 --- a/ui/native_theme/common_theme.cc +++ b/ui/native_theme/common_theme.cc @@ -68,6 +68,14 @@ absl::optional GetDarkSchemeColor(NativeTheme::ColorId color_id, @@ -26,7 +26,7 @@ index 52daef274c283eed9334e1dfc010dd488938b608..6c03311271820689ba1106443d975155 // Button case NativeTheme::kColorId_ProminentButtonColor: return gfx::kGoogleBlue300; -@@ -595,6 +603,18 @@ SkColor GetDefaultColor(NativeTheme::ColorId color_id, +@@ -587,6 +595,18 @@ SkColor GetDefaultColor(NativeTheme::ColorId color_id, case NativeTheme::kColorId_WindowBackground: return SK_ColorWHITE; @@ -46,10 +46,10 @@ index 52daef274c283eed9334e1dfc010dd488938b608..6c03311271820689ba1106443d975155 // Keeping the kColorId_NumColors case instead of using the default case // allows ColorId additions to trigger compile error for an incomplete diff --git a/ui/native_theme/native_theme_color_id.h b/ui/native_theme/native_theme_color_id.h -index 0f970863cafee4ba28d953c89de4c36a44c04ef5..0b78adbea861faf3d4735d87a4a1f00c754a897e 100644 +index 84848edbbe9de7ef9fe6e2ab0a34d3b9428cde10..5e07980e4793cc3b19140510fb3fd3b23c6a88ef 100644 --- a/ui/native_theme/native_theme_color_id.h +++ b/ui/native_theme/native_theme_color_id.h -@@ -159,6 +159,11 @@ +@@ -157,6 +157,11 @@ OP(kColorId_TableHeaderText), \ OP(kColorId_TableHeaderBackground), \ OP(kColorId_TableHeaderSeparator), \ @@ -62,7 +62,7 @@ index 0f970863cafee4ba28d953c89de4c36a44c04ef5..0b78adbea861faf3d4735d87a4a1f00c OP(kColorId_ThrobberSpinningColor), \ OP(kColorId_ThrobberWaitingColor), \ diff --git a/ui/native_theme/native_theme_win.cc b/ui/native_theme/native_theme_win.cc -index 40d441fff4794867f6d3a5bf10d7f6b0d9343716..c7b96990129262d3b831006af10e85a208bdc581 100644 +index 485930b6875acc14f2fdd6e39632ae5d3d9f3904..f9772f86a1e233bbf3cc429e36dac8c62f61cd20 100644 --- a/ui/native_theme/native_theme_win.cc +++ b/ui/native_theme/native_theme_win.cc @@ -658,6 +658,18 @@ absl::optional NativeThemeWin::GetPlatformHighContrastColor( 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 9429056d7f..6f079c81ea 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 8adadb641055724b4b12e0432e8a0f06a901e04e..104a38d9093dd53b8f2d08c55b207f494f069356 100644 +index 0d5902fab0ada390c04f77a176cbae79e898c5f7..da77fda56eef9e46f7c41effeada67fab9cbf760 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 8adadb641055724b4b12e0432e8a0f06a901e04e..104a38d9093dd53b8f2d08c55b207f49 #include "content/public/common/drop_data.h" #include "services/metrics/public/cpp/ukm_recorder.h" #include "third_party/abseil-cpp/absl/types/optional.h" -@@ -253,6 +254,9 @@ class CONTENT_EXPORT RenderWidgetHostDelegate { +@@ -242,6 +243,9 @@ class CONTENT_EXPORT RenderWidgetHostDelegate { // Returns the associated RenderViewHostDelegateView*, if possible. virtual RenderViewHostDelegateView* GetDelegateView(); @@ -30,10 +30,10 @@ index 8adadb641055724b4b12e0432e8a0f06a901e04e..104a38d9093dd53b8f2d08c55b207f49 // 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 ce7e99c55b9c555ca8b6d0b7755db64e8f56330e..d74b243380231018ff3beca5ad3d90016cb98e23 100644 +index 4bec6c3593de51f6098c632a08793508106ec21d..c59146ea61717f260292efcc04f723989a12383e 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc -@@ -2004,6 +2004,8 @@ void RenderWidgetHostImpl::FilterDropData(DropData* drop_data) { +@@ -2009,6 +2009,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 ce7e99c55b9c555ca8b6d0b7755db64e8f56330e..d74b243380231018ff3beca5ad3d9001 void RenderWidgetHostImpl::ShowContextMenuAtPoint( diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index fb42b663cf63c38de27c7da98630951be77c3ee1..fef25ed773a93ff56cc31c2a81fb3b2d188b664b 100644 +index 183fa12d38d28f3de40bdd9f26155388658e8ffe..1e38a16e950a4ee5ed63405576b57185fe7b9e3c 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -4295,6 +4295,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() { +@@ -4283,6 +4283,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() { return text_input_manager_.get(); } @@ -59,10 +59,10 @@ index fb42b663cf63c38de27c7da98630951be77c3ee1..fef25ed773a93ff56cc31c2a81fb3b2d 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 cfb93e11965bf3e2d44747a6a1a861e68b4c2cfa..6ddba0914379d2f1135144447f2cf6c990f34e94 100644 +index 7183994d0bbcd4b21878bbc29088e877ee032001..6240a5a997894055bd5f7c2d9ceb741cd9bfe1e4 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, +@@ -947,6 +947,7 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents, blink::mojom::FrameVisibility visibility) override; void SendScreenRects() override; TextInputManager* GetTextInputManager() override; @@ -71,7 +71,7 @@ index cfb93e11965bf3e2d44747a6a1a861e68b4c2cfa..6ddba0914379d2f1135144447f2cf6c9 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 264f4fa3ded252c7ed13e12c7a5e196855ef215c..ffc8d299b50634c944e2ab5c93a1bcecf6a67800 100644 +index d6f20a6c8d28359b09ee12cb72eb67f89000d141..5d5aec942b04c721361bf6e3649ba88e7fb28cee 100644 --- a/content/public/browser/web_contents_observer.h +++ b/content/public/browser/web_contents_observer.h @@ -13,6 +13,7 @@ diff --git a/patches/chromium/render_widget_host_view_base.patch b/patches/chromium/render_widget_host_view_base.patch index 7a50a860b9..e53f025f97 100644 --- a/patches/chromium/render_widget_host_view_base.patch +++ b/patches/chromium/render_widget_host_view_base.patch @@ -6,10 +6,10 @@ Subject: render_widget_host_view_base.patch ... something to do with OSR? and maybe as well? terrifying. diff --git a/content/browser/renderer_host/render_widget_host_view_base.cc b/content/browser/renderer_host/render_widget_host_view_base.cc -index c31a2b532540befb093e27677f87b4081fa0264c..13351ff303530bbd59516338f620fea16347810b 100644 +index beaa6476fe5d8ad8718a6e15425cf46561b28ae1..2f0b3eb5056710b09b01ae36f22278118a82e041 100644 --- a/content/browser/renderer_host/render_widget_host_view_base.cc +++ b/content/browser/renderer_host/render_widget_host_view_base.cc -@@ -665,6 +665,13 @@ bool RenderWidgetHostViewBase::ScreenRectIsUnstableFor( +@@ -681,6 +681,13 @@ bool RenderWidgetHostViewBase::ScreenRectIsUnstableFor( return false; } @@ -24,7 +24,7 @@ index c31a2b532540befb093e27677f87b4081fa0264c..13351ff303530bbd59516338f620fea1 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 17803f43ea18185878cc2c0b6b4c13de5559a795..583f70174be866e1d79664bc47306dd2cfbaa4be 100644 +index 21669355ec8d1bef63f7dd918d9c1d3d0bf0577b..af13cf1b1685a9b5e4bb43cd224dc926cd1c8291 100644 --- a/content/browser/renderer_host/render_widget_host_view_base.h +++ b/content/browser/renderer_host/render_widget_host_view_base.h @@ -24,8 +24,10 @@ @@ -50,9 +50,9 @@ index 17803f43ea18185878cc2c0b6b4c13de5559a795..583f70174be866e1d79664bc47306dd2 class WebCursor; class WebContentsAccessibility; class DelegatedFrameHost; -@@ -139,6 +143,9 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { - bool show_reason_bfcache_restore) final; - bool ShouldVirtualKeyboardOverlayContent() override; +@@ -141,6 +145,9 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { + void NotifyVirtualKeyboardOverlayRect( + const gfx::Rect& keyboard_rect) override {} + virtual void InitAsGuest(RenderWidgetHostView* parent_host_view, + RenderWidgetHostViewGuest* guest_view) {} @@ -60,7 +60,7 @@ index 17803f43ea18185878cc2c0b6b4c13de5559a795..583f70174be866e1d79664bc47306dd2 // This only needs to be overridden by RenderWidgetHostViewBase subclasses // that handle content embedded within other RenderWidgetHostViews. gfx::PointF TransformPointToRootCoordSpaceF( -@@ -301,6 +308,11 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { +@@ -303,6 +310,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 9c65fb000f..76e513ddd4 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 d5c1afa9e0bacc69a408a302ceae41abf7a7c1fd..8e91c62655726024b75aefa312bbe2bd1dae1e76 100644 +index c25d483469dbc2580f12340daefb85f085b4e127..d4436b93723cac8b33a6ffab1437b221446a1fb0 100644 --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn -@@ -1513,7 +1513,7 @@ if (is_chrome_branded && !is_android) { +@@ -1523,7 +1523,7 @@ if (is_chrome_branded && !is_android) { } } @@ -64,7 +64,7 @@ index d5c1afa9e0bacc69a408a302ceae41abf7a7c1fd..8e91c62655726024b75aefa312bbe2bd chrome_paks("packed_resources") { if (is_mac) { output_dir = "$root_gen_dir/repack" -@@ -1541,6 +1541,12 @@ if (!is_android) { +@@ -1551,6 +1551,12 @@ if (!is_android) { } } diff --git a/patches/chromium/revert_roll_clang_llvmorg-14-init-1002-gb5e470aa-1.patch b/patches/chromium/revert_roll_clang_llvmorg-14-init-1002-gb5e470aa-1.patch new file mode 100644 index 0000000000..dcb68089a8 --- /dev/null +++ b/patches/chromium/revert_roll_clang_llvmorg-14-init-1002-gb5e470aa-1.patch @@ -0,0 +1,21 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: John Kleinschmidt +Date: Mon, 23 Aug 2021 13:42:34 -0400 +Subject: Revert "Roll clang llvmorg-14-init-1002-gb5e470aa-1 : + llvmorg-14-init-1380-gee659383-1" + +This reverts commit 65172c258c45f5bc22f2018884d013b8d11f4b26. + +diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py +index 56b1a39e7883c89fbf27a205c136fc2c12a785f5..64f27320cd0f99934ff0c2e105a7cb08a53b5c88 100755 +--- a/tools/clang/scripts/update.py ++++ b/tools/clang/scripts/update.py +@@ -39,7 +39,7 @@ import zipfile + # https://chromium.googlesource.com/chromium/src/+/main/docs/updating_clang.md + # Reverting problematic clang rolls is safe, though. + # This is the output of `git describe` and is usable as a commit-ish. +-CLANG_REVISION = 'llvmorg-14-init-1380-gee659383' ++CLANG_REVISION = 'llvmorg-14-init-1002-gb5e470aa' + CLANG_SUB_REVISION = 1 + + PACKAGE_VERSION = '%s-%s' % (CLANG_REVISION, CLANG_SUB_REVISION) diff --git a/patches/chromium/scroll_bounce_flag.patch b/patches/chromium/scroll_bounce_flag.patch index c964afc05b..7ddef83a19 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 1b3d844a15057a8b00c09bd0f631e6f4632475b3..3c30d8025134f9d33834b70ec53ab181c95412bf 100644 +index 7e1d2199e024da40c5700164623d45d034c79f27..8b4897a87f6b562978237c573bf86124c0a9ab7f 100644 --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc -@@ -1255,7 +1255,7 @@ bool RenderThreadImpl::IsLcdTextEnabled() { +@@ -1283,7 +1283,7 @@ bool RenderThreadImpl::IsLcdTextEnabled() { } bool RenderThreadImpl::IsElasticOverscrollEnabled() { diff --git a/patches/chromium/support_mixed_sandbox_with_zygote.patch b/patches/chromium/support_mixed_sandbox_with_zygote.patch index 7055906c48..c21b0bc789 100644 --- a/patches/chromium/support_mixed_sandbox_with_zygote.patch +++ b/patches/chromium/support_mixed_sandbox_with_zygote.patch @@ -22,10 +22,10 @@ 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 93c46f70bc733c0e50bbe4d930e90effba34e517..bad0a564a81fc45d86558be449d83dbc6d7c073f 100644 +index 80826440781926cb6a244c62117f8e2964c701d0..8c61ce5f2035a63675d17fda429b839c1e1e8e3b 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -430,10 +430,18 @@ class RendererSandboxedProcessLauncherDelegate +@@ -431,10 +431,18 @@ class RendererSandboxedProcessLauncherDelegate public: RendererSandboxedProcessLauncherDelegate() = default; @@ -44,7 +44,7 @@ index 93c46f70bc733c0e50bbe4d930e90effba34e517..bad0a564a81fc45d86558be449d83dbc const base::CommandLine& browser_command_line = *base::CommandLine::ForCurrentProcess(); base::CommandLine::StringType renderer_prefix = -@@ -451,6 +459,11 @@ class RendererSandboxedProcessLauncherDelegate +@@ -452,6 +460,11 @@ class RendererSandboxedProcessLauncherDelegate sandbox::policy::SandboxType GetSandboxType() override { return sandbox::policy::SandboxType::kRenderer; } @@ -56,7 +56,7 @@ index 93c46f70bc733c0e50bbe4d930e90effba34e517..bad0a564a81fc45d86558be449d83dbc }; #if defined(OS_WIN) -@@ -462,6 +475,9 @@ class RendererSandboxedProcessLauncherDelegateWin +@@ -463,6 +476,9 @@ class RendererSandboxedProcessLauncherDelegateWin bool is_jit_disabled) : renderer_code_integrity_enabled_( GetContentClient()->browser()->IsRendererCodeIntegrityEnabled()) { @@ -66,7 +66,7 @@ index 93c46f70bc733c0e50bbe4d930e90effba34e517..bad0a564a81fc45d86558be449d83dbc if (is_jit_disabled) { dynamic_code_can_be_disabled_ = true; return; -@@ -2005,9 +2021,15 @@ bool RenderProcessHostImpl::Init() { +@@ -2014,9 +2030,15 @@ bool RenderProcessHostImpl::Init() { std::unique_ptr sandbox_delegate = std::make_unique( cmd_line.get(), IsJitDisabled()); diff --git a/patches/chromium/ui_gtk_public_header.patch b/patches/chromium/ui_gtk_public_header.patch index 1ccb205924..bb7f6af443 100644 --- a/patches/chromium/ui_gtk_public_header.patch +++ b/patches/chromium/ui_gtk_public_header.patch @@ -6,7 +6,7 @@ Subject: ui_gtk_public_header.patch Allow electron to depend on //ui/gtk/gtk_util.h diff --git a/ui/gtk/BUILD.gn b/ui/gtk/BUILD.gn -index bef73bd7a6dfc8db07f4ee4e03b0c02b9f81b515..cd3b1f629ca591882dd19e6ffbc47b4b44c402d2 100644 +index 9adb7d3e20611953974c545bf2d817e8c2c9aef0..51dae290a2b51f86c7735df33f9d34b9f5ea8079 100644 --- a/ui/gtk/BUILD.gn +++ b/ui/gtk/BUILD.gn @@ -39,7 +39,7 @@ generate_stubs("gtk_stubs") { diff --git a/patches/chromium/web_contents.patch b/patches/chromium/web_contents.patch index 5536078eae..662e74f6e8 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 a4d8c96190c97162ce1adaab3a3bb2a3a666dd8a..fc543b5db446eb5a338a9cc681b3357df596b59e 100644 +index 8b9e76ad6eee5e03bfa97a2f5c6c7d8898f0dfe5..5426f4631ba0c8159de323969ed379c44352eab4 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -2881,6 +2881,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { +@@ -2885,6 +2885,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 a4d8c96190c97162ce1adaab3a3bb2a3a666dd8a..fc543b5db446eb5a338a9cc681b3357d WebContentsViewDelegate* delegate = GetContentClient()->browser()->GetWebContentsViewDelegate(this); -@@ -2891,6 +2897,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { +@@ -2895,6 +2901,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { view_.reset(CreateWebContentsView(this, delegate, &render_view_host_delegate_view_)); } @@ -34,10 +34,10 @@ index a4d8c96190c97162ce1adaab3a3bb2a3a666dd8a..fc543b5db446eb5a338a9cc681b3357d CHECK(view_.get()); diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h -index fa0ebe6031af07180169d747e78052ac2f14bcef..529b8008f0247dcff819e3178312776d0d46d372 100644 +index ddf33e29d8f06a29a9107fee4c614d288cdbfc3b..383d0fd95d7e807b83f4cd972c107fa27fefaac6 100644 --- a/content/public/browser/web_contents.h +++ b/content/public/browser/web_contents.h -@@ -85,10 +85,13 @@ class BrowserContext; +@@ -86,10 +86,13 @@ class BrowserContext; class BrowserPluginGuestDelegate; class RenderFrameHost; class RenderViewHost; @@ -51,7 +51,7 @@ index fa0ebe6031af07180169d747e78052ac2f14bcef..529b8008f0247dcff819e3178312776d class WebUI; struct DropData; struct MHTMLGenerationParams; -@@ -221,6 +224,10 @@ class WebContents : public PageNavigator, +@@ -222,6 +225,10 @@ class WebContents : public PageNavigator, // Sandboxing flags set on the new WebContents. network::mojom::WebSandboxFlags starting_sandbox_flags; diff --git a/patches/chromium/webview_fullscreen.patch b/patches/chromium/webview_fullscreen.patch index b2fe88bfc9..34047097e0 100644 --- a/patches/chromium/webview_fullscreen.patch +++ b/patches/chromium/webview_fullscreen.patch @@ -14,10 +14,10 @@ Note that we also need to manually update embedder's `api::WebContents::IsFullscreenForTabOrPending` value. diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc -index 8b7cc22096230163a1c1212c37b65b24add07474..f4e36713f85d8e642237fdeca9d53d6ed40ff63b 100644 +index b5f7104ffde611652c55ebe85e3969394dbf76fc..1001c3c9e486ba17466d23168ad7df6aecc8eeee 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -5702,6 +5702,15 @@ void RenderFrameHostImpl::EnterFullscreen( +@@ -5771,6 +5771,15 @@ void RenderFrameHostImpl::EnterFullscreen( notified_instances.insert(parent_site_instance); } diff --git a/patches/chromium/worker_context_will_destroy.patch b/patches/chromium/worker_context_will_destroy.patch index 90aa95973c..a8e70fc53a 100644 --- a/patches/chromium/worker_context_will_destroy.patch +++ b/patches/chromium/worker_context_will_destroy.patch @@ -26,10 +26,10 @@ index 7ec0901cf6ba2c3b8d8dd69d02f12c1c603f13b8..d8c7a1954d5acc0eb4bb675795038eae // 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 2ca27e17e9e10a41b67789cad9d1cbb25ba47b2b..fa073fa881abe4c6413e495cd34a4c6bfbb8c027 100644 +index 272d5c2d7aa766c36a6e5473f2d0a3213d7722df..03f65f0061cac241e6555cab8d8793d5eb134331 100644 --- a/content/renderer/renderer_blink_platform_impl.cc +++ b/content/renderer/renderer_blink_platform_impl.cc -@@ -942,6 +942,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() { +@@ -950,6 +950,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() { WorkerThreadRegistry::Instance()->WillStopCurrentWorkerThread(); } @@ -43,10 +43,10 @@ index 2ca27e17e9e10a41b67789cad9d1cbb25ba47b2b..fa073fa881abe4c6413e495cd34a4c6b 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 cb8770a47a808279d7c1999245d19eae3c941a4e..523a489b89735d77a2d44b5f5d327b20dcbab3fb 100644 +index 918400762b2bf2de641ec3c7a88d9e15184d30ca..c59f582cf7349e825a39a2f1ae9293cd87233e73 100644 --- a/content/renderer/renderer_blink_platform_impl.h +++ b/content/renderer/renderer_blink_platform_impl.h -@@ -205,6 +205,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { +@@ -206,6 +206,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 cb8770a47a808279d7c1999245d19eae3c941a4e..523a489b89735d77a2d44b5f5d327b20 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 9d96af5c4c9b5f3b10fca898841258568bc19537..caee6e5b50eaa2c5afc03720ea2f42e919c2dea1 100644 +index 1928e045f12383d6ce10fc785c50d6e4919cd563..672a29fd5fe78839d6b8f754d1228d8fcf9b88b3 100644 --- a/third_party/blink/public/platform/platform.h +++ b/third_party/blink/public/platform/platform.h -@@ -727,6 +727,7 @@ class BLINK_PLATFORM_EXPORT Platform { +@@ -728,6 +728,7 @@ class BLINK_PLATFORM_EXPORT Platform { virtual void DidStartWorkerThread() {} virtual void WillStopWorkerThread() {} virtual void WorkerContextCreated(const v8::Local& worker) {} 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 10f4968fc4..4a7841344e 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 d8c7a1954d5acc0eb4bb675795038eae0e16bc05..0eee88a106abdc6f232b384265da03e8 // 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 fa073fa881abe4c6413e495cd34a4c6bfbb8c027..1df74eee844076e44f3b04a478c8e0d7228a062f 100644 +index 03f65f0061cac241e6555cab8d8793d5eb134331..3dd71874bf23c23f5d5ea31e37b16f83187c7331 100644 --- a/content/renderer/renderer_blink_platform_impl.cc +++ b/content/renderer/renderer_blink_platform_impl.cc -@@ -954,6 +954,12 @@ void RendererBlinkPlatformImpl::WorkerContextCreated( +@@ -962,6 +962,12 @@ void RendererBlinkPlatformImpl::WorkerContextCreated( worker); } @@ -52,10 +52,10 @@ index fa073fa881abe4c6413e495cd34a4c6bfbb8c027..1df74eee844076e44f3b04a478c8e0d7 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 523a489b89735d77a2d44b5f5d327b20dcbab3fb..842890143c2bc79f2acbf1d6f17cd8ea857344d1 100644 +index c59f582cf7349e825a39a2f1ae9293cd87233e73..9e242a25a6b6cea72a6ed48cb986ebbfa570493a 100644 --- a/content/renderer/renderer_blink_platform_impl.h +++ b/content/renderer/renderer_blink_platform_impl.h -@@ -205,6 +205,8 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { +@@ -206,6 +206,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 523a489b89735d77a2d44b5f5d327b20dcbab3fb..842890143c2bc79f2acbf1d6f17cd8ea 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 caee6e5b50eaa2c5afc03720ea2f42e919c2dea1..50a040a52efeef579eec28d66588f5aa6d442322 100644 +index 672a29fd5fe78839d6b8f754d1228d8fcf9b88b3..71d533bd0923a74e1029596d27d215c0a69d16b4 100644 --- a/third_party/blink/public/platform/platform.h +++ b/third_party/blink/public/platform/platform.h -@@ -727,6 +727,8 @@ class BLINK_PLATFORM_EXPORT Platform { +@@ -728,6 +728,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 70b779e3d7..5bdf45a79c 100644 --- a/patches/node/.patches +++ b/patches/node/.patches @@ -27,3 +27,4 @@ add_should_read_node_options_from_env_option_to_disable_node_options.patch repl_fix_crash_when_sharedarraybuffer_disabled.patch fix_readbarrier_undefined_symbol_error_on_woa_arm64.patch src_remove_extra_semicolons_outside_fns.patch +fix_-wunreachable-code-return.patch diff --git a/patches/node/build_add_gn_build_files.patch b/patches/node/build_add_gn_build_files.patch index 055ee650e2..39189c7530 100644 --- a/patches/node/build_add_gn_build_files.patch +++ b/patches/node/build_add_gn_build_files.patch @@ -553,10 +553,10 @@ index 0000000000000000000000000000000000000000..8e0aa4b7a858ab432dca9da9ead9fcf4 +} diff --git a/deps/googletest/BUILD.gn b/deps/googletest/BUILD.gn new file mode 100644 -index 0000000000000000000000000000000000000000..34c4289eb35af910a470db6ef40abc91954ed848 +index 0000000000000000000000000000000000000000..0daf8c006cef89e76d7eccec3e924bd2718021c9 --- /dev/null +++ b/deps/googletest/BUILD.gn -@@ -0,0 +1,63 @@ +@@ -0,0 +1,64 @@ +config("gtest_config") { + include_dirs = [ "include" ] + defines = [ "UNIT_TEST" ] @@ -572,7 +572,8 @@ index 0000000000000000000000000000000000000000..34c4289eb35af910a470db6ef40abc91 + + cflags_cc = [ + "-Wno-c++98-compat-extra-semi", -+ "-Wno-unused-const-variable" ++ "-Wno-unused-const-variable", ++ "-Wno-unreachable-code-return", + ] + + defines = [ @@ -668,10 +669,10 @@ index 0000000000000000000000000000000000000000..fb000f8ee7647c375bc190d1729d67bb +} diff --git a/deps/nghttp2/BUILD.gn b/deps/nghttp2/BUILD.gn new file mode 100644 -index 0000000000000000000000000000000000000000..58eb2f87990d2cbad711aa39f2a73b20232d4035 +index 0000000000000000000000000000000000000000..e90a1416f5b0106e5886564061d48f32b730b1c2 --- /dev/null +++ b/deps/nghttp2/BUILD.gn -@@ -0,0 +1,48 @@ +@@ -0,0 +1,49 @@ +config("nghttp2_config") { + defines = [ "NGHTTP2_STATICLIB" ] + include_dirs = [ "lib/includes" ] @@ -692,6 +693,7 @@ index 0000000000000000000000000000000000000000..58eb2f87990d2cbad711aa39f2a73b20 + "-Wno-implicit-function-declaration", + "-Wno-implicit-fallthrough", + "-Wno-string-plus-int", ++ "-Wno-unreachable-code-return", + ] + + sources = [ @@ -722,10 +724,10 @@ index 0000000000000000000000000000000000000000..58eb2f87990d2cbad711aa39f2a73b20 +} diff --git a/deps/uv/BUILD.gn b/deps/uv/BUILD.gn new file mode 100644 -index 0000000000000000000000000000000000000000..11a65c2334acc653614577fa1f95791dad72e9e3 +index 0000000000000000000000000000000000000000..b7002dfebb68199511b63a650c734d3493ccce48 --- /dev/null +++ b/deps/uv/BUILD.gn -@@ -0,0 +1,193 @@ +@@ -0,0 +1,194 @@ +config("libuv_config") { + include_dirs = [ "include" ] + @@ -773,6 +775,7 @@ index 0000000000000000000000000000000000000000..11a65c2334acc653614577fa1f95791d + "-Wno-unused-function", + "-Wno-unused-variable", + "-Wno-unreachable-code", ++ "-Wno-unreachable-code-return", + ] + + libs = [] diff --git a/patches/node/fix_-wunreachable-code-return.patch b/patches/node/fix_-wunreachable-code-return.patch new file mode 100644 index 0000000000..97dc6b6e99 --- /dev/null +++ b/patches/node/fix_-wunreachable-code-return.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: deepak1556 +Date: Fri, 20 Aug 2021 22:41:11 -0700 +Subject: fix: -Wunreachable-code-return + +Should be upstreamed. + +diff --git a/src/node_url.cc b/src/node_url.cc +index d7549e3bc05562d67bdef5aebf1fefa550b72eb6..d78cb7a3e1ceb075bd532e823a915b18f5a52afd 100644 +--- a/src/node_url.cc ++++ b/src/node_url.cc +@@ -600,7 +600,6 @@ std::string URLHost::ToString() const { + case HostType::H_DOMAIN: + case HostType::H_OPAQUE: + return value_.domain_or_opaque; +- break; + case HostType::H_IPV4: { + dest.reserve(15); + uint32_t value = value_.ipv4; diff --git a/patches/v8/.patches b/patches/v8/.patches index ff0b6eb65d..39bd1bc450 100644 --- a/patches/v8/.patches +++ b/patches/v8/.patches @@ -6,3 +6,4 @@ workaround_an_undefined_symbol_error.patch do_not_export_private_v8_symbols_on_windows.patch fix_build_deprecated_attirbute_for_older_msvc_versions.patch fix_disable_implies_dcheck_for_node_stream_array_buffers.patch +fix_-wunreachable-code-aggressive_warnings_in_arm_and_arm64_code.patch diff --git a/patches/v8/build_gn.patch b/patches/v8/build_gn.patch index 72649e696c..b310f35226 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 358013a17c26a4e63a1d958915289c4e3fe92d72..d4a83c171a74a52b5f2448623ce3fc17b281a0cd 100644 +index a68f7e924d6388fe24a1c3da032e629e3f140a04..e837fce5b0826a506a6835716f4a303c4a01252e 100644 --- a/BUILD.gn +++ b/BUILD.gn -@@ -545,7 +545,7 @@ config("internal_config") { +@@ -559,7 +559,7 @@ config("internal_config") { ":cppgc_header_features", ] @@ -21,7 +21,7 @@ index 358013a17c26a4e63a1d958915289c4e3fe92d72..d4a83c171a74a52b5f2448623ce3fc17 defines += [ "BUILDING_V8_SHARED" ] } -@@ -5348,7 +5348,7 @@ if (current_toolchain == v8_generator_toolchain) { +@@ -5394,7 +5394,7 @@ if (current_toolchain == v8_generator_toolchain) { "src/interpreter/bytecodes.h", ] @@ -30,7 +30,7 @@ index 358013a17c26a4e63a1d958915289c4e3fe92d72..d4a83c171a74a52b5f2448623ce3fc17 deps = [ ":v8_libbase", -@@ -5386,6 +5386,8 @@ if (current_toolchain == v8_snapshot_toolchain) { +@@ -5432,6 +5432,8 @@ if (current_toolchain == v8_snapshot_toolchain) { configs = [ ":internal_config" ] diff --git a/patches/v8/dcheck.patch b/patches/v8/dcheck.patch index 5e55eccd21..5547ed0d24 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 10dde3c28ad116832b5d2e50bbd97b8b09177a46..3cb9398ba4b31f23c44e66f29dd8be50f525c98f 100644 +index 32e7a35c878dabc4f26791bd3fdcba11f3fd0d30..b31abc617b6fa5bcc06ac8bdd126b2f2f8b80d7d 100644 --- a/src/api/api.cc +++ b/src/api/api.cc -@@ -8791,7 +8791,7 @@ void Isolate::SetPromiseRejectCallback(PromiseRejectCallback callback) { +@@ -8867,7 +8867,7 @@ void Isolate::SetPromiseRejectCallback(PromiseRejectCallback callback) { } void Isolate::PerformMicrotaskCheckpoint() { @@ -19,10 +19,10 @@ index 10dde3c28ad116832b5d2e50bbd97b8b09177a46..3cb9398ba4b31f23c44e66f29dd8be50 isolate->default_microtask_queue()->PerformCheckpoint(this); } diff --git a/src/heap/heap.cc b/src/heap/heap.cc -index 3ae0f4a3c5919c40683ea9ecb7918fd827b5583f..03257fc153372f1dbf834829c572791a77b3d75a 100644 +index 982b80bb89f765fb7be44ab2504a7c6ad066dbd3..9fd0f4f11ba85966f2477e3ae01a9eea6f8607ee 100644 --- a/src/heap/heap.cc +++ b/src/heap/heap.cc -@@ -6016,9 +6016,9 @@ void Heap::DeinitSharedSpaces() { +@@ -6028,9 +6028,9 @@ void Heap::DeinitSharedSpaces() { 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 983a9c1223..0bff0613bf 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 89f5fcfaebb994ea8d1da5a92904faadc8d1fd40..542f3fbe3b7c94f8739a46aba63b4fbb827932f3 100644 +index 232419e12f95f06f57557aa5104ec898d878f83b..ee01ffb3a49b1e5bf5b0da5448e09dedf3b73f03 100644 --- a/BUILD.gn +++ b/BUILD.gn -@@ -545,6 +545,10 @@ config("internal_config") { +@@ -559,6 +559,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 d7f255e11c..bcdf085e8c 100644 --- a/patches/v8/export_symbols_needed_for_windows_build.patch +++ b/patches/v8/export_symbols_needed_for_windows_build.patch @@ -6,7 +6,7 @@ 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 9ca08df61248e287d21e6554a9a53e46134bf84f..ea9b9167f268d268d26c1fb3d5e910a8baf96c22 100644 +index eb31ec957d72ff4c6dee80b7798e27fadf048ccf..ad2502def9c04040a608a8d8e785750cd88f05fd 100644 --- a/src/objects/objects.h +++ b/src/objects/objects.h @@ -855,7 +855,7 @@ enum class KeyCollectionMode { diff --git a/patches/v8/expose_mksnapshot.patch b/patches/v8/expose_mksnapshot.patch index b1d3723401..1dd3049cc7 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 d4a83c171a74a52b5f2448623ce3fc17b281a0cd..89f5fcfaebb994ea8d1da5a92904faadc8d1fd40 100644 +index e837fce5b0826a506a6835716f4a303c4a01252e..232419e12f95f06f57557aa5104ec898d878f83b 100644 --- a/BUILD.gn +++ b/BUILD.gn -@@ -5360,7 +5360,6 @@ if (current_toolchain == v8_generator_toolchain) { +@@ -5406,7 +5406,6 @@ if (current_toolchain == v8_generator_toolchain) { if (current_toolchain == v8_snapshot_toolchain) { v8_executable("mksnapshot") { diff --git a/patches/v8/fix_-wunreachable-code-aggressive_warnings_in_arm_and_arm64_code.patch b/patches/v8/fix_-wunreachable-code-aggressive_warnings_in_arm_and_arm64_code.patch new file mode 100644 index 0000000000..1d7e8c7c87 --- /dev/null +++ b/patches/v8/fix_-wunreachable-code-aggressive_warnings_in_arm_and_arm64_code.patch @@ -0,0 +1,700 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Nico Weber +Date: Wed, 18 Aug 2021 11:16:22 -0400 +Subject: Fix -Wunreachable-code-aggressive warnings in arm and arm64 code + +Like https://chromium-review.googlesource.com/c/v8/v8/+/2994804, but +for arm and arm64. + +Bug: chromium:1066980 +Change-Id: I5f3ac0d64a5031a62d4923d55a89f1d4e88cbc8b +Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3103905 +Auto-Submit: Nico Weber +Commit-Queue: Jakob Gruber +Reviewed-by: Jakob Gruber +Cr-Commit-Position: refs/heads/main@{#76374} +(cherry picked from commit 6711342469c0ec4186bd2083eaec7cd288330cfa) + +diff --git a/src/diagnostics/arm/disasm-arm.cc b/src/diagnostics/arm/disasm-arm.cc +index cf37d12a1f9a5587d3a057f876611526edfcfcd5..7ba20c0d98b79397135648646c014c05b392cb6b 100644 +--- a/src/diagnostics/arm/disasm-arm.cc ++++ b/src/diagnostics/arm/disasm-arm.cc +@@ -676,7 +676,6 @@ int Decoder::FormatOption(Instruction* instr, const char* format) { + } + default: { + UNREACHABLE(); +- return -1; + } + } + out_buffer_pos_ += +@@ -787,7 +786,6 @@ void Decoder::DecodeType01(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } else { + // strex +@@ -808,7 +806,6 @@ void Decoder::DecodeType01(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } + } else { +@@ -853,7 +850,6 @@ void Decoder::DecodeType01(Instruction* instr) { + default: { + // The PU field is a 2-bit field. + UNREACHABLE(); +- break; + } + } + } else { +@@ -894,7 +890,6 @@ void Decoder::DecodeType01(Instruction* instr) { + default: { + // The PU field is a 2-bit field. + UNREACHABLE(); +- break; + } + } + return; +@@ -1030,7 +1025,6 @@ void Decoder::DecodeType01(Instruction* instr) { + default: { + // The Opcode field is a 4-bit field. + UNREACHABLE(); +- break; + } + } + } +@@ -1107,10 +1101,8 @@ void Decoder::DecodeType3(Instruction* instr) { + break; + case 1: + UNREACHABLE(); +- break; + case 2: + UNREACHABLE(); +- break; + case 3: + Format(instr, "usat 'rd, #'imm05@16, 'rm'shift_sat"); + break; +@@ -1119,7 +1111,6 @@ void Decoder::DecodeType3(Instruction* instr) { + switch (instr->Bits(22, 21)) { + case 0: + UNREACHABLE(); +- break; + case 1: + if (instr->Bits(9, 6) == 1) { + if (instr->Bit(20) == 0) { +@@ -1948,7 +1939,6 @@ void Decoder::DecodeFloatingPointDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); // Case analysis is exhaustive. +- break; + } + } else if (instr->Opc1Value() == 0x4 && op2) { + // Floating-point minNum/maxNum. +@@ -2002,7 +1992,6 @@ void Decoder::DecodeFloatingPointDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); // Case analysis is exhaustive. +- break; + } + } else { + Unknown(instr); +@@ -2617,12 +2606,10 @@ const char* NameConverter::NameOfCPURegister(int reg) const { + + const char* NameConverter::NameOfByteCPURegister(int reg) const { + UNREACHABLE(); // ARM does not have the concept of a byte register +- return "nobytereg"; + } + + const char* NameConverter::NameOfXMMRegister(int reg) const { + UNREACHABLE(); // ARM does not have any XMM registers +- return "noxmmreg"; + } + + const char* NameConverter::NameInCode(byte* addr) const { +diff --git a/src/diagnostics/arm/eh-frame-arm.cc b/src/diagnostics/arm/eh-frame-arm.cc +index 7d0dc49155aec2bad9297f47a761181a41e7a71f..ef0a421820b1c6558770d0b2df79004e3bce0a1f 100644 +--- a/src/diagnostics/arm/eh-frame-arm.cc ++++ b/src/diagnostics/arm/eh-frame-arm.cc +@@ -37,7 +37,6 @@ int EhFrameWriter::RegisterToDwarfCode(Register name) { + return kR0DwarfCode; + default: + UNIMPLEMENTED(); +- return -1; + } + } + +@@ -54,7 +53,6 @@ const char* EhFrameDisassembler::DwarfRegisterCodeToString(int code) { + return "lr"; + default: + UNIMPLEMENTED(); +- return nullptr; + } + } + +diff --git a/src/diagnostics/arm64/disasm-arm64.cc b/src/diagnostics/arm64/disasm-arm64.cc +index 93b9531bd5d5e6d7e7cef13a0158db6c90942f16..af6e7f5441e7f44d73acde8f705e453af42e9650 100644 +--- a/src/diagnostics/arm64/disasm-arm64.cc ++++ b/src/diagnostics/arm64/disasm-arm64.cc +@@ -3954,7 +3954,6 @@ int DisassemblingDecoder::SubstituteImmediateField(Instruction* instr, + } + default: { + UNIMPLEMENTED(); +- return 0; + } + } + } +@@ -3997,7 +3996,6 @@ int DisassemblingDecoder::SubstituteImmediateField(Instruction* instr, + return 0; + } + UNIMPLEMENTED(); +- return 0; + } + case 'L': { // IVLSLane[0123] - suffix indicates access size shift. + AppendToOutput("%d", instr->NEONLSIndex(format[8] - '0')); +@@ -4042,12 +4040,10 @@ int DisassemblingDecoder::SubstituteImmediateField(Instruction* instr, + return static_cast(strlen("IVMIShiftAmt2")); + } else { + UNIMPLEMENTED(); +- return 0; + } + } + default: { + UNIMPLEMENTED(); +- return 0; + } + } + } +@@ -4342,12 +4338,10 @@ const char* NameConverter::NameOfCPURegister(int reg) const { + + const char* NameConverter::NameOfByteCPURegister(int reg) const { + UNREACHABLE(); // ARM64 does not have the concept of a byte register +- return "nobytereg"; + } + + const char* NameConverter::NameOfXMMRegister(int reg) const { + UNREACHABLE(); // ARM64 does not have any XMM registers +- return "noxmmreg"; + } + + const char* NameConverter::NameInCode(byte* addr) const { +diff --git a/src/diagnostics/arm64/eh-frame-arm64.cc b/src/diagnostics/arm64/eh-frame-arm64.cc +index 115d0cc300c87e25fae0a048b4c48a96562a1b91..2d198a9e35ae69d7fc00a37c37bf7e2bdf00473e 100644 +--- a/src/diagnostics/arm64/eh-frame-arm64.cc ++++ b/src/diagnostics/arm64/eh-frame-arm64.cc +@@ -38,7 +38,6 @@ int EhFrameWriter::RegisterToDwarfCode(Register name) { + return kX0DwarfCode; + default: + UNIMPLEMENTED(); +- return -1; + } + } + +diff --git a/src/execution/arm/simulator-arm.cc b/src/execution/arm/simulator-arm.cc +index ec9c05af699e538123a0e4cd2cf27b4df4b8ed5d..310ddab523d0d8c279ba0ac822709431d78b4c2a 100644 +--- a/src/execution/arm/simulator-arm.cc ++++ b/src/execution/arm/simulator-arm.cc +@@ -114,14 +114,10 @@ bool ArmDebugger::GetValue(const char* desc, int32_t* value) { + if (regnum != kNoRegister) { + *value = GetRegisterValue(regnum); + return true; +- } else { +- if (strncmp(desc, "0x", 2) == 0) { +- return SScanF(desc + 2, "%x", reinterpret_cast(value)) == 1; +- } else { +- return SScanF(desc, "%u", reinterpret_cast(value)) == 1; +- } + } +- return false; ++ if (strncmp(desc, "0x", 2) == 0) ++ return SScanF(desc + 2, "%x", reinterpret_cast(value)) == 1; ++ return SScanF(desc, "%u", reinterpret_cast(value)) == 1; + } + + bool ArmDebugger::GetVFPSingleValue(const char* desc, float* value) { +@@ -1192,7 +1188,6 @@ bool Simulator::ConditionallyExecute(Instruction* instr) { + default: + UNREACHABLE(); + } +- return false; + } + + // Calculate and set the Negative and Zero flags. +@@ -1314,7 +1309,6 @@ int32_t Simulator::GetShiftRm(Instruction* instr, bool* carry_out) { + // by immediate + if ((shift == ROR) && (shift_amount == 0)) { + UNIMPLEMENTED(); +- return result; + } else if (((shift == LSR) || (shift == ASR)) && (shift_amount == 0)) { + shift_amount = 32; + } +@@ -1373,7 +1367,6 @@ int32_t Simulator::GetShiftRm(Instruction* instr, bool* carry_out) { + + default: { + UNREACHABLE(); +- break; + } + } + } else { +@@ -1451,7 +1444,6 @@ int32_t Simulator::GetShiftRm(Instruction* instr, bool* carry_out) { + + default: { + UNREACHABLE(); +- break; + } + } + } +@@ -1486,7 +1478,6 @@ int32_t Simulator::ProcessPU(Instruction* instr, int num_regs, int reg_size, + switch (instr->PUField()) { + case da_x: { + UNIMPLEMENTED(); +- break; + } + case ia_x: { + *start_address = rn_val; +@@ -1717,7 +1708,6 @@ void Simulator::SoftwareInterrupt(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + if (!stack_aligned) { + PrintF(" with unaligned stack %08x\n", get_register(sp)); +@@ -1769,7 +1759,6 @@ void Simulator::SoftwareInterrupt(Instruction* instr) { + } + default: + UNREACHABLE(); +- break; + } + if (::v8::internal::FLAG_trace_sim || !stack_aligned) { + switch (redirection->type()) { +@@ -1783,7 +1772,6 @@ void Simulator::SoftwareInterrupt(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } + } else if (redirection->type() == ExternalReference::DIRECT_API_CALL) { +@@ -2121,7 +2109,6 @@ void Simulator::DecodeType01(Instruction* instr) { + } + default: + UNREACHABLE(); +- break; + } + } else { + // The instruction is documented as strex rd, rt, [rn], but the +@@ -2165,7 +2152,6 @@ void Simulator::DecodeType01(Instruction* instr) { + } + default: + UNREACHABLE(); +- break; + } + } + } else { +@@ -2219,7 +2205,6 @@ void Simulator::DecodeType01(Instruction* instr) { + default: { + // The PU field is a 2-bit field. + UNREACHABLE(); +- break; + } + } + } else { +@@ -2262,7 +2247,6 @@ void Simulator::DecodeType01(Instruction* instr) { + default: { + // The PU field is a 2-bit field. + UNREACHABLE(); +- break; + } + } + } +@@ -2600,7 +2584,6 @@ void Simulator::DecodeType01(Instruction* instr) { + + default: { + UNREACHABLE(); +- break; + } + } + } +@@ -2680,7 +2663,6 @@ void Simulator::DecodeType3(Instruction* instr) { + DCHECK(!instr->HasW()); + Format(instr, "'memop'cond'b 'rd, ['rn], -'shift_rm"); + UNIMPLEMENTED(); +- break; + } + case ia_x: { + if (instr->Bit(4) == 0) { +@@ -2714,10 +2696,8 @@ void Simulator::DecodeType3(Instruction* instr) { + break; + case 1: + UNIMPLEMENTED(); +- break; + case 2: + UNIMPLEMENTED(); +- break; + case 3: { + // Usat. + int32_t sat_pos = instr->Bits(20, 16); +@@ -2746,7 +2726,6 @@ void Simulator::DecodeType3(Instruction* instr) { + switch (instr->Bits(22, 21)) { + case 0: + UNIMPLEMENTED(); +- break; + case 1: + if (instr->Bits(9, 6) == 1) { + if (instr->Bit(20) == 0) { +@@ -3442,7 +3421,6 @@ void Simulator::DecodeTypeVFP(Instruction* instr) { + } + default: + UNREACHABLE(); +- break; + } + set_neon_register(vd, q_data); + } +@@ -4433,7 +4411,6 @@ void Simulator::DecodeAdvancedSIMDTwoOrThreeRegisters(Instruction* instr) { + } + default: + UNREACHABLE(); +- break; + } + break; + } +@@ -4469,13 +4446,11 @@ void Simulator::DecodeAdvancedSIMDTwoOrThreeRegisters(Instruction* instr) { + } + default: + UNREACHABLE(); +- break; + } + break; + } + default: + UNREACHABLE(); +- break; + } + } else if (opc1 == 0 && (opc2 == 0b0100 || opc2 == 0b0101)) { + DCHECK_EQ(1, instr->Bit(6)); // Only support Q regs. +@@ -4625,7 +4600,6 @@ void Simulator::DecodeAdvancedSIMDTwoOrThreeRegisters(Instruction* instr) { + break; + default: + UNIMPLEMENTED(); +- break; + } + } + } else if (opc1 == 0b01 && (opc2 & 0b0111) == 0b111) { +@@ -4654,7 +4628,6 @@ void Simulator::DecodeAdvancedSIMDTwoOrThreeRegisters(Instruction* instr) { + break; + default: + UNIMPLEMENTED(); +- break; + } + } + } else if (opc1 == 0b10 && opc2 == 0b0001) { +@@ -4674,7 +4647,6 @@ void Simulator::DecodeAdvancedSIMDTwoOrThreeRegisters(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } else { + int Vd = instr->VFPDRegValue(kDoublePrecision); +@@ -4692,7 +4664,6 @@ void Simulator::DecodeAdvancedSIMDTwoOrThreeRegisters(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } + } else if (opc1 == 0b10 && (opc2 & 0b1110) == 0b0010) { +@@ -4714,7 +4685,6 @@ void Simulator::DecodeAdvancedSIMDTwoOrThreeRegisters(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } else { + // vuzp. Qd, Qm. +@@ -4730,7 +4700,6 @@ void Simulator::DecodeAdvancedSIMDTwoOrThreeRegisters(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } + } else { +@@ -4747,10 +4716,8 @@ void Simulator::DecodeAdvancedSIMDTwoOrThreeRegisters(Instruction* instr) { + break; + case Neon32: + UNIMPLEMENTED(); +- break; + default: + UNREACHABLE(); +- break; + } + } else { + // vuzp. Dd, Dm. +@@ -4763,10 +4730,8 @@ void Simulator::DecodeAdvancedSIMDTwoOrThreeRegisters(Instruction* instr) { + break; + case Neon32: + UNIMPLEMENTED(); +- break; + default: + UNREACHABLE(); +- break; + } + } + } +@@ -4811,7 +4776,6 @@ void Simulator::DecodeAdvancedSIMDTwoOrThreeRegisters(Instruction* instr) { + } + case Neon64: + UNREACHABLE(); +- break; + } + } else if (opc1 == 0b10 && instr->Bit(10) == 1) { + // vrint.
, +@@ -5078,7 +5042,6 @@ void Simulator::DecodeAdvancedSIMDDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } else if (!u && opc == 1 && sz == 2 && q && op1) { + // vmov Qd, Qm. +@@ -5134,7 +5097,6 @@ void Simulator::DecodeAdvancedSIMDDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } else if (!u && opc == 3) { + // vcge/vcgt.s Qd, Qm, Qn. +@@ -5152,7 +5114,6 @@ void Simulator::DecodeAdvancedSIMDDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } else if (!u && opc == 4 && !op1) { + // vshl s Qd, Qm, Qn. +@@ -5172,7 +5133,6 @@ void Simulator::DecodeAdvancedSIMDDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } else if (!u && opc == 6) { + // vmin/vmax.s Qd, Qm, Qn. +@@ -5190,7 +5150,6 @@ void Simulator::DecodeAdvancedSIMDDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } else if (!u && opc == 8 && op1) { + // vtst.i Qd, Qm, Qn. +@@ -5207,7 +5166,6 @@ void Simulator::DecodeAdvancedSIMDDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } else if (!u && opc == 8 && !op1) { + // vadd.i Qd, Qm, Qn. +@@ -5241,7 +5199,6 @@ void Simulator::DecodeAdvancedSIMDDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } else if (!u && opc == 0xA) { + // vpmin/vpmax.s Dd, Dm, Dn. +@@ -5259,7 +5216,6 @@ void Simulator::DecodeAdvancedSIMDDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } else if (!u && opc == 0xB) { + // vpadd.i Dd, Dm, Dn. +@@ -5276,7 +5232,6 @@ void Simulator::DecodeAdvancedSIMDDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } else if (!u && opc == 0xD && !op1) { + float src1[4], src2[4]; +@@ -5347,7 +5302,6 @@ void Simulator::DecodeAdvancedSIMDDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } else if (u && opc == 1 && sz == 1 && op1) { + // vbsl.size Qd, Qm, Qn. +@@ -5388,7 +5342,6 @@ void Simulator::DecodeAdvancedSIMDDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } else if (u && opc == 2 && op1) { + // vqsub.u Qd, Qm, Qn. +@@ -5405,7 +5358,6 @@ void Simulator::DecodeAdvancedSIMDDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } else if (u && opc == 3) { + // vcge/vcgt.u Qd, Qm, Qn. +@@ -5423,7 +5375,6 @@ void Simulator::DecodeAdvancedSIMDDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } else if (u && opc == 4 && !op1) { + // vshl u Qd, Qm, Qn. +@@ -5443,7 +5394,6 @@ void Simulator::DecodeAdvancedSIMDDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } else if (u && opc == 6) { + // vmin/vmax.u Qd, Qm, Qn. +@@ -5461,7 +5411,6 @@ void Simulator::DecodeAdvancedSIMDDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } else if (u && opc == 8 && !op1) { + // vsub.size Qd, Qm, Qn. +@@ -5495,7 +5444,6 @@ void Simulator::DecodeAdvancedSIMDDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } else if (u && opc == 0xA) { + // vpmin/vpmax.u Dd, Dm, Dn. +@@ -5513,7 +5461,6 @@ void Simulator::DecodeAdvancedSIMDDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } else if (u && opc == 0xD && sz == 0 && q && op1) { + // vmul.f32 Qd, Qn, Qm +@@ -5658,7 +5605,6 @@ void Simulator::DecodeAdvancedSIMDDataProcessing(Instruction* instr) { + break; + default: + UNIMPLEMENTED(); +- break; + } + } else { + // vmovl signed +@@ -5677,7 +5623,6 @@ void Simulator::DecodeAdvancedSIMDDataProcessing(Instruction* instr) { + break; + default: + UNIMPLEMENTED(); +- break; + } + } + } else if (!u && imm3H_L != 0 && opc == 0b0101) { +@@ -5721,7 +5666,6 @@ void Simulator::DecodeAdvancedSIMDDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } else if (u && imm3H_L != 0 && opc == 0b0101) { + // vsli. Dd, Dm, shift +@@ -5743,7 +5687,6 @@ void Simulator::DecodeAdvancedSIMDDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); +- break; + } + } + } +@@ -5807,7 +5750,6 @@ void Simulator::DecodeAdvancedSIMDLoadStoreMultipleStructures( + break; + default: + UNIMPLEMENTED(); +- break; + } + if (instr->Bit(21)) { + // vld1 +@@ -5993,7 +5935,6 @@ void Simulator::DecodeFloatingPointDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); // Case analysis is exhaustive. +- break; + } + dd_value = canonicalizeNaN(dd_value); + set_d_register_from_double(vd, dd_value); +@@ -6019,7 +5960,6 @@ void Simulator::DecodeFloatingPointDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); // Case analysis is exhaustive. +- break; + } + sd_value = canonicalizeNaN(sd_value); + set_s_register_from_float(d, sd_value); +@@ -6111,7 +6051,6 @@ void Simulator::DecodeFloatingPointDataProcessing(Instruction* instr) { + break; + default: + UNREACHABLE(); // Case analysis is exhaustive. +- break; + } + if (instr->SzValue() == 0x1) { + int n = instr->VFPNRegValue(kDoublePrecision); +@@ -6132,7 +6071,6 @@ void Simulator::DecodeFloatingPointDataProcessing(Instruction* instr) { + break; + default: + UNIMPLEMENTED(); +- break; + } + } + +@@ -6201,7 +6139,6 @@ void Simulator::InstructionDecode(Instruction* instr) { + } + default: { + UNIMPLEMENTED(); +- break; + } + } + } +diff --git a/src/execution/arm64/simulator-arm64.cc b/src/execution/arm64/simulator-arm64.cc +index 324bdd99a8d87c3e98b352dac99a1a8ccf8595ff..5669838006d3fd817275563a69f588d3b003598a 100644 +--- a/src/execution/arm64/simulator-arm64.cc ++++ b/src/execution/arm64/simulator-arm64.cc +@@ -1517,7 +1517,6 @@ void Simulator::VisitPCRelAddressing(Instruction* instr) { + break; + case ADRP: // Not implemented in the assembler. + UNIMPLEMENTED(); +- break; + default: + UNREACHABLE(); + } +@@ -2212,7 +2211,6 @@ Simulator::TransactionSize Simulator::get_transaction_size(unsigned size) { + default: + UNREACHABLE(); + } +- return TransactionSize::None; + } + + void Simulator::VisitLoadStoreAcquireRelease(Instruction* instr) { +@@ -5210,7 +5208,6 @@ void Simulator::VisitNEONScalar2RegMisc(Instruction* instr) { + break; + default: + UNIMPLEMENTED(); +- break; + } + } else { + VectorFormat fpf = nfd.GetVectorFormat(nfd.FPScalarFormatMap()); diff --git a/patches/v8/fix_build_deprecated_attirbute_for_older_msvc_versions.patch b/patches/v8/fix_build_deprecated_attirbute_for_older_msvc_versions.patch index a1cebcd8d6..7d2a6c75e5 100644 --- a/patches/v8/fix_build_deprecated_attirbute_for_older_msvc_versions.patch +++ b/patches/v8/fix_build_deprecated_attirbute_for_older_msvc_versions.patch @@ -9,10 +9,10 @@ higher versions, but native module compiling with this version will have an issue. diff --git a/include/v8config.h b/include/v8config.h -index c1bb691f8789e5ab17ed9c8c4ad6ea2d51e72670..214101a990a1551b309aed7be19946896441cfa2 100644 +index b010b65dfd648bc01608befd886613a82dab2a05..fa740c2acde6134312aabfa0aae0c0093450bd48 100644 --- a/include/v8config.h +++ b/include/v8config.h -@@ -403,10 +403,13 @@ path. Add it with -I to the command line +@@ -448,10 +448,13 @@ path. Add it with -I to the command line # define V8_NOINLINE /* NOT SUPPORTED */ #endif @@ -28,7 +28,7 @@ index c1bb691f8789e5ab17ed9c8c4ad6ea2d51e72670..214101a990a1551b309aed7be1994689 #else # define V8_DEPRECATED(message) #endif -@@ -414,7 +417,11 @@ path. Add it with -I to the command line +@@ -459,7 +462,11 @@ path. Add it with -I to the command line // A macro (V8_DEPRECATE_SOON) to make it easier to see what will be deprecated. #if defined(V8_IMMINENT_DEPRECATION_WARNINGS) diff --git a/patches/v8/fix_disable_implies_dcheck_for_node_stream_array_buffers.patch b/patches/v8/fix_disable_implies_dcheck_for_node_stream_array_buffers.patch index d39f922de5..09e0d51204 100644 --- a/patches/v8/fix_disable_implies_dcheck_for_node_stream_array_buffers.patch +++ b/patches/v8/fix_disable_implies_dcheck_for_node_stream_array_buffers.patch @@ -18,10 +18,10 @@ This patch can be removed when streams support rab/gsab, or when support is synchronized across both v8 and node. diff --git a/src/objects/js-array-buffer.cc b/src/objects/js-array-buffer.cc -index 583297e20746bf1f63a8646745cb34dc2d841338..8004ffbd2803a0c5dff978e087edc70d34d41713 100644 +index bbe635ee2ad6d75cab64f1a93342347e8d10f550..0c903dca606cb28820202347dcbf642e56db3df9 100644 --- a/src/objects/js-array-buffer.cc +++ b/src/objects/js-array-buffer.cc -@@ -73,9 +73,9 @@ void JSArrayBuffer::Attach(std::shared_ptr backing_store) { +@@ -72,9 +72,9 @@ void JSArrayBuffer::Attach(std::shared_ptr backing_store) { DCHECK_NOT_NULL(backing_store); DCHECK_EQ(is_shared(), backing_store->is_shared()); DCHECK_EQ(is_resizable(), backing_store->is_resizable()); diff --git a/patches/v8/workaround_an_undefined_symbol_error.patch b/patches/v8/workaround_an_undefined_symbol_error.patch index 5fd565e30d..a39d7d1f70 100644 --- a/patches/v8/workaround_an_undefined_symbol_error.patch +++ b/patches/v8/workaround_an_undefined_symbol_error.patch @@ -12,7 +12,7 @@ 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 248f2089a7726d0576d19c0d7869b30bd335c2e0..9d398555b3405b9b6abe3d7612ed2d54559a9c57 100644 +index f6a035a9e7737b26d325074605724a1e52037493..18ef63e33986da557253bb03022c511b8a856acf 100644 --- a/src/codegen/arm64/assembler-arm64.cc +++ b/src/codegen/arm64/assembler-arm64.cc @@ -3629,6 +3629,22 @@ void Assembler::MoveWide(const Register& rd, uint64_t imm, int shift, @@ -39,10 +39,10 @@ index 248f2089a7726d0576d19c0d7869b30bd335c2e0..9d398555b3405b9b6abe3d7612ed2d54 const Operand& operand, FlagsUpdate S, AddSubOp op) { DCHECK_EQ(rd.SizeInBits(), rn.SizeInBits()); diff --git a/src/codegen/arm64/assembler-arm64.h b/src/codegen/arm64/assembler-arm64.h -index d95417d78fac897a47f90436c681b83430ab5f22..922beeb14d9b5c588e1547b80de98fe5d52b6b2e 100644 +index 8cdca7bfa83ef7156c9fa8583d29661169132417..c482263e58b4e625724d37c0ab3ccbc405bee1c5 100644 --- a/src/codegen/arm64/assembler-arm64.h +++ b/src/codegen/arm64/assembler-arm64.h -@@ -2121,11 +2121,7 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBase { +@@ -2130,11 +2130,7 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBase { return rm.code() << Rm_offset; } @@ -55,7 +55,7 @@ index d95417d78fac897a47f90436c681b83430ab5f22..922beeb14d9b5c588e1547b80de98fe5 static Instr Ra(CPURegister ra) { DCHECK_NE(ra.code(), kSPRegInternalCode); -@@ -2149,15 +2145,8 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBase { +@@ -2158,15 +2154,8 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBase { // These encoding functions allow the stack pointer to be encoded, and // disallow the zero register. diff --git a/script/node-disabled-tests.json b/script/node-disabled-tests.json index 86637a4ec1..4112dc270f 100644 --- a/script/node-disabled-tests.json +++ b/script/node-disabled-tests.json @@ -137,6 +137,7 @@ "parallel/test-util-inspect", "parallel/test-v8-coverage", "parallel/test-v8-flags", + "parallel/test-v8-untrusted-code-mitigations", "parallel/test-vm-module-basic", "parallel/test-vm-parse-abort-on-uncaught-exception", "parallel/test-vm-sigint-existing-handler", diff --git a/script/zip_manifests/dist_zip.linux.arm.manifest b/script/zip_manifests/dist_zip.linux.arm.manifest index 2bca76d434..7e08e3f695 100644 --- a/script/zip_manifests/dist_zip.linux.arm.manifest +++ b/script/zip_manifests/dist_zip.linux.arm.manifest @@ -3,7 +3,7 @@ LICENSES.chromium.html chrome-sandbox chrome_100_percent.pak chrome_200_percent.pak -crashpad_handler +chrome_crashpad_handler electron icudtl.dat libEGL.so diff --git a/script/zip_manifests/dist_zip.linux.arm64.manifest b/script/zip_manifests/dist_zip.linux.arm64.manifest index 2bca76d434..7e08e3f695 100644 --- a/script/zip_manifests/dist_zip.linux.arm64.manifest +++ b/script/zip_manifests/dist_zip.linux.arm64.manifest @@ -3,7 +3,7 @@ LICENSES.chromium.html chrome-sandbox chrome_100_percent.pak chrome_200_percent.pak -crashpad_handler +chrome_crashpad_handler electron icudtl.dat libEGL.so diff --git a/script/zip_manifests/dist_zip.linux.x64.manifest b/script/zip_manifests/dist_zip.linux.x64.manifest index 2bca76d434..7e08e3f695 100644 --- a/script/zip_manifests/dist_zip.linux.x64.manifest +++ b/script/zip_manifests/dist_zip.linux.x64.manifest @@ -3,7 +3,7 @@ LICENSES.chromium.html chrome-sandbox chrome_100_percent.pak chrome_200_percent.pak -crashpad_handler +chrome_crashpad_handler electron icudtl.dat libEGL.so diff --git a/script/zip_manifests/dist_zip.linux.x86.manifest b/script/zip_manifests/dist_zip.linux.x86.manifest index 2bca76d434..7e08e3f695 100644 --- a/script/zip_manifests/dist_zip.linux.x86.manifest +++ b/script/zip_manifests/dist_zip.linux.x86.manifest @@ -3,7 +3,7 @@ LICENSES.chromium.html chrome-sandbox chrome_100_percent.pak chrome_200_percent.pak -crashpad_handler +chrome_crashpad_handler electron icudtl.dat libEGL.so diff --git a/shell/app/electron_main_delegate.cc b/shell/app/electron_main_delegate.cc index 074338c84e..6ea59153da 100644 --- a/shell/app/electron_main_delegate.cc +++ b/shell/app/electron_main_delegate.cc @@ -229,7 +229,7 @@ std::string LoadResourceBundle(const std::string& locale) { locale, nullptr, ui::ResourceBundle::LOAD_COMMON_RESOURCES); ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance(); bundle.AddDataPackFromPath(pak_dir.Append(FILE_PATH_LITERAL("resources.pak")), - ui::SCALE_FACTOR_NONE); + ui::kScaleFactorNone); return loaded_locale; } diff --git a/shell/browser/api/electron_api_app.cc b/shell/browser/api/electron_api_app.cc index fcbf8ab7e5..4d4b6dab50 100644 --- a/shell/browser/api/electron_api_app.cc +++ b/shell/browser/api/electron_api_app.cc @@ -32,6 +32,7 @@ #include "media/audio/audio_manager.h" #include "net/ssl/client_cert_identity.h" #include "net/ssl/ssl_cert_request_info.h" +#include "net/ssl/ssl_private_key.h" #include "sandbox/policy/switches.h" #include "shell/browser/api/electron_api_menu.h" #include "shell/browser/api/electron_api_session.h" diff --git a/shell/browser/api/electron_api_cookies.cc b/shell/browser/api/electron_api_cookies.cc index ce388643a2..631dbc1b93 100644 --- a/shell/browser/api/electron_api_cookies.cc +++ b/shell/browser/api/electron_api_cookies.cc @@ -294,7 +294,6 @@ v8::Local Cookies::Set(v8::Isolate* isolate, const std::string* value = details.FindStringKey("value"); const std::string* domain = details.FindStringKey("domain"); const std::string* path = details.FindStringKey("path"); - bool secure = details.FindBoolKey("secure").value_or(false); bool http_only = details.FindBoolKey("httpOnly").value_or(false); const std::string* same_site_string = details.FindStringKey("sameSite"); net::CookieSameSite same_site; @@ -303,6 +302,8 @@ v8::Local Cookies::Set(v8::Isolate* isolate, promise.RejectWithErrorMessage(error); return handle; } + bool secure = details.FindBoolKey("secure").value_or( + same_site == net::CookieSameSite::NO_RESTRICTION); bool same_party = details.FindBoolKey("sameParty") .value_or(secure && same_site != net::CookieSameSite::STRICT_MODE); diff --git a/shell/browser/api/electron_api_session.cc b/shell/browser/api/electron_api_session.cc index 97049b496c..e0097f01d7 100644 --- a/shell/browser/api/electron_api_session.cc +++ b/shell/browser/api/electron_api_session.cc @@ -269,7 +269,8 @@ void DownloadIdCallback(content::DownloadManager* download_manager, download::DownloadItem::INTERRUPTED, download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, download::DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT, false, base::Time(), - false, std::vector()); + false, std::vector(), + download::DownloadItemRerouteInfo()); } #if BUILDFLAG(ENABLE_BUILTIN_SPELLCHECKER) @@ -911,7 +912,7 @@ static void StartPreconnectOnUI(ElectronBrowserContext* browser_context, int num_sockets_to_preconnect) { std::vector requests = { {url::Origin::Create(url), num_sockets_to_preconnect, - net::NetworkIsolationKey()}}; + net::NetworkIsolationKey::CreateTransient()}}; browser_context->GetPreconnectManager()->Start(url, requests); } diff --git a/shell/browser/api/electron_api_url_loader.cc b/shell/browser/api/electron_api_url_loader.cc index 51654877d4..c455e0b2e0 100644 --- a/shell/browser/api/electron_api_url_loader.cc +++ b/shell/browser/api/electron_api_url_loader.cc @@ -20,6 +20,7 @@ #include "services/network/public/cpp/resource_request.h" #include "services/network/public/cpp/simple_url_loader.h" #include "services/network/public/mojom/chunked_data_pipe_getter.mojom.h" +#include "services/network/public/mojom/http_raw_headers.mojom.h" #include "services/network/public/mojom/url_loader_factory.mojom.h" #include "shell/browser/api/electron_api_session.h" #include "shell/browser/electron_browser_context.h" @@ -277,6 +278,10 @@ SimpleURLLoaderWrapper::SimpleURLLoaderWrapper( url_loader_network_observer_remote.InitWithNewPipeAndPassReceiver()); request->trusted_params->url_loader_network_observer = std::move(url_loader_network_observer_remote); + // Chromium filters headers using browser rules, while for net module we have + // every header passed. Setting the following id will allow us to capture the + // raw headers in the URLLoader. + request->devtools_request_id = base::UnguessableToken::Create().ToString(); // SimpleURLLoader wants to control the request body itself. We have other // ideas. auto request_body = std::move(request->request_body); @@ -489,10 +494,6 @@ gin::Handle SimpleURLLoaderWrapper::Create( options |= network::mojom::kURLLoadOptionBlockAllCookies; } - // Chromium filters headers using browser rules, while for net module we have - // every header passed. - request->report_raw_headers = true; - v8::Local body; v8::Local chunk_pipe_getter; if (opts.Get("body", &body)) { @@ -577,9 +578,8 @@ void SimpleURLLoaderWrapper::OnResponseStarted( dict.Set("httpVersion", response_head.headers->GetHttpVersion()); // Note that |response_head.headers| are filtered by Chromium and should not // be used here. - DCHECK(response_head.raw_request_response_info); - dict.Set("rawHeaders", - response_head.raw_request_response_info->response_headers); + DCHECK(!response_head.raw_response_headers.empty()); + dict.Set("rawHeaders", response_head.raw_response_headers); Emit("response-started", final_url, dict); } diff --git a/shell/browser/api/electron_api_web_contents.cc b/shell/browser/api/electron_api_web_contents.cc index 35b878d789..c97d4c0bff 100644 --- a/shell/browser/api/electron_api_web_contents.cc +++ b/shell/browser/api/electron_api_web_contents.cc @@ -419,8 +419,9 @@ bool IsDeviceNameValid(const std::u16string& device_name) { #elif defined(OS_WIN) printing::ScopedPrinterHandle printer; return printer.OpenPrinterWithName(base::as_wcstr(device_name)); -#endif +#else return true; +#endif } std::u16string GetDefaultPrinterAsync() { @@ -1497,13 +1498,6 @@ void WebContents::DidChangeThemeColor() { } } -void WebContents::OnInterfaceRequestFromFrame( - content::RenderFrameHost* render_frame_host, - const std::string& interface_name, - mojo::ScopedMessagePipeHandle* interface_pipe) { - registry_.TryBindInterface(interface_name, interface_pipe, render_frame_host); -} - void WebContents::DidAcquireFullscreen(content::RenderFrameHost* rfh) { set_fullscreen_frame(rfh); } @@ -3415,7 +3409,7 @@ void WebContents::DevToolsRemoveFileSystem( auto* pref_service = GetPrefService(GetDevToolsWebContents()); DictionaryPrefUpdate update(pref_service, prefs::kDevToolsFileSystemPaths); - update.Get()->RemoveWithoutPathExpansion(path, nullptr); + update.Get()->RemoveKey(path); base::Value file_system_path_value(path); inspectable_web_contents_->CallClientFunction("DevToolsAPI.fileSystemRemoved", diff --git a/shell/browser/api/electron_api_web_contents.h b/shell/browser/api/electron_api_web_contents.h index 6766be8f67..dcfe9fcc40 100644 --- a/shell/browser/api/electron_api_web_contents.h +++ b/shell/browser/api/electron_api_web_contents.h @@ -30,7 +30,6 @@ #include "gin/wrappable.h" #include "mojo/public/cpp/bindings/receiver_set.h" #include "printing/buildflags/buildflags.h" -#include "services/service_manager/public/cpp/binder_registry.h" #include "shell/browser/api/frame_subscriber.h" #include "shell/browser/api/save_page_handler.h" #include "shell/browser/event_emitter_mixin.h" @@ -581,10 +580,6 @@ class WebContents : public gin::Wrappable, const content::MediaPlayerId& id, content::WebContentsObserver::MediaStoppedReason reason) override; void DidChangeThemeColor() override; - void OnInterfaceRequestFromFrame( - content::RenderFrameHost* render_frame_host, - const std::string& interface_name, - mojo::ScopedMessagePipeHandle* interface_pipe) override; void OnCursorChanged(const content::WebCursor& cursor) override; void DidAcquireFullscreen(content::RenderFrameHost* rfh) override; @@ -770,8 +765,6 @@ class WebContents : public gin::Wrappable, // Stores the frame thats currently in fullscreen, nullptr if there is none. content::RenderFrameHost* fullscreen_frame_ = nullptr; - service_manager::BinderRegistryWithArgs registry_; - base::WeakPtrFactory weak_factory_{this}; DISALLOW_COPY_AND_ASSIGN(WebContents); diff --git a/shell/browser/browser_process_impl.cc b/shell/browser/browser_process_impl.cc index f322bf75c0..10b0b07c85 100644 --- a/shell/browser/browser_process_impl.cc +++ b/shell/browser/browser_process_impl.cc @@ -89,6 +89,12 @@ BuildState* BrowserProcessImpl::GetBuildState() { return nullptr; } +breadcrumbs::BreadcrumbPersistentStorageManager* +BrowserProcessImpl::GetBreadcrumbPersistentStorageManager() { + NOTIMPLEMENTED(); + return nullptr; +} + void BrowserProcessImpl::PostEarlyInitialization() { PrefServiceFactory prefs_factory; auto pref_registry = base::MakeRefCounted(); diff --git a/shell/browser/browser_process_impl.h b/shell/browser/browser_process_impl.h index 1f9ad3b97d..a2628a3320 100644 --- a/shell/browser/browser_process_impl.h +++ b/shell/browser/browser_process_impl.h @@ -39,6 +39,8 @@ class BrowserProcessImpl : public BrowserProcess { static void ApplyProxyModeFromCommandLine(ValueMapPrefStore* pref_store); BuildState* GetBuildState() override; + breadcrumbs::BreadcrumbPersistentStorageManager* + GetBreadcrumbPersistentStorageManager() override; void PostEarlyInitialization(); void PreCreateThreads(); void PostDestroyThreads() {} diff --git a/shell/browser/electron_browser_client.cc b/shell/browser/electron_browser_client.cc index fdb358018b..fca85afec5 100644 --- a/shell/browser/electron_browser_client.cc +++ b/shell/browser/electron_browser_client.cc @@ -192,6 +192,14 @@ #include "ui/views/widget/widget.h" #endif +#if BUILDFLAG(ENABLE_PRINTING) +#include "shell/browser/printing/print_view_manager_electron.h" +#endif + +#if BUILDFLAG(ENABLE_PDF_VIEWER) +#include "components/pdf/browser/pdf_web_contents_helper.h" // nogncheck +#endif + using content::BrowserThread; namespace electron { @@ -1309,16 +1317,15 @@ void ElectronBrowserClient::CreateWebSocket( if (web_request_api && web_request_api->MayHaveProxies()) { web_request_api->ProxyWebSocket(frame, std::move(factory), url, - site_for_cookies.RepresentativeUrl(), - user_agent, std::move(handshake_client)); + site_for_cookies, user_agent, + std::move(handshake_client)); return; } } #endif ProxyingWebSocket::StartProxying( - web_request.get(), std::move(factory), url, - site_for_cookies.RepresentativeUrl(), user_agent, + web_request.get(), std::move(factory), url, site_for_cookies, user_agent, std::move(handshake_client), true, frame->GetProcess()->GetID(), frame->GetRoutingID(), frame->GetLastCommittedOrigin(), browser_context, &next_id_); @@ -1446,6 +1453,33 @@ bool ElectronBrowserClient::BindAssociatedReceiverFromFrame( render_frame_host); return true; } +#if BUILDFLAG(ENABLE_PRINTING) + if (interface_name == printing::mojom::PrintManagerHost::Name_) { + mojo::PendingAssociatedReceiver receiver( + std::move(*handle)); + PrintViewManagerElectron::BindPrintManagerHost(std::move(receiver), + render_frame_host); + return true; + } +#endif +#if BUILDFLAG(ENABLE_EXTENSIONS) + if (interface_name == extensions::mojom::LocalFrameHost::Name_) { + extensions::ExtensionWebContentsObserver::BindLocalFrameHost( + mojo::PendingAssociatedReceiver( + std::move(*handle)), + render_frame_host); + return true; + } +#endif +#if BUILDFLAG(ENABLE_PDF_VIEWER) + if (interface_name == pdf::mojom::PdfService::Name_) { + pdf::PDFWebContentsHelper::BindPdfService( + mojo::PendingAssociatedReceiver( + std::move(*handle)), + render_frame_host); + return true; + } +#endif return false; } diff --git a/shell/browser/extensions/api/tabs/tabs_api.cc b/shell/browser/extensions/api/tabs/tabs_api.cc index 9829b4454a..6a69e44c03 100644 --- a/shell/browser/extensions/api/tabs/tabs_api.cc +++ b/shell/browser/extensions/api/tabs/tabs_api.cc @@ -67,11 +67,10 @@ ExecuteCodeFunction::InitResult ExecuteCodeInTabFunction::Init() { if (init_result_) return init_result_.value(); - const auto& list = args_->GetList(); - if (list.size() < 2) + if (args().size() < 2) return set_init_result(VALIDATION_FAILURE); - const auto& tab_id_value = list[0]; + const auto& tab_id_value = args()[0]; // |tab_id| is optional so it's ok if it's not there. int tab_id = -1; if (tab_id_value.is_int()) { @@ -83,7 +82,7 @@ ExecuteCodeFunction::InitResult ExecuteCodeInTabFunction::Init() { } // |details| are not optional. - const base::Value& details_value = list[1]; + const base::Value& details_value = args()[1]; if (!details_value.is_dict()) return set_init_result(VALIDATION_FAILURE); std::unique_ptr details(new InjectDetails()); @@ -184,7 +183,7 @@ bool TabsExecuteScriptFunction::ShouldRemoveCSS() const { } ExtensionFunction::ResponseAction TabsGetFunction::Run() { - std::unique_ptr params(tabs::Get::Params::Create(*args_)); + std::unique_ptr params(tabs::Get::Params::Create(args())); EXTENSION_FUNCTION_VALIDATE(params.get()); int tab_id = params->tab_id; @@ -206,7 +205,7 @@ ExtensionFunction::ResponseAction TabsGetFunction::Run() { ExtensionFunction::ResponseAction TabsSetZoomFunction::Run() { std::unique_ptr params( - tabs::SetZoom::Params::Create(*args_)); + tabs::SetZoom::Params::Create(args())); EXTENSION_FUNCTION_VALIDATE(params); int tab_id = params->tab_id ? *params->tab_id : -1; @@ -234,7 +233,7 @@ ExtensionFunction::ResponseAction TabsSetZoomFunction::Run() { ExtensionFunction::ResponseAction TabsGetZoomFunction::Run() { std::unique_ptr params( - tabs::GetZoom::Params::Create(*args_)); + tabs::GetZoom::Params::Create(args())); EXTENSION_FUNCTION_VALIDATE(params); int tab_id = params->tab_id ? *params->tab_id : -1; @@ -250,7 +249,7 @@ ExtensionFunction::ResponseAction TabsGetZoomFunction::Run() { ExtensionFunction::ResponseAction TabsGetZoomSettingsFunction::Run() { std::unique_ptr params( - tabs::GetZoomSettings::Params::Create(*args_)); + tabs::GetZoomSettings::Params::Create(args())); EXTENSION_FUNCTION_VALIDATE(params); int tab_id = params->tab_id ? *params->tab_id : -1; @@ -274,7 +273,7 @@ ExtensionFunction::ResponseAction TabsSetZoomSettingsFunction::Run() { using api::tabs::ZoomSettings; std::unique_ptr params( - tabs::SetZoomSettings::Params::Create(*args_)); + tabs::SetZoomSettings::Params::Create(args())); EXTENSION_FUNCTION_VALIDATE(params); int tab_id = params->tab_id ? *params->tab_id : -1; @@ -401,7 +400,7 @@ TabsUpdateFunction::TabsUpdateFunction() : web_contents_(nullptr) {} ExtensionFunction::ResponseAction TabsUpdateFunction::Run() { std::unique_ptr params( - tabs::Update::Params::Create(*args_)); + tabs::Update::Params::Create(args())); EXTENSION_FUNCTION_VALIDATE(params.get()); int tab_id = params->tab_id ? *params->tab_id : -1; diff --git a/shell/browser/feature_list.cc b/shell/browser/feature_list.cc index 8a488a0829..349d7acf54 100644 --- a/shell/browser/feature_list.cc +++ b/shell/browser/feature_list.cc @@ -30,14 +30,7 @@ void InitializeFeatureList() { // Can be reenabled when our site instance policy is aligned with chromium // when node integration is enabled. disable_features += - std::string(",") + features::kSpareRendererForSitePerProcess.name + - // Disable SameSite-by-default, this will be a breaking change for many - // apps which cannot land in master until 11-x-y is branched out. For more - // info - // 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(",") + features::kSpareRendererForSitePerProcess.name; #if !BUILDFLAG(ENABLE_PICTURE_IN_PICTURE) disable_features += std::string(",") + media::kPictureInPicture.name; @@ -48,12 +41,6 @@ void InitializeFeatureList() { // an empty suggestions list to be returned disable_features += std::string(",") + spellcheck::kWinRetrieveSuggestionsOnlyOnDemand.name; -#endif -#if defined(OS_MAC) - // Disable kWindowCaptureMacV2, which causes the wrong window id to - // be returned (this has been disabled in upstream Chromium here): - // https://chromium-review.googlesource.com/c/chromium/src/+/3069272 - disable_features += std::string(",") + features::kWindowCaptureMacV2.name; #endif base::FeatureList::InitializeInstance(enable_features, disable_features); } diff --git a/shell/browser/native_window_mac.mm b/shell/browser/native_window_mac.mm index 2c0513ff04..7c84c5ebc8 100644 --- a/shell/browser/native_window_mac.mm +++ b/shell/browser/native_window_mac.mm @@ -23,7 +23,6 @@ #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/desktop_media_id.h" -#include "content/public/common/content_features.h" #include "shell/browser/javascript_environment.h" #include "shell/browser/native_browser_view_mac.h" #include "shell/browser/ui/cocoa/electron_native_widget_mac.h" @@ -1236,11 +1235,13 @@ content::DesktopMediaID NativeWindowMac::GetDesktopMediaID() const { content::DesktopMediaID::TYPE_WINDOW, GetAcceleratedWidget()); // c.f. // https://source.chromium.org/chromium/chromium/src/+/master:chrome/browser/media/webrtc/native_desktop_media_list.cc;l=372?q=kWindowCaptureMacV2&ss=chromium - if (base::FeatureList::IsEnabled(features::kWindowCaptureMacV2)) { + // Refs https://github.com/electron/electron/pull/30507 + // TODO(deepak1556): Match upstream for `kWindowCaptureMacV2` +#if 0 if (remote_cocoa::ScopedCGWindowID::Get(desktop_media_id.id)) { desktop_media_id.window_id = desktop_media_id.id; } - } +#endif return desktop_media_id; } diff --git a/shell/browser/net/network_context_service.cc b/shell/browser/net/network_context_service.cc index 12aea0f14c..52bf91b354 100644 --- a/shell/browser/net/network_context_service.cc +++ b/shell/browser/net/network_context_service.cc @@ -81,13 +81,9 @@ void NetworkContextService::ConfigureNetworkContextParams( network_context_params->enable_encrypted_cookies = electron::fuses::IsCookieEncryptionEnabled(); - network_context_params->transport_security_persister_path = path; + network_context_params->transport_security_persister_file_path = path; } -#if !BUILDFLAG(DISABLE_FTP_SUPPORT) - network_context_params->enable_ftp_url_support = true; -#endif // !BUILDFLAG(DISABLE_FTP_SUPPORT) - proxy_config_monitor_.AddToNetworkContextParams(network_context_params); BrowserProcessImpl::ApplyProxyModeFromCommandLine( diff --git a/shell/browser/net/proxying_websocket.cc b/shell/browser/net/proxying_websocket.cc index fd952f5d80..3d051e4d9f 100644 --- a/shell/browser/net/proxying_websocket.cc +++ b/shell/browser/net/proxying_websocket.cc @@ -230,7 +230,7 @@ void ProxyingWebSocket::StartProxying( WebRequestAPI* web_request_api, WebSocketFactory factory, const GURL& url, - const GURL& site_for_cookies, + const net::SiteForCookies& site_for_cookies, const absl::optional& user_agent, mojo::PendingRemote handshake_client, @@ -243,7 +243,7 @@ void ProxyingWebSocket::StartProxying( DCHECK_CURRENTLY_ON(content::BrowserThread::UI); network::ResourceRequest request; request.url = url; - request.site_for_cookies = net::SiteForCookies::FromUrl(site_for_cookies); + request.site_for_cookies = site_for_cookies; if (user_agent) { request.headers.SetHeader(net::HttpRequestHeaders::kUserAgent, *user_agent); } diff --git a/shell/browser/net/proxying_websocket.h b/shell/browser/net/proxying_websocket.h index 25a4f03595..0be3da1f89 100644 --- a/shell/browser/net/proxying_websocket.h +++ b/shell/browser/net/proxying_websocket.h @@ -95,7 +95,7 @@ class ProxyingWebSocket : public network::mojom::WebSocketHandshakeClient, WebRequestAPI* web_request_api, WebSocketFactory factory, const GURL& url, - const GURL& site_for_cookies, + const net::SiteForCookies& site_for_cookies, const absl::optional& user_agent, mojo::PendingRemote handshake_client, diff --git a/shell/browser/net/system_network_context_manager.cc b/shell/browser/net/system_network_context_manager.cc index 1241fc009f..f02fb58e7f 100644 --- a/shell/browser/net/system_network_context_manager.cc +++ b/shell/browser/net/system_network_context_manager.cc @@ -191,10 +191,6 @@ void SystemNetworkContextManager::ConfigureDefaultNetworkContextParams( network_context_params->proxy_resolver_factory = ChromeMojoProxyResolverFactory::CreateWithSelfOwnedReceiver(); - -#if !BUILDFLAG(DISABLE_FTP_SUPPORT) - network_context_params->enable_ftp_url_support = true; -#endif } // static diff --git a/shell/browser/printing/print_view_manager_electron.cc b/shell/browser/printing/print_view_manager_electron.cc index d33a9e3960..2578fbb844 100644 --- a/shell/browser/printing/print_view_manager_electron.cc +++ b/shell/browser/printing/print_view_manager_electron.cc @@ -16,6 +16,19 @@ PrintViewManagerElectron::PrintViewManagerElectron( PrintViewManagerElectron::~PrintViewManagerElectron() = default; +// static +void PrintViewManagerElectron::BindPrintManagerHost( + mojo::PendingAssociatedReceiver receiver, + content::RenderFrameHost* rfh) { + auto* web_contents = content::WebContents::FromRenderFrameHost(rfh); + if (!web_contents) + return; + auto* print_manager = PrintViewManagerElectron::FromWebContents(web_contents); + if (!print_manager) + return; + print_manager->BindReceiver(std::move(receiver), rfh); +} + void PrintViewManagerElectron::SetupScriptedPrintPreview( SetupScriptedPrintPreviewCallback callback) { std::move(callback).Run(); diff --git a/shell/browser/printing/print_view_manager_electron.h b/shell/browser/printing/print_view_manager_electron.h index 5d9dc8bb2f..687efc5f24 100644 --- a/shell/browser/printing/print_view_manager_electron.h +++ b/shell/browser/printing/print_view_manager_electron.h @@ -18,6 +18,11 @@ class PrintViewManagerElectron public: ~PrintViewManagerElectron() override; + static void BindPrintManagerHost( + mojo::PendingAssociatedReceiver + receiver, + content::RenderFrameHost* rfh); + void SetupScriptedPrintPreview( SetupScriptedPrintPreviewCallback callback) override; void ShowScriptedPrintPreview(bool source_is_modifiable) override; diff --git a/shell/browser/ui/inspectable_web_contents.cc b/shell/browser/ui/inspectable_web_contents.cc index 6be0a4e3ae..5c864eebdb 100644 --- a/shell/browser/ui/inspectable_web_contents.cc +++ b/shell/browser/ui/inspectable_web_contents.cc @@ -868,7 +868,7 @@ void InspectableWebContents::SetPreference(const std::string& name, void InspectableWebContents::RemovePreference(const std::string& name) { DictionaryPrefUpdate update(pref_service_, kDevToolsPreferences); - update.Get()->RemoveWithoutPathExpansion(name, nullptr); + update.Get()->RemoveKey(name); } void InspectableWebContents::ClearPreferences() { diff --git a/shell/browser/ui/views/autofill_popup_view.cc b/shell/browser/ui/views/autofill_popup_view.cc index ef3799d096..60d8d7eaa9 100644 --- a/shell/browser/ui/views/autofill_popup_view.cc +++ b/shell/browser/ui/views/autofill_popup_view.cc @@ -213,7 +213,7 @@ void AutofillPopupView::CreateChildViews() { if (!popup_) return; - RemoveAllChildViews(true); + RemoveAllChildViews(); for (int i = 0; i < popup_->GetLineCount(); ++i) { auto* child_view = new AutofillPopupChildView(popup_->GetValueAt(i)); diff --git a/shell/browser/ui/views/menu_bar.cc b/shell/browser/ui/views/menu_bar.cc index b88210513d..74c6a6a436 100644 --- a/shell/browser/ui/views/menu_bar.cc +++ b/shell/browser/ui/views/menu_bar.cc @@ -218,7 +218,7 @@ void MenuBar::RefreshColorCache(const ui::NativeTheme* theme) { } void MenuBar::RebuildChildren() { - RemoveAllChildViews(true); + RemoveAllChildViews(); for (int i = 0, n = GetItemCount(); i < n; ++i) { auto* button = new SubmenuButton( base::BindRepeating(&MenuBar::ButtonPressed, base::Unretained(this), i), diff --git a/shell/browser/zoom_level_delegate.cc b/shell/browser/zoom_level_delegate.cc index a2c340a212..dccdba702d 100644 --- a/shell/browser/zoom_level_delegate.cc +++ b/shell/browser/zoom_level_delegate.cc @@ -94,7 +94,7 @@ void ZoomLevelDelegate::OnZoomLevelChanged( } if (modification_is_removal) - host_zoom_dictionary->RemoveWithoutPathExpansion(change.host, nullptr); + host_zoom_dictionary->RemoveKey(change.host); else host_zoom_dictionary->SetKey(change.host, base::Value(level)); } @@ -107,9 +107,7 @@ void ZoomLevelDelegate::ExtractPerHostZoomLevels( for (base::DictionaryValue::Iterator i(*host_zoom_dictionary_copy); !i.IsAtEnd(); i.Advance()) { const std::string& host(i.key()); - double zoom_level = 0; - - bool has_valid_zoom_level = i.value().GetAsDouble(&zoom_level); + const absl::optional zoom_level = i.value().GetIfDouble(); // Filter out A) the empty host, B) zoom levels equal to the default; and // remember them, so that we can later erase them from Prefs. @@ -117,14 +115,14 @@ void ZoomLevelDelegate::ExtractPerHostZoomLevels( // level was set to its current value. In either case, SetZoomLevelForHost // will ignore type B values, thus, to have consistency with HostZoomMap's // internal state, these values must also be removed from Prefs. - if (host.empty() || !has_valid_zoom_level || - blink::PageZoomValuesEqual(zoom_level, + if (host.empty() || !zoom_level || + blink::PageZoomValuesEqual(*zoom_level, host_zoom_map_->GetDefaultZoomLevel())) { keys_to_remove.push_back(host); continue; } - host_zoom_map_->SetZoomLevelForHost(host, zoom_level); + host_zoom_map_->SetZoomLevelForHost(host, *zoom_level); } // Sanitize prefs to remove entries that match the default zoom level and/or @@ -136,7 +134,7 @@ void ZoomLevelDelegate::ExtractPerHostZoomLevels( host_zoom_dictionaries->GetDictionary(partition_key_, &sanitized_host_zoom_dictionary); for (const std::string& s : keys_to_remove) - sanitized_host_zoom_dictionary->RemoveWithoutPathExpansion(s, nullptr); + sanitized_host_zoom_dictionary->RemoveKey(s); } } diff --git a/shell/common/api/electron_api_clipboard.cc b/shell/common/api/electron_api_clipboard.cc index 05d24fff38..24d8afde42 100644 --- a/shell/common/api/electron_api_clipboard.cc +++ b/shell/common/api/electron_api_clipboard.cc @@ -4,6 +4,8 @@ #include "shell/common/api/electron_api_clipboard.h" +#include + #include "base/strings/utf_string_conversions.h" #include "shell/common/gin_converters/image_converter.h" #include "shell/common/gin_helper/dictionary.h" @@ -41,15 +43,27 @@ bool Clipboard::Has(const std::string& format_string, ui::ClipboardFormatType format( ui::ClipboardFormatType::GetType(format_string)); if (format.GetName().empty()) - format = ui::ClipboardFormatType::GetCustomPlatformType(format_string); + format = ui::ClipboardFormatType::CustomPlatformType(format_string); return clipboard->IsFormatAvailable(format, GetClipboardBuffer(args), /* data_dst = */ nullptr); } std::string Clipboard::Read(const std::string& format_string) { ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread(); - ui::ClipboardFormatType format( - ui::ClipboardFormatType::GetCustomPlatformType(format_string)); + std::map custom_format_names; + custom_format_names = + clipboard->ExtractCustomPlatformNames(ui::ClipboardBuffer::kCopyPaste, + /* data_dst = */ nullptr); +#if defined(OS_LINUX) + if (custom_format_names.find(format_string) == custom_format_names.end()) { + custom_format_names = + clipboard->ExtractCustomPlatformNames(ui::ClipboardBuffer::kSelection, + /* data_dst = */ nullptr); + } +#endif + CHECK(custom_format_names.find(format_string) != custom_format_names.end()); + ui::ClipboardFormatType format(ui::ClipboardFormatType::CustomPlatformType( + custom_format_names[format_string])); std::string data; clipboard->ReadData(format, /* data_dst = */ nullptr, &data); diff --git a/shell/common/asar/archive.cc b/shell/common/asar/archive.cc index e783c90098..b3a8a7d1b0 100644 --- a/shell/common/asar/archive.cc +++ b/shell/common/asar/archive.cc @@ -43,10 +43,10 @@ bool GetFilesNode(const base::DictionaryValue* root, const base::DictionaryValue* dir, const base::DictionaryValue** out) { // Test for symbol linked directory. - std::string link; - if (dir->GetStringWithoutPathExpansion("link", &link)) { + const std::string* link = dir->FindStringKey("link"); + if (link != nullptr) { const base::DictionaryValue* linked_node = nullptr; - if (!GetNodeFromPath(link, root, &linked_node)) + if (!GetNodeFromPath(*link, root, &linked_node)) return false; dir = linked_node; } diff --git a/shell/common/gin_converters/net_converter.cc b/shell/common/gin_converters/net_converter.cc index 46b6271178..96bfab8032 100644 --- a/shell/common/gin_converters/net_converter.cc +++ b/shell/common/gin_converters/net_converter.cc @@ -330,14 +330,16 @@ bool Converter>::FromV8( reinterpret_cast(bytes->GetBlob().data()), base::checked_cast(bytes->GetBlob().size())); } else if (type == "file") { - std::string file; + const std::string* file = dict->FindStringKey("filePath"); + if (file == nullptr) { + return false; + } int offset = 0, length = -1; double modification_time = 0.0; - dict->GetStringWithoutPathExpansion("filePath", &file); dict->GetInteger("offset", &offset); dict->GetInteger("file", &length); dict->GetDouble("modificationTime", &modification_time); - (*out)->AppendFileRange(base::FilePath::FromUTF8Unsafe(file), + (*out)->AppendFileRange(base::FilePath::FromUTF8Unsafe(*file), static_cast(offset), static_cast(length), base::Time::FromDoubleT(modification_time)); diff --git a/spec-main/extensions-spec.ts b/spec-main/extensions-spec.ts index a71c2b75bd..0018234449 100644 --- a/spec-main/extensions-spec.ts +++ b/spec-main/extensions-spec.ts @@ -490,7 +490,7 @@ describe('chrome extensions', () => { const showLastPanel = () => { // this is executed in the devtools context, where UI is a global const { UI } = (window as any); - const tabs = UI.inspectorView._tabbedPane._tabs; + const tabs = UI.inspectorView.tabbedPane.tabs; const lastPanelId = tabs[tabs.length - 1].id; UI.inspectorView.showPanel(lastPanelId); }; diff --git a/spec-main/fixtures/extensions/mv3-service-worker/manifest.json b/spec-main/fixtures/extensions/mv3-service-worker/manifest.json index 9e11c2f1e5..bc81e3a6a5 100644 --- a/spec-main/fixtures/extensions/mv3-service-worker/manifest.json +++ b/spec-main/fixtures/extensions/mv3-service-worker/manifest.json @@ -5,6 +5,5 @@ "manifest_version": 3, "background": { "service_worker": "background.js" - }, - "permissions": ["scripting"] + } } diff --git a/spec-main/webview-spec.ts b/spec-main/webview-spec.ts index abf31f4f3e..9aa4e5f95b 100644 --- a/spec-main/webview-spec.ts +++ b/spec-main/webview-spec.ts @@ -255,7 +255,7 @@ describe(' tag', function () { if (!webContents.isDestroyed() && webContents.devToolsWebContents) { webContents.devToolsWebContents.executeJavaScript('(' + function () { const { UI } = (window as any); - const tabs = UI.inspectorView._tabbedPane._tabs; + const tabs = UI.inspectorView.tabbedPane.tabs; const lastPanelId: any = tabs[tabs.length - 1].id; UI.inspectorView.showPanel(lastPanelId); }.toString() + ')()'); diff --git a/spec/fixtures/api/cookie-app/main.js b/spec/fixtures/api/cookie-app/main.js index f6791e923d..dc10bb8c5d 100644 --- a/spec/fixtures/api/cookie-app/main.js +++ b/spec/fixtures/api/cookie-app/main.js @@ -10,7 +10,8 @@ app.whenReady().then(async function () { url, name, value, - expirationDate: Date.now() + 60000 + expirationDate: Date.now() + 60000, + sameSite: 'strict' }); const get = () => persistentSession.cookies.get({ @@ -33,7 +34,7 @@ app.whenReady().then(async function () { process.stdout.write(`${one.length}${two.length}${three.length}`); } catch (e) { - process.stdout.write('ERROR'); + process.stdout.write(`ERROR : ${e.message}`); } finally { process.stdout.end();