diff --git a/DEPS b/DEPS index aa7afdb3214c..263fae42a7b3 100644 --- a/DEPS +++ b/DEPS @@ -2,7 +2,7 @@ gclient_gn_args_from = 'src' vars = { 'chromium_version': - '105.0.5129.0', + '105.0.5173.0', 'node_version': 'v16.15.1', 'nan_version': diff --git a/chromium_src/BUILD.gn b/chromium_src/BUILD.gn index ffd4dacca88e..bfd971e576a8 100644 --- a/chromium_src/BUILD.gn +++ b/chromium_src/BUILD.gn @@ -388,14 +388,19 @@ source_set("chrome_spellchecker") { "//chrome/browser/spellchecker/spellcheck_factory.h", "//chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc", "//chrome/browser/spellchecker/spellcheck_hunspell_dictionary.h", - "//chrome/browser/spellchecker/spellcheck_language_blocklist_policy_handler.cc", - "//chrome/browser/spellchecker/spellcheck_language_blocklist_policy_handler.h", - "//chrome/browser/spellchecker/spellcheck_language_policy_handler.cc", - "//chrome/browser/spellchecker/spellcheck_language_policy_handler.h", "//chrome/browser/spellchecker/spellcheck_service.cc", "//chrome/browser/spellchecker/spellcheck_service.h", ] + if (!is_mac) { + sources += [ + "//chrome/browser/spellchecker/spellcheck_language_blocklist_policy_handler.cc", + "//chrome/browser/spellchecker/spellcheck_language_blocklist_policy_handler.h", + "//chrome/browser/spellchecker/spellcheck_language_policy_handler.cc", + "//chrome/browser/spellchecker/spellcheck_language_policy_handler.h", + ] + } + if (has_spellcheck_panel) { sources += [ "//chrome/browser/spellchecker/spell_check_panel_host_impl.cc", diff --git a/patches/chromium/.patches b/patches/chromium/.patches index e0cb53f32a2a..1d5849b4368a 100644 --- a/patches/chromium/.patches +++ b/patches/chromium/.patches @@ -111,5 +111,4 @@ build_disable_print_content_analysis.patch custom_protocols_plzserviceworker.patch feat_filter_out_non-shareable_windows_in_the_current_application_in.patch fix_allow_guest_webcontents_to_enter_fullscreen.patch -posix_replace_doubleforkandexec_with_forkandspawn.patch disable_freezing_flags_after_init_in_node.patch diff --git a/patches/chromium/add_contentgpuclient_precreatemessageloop_callback.patch b/patches/chromium/add_contentgpuclient_precreatemessageloop_callback.patch index 65e54de741e2..9cb88ba5ded9 100644 --- a/patches/chromium/add_contentgpuclient_precreatemessageloop_callback.patch +++ b/patches/chromium/add_contentgpuclient_precreatemessageloop_callback.patch @@ -10,7 +10,7 @@ Allows Electron to restore WER when ELECTRON_DEFAULT_ERROR_MODE is set. This should be upstreamed. diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc -index b017e2bf97a4a15cb7af384d9b4e54aa729a997c..fc59b7040bf68e90fbbe516b5321a519a5e77b2a 100644 +index ff57e2a67ccc37be912ba3fca9df4b9e28898c6e..0045b3c1b89728e3950929b49e15bbc67a826c02 100644 --- a/content/gpu/gpu_main.cc +++ b/content/gpu/gpu_main.cc @@ -239,6 +239,10 @@ int GpuMain(MainFunctionParams parameters) { @@ -24,8 +24,8 @@ index b017e2bf97a4a15cb7af384d9b4e54aa729a997c..fc59b7040bf68e90fbbe516b5321a519 // We are experiencing what appear to be memory-stomp issues in the GPU // process. These issues seem to be impacting the task executor and listeners // registered to it. Create the task executor on the heap to guard against -@@ -344,7 +348,6 @@ int GpuMain(MainFunctionParams parameters) { - ChildProcess gpu_process(io_thread_priority); +@@ -337,7 +341,6 @@ int GpuMain(MainFunctionParams parameters) { + ChildProcess gpu_process(io_thread_type); DCHECK(base::ThreadPoolInstance::Get()->WasStarted()); - auto* client = GetContentClient()->gpu(); diff --git a/patches/chromium/add_didinstallconditionalfeatures.patch b/patches/chromium/add_didinstallconditionalfeatures.patch index 91312aeb13cb..324d264d1abd 100644 --- a/patches/chromium/add_didinstallconditionalfeatures.patch +++ b/patches/chromium/add_didinstallconditionalfeatures.patch @@ -23,10 +23,10 @@ index 5a7d3da58451f491ed6dfabd3bc31a645843bb60..36cbf8c5c01330acc8b3a708bd6481ed int32_t world_id) {} virtual void DidClearWindowObject() {} diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc -index f479e7ce6ceb21e67f72dd29589dfda180e438b0..23dcc6507ed9151f657689904bf90d3b2e8ae3d3 100644 +index eaf9a9483d89cd47bef63ff7f2868c0174a3c3bb..19bd5ef930bc094b315d2562c0f4917e78f63bad 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -4474,6 +4474,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local context, +@@ -4397,6 +4397,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local context, observer.DidCreateScriptContext(context, world_id); } @@ -40,10 +40,10 @@ index f479e7ce6ceb21e67f72dd29589dfda180e438b0..23dcc6507ed9151f657689904bf90d3b int world_id) { for (auto& observer : observers_) diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h -index ac30039d95f1f4c73067df58d8af63190b352030..c674c87797fc8ea057f5b94aabbb53b92bded031 100644 +index feca00f2e36d1c02be5e56e787ea8f67eab45df6..9a4c57ddb3aebff2365ea7563803b169c7787c5e 100644 --- a/content/renderer/render_frame_impl.h +++ b/content/renderer/render_frame_impl.h -@@ -609,6 +609,8 @@ class CONTENT_EXPORT RenderFrameImpl +@@ -605,6 +605,8 @@ class CONTENT_EXPORT RenderFrameImpl uint32_t ng_call_count) override; void DidCreateScriptContext(v8::Local context, int world_id) override; @@ -123,10 +123,10 @@ index c95ef4a4a3f9d40e0e4bedf6fc42225190626c42..36cc932782437b9f5d301416f5a4e8f4 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 d1e2d799602ce3b671e7e33afc57923fcc066f00..64dc35a4ba05521dc55b69d2413010ae47b10152 100644 +index 6b4142bf7f85c64af6f845613568679276c7e698..21462bb2196b353c32cf05d0c53635ac77673567 100644 --- a/third_party/blink/renderer/core/loader/empty_clients.h +++ b/third_party/blink/renderer/core/loader/empty_clients.h -@@ -352,6 +352,8 @@ class CORE_EXPORT EmptyLocalFrameClient : public LocalFrameClient { +@@ -359,6 +359,8 @@ class CORE_EXPORT EmptyLocalFrameClient : public LocalFrameClient { void DidCreateScriptContext(v8::Local, int32_t world_id) override {} 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 6b6c839e9dff..688159b6c492 100644 --- a/patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch +++ b/patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch @@ -48,18 +48,18 @@ index 4d2a4c6746e1dbfc619faf2e16eaa4948d74e372..6c9f190ff595234eca18ff20ca0655da // This interface should only be implemented inside content. friend class RenderViewHostImpl; diff --git a/content/renderer/render_view_impl.h b/content/renderer/render_view_impl.h -index 99978b33c294ebe37192baccb29f0a34a25aed17..ef6e9ae24979538b8746aca898d1f302827491d8 100644 +index 2f073474d8be6d8051606b0f07272969d3936f28..7f9ec06a10b4cba254737fabdc38dddf86137ad7 100644 --- a/content/renderer/render_view_impl.h +++ b/content/renderer/render_view_impl.h -@@ -151,6 +151,8 @@ class CONTENT_EXPORT RenderViewImpl : public blink::WebViewClient, - static WindowOpenDisposition NavigationPolicyToDisposition( - blink::WebNavigationPolicy policy); +@@ -147,6 +147,8 @@ class CONTENT_EXPORT RenderViewImpl : public blink::WebViewClient { + bool was_created_by_renderer, + scoped_refptr task_runner); + void OnSetSchedulerThrottling(bool allowed); + - // --------------------------------------------------------------------------- - // ADDING NEW FUNCTIONS? Please keep private functions alphabetized and put - // it in the same order in the .cc file as it was in the header. + static WindowOpenDisposition NavigationPolicyToDisposition( + blink::WebNavigationPolicy policy); + diff --git a/third_party/blink/public/mojom/page/page.mojom b/third_party/blink/public/mojom/page/page.mojom index 39bfc2200e924d0c589cfd07f085f182ef6853a6..bddff6d5ad3f6d08c4dc48e66ebc5319b1a5ec28 100644 --- a/third_party/blink/public/mojom/page/page.mojom @@ -73,10 +73,10 @@ index 39bfc2200e924d0c589cfd07f085f182ef6853a6..bddff6d5ad3f6d08c4dc48e66ebc5319 + SetSchedulerThrottling(bool allowed); }; diff --git a/third_party/blink/public/web/web_view.h b/third_party/blink/public/web/web_view.h -index 5e4032ccf916f969cd669af7d983becddb57c72b..a858c9f2fa609ae756a2e70d0362f2de372dd5be 100644 +index 99f0ceb45972df14813b72300e6a59710f13597f..f5e15865bf0bad73d9505698e788c1e954f46c2c 100644 --- a/third_party/blink/public/web/web_view.h +++ b/third_party/blink/public/web/web_view.h -@@ -364,6 +364,7 @@ class WebView { +@@ -361,6 +361,7 @@ class WebView { // Scheduling ----------------------------------------------------------- virtual PageScheduler* Scheduler() const = 0; @@ -85,10 +85,10 @@ index 5e4032ccf916f969cd669af7d983becddb57c72b..a858c9f2fa609ae756a2e70d0362f2de // 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 deeeab3e6ead93cb3be26f4b40caeeef8bfaafa5..98c257b43cf198481bcaa8f080add28e60e7d9a2 100644 +index 96d329c005ad74f2409c42d2ef8e62b28a18174d..3e28873ed5181756ab62e14ca9c2c4b27b4378f1 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -3732,6 +3732,13 @@ PageScheduler* WebViewImpl::Scheduler() const { +@@ -3723,6 +3723,13 @@ PageScheduler* WebViewImpl::Scheduler() const { return GetPage()->GetPageScheduler(); } @@ -102,7 +102,7 @@ index deeeab3e6ead93cb3be26f4b40caeeef8bfaafa5..98c257b43cf198481bcaa8f080add28e void WebViewImpl::SetVisibilityState( mojom::blink::PageVisibilityState visibility_state, bool is_initial_state) { -@@ -3743,7 +3750,8 @@ void WebViewImpl::SetVisibilityState( +@@ -3734,7 +3741,8 @@ void WebViewImpl::SetVisibilityState( } GetPage()->SetVisibilityState(visibility_state, is_initial_state); GetPage()->GetPageScheduler()->SetPageVisible( @@ -113,10 +113,10 @@ index deeeab3e6ead93cb3be26f4b40caeeef8bfaafa5..98c257b43cf198481bcaa8f080add28e mojom::blink::PageVisibilityState WebViewImpl::GetVisibilityState() { diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_party/blink/renderer/core/exported/web_view_impl.h -index 2f8e971ab224b36c6e464eb7524dd3d4c6b76f8c..4a9664d0ce5de431d9638e4145a21091cea78fd1 100644 +index 6a36275fdd7ac12f91a40b60284b73fc93679749..f264c5ee5c2c38d4ccf15877accfdc31c48ec9f9 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.h +++ b/third_party/blink/renderer/core/exported/web_view_impl.h -@@ -418,6 +418,7 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -417,6 +417,7 @@ class CORE_EXPORT WebViewImpl final : public WebView, LocalDOMWindow* PagePopupWindow() const; PageScheduler* Scheduler() const override; @@ -124,7 +124,7 @@ index 2f8e971ab224b36c6e464eb7524dd3d4c6b76f8c..4a9664d0ce5de431d9638e4145a21091 void SetVisibilityState(mojom::blink::PageVisibilityState visibility_state, bool is_initial_state) override; mojom::blink::PageVisibilityState GetVisibilityState() override; -@@ -865,6 +866,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -864,6 +865,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, // If true, we send IPC messages when |preferred_size_| changes. bool send_preferred_size_changes_ = false; diff --git a/patches/chromium/blink_local_frame.patch b/patches/chromium/blink_local_frame.patch index 5521df73eb7f..d70c093f5778 100644 --- a/patches/chromium/blink_local_frame.patch +++ b/patches/chromium/blink_local_frame.patch @@ -49,7 +49,7 @@ index 80f4314d205f4cbf0d92a331062f8a01a46d6917..2e5c15fc2cf5d0db8d26c1eeb759f6d2 // 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 9d8a9be49ed025439b9323fe4805191db1be6e6b..9c618930625dfd7ca44c2d5c1ca25db4d9f36052 100644 +index 4730c853097462638d3bc41b7c905874ab3dc29a..18615761121f83262da362b10b8022f80809ea07 100644 --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc @@ -544,10 +544,6 @@ bool LocalFrame::DetachImpl(FrameDetachType type) { diff --git a/patches/chromium/breakpad_treat_node_processes_as_browser_processes.patch b/patches/chromium/breakpad_treat_node_processes_as_browser_processes.patch index 810480a1b56d..f10afcbb1f25 100644 --- a/patches/chromium/breakpad_treat_node_processes_as_browser_processes.patch +++ b/patches/chromium/breakpad_treat_node_processes_as_browser_processes.patch @@ -10,7 +10,7 @@ breakpad independently, as a "browser" process. This patches crash annotation. diff --git a/components/crash/core/app/breakpad_linux.cc b/components/crash/core/app/breakpad_linux.cc -index b1f8fd4494e7f5deac078023c2e0240d701e1f13..a372e9bb12f9cec6235fe529d73b6e0009328038 100644 +index 1fa85302da7a64abc42fd9558ddbcaf68b387517..62d15f57e4c5a0a24aa730e8979fb1e9537fecd3 100644 --- a/components/crash/core/app/breakpad_linux.cc +++ b/components/crash/core/app/breakpad_linux.cc @@ -719,8 +719,13 @@ bool CrashDone(const MinidumpDescriptor& minidump, 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 b87359449662..9fee1e07d832 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 @@ -33,10 +33,10 @@ index 672bc56194e1ad8b03acd639c17b7f7e67a5dba0..59ba25815e511af5ca6aca5467cc91d5 "//base", "//build:branding_buildflags", diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn -index 46197c5a6423f3278b75549d601421d2b5e139d6..b02779a76a238fd713796597bec8a82897e88f51 100644 +index fdc5d388f80dcae2f1dd8a05d7d24ed5e59250b5..4570ad0308083a62e56a5fa9c91866f9216eed5f 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -4544,7 +4544,7 @@ static_library("browser") { +@@ -4582,7 +4582,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 46197c5a6423f3278b75549d601421d2b5e139d6..b02779a76a238fd713796597bec8a828 sources += [ "certificate_viewer_stub.cc" ] } diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn -index 5d7cfeb42574b15ddac55c797000bca490274a6f..8b967ef76faa8190d0064f3fa78a661f451228e1 100644 +index 5584fa001cf9bb0fab31cc6de053a536d18c4492..6541358b2a5d41f94c1e2d5a9d57ce20661f61a7 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -5915,7 +5915,6 @@ test("unit_tests") { +@@ -5953,7 +5953,6 @@ test("unit_tests") { deps += [ "//chrome:other_version", @@ -57,7 +57,7 @@ index 5d7cfeb42574b15ddac55c797000bca490274a6f..8b967ef76faa8190d0064f3fa78a661f "//chrome//services/util_win:unit_tests", "//chrome/app:chrome_dll_resources", "//chrome/browser:chrome_process_finder", -@@ -5939,6 +5938,10 @@ test("unit_tests") { +@@ -5977,6 +5976,10 @@ test("unit_tests") { "//ui/resources", ] @@ -68,15 +68,16 @@ index 5d7cfeb42574b15ddac55c797000bca490274a6f..8b967ef76faa8190d0064f3fa78a661f ldflags = [ "/DELAYLOAD:api-ms-win-core-winrt-error-l1-1-0.dll", "/DELAYLOAD:api-ms-win-core-winrt-l1-1-0.dll", -@@ -6826,7 +6829,6 @@ test("unit_tests") { +@@ -6867,7 +6870,7 @@ test("unit_tests") { } deps += [ - "//chrome:packed_resources_integrity_hash", - "//chrome/browser:cart_db_content_proto", - "//chrome/browser:coupon_db_content_proto", - "//chrome/browser/autofill_assistant/password_change/proto:proto", -@@ -6937,6 +6939,10 @@ test("unit_tests") { ++ # "//chrome:packed_resources_integrity_hash", + "//chrome/browser/ash/system_web_apps/test_support", + "//chrome/browser/enterprise/connectors/analysis:features", + "//chrome/browser/media/router:test_support", +@@ -6982,6 +6985,10 @@ test("unit_tests") { } } diff --git a/patches/chromium/build_make_libcxx_abi_unstable_false_for_electron.patch b/patches/chromium/build_make_libcxx_abi_unstable_false_for_electron.patch index 056be0692568..2e6dc709deca 100644 --- a/patches/chromium/build_make_libcxx_abi_unstable_false_for_electron.patch +++ b/patches/chromium/build_make_libcxx_abi_unstable_false_for_electron.patch @@ -6,18 +6,23 @@ Subject: build: make libcxx_abi_unstable false for electron https://nornagon.medium.com/a-libc-odyssey-973e51649063 diff --git a/build/config/c++/BUILD.gn b/build/config/c++/BUILD.gn -index 2e5843b9f0a5d39d8dbfea0ae5d2ebb413c0ac7d..f4c901e9980ad068a2903482f712bfa8b1310057 100644 +index 09324583a2f98621fe328ec9f0178736dabe6d2b..d57c2c16ea3475c3ad77e81bdb9700ec2f64976a 100644 --- a/build/config/c++/BUILD.gn +++ b/build/config/c++/BUILD.gn -@@ -9,6 +9,11 @@ assert(use_custom_libcxx, "should only be used if use_custom_libcxx is set") - - libcxx_abi_unstable = true - -+if (is_electron_build) { -+ # This breaks native node modules -+ libcxx_abi_unstable = false -+} +@@ -29,10 +29,12 @@ config("runtime_library") { + # on Windows, the increase is great enough that we go above the 4GB size + # limit for PDBs (https://crbug.com/1327710#c5). To fix this, we set + # _LIBCPP_ABI_NAMESPACE to a shorter value. +- defines += [ +- "_LIBCPP_ABI_NAMESPACE=Cr", +- "_LIBCPP_ABI_VERSION=2", +- ] ++ defines += [ "_LIBCPP_ABI_NAMESPACE=Cr" ] + - # TODO(xiaohuic): https://crbug/917533 Crashes on internal ChromeOS build. - # Do unconditionally once the underlying problem is fixed. - if (is_chromeos_ash && is_chrome_branded) { ++ if (!is_electron_build) { ++ # This breaks native node modules ++ defines += [ "_LIBCPP_ABI_VERSION=2" ] ++ } + + if (!libcxx_is_shared) { + # Don't leak any symbols on a static build. diff --git a/patches/chromium/can_create_window.patch b/patches/chromium/can_create_window.patch index ef7bb00517d6..d148c0eb9c8c 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 381bb7d6b1ec2f321dcab9a217aa57e5b2c21925..bdf2fa0461840d6059b4a7d6660a356be5c38ba0 100644 +index 59ad3749cee7f8892884033d7507def1314aec75..187b94d207570a77f058915b9e5b581c777adc5a 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -7127,6 +7127,7 @@ void RenderFrameHostImpl::CreateNewWindow( +@@ -7221,6 +7221,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 381bb7d6b1ec2f321dcab9a217aa57e5b2c21925..bdf2fa0461840d6059b4a7d6660a356b &no_javascript_access); diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 1470df421f254725be1a55be5756e47988798035..1c69625326df08b85ec77d01b588fc3a8ce58553 100644 +index 2cd68060a6d73b12190692f5973224e4816630bb..c9f744c73f95ad6e63077fbfad2e0c935e6c44c1 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -3949,6 +3949,14 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -3983,6 +3983,14 @@ FrameTree* WebContentsImpl::CreateNewWindow( } auto* new_contents_impl = new_contents.get(); @@ -39,7 +39,7 @@ index 1470df421f254725be1a55be5756e47988798035..1c69625326df08b85ec77d01b588fc3a new_contents_impl->GetController().SetSessionStorageNamespace( partition_config, session_storage_namespace); -@@ -3993,12 +4001,6 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -4027,12 +4035,6 @@ FrameTree* WebContentsImpl::CreateNewWindow( AddWebContentsDestructionObserver(new_contents_impl); } @@ -53,13 +53,13 @@ index 1470df421f254725be1a55be5756e47988798035..1c69625326df08b85ec77d01b588fc3a 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 3aafb44665ed475084355144663a3c7395a009d5..d32b572673e24f14c60b27e8a1fab683b7aa3e8e 100644 +index ac5575971f18588c25438a7285e1c25037c14b1b..af3c7dbb09de31e4079406cb5e18b5ffcc6e867c 100644 --- a/content/common/frame.mojom +++ b/content/common/frame.mojom -@@ -575,6 +575,10 @@ struct CreateNewWindowParams { +@@ -579,6 +579,10 @@ struct CreateNewWindowParams { - // Governs how downloads are handled if `target_url` results in a download. - blink.mojom.NavigationDownloadPolicy download_policy; + // Additional parameters for creating picture-in-picture windows. + blink.mojom.PictureInPictureWindowOptions? pip_options; + + // Extra fields added by Electron. + string raw_features; @@ -68,10 +68,10 @@ index 3aafb44665ed475084355144663a3c7395a009d5..d32b572673e24f14c60b27e8a1fab683 // 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 9a593698d9e3aebe21cb7e74e0e5603adde30f87..c57b933d2950a69c92d47057b83d96a66416bc1b 100644 +index 3101f5faa5d87f10e0859e8a09c6ebb2678eb478..39682dddf0ec449f0bc34124bf3de6f8c216fdf9 100644 --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc -@@ -604,6 +604,8 @@ bool ContentBrowserClient::CanCreateWindow( +@@ -605,6 +605,8 @@ bool ContentBrowserClient::CanCreateWindow( const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, @@ -81,10 +81,10 @@ index 9a593698d9e3aebe21cb7e74e0e5603adde30f87..c57b933d2950a69c92d47057b83d96a6 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 58755b9dca27ddd4d75cf08ecdc47c6d9d9da724..2f786efe35ebdff7061118a14247859ed30eeb2a 100644 +index 0d79069d5a54a1a8907e459beb0235b2a78e1fa6..cfe1fc63e293cb2bcafb6c9e6778ee39ef266e89 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h -@@ -165,6 +165,7 @@ class NetworkService; +@@ -164,6 +164,7 @@ class NetworkService; class TrustedURLLoaderHeaderClient; } // namespace mojom struct ResourceRequest; @@ -150,10 +150,10 @@ index 348dcde05d71e7d16e4c7bb1d8d9f8718070e669..5a9cc64d6e0d9d01f5dc133c7fcab341 // 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 9b42426f878a741290c89fb6b641b6c44423aa6f..d0c99c26116f6affc801ac59657b89c2ae159a0c 100644 +index 11eaa6b307811b0b327c60ca8ee343331ed18b1b..87f35d4477fef2d6f5ee58455c10e1780a090ef9 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc -@@ -308,6 +308,10 @@ WebView* RenderViewImpl::CreateView( +@@ -315,6 +315,10 @@ WebView* RenderViewImpl::CreateView( /*openee_can_access_opener_origin=*/true, !creator->IsAllowedToDownload(), creator->IsAdSubframe()); @@ -165,10 +165,10 @@ index 9b42426f878a741290c89fb6b641b6c44423aa6f..d0c99c26116f6affc801ac59657b89c2 // moved on send. bool is_background_tab = diff --git a/content/web_test/browser/web_test_content_browser_client.cc b/content/web_test/browser/web_test_content_browser_client.cc -index 2e7c332565ebe33b00ab7fff96a6a8dfc61422a6..0ab061f51d1d0c93f23bfcf5ba051172cea37eb8 100644 +index e757a73ad55c997357bc26015423b69aaa3e895e..089b9e92b0b156fcdcf4b391c24b988a22e312c7 100644 --- a/content/web_test/browser/web_test_content_browser_client.cc +++ b/content/web_test/browser/web_test_content_browser_client.cc -@@ -438,6 +438,8 @@ bool WebTestContentBrowserClient::CanCreateWindow( +@@ -440,6 +440,8 @@ bool WebTestContentBrowserClient::CanCreateWindow( const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, @@ -178,10 +178,10 @@ index 2e7c332565ebe33b00ab7fff96a6a8dfc61422a6..0ab061f51d1d0c93f23bfcf5ba051172 bool opener_suppressed, bool* no_javascript_access) { diff --git a/content/web_test/browser/web_test_content_browser_client.h b/content/web_test/browser/web_test_content_browser_client.h -index 00e2a8c21d4f0ef00c942498251fa44065da63c0..0fc4b092fa276063e05f990bf920fecd60c6d26c 100644 +index 4805dd035772fcaea60a1a91eb9911d5c0ce93a9..3b752ea509149f04fd6d10f6977bd29791f6a5d6 100644 --- a/content/web_test/browser/web_test_content_browser_client.h +++ b/content/web_test/browser/web_test_content_browser_client.h -@@ -80,6 +80,8 @@ class WebTestContentBrowserClient : public ShellContentBrowserClient { +@@ -81,6 +81,8 @@ class WebTestContentBrowserClient : public ShellContentBrowserClient { const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, @@ -212,10 +212,10 @@ index 34570168ccb123f5102dcf8fa6bbf98e7c373ec6..192701e56d258da41b3724292853885e } // 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 fd6118fd28df7ea3f86f7fff6ed7ae7b0517777b..a1cb624589a302340d152a1389adac26d5c6d6ee 100644 +index 6633a96d4eafce752b6a1dace29390203d7c4ac0..cb340f174618bd1c38e4216d85eb57f293f3367c 100644 --- a/third_party/blink/renderer/core/frame/local_dom_window.cc +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc -@@ -2101,6 +2101,8 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, +@@ -2100,6 +2100,8 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, WebWindowFeatures window_features = GetWindowFeaturesFromString(features, entered_window); diff --git a/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch b/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch index fa12e080d2e2..aea8f9f1c17c 100644 --- a/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch +++ b/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch @@ -108,7 +108,7 @@ index 1318d5e04d5448d2b357454c3ce4207264288760..3b0324c35d5b18ed2e29264aae860c48 } diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc -index 458af711eda586adbc4efc515da6a21e62879cfc..221ec7acca678060f0f152d4fee32d3378875bc1 100644 +index ce86697e47437832cd0d9692e44a19885f3b7174..62f3371827343fb30d3202f78af70968f169d9f2 100644 --- a/chrome/browser/ui/browser.cc +++ b/chrome/browser/ui/browser.cc @@ -1794,12 +1794,11 @@ bool Browser::IsWebContentsCreationOverridden( @@ -127,10 +127,10 @@ index 458af711eda586adbc4efc515da6a21e62879cfc..221ec7acca678060f0f152d4fee32d33 WebContents* Browser::CreateCustomWebContents( diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h -index 87859f4741386c967a0568273a2fd16ad26c4a96..8265417dcf7397b2eb37e997547d1e8cfd977509 100644 +index 64eeec32ac70f32b71cd30f7d1adb1f12fa6fa46..8ebf50854a4fdf2cdc9b7f90844456c12902cb4b 100644 --- a/chrome/browser/ui/browser.h +++ b/chrome/browser/ui/browser.h -@@ -839,8 +839,7 @@ class Browser : public TabStripModelObserver, +@@ -843,8 +843,7 @@ class Browser : public TabStripModelObserver, content::SiteInstance* source_site_instance, content::mojom::WindowContainerType window_container_type, const GURL& opener_url, @@ -246,10 +246,10 @@ index c6bd5c19f8a7ceec17c9e32af5296a9617f3a619..02199b439fba7fdc617b7f7980d958b7 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 686fc99becf068106cc9fb372d2dce1e8d8c5114..eb94d05bf03d04b508123675c31957b8d22ee13a 100644 +index a06d49c3ed7d809ddd3ab43f1cc4e3044a6b14d2..1ebb4970ef9c440c5c2584785397696c7ebc14ce 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -3882,8 +3882,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -3909,8 +3909,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( if (delegate_ && delegate_->IsWebContentsCreationOverridden( source_site_instance, params.window_container_type, @@ -316,10 +316,10 @@ index 7350382146178f58960a9bf68cd959076d2d9790..a70a94d14bdfa993feab60b8e4f32e10 content::RenderFrameHost* opener, content::SiteInstance* source_site_instance, diff --git a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc -index aef9d1a79fcea0e73541cf8257b498e167c9dfeb..1f0c4209d1c6be31e1abd6bcfcaf181fd2d4858c 100644 +index 9fa230c1cd95f71690f5beef7b77c9759215e3e0..f0160abfd4980d323c8e3def86df7bdf3a137dc3 100644 --- a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc +++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc -@@ -402,8 +402,7 @@ bool MimeHandlerViewGuest::IsWebContentsCreationOverridden( +@@ -403,8 +403,7 @@ bool MimeHandlerViewGuest::IsWebContentsCreationOverridden( content::SiteInstance* source_site_instance, content::mojom::WindowContainerType window_container_type, const GURL& opener_url, @@ -344,7 +344,7 @@ index ef6faf317dd4168adf6fd530a7da0b80f9166dec..f401659a81d4aeaf71039d71eb8fec48 content::RenderFrameHost* opener, content::SiteInstance* source_site_instance, diff --git a/fuchsia_web/webengine/browser/frame_impl.cc b/fuchsia_web/webengine/browser/frame_impl.cc -index 5b804b3ad089154424eda6eb58edbb24baf67794..7f055a37080f40dede16dfa7b7ad6b3c31c5282d 100644 +index b9e21613a8ae3409477d659b0e12181e4db015c3..9d454bd8f8bde3624dd28f8effc0b7fc8a2b4f41 100644 --- a/fuchsia_web/webengine/browser/frame_impl.cc +++ b/fuchsia_web/webengine/browser/frame_impl.cc @@ -412,8 +412,7 @@ bool FrameImpl::IsWebContentsCreationOverridden( diff --git a/patches/chromium/command-ismediakey.patch b/patches/chromium/command-ismediakey.patch index 275b2e7299f2..b52c74a4d877 100644 --- a/patches/chromium/command-ismediakey.patch +++ b/patches/chromium/command-ismediakey.patch @@ -52,10 +52,10 @@ index ed2ac20679a9357c9493224ec5e08837c7860d6e..7f9a97e11395e5521e100694cd37bcd9 NotifyKeyPressed(ui::Accelerator(key_code, modifiers)); } diff --git a/chrome/browser/extensions/global_shortcut_listener_ozone.h b/chrome/browser/extensions/global_shortcut_listener_ozone.h -index eb3f3431a3774c3a05afd4c7350f3801e9c8c684..b8970ef9ddb69d6a9fc6d106293e760535b6f4b3 100644 +index a2cec20e0ba434afa5e15bf60327c6a6f9b551f9..f58796ff2050883879225a22ed0b3f0c1aacf824 100644 --- a/chrome/browser/extensions/global_shortcut_listener_ozone.h +++ b/chrome/browser/extensions/global_shortcut_listener_ozone.h -@@ -45,7 +45,8 @@ class GlobalShortcutListenerOzone +@@ -46,7 +46,8 @@ class GlobalShortcutListenerOzone void OnKeyPressed(ui::KeyboardCode key_code, bool is_alt_down, bool is_ctrl_down, @@ -117,10 +117,10 @@ index 1145e1f3d79482b5bb468c3128431ac674310e5f..e9f595045e0c076e0735f27dfc38bfbc } // namespace ui diff --git a/ui/base/accelerators/media_keys_listener_mac.mm b/ui/base/accelerators/media_keys_listener_mac.mm -index 0bed8d1e2e2ed4a8cfc9d51ec3d68ac75bd9ff82..6914758849ca485f0f882d0b4a9ded9b02b197a8 100644 +index 87a53282aa3afa3fe8469272d8b1ee37dcadf845..55c36da933165c8f86dd2ab440733f4b20bee378 100644 --- a/ui/base/accelerators/media_keys_listener_mac.mm +++ b/ui/base/accelerators/media_keys_listener_mac.mm -@@ -32,6 +32,12 @@ KeyboardCode MediaKeyCodeToKeyboardCode(int key_code) { +@@ -34,6 +34,12 @@ KeyboardCode MediaKeyCodeToKeyboardCode(int key_code) { case NX_KEYTYPE_NEXT: case NX_KEYTYPE_FAST: return VKEY_MEDIA_NEXT_TRACK; @@ -133,7 +133,7 @@ index 0bed8d1e2e2ed4a8cfc9d51ec3d68ac75bd9ff82..6914758849ca485f0f882d0b4a9ded9b } return VKEY_UNKNOWN; } -@@ -192,7 +198,10 @@ static CGEventRef EventTapCallback(CGEventTapProxy proxy, +@@ -194,7 +200,10 @@ static CGEventRef EventTapCallback(CGEventTapProxy proxy, int key_code = (data1 & 0xFFFF0000) >> 16; if (key_code != NX_KEYTYPE_PLAY && key_code != NX_KEYTYPE_NEXT && key_code != NX_KEYTYPE_PREVIOUS && key_code != NX_KEYTYPE_FAST && @@ -226,10 +226,10 @@ index 898e15a25c99ad25221c41594803521565ff4432..664337941023e800c9605f987d0e1d65 } // namespace ui diff --git a/ui/base/x/x11_global_shortcut_listener.h b/ui/base/x/x11_global_shortcut_listener.h -index 9e472d76423a748cbf6257c6656d8fd69853dd93..404a294b9cf3dd6744ece0b5c1e611bbab207e78 100644 +index bfb82e38a9ccc7459ccb427d512df821517a328b..7f1d5876a51fa53e539b2bab8d2f020f26d39ceb 100644 --- a/ui/base/x/x11_global_shortcut_listener.h +++ b/ui/base/x/x11_global_shortcut_listener.h -@@ -40,18 +40,21 @@ class COMPONENT_EXPORT(UI_BASE_X) XGlobalShortcutListener +@@ -41,18 +41,21 @@ class COMPONENT_EXPORT(UI_BASE_X) XGlobalShortcutListener virtual void OnKeyPressed(KeyboardCode key_code, bool is_alt_down, bool is_ctrl_down, @@ -254,7 +254,7 @@ index 9e472d76423a748cbf6257c6656d8fd69853dd93..404a294b9cf3dd6744ece0b5c1e611bb private: // Due to how system key grabbing works on X11, we have to be a bit greedy and -@@ -60,7 +63,7 @@ class COMPONENT_EXPORT(UI_BASE_X) XGlobalShortcutListener +@@ -61,7 +64,7 @@ class COMPONENT_EXPORT(UI_BASE_X) XGlobalShortcutListener // and filter the incoming events against that registry before notifying the // observer. This tuple describes the meaningful parts of the event; booleans // 1, 2, and 3 hold states of Alt, Control, and Shift keys, respectively. @@ -333,10 +333,10 @@ index 0f1980abdcaf30e23f580b937ecb2c422bf2a357..112967622cb8a6263c7a88dd8d09f48f } // namespace ui diff --git a/ui/ozone/public/platform_global_shortcut_listener.h b/ui/ozone/public/platform_global_shortcut_listener.h -index a5b539d4e7461c4ca9faa08fef086fc28a4ebd3a..f3aacc605f07807a5b83b496bd8a87933981d4f3 100644 +index 5b6ceb2e23d306e446cad5a6b6e7adf37334410a..d4fbca17a11bd52deaf746e052eeeb12d8a4594e 100644 --- a/ui/ozone/public/platform_global_shortcut_listener.h +++ b/ui/ozone/public/platform_global_shortcut_listener.h -@@ -19,7 +19,8 @@ class COMPONENT_EXPORT(OZONE_BASE) PlatformGlobalShortcutListenerDelegate { +@@ -20,7 +20,8 @@ class COMPONENT_EXPORT(OZONE_BASE) PlatformGlobalShortcutListenerDelegate { virtual void OnKeyPressed(KeyboardCode key_code, bool is_alt_down, bool is_ctrl_down, @@ -346,7 +346,7 @@ index a5b539d4e7461c4ca9faa08fef086fc28a4ebd3a..f3aacc605f07807a5b83b496bd8a8793 // Called back when the platform implementation is destroyed. virtual void OnPlatformListenerDestroyed() = 0; -@@ -51,11 +52,13 @@ class COMPONENT_EXPORT(OZONE_BASE) PlatformGlobalShortcutListener { +@@ -52,11 +53,13 @@ class COMPONENT_EXPORT(OZONE_BASE) PlatformGlobalShortcutListener { virtual bool RegisterAccelerator(KeyboardCode key_code, bool is_alt_down, bool is_ctrl_down, diff --git a/patches/chromium/crash_allow_disabling_compression_on_linux.patch b/patches/chromium/crash_allow_disabling_compression_on_linux.patch index b64fe0220c59..d61b71b8cfd9 100644 --- a/patches/chromium/crash_allow_disabling_compression_on_linux.patch +++ b/patches/chromium/crash_allow_disabling_compression_on_linux.patch @@ -13,7 +13,7 @@ Ultimately we should remove the option to disable compression, and subsequently remove this patch. diff --git a/components/crash/core/app/breakpad_linux.cc b/components/crash/core/app/breakpad_linux.cc -index a372e9bb12f9cec6235fe529d73b6e0009328038..58f6f559265d0da5e6ca4c711df4b1dbf3d40e38 100644 +index 62d15f57e4c5a0a24aa730e8979fb1e9537fecd3..77fd14f5e9a4330364da4e7e5ee089c9196b4939 100644 --- a/components/crash/core/app/breakpad_linux.cc +++ b/components/crash/core/app/breakpad_linux.cc @@ -111,6 +111,8 @@ void SetUploadURL(const std::string& url) { diff --git a/patches/chromium/crash_allow_setting_more_options.patch b/patches/chromium/crash_allow_setting_more_options.patch index 33cc2b52a8a1..b9e607f84e89 100644 --- a/patches/chromium/crash_allow_setting_more_options.patch +++ b/patches/chromium/crash_allow_setting_more_options.patch @@ -9,7 +9,7 @@ rate-limiting, compression and global annotations. This should be upstreamed. diff --git a/components/crash/core/app/breakpad_linux.cc b/components/crash/core/app/breakpad_linux.cc -index 3c28019ae3d1d8fd43e5e027fa3abe6786658885..b1f8fd4494e7f5deac078023c2e0240d701e1f13 100644 +index 6aa864db880408bf7021ac58673f4d8d489426b4..1fa85302da7a64abc42fd9558ddbcaf68b387517 100644 --- a/components/crash/core/app/breakpad_linux.cc +++ b/components/crash/core/app/breakpad_linux.cc @@ -113,6 +113,7 @@ void SetUploadURL(const std::string& url) { diff --git a/patches/chromium/disable-redraw-lock.patch b/patches/chromium/disable-redraw-lock.patch index de0f40a292a8..0e7e6f579547 100644 --- a/patches/chromium/disable-redraw-lock.patch +++ b/patches/chromium/disable-redraw-lock.patch @@ -15,7 +15,7 @@ the redraw locking mechanism, which fixes these issues. The electron issue can be found at https://github.com/electron/electron/issues/1821 diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc -index 2d21f2e408004fbaf6a19980ad5daf47493aec65..c6a0ac1c5dd98a41392bd170bb0ada7418f17453 100644 +index 1e6326a2f36f5a7e55e5193b69c36f870c1d00e7..2f51474d46544915b75185fc362aebf8b83164b0 100644 --- a/ui/views/win/hwnd_message_handler.cc +++ b/ui/views/win/hwnd_message_handler.cc @@ -308,6 +308,10 @@ constexpr int kSynthesizedMouseMessagesTimeDifference = 500; @@ -51,7 +51,7 @@ index 2d21f2e408004fbaf6a19980ad5daf47493aec65..c6a0ac1c5dd98a41392bd170bb0ada74 // HWNDMessageHandler, gfx::WindowImpl overrides: diff --git a/ui/views/win/hwnd_message_handler.h b/ui/views/win/hwnd_message_handler.h -index 73337f6b14516f93500705606c89e4c7b5a55f35..6badb272496a630031592372c1a766a9d70bb26a 100644 +index 65bf924561934d445e201aa2753ec7a3e32b6a6b..e4805643c6994404a1443fe89f0348a19310023b 100644 --- a/ui/views/win/hwnd_message_handler.h +++ b/ui/views/win/hwnd_message_handler.h @@ -207,6 +207,8 @@ class VIEWS_EXPORT HWNDMessageHandler : public gfx::WindowImpl, diff --git a/patches/chromium/disable_color_correct_rendering.patch b/patches/chromium/disable_color_correct_rendering.patch index 8ef3fa1c1b34..28137ca9aa91 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 691496d0ca6fce79c26b9da7322856b3bf06332f..4aadafbba17578cfa26a111eecd0cfaad676326d 100644 +index 65c468c4b882829fba7ab679c0fec3f637e96522..ca98a6e3992126b564d28e9d4429cd9a69cf7eed 100644 --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc -@@ -1853,6 +1853,9 @@ void LayerTreeHostImpl::SetIsLikelyToRequireADraw( +@@ -1857,6 +1857,9 @@ void LayerTreeHostImpl::SetIsLikelyToRequireADraw( TargetColorParams LayerTreeHostImpl::GetTargetColorParams( gfx::ContentColorUsage content_color_usage) const { TargetColorParams params; @@ -80,7 +80,7 @@ index 9d34ced366026eb7cdd00ce40a4eb1af56180d39..abf67f8246bfa37df08cd2216c388dd3 !command_line->HasSwitch(switches::kUIDisablePartialSwap); diff --git a/content/browser/gpu/gpu_process_host.cc b/content/browser/gpu/gpu_process_host.cc -index d3375aa2370158888d35e064b9613cd696d4b45b..a7a33cfd499925c23a26a6dacc5add3d4c462d78 100644 +index 4be758a498c1e5b17fd8eea6c5a7719e4252723a..e166e96b4b23725ad8735ab87afd3660ed22de50 100644 --- a/content/browser/gpu/gpu_process_host.cc +++ b/content/browser/gpu/gpu_process_host.cc @@ -228,6 +228,7 @@ GpuTerminationStatus ConvertToGpuTerminationStatus( @@ -92,7 +92,7 @@ index d3375aa2370158888d35e064b9613cd696d4b45b..a7a33cfd499925c23a26a6dacc5add3d 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 e186644f7592f7d0e827b7d8af6c31951738f6f5..5e8df8f92729ba851fe7ba8557e309a32899df93 100644 +index ece0f7a284fc87f879d21e754b0b050236081d61..68277794cf54100592f36f0c95985b2911074c52 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc @@ -199,6 +199,7 @@ @@ -103,7 +103,7 @@ index e186644f7592f7d0e827b7d8af6c31951738f6f5..5e8df8f92729ba851fe7ba8557e309a3 #include "ui/gl/gl_switches.h" #include "url/gurl.h" #include "url/origin.h" -@@ -3173,6 +3174,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3195,6 +3196,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 3e685e539e74..1104e02c2682 100644 --- a/patches/chromium/disable_compositor_recycling.patch +++ b/patches/chromium/disable_compositor_recycling.patch @@ -6,10 +6,10 @@ 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 19396ba065ebab86903e2d52dc72d22de9d6bc89..fdb09a51829db40f4bcba71e76cd0dcef16a47ad 100644 +index fc7c4474aaa74000b901b93b26bb46d7a7dc07a3..9444d5411cf7caffb3cf180089ca5468c2303803 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm -@@ -511,7 +511,11 @@ +@@ -514,7 +514,11 @@ return; host()->WasHidden(); diff --git a/patches/chromium/disable_hidden.patch b/patches/chromium/disable_hidden.patch index 2b6fcf3fa406..980679fa1db0 100644 --- a/patches/chromium/disable_hidden.patch +++ b/patches/chromium/disable_hidden.patch @@ -6,7 +6,7 @@ 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 e3a14e47ac328261f48bcd137961a6e794d4f5af..205921ae492bf30c16869cdd7ed9605d7fdbd452 100644 +index 4b4a91a3fb6156ced046b414c131bc348f15b79f..852118f2599087c971ee6475f670a1f0e9d64bd3 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc @@ -809,6 +809,9 @@ void RenderWidgetHostImpl::WasHidden() { @@ -20,7 +20,7 @@ index e3a14e47ac328261f48bcd137961a6e794d4f5af..205921ae492bf30c16869cdd7ed9605d blink::mojom::PointerLockResult::kWrongDocument); diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h -index e617a4496a5f8cfa7ca1904fea8b0c3c0ffa14f9..e5d0edc222755a20019dd1e4042b87abe3ae39d8 100644 +index f63c1aa3007fa532af250e6f222ab588d949dccc..6183ee520b48e09958f320c1091a80ce947f21b7 100644 --- a/content/browser/renderer_host/render_widget_host_impl.h +++ b/content/browser/renderer_host/render_widget_host_impl.h @@ -881,6 +881,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl @@ -34,7 +34,7 @@ index e617a4496a5f8cfa7ca1904fea8b0c3c0ffa14f9..e5d0edc222755a20019dd1e4042b87ab // |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 f20f35ae49d50f19bd4355defe1dfd3a20462c21..b8801f1a939aab5ea6c8db87d357c3d27c946e3c 100644 +index f709beca890c426c9355297c6a741d5a8c887fdb..8050e3b8d603e48323002475680d76dfa059e20e 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura.cc +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc @@ -592,7 +592,7 @@ void RenderWidgetHostViewAura::HideImpl() { diff --git a/patches/chromium/disable_unload_metrics.patch b/patches/chromium/disable_unload_metrics.patch index 219559b32e27..a5b8d7b4381d 100644 --- a/patches/chromium/disable_unload_metrics.patch +++ b/patches/chromium/disable_unload_metrics.patch @@ -24,10 +24,10 @@ This patch temporarily disables the metrics so we can have green CI, and we should continue seeking for a real fix. diff --git a/content/browser/renderer_host/navigator.cc b/content/browser/renderer_host/navigator.cc -index 8779affce72baa97eebc68779fd3be08ba4505f8..3d2d03366a6e7776d0bd589c32c09b8bbed01b64 100644 +index b88a9d695e2e743cdd9446e8e3c3ca38a914630a..a35f8b3118632d503c5750d59e847580cbb47a9f 100644 --- a/content/browser/renderer_host/navigator.cc +++ b/content/browser/renderer_host/navigator.cc -@@ -1196,6 +1196,7 @@ void Navigator::RecordNavigationMetrics( +@@ -1195,6 +1195,7 @@ void Navigator::RecordNavigationMetrics( .InMilliseconds()); } @@ -35,7 +35,7 @@ index 8779affce72baa97eebc68779fd3be08ba4505f8..3d2d03366a6e7776d0bd589c32c09b8b // If this is a same-process navigation and we have timestamps for unload // durations, fill those metrics out as well. if (params.unload_start && params.unload_end && -@@ -1246,6 +1247,7 @@ void Navigator::RecordNavigationMetrics( +@@ -1245,6 +1246,7 @@ void Navigator::RecordNavigationMetrics( first_before_unload_start_time) .InMilliseconds()); } diff --git a/patches/chromium/don_t_run_pcscan_notifythreadcreated_if_pcscan_is_disabled.patch b/patches/chromium/don_t_run_pcscan_notifythreadcreated_if_pcscan_is_disabled.patch index c7d8872892bb..2e26a1124429 100644 --- a/patches/chromium/don_t_run_pcscan_notifythreadcreated_if_pcscan_is_disabled.patch +++ b/patches/chromium/don_t_run_pcscan_notifythreadcreated_if_pcscan_is_disabled.patch @@ -3,7 +3,8 @@ From: John Kleinschmidt Date: Wed, 16 Jun 2021 11:30:28 -0400 Subject: Don't run PCScan functions if PCScan is disabled -PCScan should not be invoked if PCScan is disabled. Upstreamed at https://chromium-review.googlesource.com/c/chromium/src/+/2916657. +PCScan should not be invoked if PCScan is disabled. +Upstreamed at https://chromium-review.googlesource.com/c/chromium/src/+/2965109. diff --git a/base/allocator/partition_allocator/memory_reclaimer.cc b/base/allocator/partition_allocator/memory_reclaimer.cc index 1e54559bd5f9a2ee889b921379d70c51e902502d..6797a076b612ad4ed6d5ce7d9868d944fae3694f 100644 @@ -19,7 +20,7 @@ index 1e54559bd5f9a2ee889b921379d70c51e902502d..6797a076b612ad4ed6d5ce7d9868d944 using PCScan = internal::PCScan; const auto invocation_mode = flags & PurgeFlags::kAggressiveReclaim diff --git a/base/threading/platform_thread_posix.cc b/base/threading/platform_thread_posix.cc -index fb5df2ee7c40e93bf2ebf625b14d08044006534b..67aecdd1d70ff58eb5b1b8b67990a7448a3b1ba4 100644 +index 418efcb3c08c67e86ae3a0728f37c5a4b9e56e06..f5c3a127c4ac535773f087f8ee2306ab0433fbe6 100644 --- a/base/threading/platform_thread_posix.cc +++ b/base/threading/platform_thread_posix.cc @@ -44,6 +44,7 @@ @@ -36,20 +37,20 @@ index fb5df2ee7c40e93bf2ebf625b14d08044006534b..67aecdd1d70ff58eb5b1b8b67990a744 #if !BUILDFLAG(IS_NACL) -#if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) +#if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && defined(PA_ALLOW_PCSCAN) - internal::PCScan::NotifyThreadCreated(internal::GetStackPointer()); + partition_alloc::internal::PCScan::NotifyThreadCreated( + partition_alloc::internal::GetStackPointer()); #endif - -@@ -103,7 +104,7 @@ void* ThreadFunc(void* params) { +@@ -104,7 +105,7 @@ void* ThreadFunc(void* params) { PlatformThread::CurrentHandle().platform_handle(), PlatformThread::CurrentId()); -#if !BUILDFLAG(IS_NACL) && BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) +#if !BUILDFLAG(IS_NACL) && BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && defined(PA_ALLOW_PCSCAN) - internal::PCScan::NotifyThreadDestroyed(); + partition_alloc::internal::PCScan::NotifyThreadDestroyed(); #endif diff --git a/base/threading/platform_thread_win.cc b/base/threading/platform_thread_win.cc -index 5d01f8802e2144b9bb94d05b154bc5f5fa378b40..a872defd1c92f2ea590e5da1ecf34a6800dd4484 100644 +index 3327d353cd887d027cf1d9b483ebf6e6aaaef169..dab0d2cf3e87fc082f72f40d1d622efd390885d1 100644 --- a/base/threading/platform_thread_win.cc +++ b/base/threading/platform_thread_win.cc @@ -30,6 +30,7 @@ @@ -60,21 +61,21 @@ index 5d01f8802e2144b9bb94d05b154bc5f5fa378b40..a872defd1c92f2ea590e5da1ecf34a68 #include "base/allocator/partition_allocator/starscan/pcscan.h" #include "base/allocator/partition_allocator/starscan/stack/stack.h" #endif -@@ -113,7 +114,7 @@ DWORD __stdcall ThreadFunc(void* params) { +@@ -115,7 +116,7 @@ DWORD __stdcall ThreadFunc(void* params) { FALSE, DUPLICATE_SAME_ACCESS); -#if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) +#if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && defined(PA_ALLOW_PCSCAN) - internal::PCScan::NotifyThreadCreated(internal::GetStackPointer()); + partition_alloc::internal::PCScan::NotifyThreadCreated( + partition_alloc::internal::GetStackPointer()); #endif - -@@ -133,7 +134,7 @@ DWORD __stdcall ThreadFunc(void* params) { +@@ -136,7 +137,7 @@ DWORD __stdcall ThreadFunc(void* params) { PlatformThread::CurrentId()); } -#if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) +#if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && defined(PA_ALLOW_PCSCAN) - internal::PCScan::NotifyThreadDestroyed(); + partition_alloc::internal::PCScan::NotifyThreadDestroyed(); #endif 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 9e23e3f582a8..6f739d8b35bf 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 23dcc6507ed9151f657689904bf90d3b2e8ae3d3..5c81b7882dda7d9815555b43158140f894dbbd03 100644 +index 19bd5ef930bc094b315d2562c0f4917e78f63bad..bb1c66173df927499f1f28039f2255e3d6c28c96 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -2369,7 +2369,7 @@ const blink::WebView* RenderFrameImpl::GetWebView() const { +@@ -2287,7 +2287,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 c42efd45fb14..4a0fa298d271 100644 --- a/patches/chromium/enable_reset_aspect_ratio.patch +++ b/patches/chromium/enable_reset_aspect_ratio.patch @@ -19,7 +19,7 @@ index d7260950ca1ba9c71d9500560bc13314e78e2170..f6b37bdec2343d45447b419aeadbe2aa aspect_ratio.height()); } diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc -index c6a0ac1c5dd98a41392bd170bb0ada7418f17453..738a56e976a510fcdb44020193cc79522bae0855 100644 +index 2f51474d46544915b75185fc362aebf8b83164b0..c893bc030b266539f65d31bdc40ba0ba31b70986 100644 --- a/ui/views/win/hwnd_message_handler.cc +++ b/ui/views/win/hwnd_message_handler.cc @@ -1001,8 +1001,11 @@ void HWNDMessageHandler::SetFullscreen(bool fullscreen) { diff --git a/patches/chromium/export_gin_v8platform_pageallocator_for_usage_outside_of_the_gin.patch b/patches/chromium/export_gin_v8platform_pageallocator_for_usage_outside_of_the_gin.patch index 3c54bc5d8c65..8f885d9d4f18 100644 --- a/patches/chromium/export_gin_v8platform_pageallocator_for_usage_outside_of_the_gin.patch +++ b/patches/chromium/export_gin_v8platform_pageallocator_for_usage_outside_of_the_gin.patch @@ -9,7 +9,7 @@ correctly tagged with MAP_JIT we need to use gins page allocator instead of the default V8 allocator. This probably can't be usptreamed. diff --git a/gin/public/v8_platform.h b/gin/public/v8_platform.h -index c9b535eb083c250f4f874d8e6bd0c29ea9f3a10f..f220b8669507a4aea616b0dfbabda509647b714c 100644 +index 2f2e0d67c7141e5daad2d50031c71a542677e108..c53bd76fcd3703cb483949d5ec53f24f482317e5 100644 --- a/gin/public/v8_platform.h +++ b/gin/public/v8_platform.h @@ -30,6 +30,7 @@ class GIN_EXPORT V8Platform : public v8::Platform { @@ -21,7 +21,7 @@ index c9b535eb083c250f4f874d8e6bd0c29ea9f3a10f..f220b8669507a4aea616b0dfbabda509 v8::ZoneBackingAllocator* GetZoneBackingAllocator() override; #endif diff --git a/gin/v8_platform.cc b/gin/v8_platform.cc -index 03cbb536f9a5a3f9aaf8fe2a5baac1d62e398e3a..2f4cf65a7b75e1dfe6c2b6e472040b2a0617b912 100644 +index 9e79f7e411a3242e3e7662933389e05b94a4818c..05e3156571ac0dc9ff71464b8e73d74db96496a0 100644 --- a/gin/v8_platform.cc +++ b/gin/v8_platform.cc @@ -367,6 +367,10 @@ PageAllocator* V8Platform::GetPageAllocator() { diff --git a/patches/chromium/expose_setuseragent_on_networkcontext.patch b/patches/chromium/expose_setuseragent_on_networkcontext.patch index f9c1139dff81..ee5737d52589 100644 --- a/patches/chromium/expose_setuseragent_on_networkcontext.patch +++ b/patches/chromium/expose_setuseragent_on_networkcontext.patch @@ -33,10 +33,10 @@ index 14c71cc69388da46f62d9835e2a06fef0870da02..9481ea08401ae29ae9c1d960491b05b3 } // namespace net diff --git a/services/network/network_context.cc b/services/network/network_context.cc -index 7dc2ce4577594d16930fd97ad3370e28765a0327..68bd003bee2d85536f97569df8cdc9b7875c3086 100644 +index 61030982c4391dd1b4b508042628e7f006047158..c4f422553185d416a6abfd4647b219060705d0ad 100644 --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -1400,6 +1400,13 @@ void NetworkContext::SetNetworkConditions( +@@ -1406,6 +1406,13 @@ void NetworkContext::SetNetworkConditions( std::move(network_conditions)); } @@ -51,10 +51,10 @@ index 7dc2ce4577594d16930fd97ad3370e28765a0327..68bd003bee2d85536f97569df8cdc9b7 // 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 9d86b641760c82f145d17a4e70813cd13fad9d9c..ac38bfa5d84b838ec3bcf6cbc244868105480c98 100644 +index d88d9d2bc4b95464ca9a8cacec33361f12d25ea4..74415ce53dc6d0b3e39dbe27ae9e225b281c8820 100644 --- a/services/network/network_context.h +++ b/services/network/network_context.h -@@ -297,6 +297,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -296,6 +296,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 9d86b641760c82f145d17a4e70813cd13fad9d9c..ac38bfa5d84b838ec3bcf6cbc2448681 void SetEnableReferrers(bool enable_referrers) override; #if BUILDFLAG(IS_CHROMEOS) diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom -index e180a77e7727acb093e12a2879c3cfb3b3771a6f..f440504f5d26b86ebe3e2a17a6374e16004f5b8b 100644 +index 118c6469c038e5b53eb76f76abf60f5df15a94d1..9f364ccfd22e736330a2ce9879495fa072373997 100644 --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -1098,6 +1098,9 @@ interface NetworkContext { +@@ -1102,6 +1102,9 @@ interface NetworkContext { SetNetworkConditions(mojo_base.mojom.UnguessableToken throttling_profile_id, NetworkConditions? conditions); @@ -77,7 +77,7 @@ index e180a77e7727acb093e12a2879c3cfb3b3771a6f..f440504f5d26b86ebe3e2a17a6374e16 SetAcceptLanguage(string new_accept_language); diff --git a/services/network/test/test_network_context.h b/services/network/test/test_network_context.h -index e1598a296f2f54061b7b408cc707d6727b51156f..b51f25bec1f8a79765c5b27326973da00c571f86 100644 +index b23f4227a6819d1b6b894262f5dda39841b5dd2b..3b8761ddb1d2111cb5b4df0f2448742adeb8f0c8 100644 --- a/services/network/test/test_network_context.h +++ b/services/network/test/test_network_context.h @@ -134,6 +134,7 @@ class TestNetworkContext : public mojom::NetworkContext { diff --git a/patches/chromium/extend_apply_webpreferences.patch b/patches/chromium/extend_apply_webpreferences.patch index ea5cbf6672a2..8af2374fb417 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 98c257b43cf198481bcaa8f080add28e60e7d9a2..d94a06f92bbdda28f4307dcc6a06dc2c381f274b 100644 +index 3e28873ed5181756ab62e14ca9c2c4b27b4378f1..831b6bab8e491fc0750ecf05b3ef0f105a5478f4 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc @@ -161,6 +161,7 @@ @@ -23,7 +23,7 @@ index 98c257b43cf198481bcaa8f080add28e60e7d9a2..d94a06f92bbdda28f4307dcc6a06dc2c #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" -@@ -1790,6 +1791,7 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs, +@@ -1781,6 +1782,7 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs, #if BUILDFLAG(IS_MAC) web_view_impl->SetMaximumLegibleScale( prefs.default_maximum_page_scale_factor); diff --git a/patches/chromium/feat_add_data_parameter_to_processsingleton.patch b/patches/chromium/feat_add_data_parameter_to_processsingleton.patch index ae14136ebb6a..d78049c092ce 100644 --- a/patches/chromium/feat_add_data_parameter_to_processsingleton.patch +++ b/patches/chromium/feat_add_data_parameter_to_processsingleton.patch @@ -65,10 +65,10 @@ index 5a64220aaf1309832dc0ad543e353de67fe0a779..55a2a78ce166a65cd11b26e0aa31968f #if BUILDFLAG(IS_WIN) bool EscapeVirtualization(const base::FilePath& user_data_dir); diff --git a/chrome/browser/process_singleton_posix.cc b/chrome/browser/process_singleton_posix.cc -index 9d6ef0e143bdaf4a5043ebbb57d282d72d847433..fbc571666232742c9941ea07fea81508263d4ed3 100644 +index 2de07460462632680f9b16a019744527dcee5125..f7e7edd645f212750704d45a2967f584fab81b35 100644 --- a/chrome/browser/process_singleton_posix.cc +++ b/chrome/browser/process_singleton_posix.cc -@@ -606,6 +606,7 @@ class ProcessSingleton::LinuxWatcher +@@ -607,6 +607,7 @@ class ProcessSingleton::LinuxWatcher // |reader| is for sending back ACK message. void HandleMessage(const std::string& current_dir, const std::vector& argv, @@ -76,7 +76,7 @@ index 9d6ef0e143bdaf4a5043ebbb57d282d72d847433..fbc571666232742c9941ea07fea81508 SocketReader* reader); private: -@@ -660,13 +661,16 @@ void ProcessSingleton::LinuxWatcher::StartListening(int socket) { +@@ -661,13 +662,16 @@ void ProcessSingleton::LinuxWatcher::StartListening(int socket) { } void ProcessSingleton::LinuxWatcher::HandleMessage( @@ -95,7 +95,7 @@ index 9d6ef0e143bdaf4a5043ebbb57d282d72d847433..fbc571666232742c9941ea07fea81508 // Send back "ACK" message to prevent the client process from starting up. reader->FinishWithACK(kACKToken, std::size(kACKToken) - 1); } else { -@@ -714,7 +718,8 @@ void ProcessSingleton::LinuxWatcher::SocketReader:: +@@ -715,7 +719,8 @@ void ProcessSingleton::LinuxWatcher::SocketReader:: } } @@ -105,7 +105,7 @@ index 9d6ef0e143bdaf4a5043ebbb57d282d72d847433..fbc571666232742c9941ea07fea81508 const size_t kMinMessageLength = std::size(kStartToken) + 4; if (bytes_read_ < kMinMessageLength) { buf_[bytes_read_] = 0; -@@ -744,10 +749,28 @@ void ProcessSingleton::LinuxWatcher::SocketReader:: +@@ -745,10 +750,28 @@ void ProcessSingleton::LinuxWatcher::SocketReader:: tokens.erase(tokens.begin()); tokens.erase(tokens.begin()); @@ -135,7 +135,7 @@ index 9d6ef0e143bdaf4a5043ebbb57d282d72d847433..fbc571666232742c9941ea07fea81508 fd_watch_controller_.reset(); // LinuxWatcher::HandleMessage() is in charge of destroying this SocketReader -@@ -776,8 +799,10 @@ void ProcessSingleton::LinuxWatcher::SocketReader::FinishWithACK( +@@ -777,8 +800,10 @@ void ProcessSingleton::LinuxWatcher::SocketReader::FinishWithACK( // ProcessSingleton::ProcessSingleton( const base::FilePath& user_data_dir, @@ -146,7 +146,7 @@ index 9d6ef0e143bdaf4a5043ebbb57d282d72d847433..fbc571666232742c9941ea07fea81508 current_pid_(base::GetCurrentProcId()), watcher_(new LinuxWatcher(this)) { socket_path_ = user_data_dir.Append(chrome::kSingletonSocketFilename); -@@ -896,7 +921,8 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessWithTimeout( +@@ -897,7 +922,8 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessWithTimeout( sizeof(socket_timeout)); // Found another process, prepare our command line @@ -156,7 +156,7 @@ index 9d6ef0e143bdaf4a5043ebbb57d282d72d847433..fbc571666232742c9941ea07fea81508 std::string to_send(kStartToken); to_send.push_back(kTokenDelimiter); -@@ -906,11 +932,21 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessWithTimeout( +@@ -907,11 +933,21 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessWithTimeout( to_send.append(current_dir.value()); const std::vector& argv = cmd_line.argv(); diff --git a/patches/chromium/feat_add_onclose_to_messageport.patch b/patches/chromium/feat_add_onclose_to_messageport.patch index 61f192d13263..70559ec9c26f 100644 --- a/patches/chromium/feat_add_onclose_to_messageport.patch +++ b/patches/chromium/feat_add_onclose_to_messageport.patch @@ -10,10 +10,10 @@ get this standardised, but in lieu of that, this makes MessagePort a whole bunch more useful! diff --git a/third_party/blink/renderer/core/messaging/message_port.cc b/third_party/blink/renderer/core/messaging/message_port.cc -index b72ede668172bd8202b1d52736e4eb4ffe84d619..7ec7e3883925b50b064682e8976d09b18222d637 100644 +index 747ce956e2622e1bb881cf281365419743ef933f..43196369af48b7393919d2624451aa3528ed1c0a 100644 --- a/third_party/blink/renderer/core/messaging/message_port.cc +++ b/third_party/blink/renderer/core/messaging/message_port.cc -@@ -166,6 +166,7 @@ void MessagePort::close() { +@@ -167,6 +167,7 @@ void MessagePort::close() { Entangle(pipe.TakePort0()); } closed_ = true; 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 8b78ba638e7d..275f12dd363b 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,7 +13,7 @@ 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 3f596e0d24ccf7586e2e20d219b73300ee3f56a0..0eb957667b591d1215b60f83141d8431079c1f45 100644 +index 5dd898d8db8e6db8278f00d5caa5ab1a0d7f0fc0..90b80c3252a6134ba43f0496a7128cdbf21ce39b 100644 --- a/ui/native_theme/native_theme.cc +++ b/ui/native_theme/native_theme.cc @@ -124,6 +124,8 @@ NativeTheme::NativeTheme(bool should_use_dark_colors, @@ -26,10 +26,10 @@ index 3f596e0d24ccf7586e2e20d219b73300ee3f56a0..0eb957667b591d1215b60f83141d8431 } diff --git a/ui/native_theme/native_theme.h b/ui/native_theme/native_theme.h -index 3b9c8841ac65471141307025394464a90b02daa9..dba57a6af6a3ce8dc258a747d721fbc9d50b0ebf 100644 +index eefc078dffa1751b7ee812a90a1da5cc91606de0..14e68fab3ad52e60e36c57b7a66393f01ea1c8b6 100644 --- a/ui/native_theme/native_theme.h +++ b/ui/native_theme/native_theme.h -@@ -392,6 +392,23 @@ class NATIVE_THEME_EXPORT NativeTheme { +@@ -393,6 +393,23 @@ class NATIVE_THEME_EXPORT NativeTheme { custom_theme, bool use_custom_frame = true) const; @@ -53,7 +53,7 @@ index 3b9c8841ac65471141307025394464a90b02daa9..dba57a6af6a3ce8dc258a747d721fbc9 // Returns a shared instance of the native theme that should be used for web // rendering. Do not use it in a normal application context (i.e. browser). // The returned object should not be deleted by the caller. This function is -@@ -557,6 +574,7 @@ class NATIVE_THEME_EXPORT NativeTheme { +@@ -566,6 +583,7 @@ class NATIVE_THEME_EXPORT NativeTheme { bool forced_colors_ = false; PreferredColorScheme preferred_color_scheme_ = PreferredColorScheme::kLight; PreferredContrast preferred_contrast_ = PreferredContrast::kNoPreference; 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 529cee547296..6df94a6111ad 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,7 +13,7 @@ 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/renderer/platform/media/multi_buffer_data_source.cc b/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc -index 58256037e0a2485a9f8de9f4086550f39e865b2d..30cf2ee44f6e0629e664fcf2072ad14ca186f947 100644 +index 2879fec717b0b2bba66c599a063079b7ca8ce4b2..4bea0a1be7be5aa8c93a7a4d3cff0dc0ad1c2cd0 100644 --- a/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc +++ b/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc @@ -10,8 +10,10 @@ 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 a8d36d481d1d..d191cb136ea3 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,10 +7,10 @@ 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 fb1ce87c18a72deb815b78b2f989fe0a8ebaf0bc..417e89f3ba808d9e599d391d57df0e481afb5522 100644 +index db3c802746235c0dcfe7fe19ca4315ee77c96743..e9a7dfb8f3a4271d35ef1d33d2dd346c23d65b47 100644 --- a/chrome/browser/spellchecker/spellcheck_service.cc +++ b/chrome/browser/spellchecker/spellcheck_service.cc -@@ -468,6 +468,9 @@ void SpellcheckService::LoadDictionaries() { +@@ -467,6 +467,9 @@ void SpellcheckService::LoadDictionaries() { std::make_unique( dictionary, platform_spellcheck_language, context_, this)); hunspell_dictionaries_.back()->AddObserver(this); @@ -20,7 +20,7 @@ index fb1ce87c18a72deb815b78b2f989fe0a8ebaf0bc..417e89f3ba808d9e599d391d57df0e48 hunspell_dictionaries_.back()->Load(); } -@@ -520,6 +523,20 @@ bool SpellcheckService::IsSpellcheckEnabled() const { +@@ -519,6 +522,20 @@ bool SpellcheckService::IsSpellcheckEnabled() const { (!hunspell_dictionaries_.empty() || enable_if_uninitialized); } 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 18812a84eb3d..61987a15de83 100644 --- a/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch +++ b/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch @@ -81,7 +81,7 @@ index 309422bcf85810db88a048bd0930c4072b41f234..759549f3046f4a897b597409b670bb1c private: const HWND hwnd_; diff --git a/components/viz/service/BUILD.gn b/components/viz/service/BUILD.gn -index d6cce8a676b93a67fa1a5e64d2b189c9dfa616a5..10f4ace6027c32b57f5d070026ecd9565c40b62f 100644 +index 267af5f85d4036e144ad9829922dcd3ac62b8a31..a658a43a12f5597a7bea094471191d040fc3d6c2 100644 --- a/components/viz/service/BUILD.gn +++ b/components/viz/service/BUILD.gn @@ -134,6 +134,8 @@ viz_component("service") { @@ -108,7 +108,7 @@ index 2e9453c18f2f6623d31b477aa856152ddacc3e23..93b6080135c08bc9d4cf7020f4fcb15c } // namespace viz diff --git a/components/viz/service/display_embedder/output_surface_provider_impl.cc b/components/viz/service/display_embedder/output_surface_provider_impl.cc -index 3aaccca596c0287f56841131fc6a5878281593fc..f0fc2e11ddbb7ded1964a815f79e5a1858ac25d2 100644 +index c019d729f29440e44d9dd47ff62d3f8fa1ee19a8..8f589394b12cff75df9708310c5f891664674c28 100644 --- a/components/viz/service/display_embedder/output_surface_provider_impl.cc +++ b/components/viz/service/display_embedder/output_surface_provider_impl.cc @@ -23,12 +23,14 @@ @@ -136,16 +136,16 @@ index 3aaccca596c0287f56841131fc6a5878281593fc..f0fc2e11ddbb7ded1964a815f79e5a18 #if BUILDFLAG(IS_CHROMEOS_ASH) if (surface_handle == gpu::kNullSurfaceHandle) return std::make_unique(); -@@ -101,7 +104,7 @@ std::unique_ptr OutputSurfaceProviderImpl::CreateOutputSurface( +@@ -97,7 +100,7 @@ std::unique_ptr OutputSurfaceProviderImpl::CreateOutputSurface( if (!gpu_compositing) { - output_surface = std::make_unique( + return std::make_unique( - CreateSoftwareOutputDeviceForPlatform(surface_handle, display_client)); + CreateSoftwareOutputDeviceForPlatform(surface_handle, display_client, offscreen)); } else { DCHECK(gpu_dependency); - { -@@ -139,10 +142,22 @@ std::unique_ptr OutputSurfaceProviderImpl::CreateOutputSurface( + +@@ -137,10 +140,22 @@ std::unique_ptr OutputSurfaceProviderImpl::CreateOutputSurface( std::unique_ptr OutputSurfaceProviderImpl::CreateSoftwareOutputDeviceForPlatform( gpu::SurfaceHandle surface_handle, @@ -212,10 +212,10 @@ index 33e12349a951ef533b964d1158f8fa124623e946..fc04bcaffefc277dd1d0cdd766168de0 IOSurfaceCreateMachPort(current_paint_buffer_->io_surface)); client_->SoftwareDeviceUpdatedCALayerParams(ca_layer_params); diff --git a/components/viz/service/display_embedder/software_output_device_mac.h b/components/viz/service/display_embedder/software_output_device_mac.h -index a480befb5d8db36e7e281d5033aeef0bea83d220..4e54acc897d08c87bccc3b44f68634e2873cb132 100644 +index 16a4e74e11775b694dfeeb82b475c628b86174b1..f8099e165da6c8253016abc92ea3021056e37c85 100644 --- a/components/viz/service/display_embedder/software_output_device_mac.h +++ b/components/viz/service/display_embedder/software_output_device_mac.h -@@ -59,6 +59,7 @@ class VIZ_SERVICE_EXPORT SoftwareOutputDeviceMac : public SoftwareOutputDevice { +@@ -60,6 +60,7 @@ class VIZ_SERVICE_EXPORT SoftwareOutputDeviceMac : public SoftwareOutputDevice { void UpdateAndCopyBufferDamage(Buffer* previous_paint_buffer, const SkRegion& new_damage_rect); @@ -572,7 +572,7 @@ index 6b7fbb6cf13dc8ee6ade0878a9a2c1efc5d4d3f1..e2af75168cb914a7b3b4a6c9b6a28549 + Draw(gfx.mojom.Rect damage_rect) => (); }; diff --git a/ui/compositor/compositor.h b/ui/compositor/compositor.h -index 68332e455e2d44efac75253179f3b78d7ce0717a..0ec6343dd574078d381155238ddc2f1d0abb5323 100644 +index e0345f5903a48013930767bee713c177a704970a..2881a4fee66f16e6367724a727abe4643a965a24 100644 --- a/ui/compositor/compositor.h +++ b/ui/compositor/compositor.h @@ -83,6 +83,7 @@ class DisplayPrivate; @@ -610,7 +610,7 @@ index 68332e455e2d44efac75253179f3b78d7ce0717a..0ec6343dd574078d381155238ddc2f1d // Sets the root of the layer tree drawn by this Compositor. The root layer // must have no parent. The compositor's root layer is reset if the root layer // is destroyed. NULL can be passed to reset the root layer, in which case the -@@ -479,6 +493,8 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver, +@@ -482,6 +496,8 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver, std::unique_ptr pending_begin_frame_args_; diff --git a/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch b/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch index b5421f51314c..7efba4760177 100644 --- a/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch +++ b/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch @@ -17,7 +17,7 @@ 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/cpp/resource_request.cc b/services/network/public/cpp/resource_request.cc -index a15e3c4bed344364f9c43e3f0b5c494d58dff789..24e3b291f8c25de2a0b82184fd731538b6586f86 100644 +index c8e468f41930dc8e31533e086d72743e12d134f1..5b54e21568019b108d92c28086b8d73db98fc704 100644 --- a/services/network/public/cpp/resource_request.cc +++ b/services/network/public/cpp/resource_request.cc @@ -233,6 +233,7 @@ bool ResourceRequest::EqualsForTesting(const ResourceRequest& request) const { @@ -29,7 +29,7 @@ index a15e3c4bed344364f9c43e3f0b5c494d58dff789..24e3b291f8c25de2a0b82184fd731538 upgrade_if_insecure == request.upgrade_if_insecure && is_revalidating == request.is_revalidating && diff --git a/services/network/public/cpp/resource_request.h b/services/network/public/cpp/resource_request.h -index 2ff43cc1ef683707001bf22c9b030bf6e7223e0f..cfaf9170666f04407adb5738ce6723900d234735 100644 +index 9af8605aaab177daf89524680cb88455fcb48d04..9c851c96588342b245b24fed51d9241f8da7ffcc 100644 --- a/services/network/public/cpp/resource_request.h +++ b/services/network/public/cpp/resource_request.h @@ -158,6 +158,7 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE) ResourceRequest { @@ -41,7 +41,7 @@ index 2ff43cc1ef683707001bf22c9b030bf6e7223e0f..cfaf9170666f04407adb5738ce672390 bool upgrade_if_insecure = false; bool is_revalidating = false; diff --git a/services/network/public/cpp/url_request_mojom_traits.cc b/services/network/public/cpp/url_request_mojom_traits.cc -index 4f2740ebf2dc4bee423cdbb72cae128f28a03f12..d3f531429598b3666aaba655356155c470e8b645 100644 +index 10295a165e2131b7cd5bff996f36f2214db7a125..2d1bb21bf5813125397a93d368de031b11bb4bbb 100644 --- a/services/network/public/cpp/url_request_mojom_traits.cc +++ b/services/network/public/cpp/url_request_mojom_traits.cc @@ -209,6 +209,7 @@ bool StructTraits< @@ -53,7 +53,7 @@ index 4f2740ebf2dc4bee423cdbb72cae128f28a03f12..d3f531429598b3666aaba655356155c4 out->upgrade_if_insecure = data.upgrade_if_insecure(); out->is_revalidating = data.is_revalidating(); diff --git a/services/network/public/cpp/url_request_mojom_traits.h b/services/network/public/cpp/url_request_mojom_traits.h -index 069768e7ca727fc2ad8f5379900ad4a959a87f4f..3e6bc18564e2a3cdbac9af686636f75d64082464 100644 +index b4f785570ffab62087ef9be3d18cecb6c747fa38..f6ff5ebc9808e230ed358203c5d0024c676bcd85 100644 --- a/services/network/public/cpp/url_request_mojom_traits.h +++ b/services/network/public/cpp/url_request_mojom_traits.h @@ -269,6 +269,9 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE) @@ -67,7 +67,7 @@ index 069768e7ca727fc2ad8f5379900ad4a959a87f4f..3e6bc18564e2a3cdbac9af686636f75d return request.previews_state; } diff --git a/services/network/public/mojom/url_request.mojom b/services/network/public/mojom/url_request.mojom -index ef3e8e68621402db5a97977f49ac74c438b0a563..aa1c1bcf7ca30adde4c25ed9bd8ed8a70eb919e0 100644 +index 05cc03e830d2805d6d572a38e2606de0f346b6bd..75b8da2f1141dffa34d01e84e339b791fdd60664 100644 --- a/services/network/public/mojom/url_request.mojom +++ b/services/network/public/mojom/url_request.mojom @@ -312,6 +312,9 @@ struct URLRequest { @@ -81,7 +81,7 @@ index ef3e8e68621402db5a97977f49ac74c438b0a563..aa1c1bcf7ca30adde4c25ed9bd8ed8a7 // browser decide. // Note: this is an enum of type PreviewsState. diff --git a/services/network/public/mojom/url_response_head.mojom b/services/network/public/mojom/url_response_head.mojom -index 5a0cc45fb7b695bef46e475232adb70893299b96..156073daca8c69e05b478e8365b812321af1bf19 100644 +index 3d2bcc3e81eb42f645fa4e8b1425cb5c54cfd3a1..4cdbe0e38609abfd0b0b5856deb8b2dd5c91ead8 100644 --- a/services/network/public/mojom/url_response_head.mojom +++ b/services/network/public/mojom/url_response_head.mojom @@ -8,6 +8,7 @@ import "mojo/public/mojom/base/time.mojom"; @@ -92,7 +92,7 @@ index 5a0cc45fb7b695bef46e475232adb70893299b96..156073daca8c69e05b478e8365b81232 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"; -@@ -29,6 +30,9 @@ struct URLResponseHead { +@@ -28,6 +29,9 @@ struct URLResponseHead { // The response headers or NULL if the URL type does not support headers. HttpResponseHeaders headers; @@ -103,10 +103,10 @@ index 5a0cc45fb7b695bef46e475232adb70893299b96..156073daca8c69e05b478e8365b81232 string mime_type; diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc -index c1f5c1e8c4eab221ac4e2de312ade85fa41ab803..152c69b657a3fe549dd2ce7e6e9b9c4019554bdf 100644 +index 04ed3a3391b82751d0014027caf37c402a8f068a..7140c4ced6265c388a4015350b1da5d487a02569 100644 --- a/services/network/url_loader.cc +++ b/services/network/url_loader.cc -@@ -605,6 +605,7 @@ URLLoader::URLLoader( +@@ -603,6 +603,7 @@ URLLoader::URLLoader( mojo::SimpleWatcher::ArmingPolicy::MANUAL, base::SequencedTaskRunnerHandle::Get()), per_factory_corb_state_(context.GetMutableCorbState()), @@ -114,7 +114,7 @@ index c1f5c1e8c4eab221ac4e2de312ade85fa41ab803..152c69b657a3fe549dd2ce7e6e9b9c40 devtools_request_id_(request.devtools_request_id), request_mode_(request.mode), request_credentials_mode_(request.credentials_mode), -@@ -799,7 +800,7 @@ URLLoader::URLLoader( +@@ -794,7 +795,7 @@ URLLoader::URLLoader( url_request_->SetRequestHeadersCallback(base::BindRepeating( &URLLoader::SetRawRequestHeadersAndNotify, base::Unretained(this))); @@ -123,7 +123,7 @@ index c1f5c1e8c4eab221ac4e2de312ade85fa41ab803..152c69b657a3fe549dd2ce7e6e9b9c40 url_request_->SetResponseHeadersCallback(base::BindRepeating( &URLLoader::SetRawResponseHeaders, base::Unretained(this))); } -@@ -1531,6 +1532,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) { +@@ -1536,6 +1537,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) { } response_ = BuildResponseHead(); @@ -144,10 +144,10 @@ index c1f5c1e8c4eab221ac4e2de312ade85fa41ab803..152c69b657a3fe549dd2ce7e6e9b9c40 // Parse and remove the Trust Tokens response headers, if any are expected, diff --git a/services/network/url_loader.h b/services/network/url_loader.h -index 6bddb19e692f274afd077bd58145fcb68d59c4a2..08b95c71575e31e5b4d87e4d95ea7d7c8d318d29 100644 +index 158eaacb1bf69afad16107491851dab750df9606..eff061c729bed4b8f3b41699f66d087416b08f47 100644 --- a/services/network/url_loader.h +++ b/services/network/url_loader.h -@@ -522,6 +522,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader +@@ -518,6 +518,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader std::unique_ptr resource_scheduler_request_handle_; diff --git a/patches/chromium/fix_allow_guest_webcontents_to_enter_fullscreen.patch b/patches/chromium/fix_allow_guest_webcontents_to_enter_fullscreen.patch index b154b4ba47d3..ed93dd0e68f2 100644 --- a/patches/chromium/fix_allow_guest_webcontents_to_enter_fullscreen.patch +++ b/patches/chromium/fix_allow_guest_webcontents_to_enter_fullscreen.patch @@ -6,10 +6,10 @@ Subject: fix: allow guest webcontents to enter fullscreen This can be upstreamed, a guest webcontents can't technically become the focused webContents. This DCHECK should allow all guest webContents to request fullscreen entrance. diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 035aa45845d56d0a8edaa693689bb27e6cd3b158..26cfaa4c20794649dcbd5610796031a0f966e3c0 100644 +index 5f200acb893f6c6b4ffb7c5a6ca010dde8a245e9..c3a5751233c48255408db41c10118ffde72f51d6 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -3413,7 +3413,7 @@ void WebContentsImpl::EnterFullscreenMode( +@@ -3440,7 +3440,7 @@ void WebContentsImpl::EnterFullscreenMode( OPTIONAL_TRACE_EVENT0("content", "WebContentsImpl::EnterFullscreenMode"); DCHECK(CanEnterFullscreenMode(requesting_frame, options)); DCHECK(requesting_frame->IsActive()); diff --git a/patches/chromium/fix_aspect_ratio_with_max_size.patch b/patches/chromium/fix_aspect_ratio_with_max_size.patch index e863e3c246ae..2ad1da665769 100644 --- a/patches/chromium/fix_aspect_ratio_with_max_size.patch +++ b/patches/chromium/fix_aspect_ratio_with_max_size.patch @@ -11,10 +11,10 @@ enlarge window above dimensions set during creation of the BrowserWindow. diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc -index 738a56e976a510fcdb44020193cc79522bae0855..7c7952755317a8069becfff58ca5ec89e2266ce4 100644 +index c893bc030b266539f65d31bdc40ba0ba31b70986..b1e8daf5e79cd838c87e01da0e764e12421747db 100644 --- a/ui/views/win/hwnd_message_handler.cc +++ b/ui/views/win/hwnd_message_handler.cc -@@ -3661,6 +3661,21 @@ void HWNDMessageHandler::SizeWindowToAspectRatio(UINT param, +@@ -3696,6 +3696,21 @@ void HWNDMessageHandler::SizeWindowToAspectRatio(UINT param, delegate_->GetMinMaxSize(&min_window_size, &max_window_size); min_window_size = delegate_->DIPToScreenSize(min_window_size); max_window_size = delegate_->DIPToScreenSize(max_window_size); @@ -33,6 +33,6 @@ index 738a56e976a510fcdb44020193cc79522bae0855..7c7952755317a8069becfff58ca5ec89 + if (max_window_size.height()) + max_window_size.Enlarge(0, rect.bottom - rect.top); + } - gfx::SizeRectToAspectRatio(GetWindowResizeEdge(param), aspect_ratio_.value(), - min_window_size, max_window_size, window_rect); - } + + absl::optional max_size_param; + if (!max_window_size.IsEmpty()) 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 33c6a648fb0f..9eff51334550 100644 --- a/patches/chromium/fix_expose_decrementcapturercount_in_web_contents_impl.patch +++ b/patches/chromium/fix_expose_decrementcapturercount_in_web_contents_impl.patch @@ -8,7 +8,7 @@ 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 a44f6d7364ad26965e84a432ae376fa922af5fec..7279dc98acdece8658fbc7e2b343f53299234741 100644 +index df53d0d8371b2f7bbd04ffe6c2d1c171ae457bc8..688883c80d5005b58c39d66c520726bcc62eeac1 100644 --- a/content/browser/web_contents/web_contents_impl.h +++ b/content/browser/web_contents/web_contents_impl.h @@ -1823,7 +1823,7 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents, @@ -21,10 +21,10 @@ index a44f6d7364ad26965e84a432ae376fa922af5fec..7279dc98acdece8658fbc7e2b343f532 // Calculates the PageVisibilityState for |visibility|, taking the capturing // state into account. diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h -index a99435a0a9c1c4e26a53d513f180a07f8308cbc9..273bf488259f7a85b01182edae2d609c32a55ba0 100644 +index 922048fbc03f7222e42e3640b46d3d5e1b2391ba..f2bdadbfaae703006f4888e3dd899a20bac84090 100644 --- a/content/public/browser/web_contents.h +++ b/content/public/browser/web_contents.h -@@ -672,6 +672,10 @@ class WebContents : public PageNavigator, +@@ -667,6 +667,10 @@ class WebContents : public PageNavigator, bool stay_awake, bool is_activity = true) = 0; diff --git a/patches/chromium/fix_patch_out_profile_refs_in_accessibility_ui.patch b/patches/chromium/fix_patch_out_profile_refs_in_accessibility_ui.patch index 64fa426f7515..e10ef4f219dd 100644 --- a/patches/chromium/fix_patch_out_profile_refs_in_accessibility_ui.patch +++ b/patches/chromium/fix_patch_out_profile_refs_in_accessibility_ui.patch @@ -7,7 +7,7 @@ This tweaks Chrome's Accessibility support at chrome://accessibility to make it usable from Electron by removing Profile references. diff --git a/chrome/browser/accessibility/accessibility_ui.cc b/chrome/browser/accessibility/accessibility_ui.cc -index 82794034de0fccde58d04acbe6a799ba5cd57619..505376836fb93df7ebececab0e4f8fe8299fe9e8 100644 +index a1c0a809fee4ddbda55540139e866cfe494c5590..25888d4405b60925ef60726a0f486f6f21e88f30 100644 --- a/chrome/browser/accessibility/accessibility_ui.cc +++ b/chrome/browser/accessibility/accessibility_ui.cc @@ -22,7 +22,10 @@ @@ -60,9 +60,9 @@ index 82794034de0fccde58d04acbe6a799ba5cd57619..505376836fb93df7ebececab0e4f8fe8 + bool show_internal = true; data.SetStringKey(kInternal, show_internal ? kOn : kOff); - std::unique_ptr rvh_list(new base::ListValue()); -@@ -272,12 +279,12 @@ void HandleAccessibilityRequestCallback( - data.Set(kPagesField, std::move(rvh_list)); + std::unique_ptr page_list(new base::ListValue()); +@@ -274,12 +281,12 @@ void HandleAccessibilityRequestCallback( + data.Set(kPagesField, std::move(page_list)); std::unique_ptr browser_list(new base::ListValue()); -#if !BUILDFLAG(IS_ANDROID) @@ -76,7 +76,7 @@ index 82794034de0fccde58d04acbe6a799ba5cd57619..505376836fb93df7ebececab0e4f8fe8 data.Set(kBrowsersField, std::move(browser_list)); std::unique_ptr widgets_list(new base::ListValue()); -@@ -494,8 +501,10 @@ void AccessibilityUIMessageHandler::SetGlobalFlag(const base::ListValue* args) { +@@ -497,8 +504,10 @@ void AccessibilityUIMessageHandler::SetGlobalFlag( AllowJavascript(); if (flag_name_str == kInternal) { @@ -87,7 +87,7 @@ index 82794034de0fccde58d04acbe6a799ba5cd57619..505376836fb93df7ebececab0e4f8fe8 return; } -@@ -602,10 +611,12 @@ void AccessibilityUIMessageHandler::RequestWebContentsTree( +@@ -605,10 +614,12 @@ void AccessibilityUIMessageHandler::RequestWebContentsTree( AXPropertyFilter::ALLOW_EMPTY); AddPropertyFilters(property_filters, deny, AXPropertyFilter::DENY); @@ -101,7 +101,7 @@ index 82794034de0fccde58d04acbe6a799ba5cd57619..505376836fb93df7ebececab0e4f8fe8 result->SetStringKey(kTreeField, accessibility_contents); FireWebUIListener(request_type, *(result.get())); } -@@ -630,6 +641,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree( +@@ -633,6 +644,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree( AXPropertyFilter::ALLOW_EMPTY); AddPropertyFilters(property_filters, deny, AXPropertyFilter::DENY); @@ -109,7 +109,7 @@ index 82794034de0fccde58d04acbe6a799ba5cd57619..505376836fb93df7ebececab0e4f8fe8 for (Browser* browser : *BrowserList::GetInstance()) { if (browser->session_id().id() == session_id) { std::unique_ptr result( -@@ -644,6 +656,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree( +@@ -647,6 +659,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree( return; } } @@ -117,7 +117,7 @@ index 82794034de0fccde58d04acbe6a799ba5cd57619..505376836fb93df7ebececab0e4f8fe8 #endif // !BUILDFLAG(IS_ANDROID) // No browser with the specified |session_id| was found. std::unique_ptr result(new base::DictionaryValue()); -@@ -760,5 +773,7 @@ void AccessibilityUIMessageHandler::RequestAccessibilityEvents( +@@ -763,5 +776,7 @@ void AccessibilityUIMessageHandler::RequestAccessibilityEvents( // static void AccessibilityUIMessageHandler::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { @@ -126,10 +126,10 @@ index 82794034de0fccde58d04acbe6a799ba5cd57619..505376836fb93df7ebececab0e4f8fe8 +#endif } diff --git a/chrome/browser/accessibility/accessibility_ui.h b/chrome/browser/accessibility/accessibility_ui.h -index 0f73d3883093f6e49427ac6fe6428e97282a1e03..9041c90d13b07b03cc96e8a03a3821ef54a69a7d 100644 +index 6bc5891205fc94377040d9195b0ee15a47a90382..16a25b6a5670a74cf260210b06bc9892431cd760 100644 --- a/chrome/browser/accessibility/accessibility_ui.h +++ b/chrome/browser/accessibility/accessibility_ui.h -@@ -26,6 +26,8 @@ struct AXEventNotificationDetails; +@@ -25,6 +25,8 @@ struct AXEventNotificationDetails; class WebContents; } // namespace content @@ -138,7 +138,7 @@ index 0f73d3883093f6e49427ac6fe6428e97282a1e03..9041c90d13b07b03cc96e8a03a3821ef namespace user_prefs { class PrefRegistrySyncable; } // namespace user_prefs -@@ -67,6 +69,8 @@ class AccessibilityUIMessageHandler : public content::WebUIMessageHandler { +@@ -66,6 +68,8 @@ class AccessibilityUIMessageHandler : public content::WebUIMessageHandler { static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); private: diff --git a/patches/chromium/fix_properly_honor_printing_page_ranges.patch b/patches/chromium/fix_properly_honor_printing_page_ranges.patch index 6d21c86fbadc..df7e887c60b1 100644 --- a/patches/chromium/fix_properly_honor_printing_page_ranges.patch +++ b/patches/chromium/fix_properly_honor_printing_page_ranges.patch @@ -100,10 +100,10 @@ index b7ba6ba4446963b08bce9fe416379169bd880378..7c621ea7a60725d08ee9ade68b65fd5b } else { // No need to bother, we don't know how many pages are available. diff --git a/ui/gtk/printing/print_dialog_gtk.cc b/ui/gtk/printing/print_dialog_gtk.cc -index 8ff9cf6dec605d5f56f0325fb3a03826b425970c..20d06930e81ad4b2b1ee789599ba84c6ff83682d 100644 +index db23b214107c2b4a137e623e183ca08b409959fb..3f10aa71ad6fe698392228dd4b8a73eae7b1dbc6 100644 --- a/ui/gtk/printing/print_dialog_gtk.cc +++ b/ui/gtk/printing/print_dialog_gtk.cc -@@ -242,6 +242,24 @@ void PrintDialogGtk::UpdateSettings( +@@ -243,6 +243,24 @@ void PrintDialogGtk::UpdateSettings( gtk_print_settings_set_n_copies(gtk_settings_, settings->copies()); gtk_print_settings_set_collate(gtk_settings_, settings->collate()); diff --git a/patches/chromium/frame_host_manager.patch b/patches/chromium/frame_host_manager.patch index afee9f92509f..fd346c08904e 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 398358851f4ec3d1373091c352fe864b8901f08b..0fadcf6eb5aa9e7e6ca32ec252f1722ab87b6be9 100644 +index acfea574749cce9c9babac12593679c1c2c3b1af..0d44d3b022042dbcbb9f188adb90074c752741b8 100644 --- a/content/browser/renderer_host/render_frame_host_manager.cc +++ b/content/browser/renderer_host/render_frame_host_manager.cc -@@ -3203,6 +3203,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( +@@ -3177,6 +3177,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( request->ResetStateForSiteInstanceChange(); } @@ -20,7 +20,7 @@ index 398358851f4ec3d1373091c352fe864b8901f08b..0fadcf6eb5aa9e7e6ca32ec252f1722a } diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h -index 2f786efe35ebdff7061118a14247859ed30eeb2a..6453286e79ac9edb6566c7db605ef2e3bfa7feb5 100644 +index cfe1fc63e293cb2bcafb6c9e6778ee39ef266e89..bbbdd32152f904d10e040ccf80dd1d1406b3d7a1 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h @@ -271,6 +271,11 @@ class CONTENT_EXPORT ContentBrowserClient { diff --git a/patches/chromium/gpu_notify_when_dxdiag_request_fails.patch b/patches/chromium/gpu_notify_when_dxdiag_request_fails.patch index 8fbc394f99fb..3cfbeec90847 100644 --- a/patches/chromium/gpu_notify_when_dxdiag_request_fails.patch +++ b/patches/chromium/gpu_notify_when_dxdiag_request_fails.patch @@ -40,10 +40,10 @@ index 0a01900683c73778565f9059b293bbe863d2d070..cd4e58f73e7d5bd0f9f41b1ec6303166 void UpdateDawnInfo(const std::vector& dawn_info_list); diff --git a/content/browser/gpu/gpu_data_manager_impl_private.cc b/content/browser/gpu/gpu_data_manager_impl_private.cc -index 88b4436d618d8b110ead2b739f1249232698f218..20376095d83cfaf838992cb720f369c98ba816d1 100644 +index 54e4a915263eaf1cb6a2854c61b26d0269a49228..567f9e42a931975770f8ce63ce9b0ba80f8f234c 100644 --- a/content/browser/gpu/gpu_data_manager_impl_private.cc +++ b/content/browser/gpu/gpu_data_manager_impl_private.cc -@@ -1235,6 +1235,12 @@ void GpuDataManagerImplPrivate::TerminateInfoCollectionGpuProcess() { +@@ -1237,6 +1237,12 @@ void GpuDataManagerImplPrivate::TerminateInfoCollectionGpuProcess() { if (host) host->ForceShutdown(); } diff --git a/patches/chromium/gritsettings_resource_ids.patch b/patches/chromium/gritsettings_resource_ids.patch index 1148b8f694dd..0e01d9d17a48 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 626187e49ef53b5d74aa91dcf14821672a8f62b5..86f0e29fab782e5ebcf5977739dc6b72cf3c6b0a 100644 +index 1c50dbb9503e755ebbad2ea6d66484331862b72f..b9188ede8a4dc45bb5c573bc2cd8642c9256de36 100644 --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec -@@ -959,6 +959,11 @@ +@@ -967,6 +967,11 @@ "includes": [4960], }, diff --git a/patches/chromium/gtk_visibility.patch b/patches/chromium/gtk_visibility.patch index 6924ea290af6..1d054623e40a 100644 --- a/patches/chromium/gtk_visibility.patch +++ b/patches/chromium/gtk_visibility.patch @@ -18,7 +18,7 @@ index 349043f8a3cfc9f91cbae951e74258799a4fd126..0f7e3e544f524a7ad6660b54912cb119 # on GTK. "//examples:peerconnection_client", diff --git a/ui/ozone/platform/x11/BUILD.gn b/ui/ozone/platform/x11/BUILD.gn -index 52c52a8425fb2940d77cc6a0f73414aff3b32ec6..6432c01da49b89ef9d5c1123dd7f191b48184032 100644 +index a4edf639f8fe7170ce15f80e6e429d035fd5d7f7..7bf86bfde863b05c4727f09b24f556f2073d928a 100644 --- a/ui/ozone/platform/x11/BUILD.gn +++ b/ui/ozone/platform/x11/BUILD.gn @@ -6,7 +6,7 @@ import("//build/config/chromeos/ui_mode.gni") 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 22458236851b..1bef249bf39c 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,7 +11,7 @@ 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 32a309a31994453c413b5bf78991fc1a1b0ec60b..b42d000283d52b72a7b85428e68b06a2a52d2a57 100755 +index 68b47d4f483b064d7be5a19552cddfe3f2b12bb2..d3191ad5984dcad633cbab5da45824871961d212 100755 --- a/tools/clang/scripts/update.py +++ b/tools/clang/scripts/update.py @@ -302,6 +302,8 @@ def GetDefaultHostOs(): diff --git a/patches/chromium/introduce_ozoneplatform_electron_can_call_x11_property.patch b/patches/chromium/introduce_ozoneplatform_electron_can_call_x11_property.patch index 3342d70593fd..cbfe9c8f66bb 100644 --- a/patches/chromium/introduce_ozoneplatform_electron_can_call_x11_property.patch +++ b/patches/chromium/introduce_ozoneplatform_electron_can_call_x11_property.patch @@ -9,10 +9,10 @@ at rutime. It would be best if eventually all usages of this property were replaced with clean ozone native implementations. diff --git a/ui/ozone/platform/x11/ozone_platform_x11.cc b/ui/ozone/platform/x11/ozone_platform_x11.cc -index 9008af973427d7dab8170449bc5767cebc9d2e9e..e312287e4aca61b51a69c8413088f56f9f704b5e 100644 +index 7ffb9d707407210e566c8f2bd2f89cf7f31690c9..06bb59fe5e855d0a339e738cf12c566afcf376ac 100644 --- a/ui/ozone/platform/x11/ozone_platform_x11.cc +++ b/ui/ozone/platform/x11/ozone_platform_x11.cc -@@ -200,6 +200,7 @@ class OzonePlatformX11 : public OzonePlatform, +@@ -199,6 +199,7 @@ class OzonePlatformX11 : public OzonePlatform, properties->supports_vulkan_swap_chain = true; properties->uses_external_vulkan_image_factory = true; properties->skia_can_fall_back_to_x11 = true; diff --git a/patches/chromium/load_v8_snapshot_in_browser_process.patch b/patches/chromium/load_v8_snapshot_in_browser_process.patch index 25236e534c2f..63c91afd53a9 100644 --- a/patches/chromium/load_v8_snapshot_in_browser_process.patch +++ b/patches/chromium/load_v8_snapshot_in_browser_process.patch @@ -9,10 +9,10 @@ but due to the nature of electron, we need to load the v8 snapshot in the browser process. diff --git a/content/app/content_main_runner_impl.cc b/content/app/content_main_runner_impl.cc -index 892ed9c63346595376ea89bd8161bd66bb43459a..328f8b800c36544f7906536416ac61dc87cc45d3 100644 +index 88e46d8d05c0b5732468568b84b3283d2f4a934e..f19e32fd33ff0ce8f44ecec76e4583273f43b231 100644 --- a/content/app/content_main_runner_impl.cc +++ b/content/app/content_main_runner_impl.cc -@@ -253,11 +253,8 @@ void LoadV8SnapshotFile(const base::CommandLine& command_line) { +@@ -251,11 +251,8 @@ void LoadV8SnapshotFile(const base::CommandLine& command_line) { bool ShouldLoadV8Snapshot(const base::CommandLine& command_line, const std::string& process_type) { diff --git a/patches/chromium/logging_win32_only_create_a_console_if_logging_to_stderr.patch b/patches/chromium/logging_win32_only_create_a_console_if_logging_to_stderr.patch index def44cb73a8e..f54ca7b264d4 100644 --- a/patches/chromium/logging_win32_only_create_a_console_if_logging_to_stderr.patch +++ b/patches/chromium/logging_win32_only_create_a_console_if_logging_to_stderr.patch @@ -9,10 +9,10 @@ be created for each child process, despite logs being redirected to a file. diff --git a/content/app/content_main.cc b/content/app/content_main.cc -index bb2d3e991195877264fca46abd224d3a6ffd17e8..fc4f271f54235d2d8d823fdb0d95e3c76243390f 100644 +index b54d534b4d408c30341b20409fec75d3a66ca519..d0a00518d06bbb0da228662924b2ab9e568ef940 100644 --- a/content/app/content_main.cc +++ b/content/app/content_main.cc -@@ -387,8 +387,12 @@ RunContentProcess(ContentMainParams params, +@@ -386,8 +386,12 @@ RunContentProcess(ContentMainParams params, #if BUILDFLAG(IS_WIN) // Route stdio to parent console (if any) or create one. diff --git a/patches/chromium/mas_avoid_usage_of_private_macos_apis.patch b/patches/chromium/mas_avoid_usage_of_private_macos_apis.patch index 39aae9ea0f7b..56b21c48e776 100644 --- a/patches/chromium/mas_avoid_usage_of_private_macos_apis.patch +++ b/patches/chromium/mas_avoid_usage_of_private_macos_apis.patch @@ -39,7 +39,7 @@ index dd14c8cfa32ab0bb2e92f192c54a494c4f5b4fb7..2c6f0b336c97bc23995e9fe8cdc7f72a } // namespace base diff --git a/base/mac/foundation_util.mm b/base/mac/foundation_util.mm -index 61641e1ad8a47a4910918ff61523a23854745b81..d4a3e2282256f5a43235b40b4c9f46caa725c507 100644 +index bb1cb98f246f120f566fab65565f49a6468b82b4..929188b8d0e39f171679067347d4f83632364cc7 100644 --- a/base/mac/foundation_util.mm +++ b/base/mac/foundation_util.mm @@ -30,12 +30,6 @@ @@ -55,7 +55,7 @@ index 61641e1ad8a47a4910918ff61523a23854745b81..d4a3e2282256f5a43235b40b4c9f46ca #endif } // extern "C" -@@ -316,8 +310,7 @@ void SetBaseBundleID(const char* new_base_bundle_id) { +@@ -317,8 +311,7 @@ void SetBaseBundleID(const char* new_base_bundle_id) { const_cast(reinterpret_cast(cf_val)); DCHECK(!cf_val || CTFontGetTypeID() == CFGetTypeID(cf_val) || @@ -65,7 +65,7 @@ index 61641e1ad8a47a4910918ff61523a23854745b81..d4a3e2282256f5a43235b40b4c9f46ca return ns_val; } -@@ -388,9 +381,6 @@ CTFontRef NSToCFCast(NSFont* ns_val) { +@@ -389,9 +382,6 @@ CTFontRef NSToCFCast(NSFont* ns_val) { return (CTFontRef)(cf_val); } @@ -142,7 +142,7 @@ index e12c36384ddc05554ed362bba2c0a8b418634f0a..1c740410de70ee5a888ee7cf406dfa3b std::vector argv_cstr; argv_cstr.reserve(argv.size() + 1); diff --git a/media/audio/mac/audio_low_latency_input_mac.cc b/media/audio/mac/audio_low_latency_input_mac.cc -index 0e842caf7b6487d94978c7b68fb5b222e330581f..5eafcd163ee1a05203a5eb76592a449f5a84e71f 100644 +index de981fa288c19ca46a8172e99bc25df36ff29d50..45e5648826c60f6ba6332776e7579a62165b0e8d 100644 --- a/media/audio/mac/audio_low_latency_input_mac.cc +++ b/media/audio/mac/audio_low_latency_input_mac.cc @@ -34,19 +34,23 @@ diff --git a/patches/chromium/mas_disable_remote_accessibility.patch b/patches/chromium/mas_disable_remote_accessibility.patch index a6599f5be164..2e6268144335 100644 --- a/patches/chromium/mas_disable_remote_accessibility.patch +++ b/patches/chromium/mas_disable_remote_accessibility.patch @@ -44,10 +44,10 @@ index 306db835fe203f663b1d84dd3490b619eb3f60b2..7a41d7afe6197e0a78934206782b1063 } // namespace diff --git a/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm b/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm -index aa6a1a667af13a76ef299681367b31a8668d7425..949fdc533703862d02a19f08dcd26a56e7845d4a 100644 +index 34721e51d0ebe3a99751bba88b0afe026a910cc6..3a415dd6daf655c31ceb6fd6d307dc6e96c9aced 100644 --- a/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm +++ b/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm -@@ -580,10 +580,12 @@ NSUInteger CountBridgedWindows(NSArray* child_windows) { +@@ -582,10 +582,12 @@ NSUInteger CountBridgedWindows(NSArray* child_windows) { // this should be treated as an error and caught early. CHECK(bridged_view_); @@ -86,11 +86,41 @@ index 60e99da4a9493dbaca871b08d75341a48488a65e..3328e9e90bd4904dd404b413fd4245f4 }; } +diff --git a/content/browser/accessibility/browser_accessibility_manager_mac.mm b/content/browser/accessibility/browser_accessibility_manager_mac.mm +index f61b04b02673e9a73f9c23823017a56b65b47dee..297b5c5584e9221adf11515c015fd7f413d29aab 100644 +--- a/content/browser/accessibility/browser_accessibility_manager_mac.mm ++++ b/content/browser/accessibility/browser_accessibility_manager_mac.mm +@@ -21,7 +21,9 @@ + #include "ui/accelerated_widget_mac/accelerated_widget_mac.h" + #include "ui/accessibility/ax_role_properties.h" + #include "ui/accessibility/platform/ax_private_webkit_constants_mac.h" ++#ifndef MAS_BUILD + #include "ui/base/cocoa/remote_accessibility_api.h" ++#endif + + namespace { + +@@ -609,6 +611,7 @@ void PostAnnouncementNotification(NSString* announcement) { + if ([NSApp isActive]) + return window == [NSApp accessibilityFocusedWindow]; + ++#ifndef MAS_BUILD + // TODO(accessibility): We need a solution to the problem described below. + // If the window is NSAccessibilityRemoteUIElement, there are some challenges: + // 1. NSApp is the browser which spawned the PWA, and what it considers the +@@ -636,6 +639,7 @@ void PostAnnouncementNotification(NSString* announcement) { + // from within the app shim content. + if ([window isKindOfClass:[NSAccessibilityRemoteUIElement class]]) + return true; ++#endif + + return false; + } 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 71369b69fe03409ec0eb7fe071b1d49524748fec..9ce1e4a7efce6b39306baceac953db23e8d14240 100644 +index a27ce05f20a8d645688c5bb920d36e76901e2b37..cb4238fe7d5f2d182c742532cf467880db7b309e 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.h +++ b/content/browser/renderer_host/render_widget_host_view_mac.h -@@ -49,7 +49,9 @@ class ScopedPasswordInputEnabler; +@@ -51,7 +51,9 @@ class ScopedPasswordInputEnabler; @protocol RenderWidgetHostViewMacDelegate; @@ -100,7 +130,7 @@ index 71369b69fe03409ec0eb7fe071b1d49524748fec..9ce1e4a7efce6b39306baceac953db23 @class RenderWidgetHostViewCocoa; namespace content { -@@ -661,10 +663,12 @@ class CONTENT_EXPORT RenderWidgetHostViewMac +@@ -665,10 +667,12 @@ class CONTENT_EXPORT RenderWidgetHostViewMac // EnsureSurfaceSynchronizedForWebTest(). uint32_t latest_capture_sequence_number_ = 0u; @@ -114,7 +144,7 @@ index 71369b69fe03409ec0eb7fe071b1d49524748fec..9ce1e4a7efce6b39306baceac953db23 // 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 c3aff789a9e540eace8c6e952c617c89ff8e26ab..19396ba065ebab86903e2d52dc72d22de9d6bc89 100644 +index 6975087ef6cc6483aa0d8c301cedfb126d471e11..fc7c4474aaa74000b901b93b26bb46d7a7dc07a3 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm @@ -258,8 +258,10 @@ @@ -128,7 +158,7 @@ index c3aff789a9e540eace8c6e952c617c89ff8e26ab..19396ba065ebab86903e2d52dc72d22d // Disconnect from the previous bridge (this will have the effect of // destroying the associated bridge), and close the receiver (to allow it -@@ -1548,8 +1550,10 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback, +@@ -1555,8 +1557,10 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback, gfx::NativeViewAccessible RenderWidgetHostViewMac::AccessibilityGetNativeViewAccessibleForWindow() { @@ -139,7 +169,7 @@ index c3aff789a9e540eace8c6e952c617c89ff8e26ab..19396ba065ebab86903e2d52dc72d22d return [GetInProcessNSView() window]; } -@@ -1593,9 +1597,11 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback, +@@ -1600,9 +1604,11 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback, } void RenderWidgetHostViewMac::SetAccessibilityWindow(NSWindow* window) { @@ -151,7 +181,7 @@ index c3aff789a9e540eace8c6e952c617c89ff8e26ab..19396ba065ebab86903e2d52dc72d22d } bool RenderWidgetHostViewMac::SyncIsWidgetForMainFrame( -@@ -2090,12 +2096,14 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback, +@@ -2097,12 +2103,14 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback, void RenderWidgetHostViewMac::SetRemoteAccessibilityWindowToken( const std::vector& window_token) { @@ -167,10 +197,10 @@ index c3aff789a9e540eace8c6e952c617c89ff8e26ab..19396ba065ebab86903e2d52dc72d22d /////////////////////////////////////////////////////////////////////////////// diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn -index 9de91819e2658a58b8b7a8c90fd97544e22964f0..ade6c4085720e16843faf63f43688f28057a34dc 100644 +index 7fc550eb16288cc5f4152362504a621abbaec3da..6be133c45a9b8c774b9f6e1e2de492c43bac33d3 100644 --- a/ui/base/BUILD.gn +++ b/ui/base/BUILD.gn -@@ -337,6 +337,13 @@ component("base") { +@@ -341,6 +341,13 @@ component("base") { sources += [ "resource/resource_bundle_lacros.cc" ] } @@ -205,10 +235,10 @@ index e7adfee3210ec723c687adfcc4bee8827ef643e7..25a924a47eeb30d783ef83dbb4896c4b + #endif // UI_BASE_COCOA_REMOTE_ACCESSIBILITY_API_H_ diff --git a/ui/views/cocoa/native_widget_mac_ns_window_host.h b/ui/views/cocoa/native_widget_mac_ns_window_host.h -index 1ca8dab6cec9f4160f557d034deda9f3b98b9459..e6d3656c0a66d94cdbdb0141e7e44439e84aa8dd 100644 +index fc847f1ae010e4e0d69836f16d83515b8a92073a..a4bebe5078ace6c49cb34912813bbaf76b43b00c 100644 --- a/ui/views/cocoa/native_widget_mac_ns_window_host.h +++ b/ui/views/cocoa/native_widget_mac_ns_window_host.h -@@ -31,7 +31,9 @@ +@@ -32,7 +32,9 @@ #include "ui/views/window/dialog_observer.h" @class NativeWidgetMacNSWindow; @@ -218,7 +248,7 @@ index 1ca8dab6cec9f4160f557d034deda9f3b98b9459..e6d3656c0a66d94cdbdb0141e7e44439 @class NSView; namespace remote_cocoa { -@@ -445,11 +447,13 @@ class VIEWS_EXPORT NativeWidgetMacNSWindowHost +@@ -447,11 +449,13 @@ class VIEWS_EXPORT NativeWidgetMacNSWindowHost mojo::AssociatedRemote remote_ns_window_remote_; @@ -233,10 +263,10 @@ index 1ca8dab6cec9f4160f557d034deda9f3b98b9459..e6d3656c0a66d94cdbdb0141e7e44439 // Used to force the NSApplication's focused accessibility element to be the // views::Views accessibility tree when the NSView for this is focused. diff --git a/ui/views/cocoa/native_widget_mac_ns_window_host.mm b/ui/views/cocoa/native_widget_mac_ns_window_host.mm -index e0a337647572929882c8dc4fdb6c1bcad54071df..2a18cbed5933419e2f8c830376bfee6ab1db9a9f 100644 +index 0ca869c22670d057362132b30c704876e1d4d850..839a6777ebd596f41467fd90c725eea374bf9a0a 100644 --- a/ui/views/cocoa/native_widget_mac_ns_window_host.mm +++ b/ui/views/cocoa/native_widget_mac_ns_window_host.mm -@@ -294,14 +294,22 @@ void HandleAccelerator(const ui::Accelerator& accelerator, +@@ -295,14 +295,22 @@ void HandleAccelerator(const ui::Accelerator& accelerator, NativeWidgetMacNSWindowHost::GetNativeViewAccessibleForNSView() const { if (in_process_ns_window_bridge_) return in_process_ns_window_bridge_->ns_view(); @@ -259,7 +289,7 @@ index e0a337647572929882c8dc4fdb6c1bcad54071df..2a18cbed5933419e2f8c830376bfee6a } remote_cocoa::mojom::NativeWidgetNSWindow* -@@ -1257,6 +1265,7 @@ void HandleAccelerator(const ui::Accelerator& accelerator, +@@ -1261,6 +1269,7 @@ void HandleAccelerator(const ui::Accelerator& accelerator, void NativeWidgetMacNSWindowHost::SetRemoteAccessibilityTokens( const std::vector& window_token, const std::vector& view_token) { @@ -267,7 +297,7 @@ index e0a337647572929882c8dc4fdb6c1bcad54071df..2a18cbed5933419e2f8c830376bfee6a remote_window_accessible_ = ui::RemoteAccessibility::GetRemoteElementFromToken(window_token); remote_view_accessible_ = -@@ -1264,14 +1273,17 @@ void HandleAccelerator(const ui::Accelerator& accelerator, +@@ -1268,14 +1277,17 @@ void HandleAccelerator(const ui::Accelerator& accelerator, [remote_view_accessible_ setWindowUIElement:remote_window_accessible_.get()]; [remote_view_accessible_ setTopLevelUIElement:remote_window_accessible_.get()]; diff --git a/patches/chromium/mas_no_private_api.patch b/patches/chromium/mas_no_private_api.patch index d6eb624fba6d..d97162e9a4bc 100644 --- a/patches/chromium/mas_no_private_api.patch +++ b/patches/chromium/mas_no_private_api.patch @@ -166,7 +166,7 @@ index 69e60d498941c34cfac9e79c7517765bf93849f5..b998ad7cf01c21e93c57e1283cfdcb1e void BluetoothAdapterMac::RemovePairingDelegateInternal( diff --git a/media/audio/BUILD.gn b/media/audio/BUILD.gn -index bf0142f0089d14e8fef22afe3d1d3916b7dccefd..cee63f36c1a802eacf878a119ab1904cf5b56d51 100644 +index 2a9cf9620bcc4453a24d48037f0092b6f270806a..6182aac37a7153b9a193565253fe77f9b72db55f 100644 --- a/media/audio/BUILD.gn +++ b/media/audio/BUILD.gn @@ -176,6 +176,12 @@ source_set("audio") { @@ -196,10 +196,10 @@ index eb0aff29b2f4fd2b035ef96186fd58d976876b05..8a68a8885ec42715c9b9dab0f04d1b90 } diff --git a/net/dns/dns_config_service_posix.cc b/net/dns/dns_config_service_posix.cc -index 3cce5f20af78f4456466df64fe0d040b5dba5fa8..1814ebbca91007b242a4e4ef359896594c23616a 100644 +index 025078e112683380b484b7c47f786862f4e48a74..11c81ec36a9793afab0da8578f85378f9ce3a446 100644 --- a/net/dns/dns_config_service_posix.cc +++ b/net/dns/dns_config_service_posix.cc -@@ -129,8 +129,8 @@ class DnsConfigServicePosix::Watcher : public DnsConfigService::Watcher { +@@ -130,8 +130,8 @@ class DnsConfigServicePosix::Watcher : public DnsConfigService::Watcher { bool Watch() override { CheckOnCorrectSequence(); @@ -209,7 +209,7 @@ index 3cce5f20af78f4456466df64fe0d040b5dba5fa8..1814ebbca91007b242a4e4ef35989659 if (!config_watcher_.Watch(base::BindRepeating(&Watcher::OnConfigChanged, base::Unretained(this)))) { LOG(ERROR) << "DNS config watch failed to start."; -@@ -147,6 +147,7 @@ class DnsConfigServicePosix::Watcher : public DnsConfigService::Watcher { +@@ -148,6 +148,7 @@ class DnsConfigServicePosix::Watcher : public DnsConfigService::Watcher { success = false; } #endif // !BUILDFLAG(IS_IOS) 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 ab99d0e9c103..8af5607e3924 100644 --- a/patches/chromium/network_service_allow_remote_certificate_verification_logic.patch +++ b/patches/chromium/network_service_allow_remote_certificate_verification_logic.patch @@ -7,10 +7,10 @@ This adds a callback from the network service that's used to implement session.setCertificateVerifyCallback. diff --git a/services/network/network_context.cc b/services/network/network_context.cc -index 872f6c27997242ce8d5fe8db155dd60516f03b5b..7dc2ce4577594d16930fd97ad3370e28765a0327 100644 +index c2824b6bcfab1c13d0e44ca96fc05c97b4a13a6e..61030982c4391dd1b4b508042628e7f006047158 100644 --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -128,6 +128,11 @@ +@@ -129,6 +129,11 @@ #include "third_party/abseil-cpp/absl/types/optional.h" #include "url/gurl.h" @@ -22,7 +22,7 @@ index 872f6c27997242ce8d5fe8db155dd60516f03b5b..7dc2ce4577594d16930fd97ad3370e28 #if BUILDFLAG(IS_CT_SUPPORTED) #include "components/certificate_transparency/chrome_ct_policy_enforcer.h" #include "components/certificate_transparency/chrome_require_ct_delegate.h" -@@ -436,6 +441,91 @@ bool GetFullDataFilePath( +@@ -437,6 +442,91 @@ bool GetFullDataFilePath( } // namespace @@ -114,7 +114,7 @@ index 872f6c27997242ce8d5fe8db155dd60516f03b5b..7dc2ce4577594d16930fd97ad3370e28 constexpr uint32_t NetworkContext::kMaxOutstandingRequestsPerProcess; NetworkContext::PendingCertVerify::PendingCertVerify() = default; -@@ -742,6 +832,13 @@ void NetworkContext::SetClient( +@@ -739,6 +829,13 @@ void NetworkContext::SetClient( client_.Bind(std::move(client)); } @@ -128,9 +128,9 @@ index 872f6c27997242ce8d5fe8db155dd60516f03b5b..7dc2ce4577594d16930fd97ad3370e28 void NetworkContext::CreateURLLoaderFactory( mojo::PendingReceiver receiver, mojom::URLLoaderFactoryParamsPtr params) { -@@ -2295,6 +2392,9 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -2303,6 +2400,9 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( std::move(cert_verifier)); - cert_verifier = base::WrapUnique(cert_verifier_with_trust_anchors_); + cert_verifier = base::WrapUnique(cert_verifier_with_trust_anchors_.get()); #endif // BUILDFLAG(IS_CHROMEOS) + auto remote_cert_verifier = std::make_unique(std::move(cert_verifier)); + remote_cert_verifier_ = remote_cert_verifier.get(); @@ -139,10 +139,10 @@ index 872f6c27997242ce8d5fe8db155dd60516f03b5b..7dc2ce4577594d16930fd97ad3370e28 builder.SetCertVerifier(IgnoreErrorsCertVerifier::MaybeWrapCertVerifier( diff --git a/services/network/network_context.h b/services/network/network_context.h -index 4da0446b68ff11f65df809f04209a0e0daf12015..9d86b641760c82f145d17a4e70813cd13fad9d9c 100644 +index 34b3e31549ee37b58eee4c11c54bd34af73af263..d88d9d2bc4b95464ca9a8cacec33361f12d25ea4 100644 --- a/services/network/network_context.h +++ b/services/network/network_context.h -@@ -106,6 +106,7 @@ class URLMatcher; +@@ -105,6 +105,7 @@ class URLMatcher; namespace network { class CertVerifierWithTrustAnchors; @@ -150,7 +150,7 @@ index 4da0446b68ff11f65df809f04209a0e0daf12015..9d86b641760c82f145d17a4e70813cd1 class CookieManager; class ExpectCTReporter; class HostResolver; -@@ -237,6 +238,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -236,6 +237,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext void CreateURLLoaderFactory( mojo::PendingReceiver receiver, mojom::URLLoaderFactoryParamsPtr params) override; @@ -159,7 +159,7 @@ index 4da0446b68ff11f65df809f04209a0e0daf12015..9d86b641760c82f145d17a4e70813cd1 void ResetURLLoaderFactories() override; void GetCookieManager( mojo::PendingReceiver receiver) override; -@@ -824,6 +827,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -821,6 +824,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext std::vector dismount_closures_; #endif // BUILDFLAG(IS_DIRECTORY_TRANSFER_REQUIRED) @@ -169,7 +169,7 @@ index 4da0446b68ff11f65df809f04209a0e0daf12015..9d86b641760c82f145d17a4e70813cd1 // 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 9428fe1432ee5cae0d0f812dd48878861d31e09c..e180a77e7727acb093e12a2879c3cfb3b3771a6f 100644 +index 0a376689aeb81f85372ce163d9e199ada2cdcde2..118c6469c038e5b53eb76f76abf60f5df15a94d1 100644 --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom @@ -283,6 +283,17 @@ struct NetworkContextFilePaths { @@ -190,7 +190,7 @@ index 9428fe1432ee5cae0d0f812dd48878861d31e09c..e180a77e7727acb093e12a2879c3cfb3 // Parameters for constructing a network context. struct NetworkContextParams { // The user agent string. -@@ -844,6 +855,9 @@ interface NetworkContext { +@@ -848,6 +859,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 d835fbd37967..5978e72355e8 100644 --- a/patches/chromium/notification_provenance.patch +++ b/patches/chromium/notification_provenance.patch @@ -31,7 +31,7 @@ index b0e64049d411305d58802fd290bb0480e9b36fee..4afcf3b7a5b841409b0e1c4c2f32fd48 const GURL& origin, const GURL& document_url, diff --git a/content/browser/notifications/blink_notification_service_impl.cc b/content/browser/notifications/blink_notification_service_impl.cc -index 0c59d3cec404bc28acd112329ebd8332cfae96a4..62f06f55ec122597af442561fb688c0f6654be6e 100644 +index c969a5d35eac7b071b46d6a8106072e571f177a5..033618eda6e1e5b90a6e9b655e38f27bf051380a 100644 --- a/content/browser/notifications/blink_notification_service_impl.cc +++ b/content/browser/notifications/blink_notification_service_impl.cc @@ -83,11 +83,13 @@ BlinkNotificationServiceImpl::BlinkNotificationServiceImpl( @@ -133,10 +133,10 @@ index 424fae79eb1c93f1fac293ae8fdeb6d067f523cc..6a2f074ad981deb15b46bd91b6d7eb5d const GURL& document_url, const WeakDocumentPtr& weak_document_ptr, diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc -index 6a94b868e963d98c09d130c70b7c7740c6b544e3..654d7d77b2a7ea8e1819288bb49084e435072ba9 100644 +index db1e97364a68fdc987274f2a7a940d9d63ac111e..8b236cbd54011bc0008d56ca4213920e478f7a90 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -2055,8 +2055,9 @@ void RenderProcessHostImpl::CreateNotificationService( +@@ -2059,8 +2059,9 @@ void RenderProcessHostImpl::CreateNotificationService( // For workers: if (render_frame_id == MSG_ROUTING_NONE) { storage_partition_impl_->GetPlatformNotificationContext()->CreateService( @@ -148,7 +148,7 @@ index 6a94b868e963d98c09d130c70b7c7740c6b544e3..654d7d77b2a7ea8e1819288bb49084e4 return; } -@@ -2064,7 +2065,7 @@ void RenderProcessHostImpl::CreateNotificationService( +@@ -2068,7 +2069,7 @@ void RenderProcessHostImpl::CreateNotificationService( RenderFrameHost* rfh = RenderFrameHost::FromID(GetID(), render_frame_id); CHECK(rfh); storage_partition_impl_->GetPlatformNotificationContext()->CreateService( diff --git a/patches/chromium/port_autofill_colors_to_the_color_pipeline.patch b/patches/chromium/port_autofill_colors_to_the_color_pipeline.patch index 52c431446b66..143f6b40db3d 100644 --- a/patches/chromium/port_autofill_colors_to_the_color_pipeline.patch +++ b/patches/chromium/port_autofill_colors_to_the_color_pipeline.patch @@ -8,13 +8,13 @@ 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/color/color_id.h b/ui/color/color_id.h -index b981338d714f66d14dd120cfc1185b97902c45b2..dbe2e0ce2bb9a2122c608ffcea923b650e4eccde 100644 +index 989f4dc6d156aef77dadf111f12c403196e5342b..9fd2b3484016df7a622aaadf094028c4966394e6 100644 --- a/ui/color/color_id.h +++ b/ui/color/color_id.h -@@ -128,6 +128,16 @@ - E_CPONLY(kColorOverlayScrollbarStrokeHoveredDark) \ +@@ -129,6 +129,16 @@ E_CPONLY(kColorOverlayScrollbarStrokeHoveredLight) \ E_CPONLY(kColorProgressBar) \ + E_CPONLY(kColorProgressBarPaused) \ + E_CPONLY(kColorPwaSecurityChipForeground) \ + E_CPONLY(kColorPwaSecurityChipForegroundDangerous) \ + E_CPONLY(kColorPwaSecurityChipForegroundPolicyCert) \ @@ -28,7 +28,7 @@ index b981338d714f66d14dd120cfc1185b97902c45b2..dbe2e0ce2bb9a2122c608ffcea923b65 E_CPONLY(kColorSeparator) \ E_CPONLY(kColorShadowBase) \ E_CPONLY(kColorShadowValueAmbientShadowElevationSixteen) \ -@@ -180,6 +190,7 @@ +@@ -182,6 +192,7 @@ E_CPONLY(kColorTreeNodeForeground) \ E_CPONLY(kColorTreeNodeForegroundSelectedFocused) \ E_CPONLY(kColorTreeNodeForegroundSelectedUnfocused) \ @@ -37,12 +37,12 @@ index b981338d714f66d14dd120cfc1185b97902c45b2..dbe2e0ce2bb9a2122c608ffcea923b65 #if BUILDFLAG(IS_CHROMEOS) diff --git a/ui/color/ui_color_mixer.cc b/ui/color/ui_color_mixer.cc -index 8b5b8c6321aaf668ad90870a0567c1a97d268323..8296b2c017f1774c1a38d931add2b7cac4f57dfe 100644 +index 6e97a162f3a823090115fdcb47828c6e0b10ad06..5fcb8cb147aa1356853cb0ed1f3731456c434946 100644 --- a/ui/color/ui_color_mixer.cc +++ b/ui/color/ui_color_mixer.cc -@@ -149,6 +149,17 @@ void AddUiColorMixer(ColorProvider* provider, - SetAlpha(GetColorWithMaxContrast(kColorOverlayScrollbarFillHoveredLight), +@@ -150,6 +150,17 @@ void AddUiColorMixer(ColorProvider* provider, gfx::kGoogleGreyAlpha500); + mixer[kColorProgressBarPaused] = {kColorDisabledForeground}; mixer[kColorProgressBar] = {kColorAccent}; + mixer[kColorResultsTableNormalBackground] = {SK_ColorWHITE}; + mixer[kColorResultsTableHoveredBackground] = @@ -58,7 +58,7 @@ index 8b5b8c6321aaf668ad90870a0567c1a97d268323..8296b2c017f1774c1a38d931add2b7ca mixer[kColorSeparator] = {kColorMidground}; mixer[kColorShadowBase] = {dark_mode ? SK_ColorBLACK : gfx::kGoogleGrey800}; mixer[kColorShadowValueAmbientShadowElevationThree] = -@@ -228,6 +239,7 @@ void AddUiColorMixer(ColorProvider* provider, +@@ -230,6 +241,7 @@ void AddUiColorMixer(ColorProvider* provider, mixer[kColorTreeNodeForegroundSelectedFocused] = {kColorTreeNodeForeground}; mixer[kColorTreeNodeForegroundSelectedUnfocused] = { kColorTreeNodeForegroundSelectedFocused}; diff --git a/patches/chromium/posix_replace_doubleforkandexec_with_forkandspawn.patch b/patches/chromium/posix_replace_doubleforkandexec_with_forkandspawn.patch deleted file mode 100644 index 9bad1bda3874..000000000000 --- a/patches/chromium/posix_replace_doubleforkandexec_with_forkandspawn.patch +++ /dev/null @@ -1,641 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Darshan Sen -Date: Fri, 17 Jun 2022 13:19:32 +0530 -Subject: posix: Replace DoubleForkAndExec() with ForkAndSpawn() - -The DoubleForkAndExec() function was taking over 622 milliseconds to run -on macOS 11 (BigSur) on Intel i5-1038NG7. I did some debugging by adding -some custom traces and found that the fork() syscall is the bottleneck -here, i.e., the first fork() takes around 359 milliseconds and the -nested fork() takes around 263 milliseconds. Replacing the nested fork() -and exec() with posix_spawn() reduces the time consumption to 257 -milliseconds! - -See https://github.com/libuv/libuv/pull/3064 to know why fork() is so -slow on macOS and why posix_spawn() is a better replacement. - -Another point to note is that even base::LaunchProcess() from Chromium -calls posix_spawnp() on macOS - -https://source.chromium.org/chromium/chromium/src/+/8f8d82dea0fa8f11f57c74dbb65126f8daba58f7:base/process/launch_mac.cc;l=295-296 - -Change-Id: I25c6ee9629a1ae5d0c32b361b56a1ce0b4b0fd26 -Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/3641386 -Reviewed-by: Mark Mentovai -Commit-Queue: Mark Mentovai - -diff --git a/third_party/crashpad/crashpad/AUTHORS b/third_party/crashpad/crashpad/AUTHORS -index 8dcac3238870920d374b86033d05d77ebde351e9..02103924332eddbd158c04f8a395bb4a247e8bd9 100644 ---- a/third_party/crashpad/crashpad/AUTHORS -+++ b/third_party/crashpad/crashpad/AUTHORS -@@ -12,3 +12,4 @@ Opera Software ASA - Vewd Software AS - LG Electronics, Inc. - MIPS Technologies, Inc. -+Darshan Sen -diff --git a/third_party/crashpad/crashpad/client/crashpad_client_linux.cc b/third_party/crashpad/crashpad/client/crashpad_client_linux.cc -index 295ec1615d83984835e238e349029b8755611f52..94c1cb02efe328ab45bc30fc7db8992872ed6b08 100644 ---- a/third_party/crashpad/crashpad/client/crashpad_client_linux.cc -+++ b/third_party/crashpad/crashpad/client/crashpad_client_linux.cc -@@ -45,7 +45,7 @@ - #include "util/linux/socket.h" - #include "util/misc/address_sanitizer.h" - #include "util/misc/from_pointer_cast.h" --#include "util/posix/double_fork_and_exec.h" -+#include "util/posix/fork_and_spawn.h" - #include "util/posix/scoped_mmap.h" - #include "util/posix/signals.h" - -@@ -459,7 +459,7 @@ bool CrashpadClient::StartHandler( - - argv.push_back(FormatArgumentInt("initial-client-fd", handler_sock.get())); - argv.push_back("--shared-client-connection"); -- if (!DoubleForkAndExec(argv, nullptr, handler_sock.get(), false, nullptr)) { -+ if (!ForkAndSpawn(argv, nullptr, handler_sock.get(), false, nullptr)) { - return false; - } - -@@ -614,7 +614,7 @@ bool CrashpadClient::StartJavaHandlerForClient( - int socket) { - std::vector argv = BuildAppProcessArgs( - class_name, database, metrics_dir, url, annotations, arguments, socket); -- return DoubleForkAndExec(argv, env, socket, false, nullptr); -+ return ForkAndSpawn(argv, env, socket, false, nullptr); - } - - bool CrashpadClient::StartHandlerWithLinkerAtCrash( -@@ -663,7 +663,7 @@ bool CrashpadClient::StartHandlerWithLinkerForClient( - annotations, - arguments, - socket); -- return DoubleForkAndExec(argv, env, socket, false, nullptr); -+ return ForkAndSpawn(argv, env, socket, false, nullptr); - } - - #endif -@@ -697,7 +697,7 @@ bool CrashpadClient::StartHandlerForClient( - - argv.push_back(FormatArgumentInt("initial-client-fd", socket)); - -- return DoubleForkAndExec(argv, nullptr, socket, true, nullptr); -+ return ForkAndSpawn(argv, nullptr, socket, true, nullptr); - } - - // static -diff --git a/third_party/crashpad/crashpad/client/crashpad_client_mac.cc b/third_party/crashpad/crashpad/client/crashpad_client_mac.cc -index 39e35678ecdd036f8c8ae27c973c27102b77da96..84385f2569f2bd00ca8aed0aa332fb450b2de1d3 100644 ---- a/third_party/crashpad/crashpad/client/crashpad_client_mac.cc -+++ b/third_party/crashpad/crashpad/client/crashpad_client_mac.cc -@@ -36,7 +36,7 @@ - #include "util/mach/notify_server.h" - #include "util/misc/clock.h" - #include "util/misc/implicit_cast.h" --#include "util/posix/double_fork_and_exec.h" -+#include "util/posix/fork_and_spawn.h" - - namespace crashpad { - -@@ -343,7 +343,7 @@ class HandlerStarter final : public NotifyServer::DefaultInterface { - // this parent process, which was probably using the exception server now - // being restarted. The handler can’t monitor itself for its own crashes via - // this interface. -- if (!DoubleForkAndExec( -+ if (!ForkAndSpawn( - argv, - nullptr, - server_write_fd.get(), -diff --git a/third_party/crashpad/crashpad/handler/linux/cros_crash_report_exception_handler.cc b/third_party/crashpad/crashpad/handler/linux/cros_crash_report_exception_handler.cc -index 9e58d94aa499fdb7271a78ea21a1dcc1b12e3a52..3caa3b987b35be575558a312026cf6f19485c418 100644 ---- a/third_party/crashpad/crashpad/handler/linux/cros_crash_report_exception_handler.cc -+++ b/third_party/crashpad/crashpad/handler/linux/cros_crash_report_exception_handler.cc -@@ -29,7 +29,7 @@ - #include "util/linux/ptrace_client.h" - #include "util/misc/metrics.h" - #include "util/misc/uuid.h" --#include "util/posix/double_fork_and_exec.h" -+#include "util/posix/fork_and_spawn.h" - - namespace crashpad { - -@@ -266,12 +266,11 @@ bool CrosCrashReportExceptionHandler::HandleExceptionWithConnection( - argv.push_back("--always_allow_feedback"); - } - -- if (!DoubleForkAndExec(argv, -- nullptr /* envp */, -- file_writer.fd() /* preserve_fd */, -- false /* use_path */, -- nullptr /* child_function */)) { -- LOG(ERROR) << "DoubleForkAndExec failed"; -+ if (!ForkAndSpawn(argv, -+ nullptr /* envp */, -+ file_writer.fd() /* preserve_fd */, -+ false /* use_path */, -+ nullptr /* child_function */)) { - Metrics::ExceptionCaptureResult( - Metrics::CaptureResult::kFinishedWritingCrashReportFailed); - return false; -diff --git a/third_party/crashpad/crashpad/util/BUILD.gn b/third_party/crashpad/crashpad/util/BUILD.gn -index b8daef48b460ce2771a9f5502ee48d5efffc4039..8d4329e6b56062a1ef48a8607ddf52c31d251883 100644 ---- a/third_party/crashpad/crashpad/util/BUILD.gn -+++ b/third_party/crashpad/crashpad/util/BUILD.gn -@@ -296,10 +296,10 @@ crashpad_static_library("util") { - sources += [ - "posix/close_multiple.cc", - "posix/close_multiple.h", -- "posix/double_fork_and_exec.cc", -- "posix/double_fork_and_exec.h", - "posix/drop_privileges.cc", - "posix/drop_privileges.h", -+ "posix/fork_and_spawn.cc", -+ "posix/fork_and_spawn.h", - "posix/process_info.h", - - # These map signals to and from strings. While Fuchsia defines some of -diff --git a/third_party/crashpad/crashpad/util/posix/double_fork_and_exec.cc b/third_party/crashpad/crashpad/util/posix/double_fork_and_exec.cc -deleted file mode 100644 -index 1960430954d3f6459dce688493db5c42047567b0..0000000000000000000000000000000000000000 ---- a/third_party/crashpad/crashpad/util/posix/double_fork_and_exec.cc -+++ /dev/null -@@ -1,166 +0,0 @@ --// Copyright 2017 The Crashpad Authors. All rights reserved. --// --// Licensed under the Apache License, Version 2.0 (the "License"); --// you may not use this file except in compliance with the License. --// You may obtain a copy of the License at --// --// http://www.apache.org/licenses/LICENSE-2.0 --// --// Unless required by applicable law or agreed to in writing, software --// distributed under the License is distributed on an "AS IS" BASIS, --// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. --// See the License for the specific language governing permissions and --// limitations under the License. -- --#include "util/posix/double_fork_and_exec.h" -- --#include --#include --#include --#include -- --#include "base/check_op.h" --#include "base/logging.h" --#include "base/posix/eintr_wrapper.h" --#include "base/strings/stringprintf.h" --#include "util/posix/close_multiple.h" -- --namespace crashpad { -- --bool DoubleForkAndExec(const std::vector& argv, -- const std::vector* envp, -- int preserve_fd, -- bool use_path, -- void (*child_function)()) { -- DCHECK(!envp || !use_path); -- -- // argv_c contains const char* pointers and is terminated by nullptr. This is -- // suitable for passing to execv(). Although argv_c is not used in the parent -- // process, it must be built in the parent process because it’s unsafe to do -- // so in the child or grandchild process. -- std::vector argv_c; -- argv_c.reserve(argv.size() + 1); -- for (const std::string& argument : argv) { -- argv_c.push_back(argument.c_str()); -- } -- argv_c.push_back(nullptr); -- -- std::vector envp_c; -- if (envp) { -- envp_c.reserve(envp->size() + 1); -- for (const std::string& variable : *envp) { -- envp_c.push_back(variable.c_str()); -- } -- envp_c.push_back(nullptr); -- } -- -- // Double-fork(). The three processes involved are parent, child, and -- // grandchild. The grandchild will call execv(). The child exits immediately -- // after spawning the grandchild, so the grandchild becomes an orphan and its -- // parent process ID becomes 1. This relieves the parent and child of the -- // responsibility to reap the grandchild with waitpid() or similar. The -- // grandchild is expected to outlive the parent process, so the parent -- // shouldn’t be concerned with reaping it. This approach means that accidental -- // early termination of the handler process will not result in a zombie -- // process. -- pid_t pid = fork(); -- if (pid < 0) { -- PLOG(ERROR) << "fork"; -- return false; -- } -- -- if (pid == 0) { -- // Child process. -- -- if (child_function) { -- child_function(); -- } -- -- // Call setsid(), creating a new process group and a new session, both led -- // by this process. The new process group has no controlling terminal. This -- // disconnects it from signals generated by the parent process’ terminal. -- // -- // setsid() is done in the child instead of the grandchild so that the -- // grandchild will not be a session leader. If it were a session leader, an -- // accidental open() of a terminal device without O_NOCTTY would make that -- // terminal the controlling terminal. -- // -- // It’s not desirable for the grandchild to have a controlling terminal. The -- // grandchild manages its own lifetime, such as by monitoring clients on its -- // own and exiting when it loses all clients and when it deems it -- // appropraite to do so. It may serve clients in different process groups or -- // sessions than its original client, and receiving signals intended for its -- // original client’s process group could be harmful in that case. -- PCHECK(setsid() != -1) << "setsid"; -- -- pid = fork(); -- if (pid < 0) { -- PLOG(FATAL) << "fork"; -- } -- -- if (pid > 0) { -- // Child process. -- -- // _exit() instead of exit(), because fork() was called. -- _exit(EXIT_SUCCESS); -- } -- -- // Grandchild process. -- -- CloseMultipleNowOrOnExec(STDERR_FILENO + 1, preserve_fd); -- -- // &argv_c[0] is a pointer to a pointer to const char data, but because of -- // how C (not C++) works, execvp() wants a pointer to a const pointer to -- // char data. It modifies neither the data nor the pointers, so the -- // const_cast is safe. -- char* const* argv_for_execv = const_cast(&argv_c[0]); -- -- if (envp) { -- // This cast is safe for the same reason that the argv_for_execv cast is. -- char* const* envp_for_execv = const_cast(&envp_c[0]); -- execve(argv_for_execv[0], argv_for_execv, envp_for_execv); -- PLOG(FATAL) << "execve " << argv_for_execv[0]; -- } -- -- if (use_path) { -- execvp(argv_for_execv[0], argv_for_execv); -- PLOG(FATAL) << "execvp " << argv_for_execv[0]; -- } -- -- execv(argv_for_execv[0], argv_for_execv); -- PLOG(FATAL) << "execv " << argv_for_execv[0]; -- } -- -- // waitpid() for the child, so that it does not become a zombie process. The -- // child normally exits quickly. -- // -- // Failures from this point on may result in the accumulation of a zombie, but -- // should not be considered fatal. Log only warnings, but don’t treat these -- // failures as a failure of the function overall. -- int status; -- pid_t wait_pid = HANDLE_EINTR(waitpid(pid, &status, 0)); -- if (wait_pid == -1) { -- PLOG(WARNING) << "waitpid"; -- return true; -- } -- DCHECK_EQ(wait_pid, pid); -- -- if (WIFSIGNALED(status)) { -- int sig = WTERMSIG(status); -- LOG(WARNING) << base::StringPrintf( -- "intermediate process terminated by signal %d (%s)%s", -- sig, -- strsignal(sig), -- WCOREDUMP(status) ? " (core dumped)" : ""); -- } else if (!WIFEXITED(status)) { -- LOG(WARNING) << base::StringPrintf( -- "intermediate process: unknown termination 0x%x", status); -- } else if (WEXITSTATUS(status) != EXIT_SUCCESS) { -- LOG(WARNING) << "intermediate process exited with code " -- << WEXITSTATUS(status); -- } -- -- return true; --} -- --} // namespace crashpad -diff --git a/third_party/crashpad/crashpad/util/posix/fork_and_spawn.cc b/third_party/crashpad/crashpad/util/posix/fork_and_spawn.cc -new file mode 100644 -index 0000000000000000000000000000000000000000..c6a95bbfdcba45995b0034789c8bdb4423a25642 ---- /dev/null -+++ b/third_party/crashpad/crashpad/util/posix/fork_and_spawn.cc -@@ -0,0 +1,235 @@ -+// Copyright 2017 The Crashpad Authors. All rights reserved. -+// -+// Licensed under the Apache License, Version 2.0 (the "License"); -+// you may not use this file except in compliance with the License. -+// You may obtain a copy of the License at -+// -+// http://www.apache.org/licenses/LICENSE-2.0 -+// -+// Unless required by applicable law or agreed to in writing, software -+// distributed under the License is distributed on an "AS IS" BASIS, -+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+// See the License for the specific language governing permissions and -+// limitations under the License. -+ -+#include "util/posix/fork_and_spawn.h" -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "base/check.h" -+#include "base/check_op.h" -+#include "base/logging.h" -+#include "base/posix/eintr_wrapper.h" -+#include "base/strings/stringprintf.h" -+#include "build/build_config.h" -+#include "util/posix/close_multiple.h" -+ -+extern char** environ; -+ -+namespace crashpad { -+ -+namespace { -+ -+#if BUILDFLAG(IS_APPLE) -+ -+class PosixSpawnAttr { -+ public: -+ PosixSpawnAttr() { -+ PCHECK((errno = posix_spawnattr_init(&attr_)) == 0) -+ << "posix_spawnattr_init"; -+ } -+ -+ PosixSpawnAttr(const PosixSpawnAttr&) = delete; -+ PosixSpawnAttr& operator=(const PosixSpawnAttr&) = delete; -+ -+ ~PosixSpawnAttr() { -+ PCHECK((errno = posix_spawnattr_destroy(&attr_)) == 0) -+ << "posix_spawnattr_destroy"; -+ } -+ -+ void SetFlags(short flags) { -+ PCHECK((errno = posix_spawnattr_setflags(&attr_, flags)) == 0) -+ << "posix_spawnattr_setflags"; -+ } -+ -+ const posix_spawnattr_t* Get() const { return &attr_; } -+ -+ private: -+ posix_spawnattr_t attr_; -+}; -+ -+class PosixSpawnFileActions { -+ public: -+ PosixSpawnFileActions() { -+ PCHECK((errno = posix_spawn_file_actions_init(&file_actions_)) == 0) -+ << "posix_spawn_file_actions_init"; -+ } -+ -+ PosixSpawnFileActions(const PosixSpawnFileActions&) = delete; -+ PosixSpawnFileActions& operator=(const PosixSpawnFileActions&) = delete; -+ -+ ~PosixSpawnFileActions() { -+ PCHECK((errno = posix_spawn_file_actions_destroy(&file_actions_)) == 0) -+ << "posix_spawn_file_actions_destroy"; -+ } -+ -+ void AddInheritedFileDescriptor(int fd) { -+ PCHECK((errno = posix_spawn_file_actions_addinherit_np(&file_actions_, -+ fd)) == 0) -+ << "posix_spawn_file_actions_addinherit_np"; -+ } -+ -+ const posix_spawn_file_actions_t* Get() const { return &file_actions_; } -+ -+ private: -+ posix_spawn_file_actions_t file_actions_; -+}; -+ -+#endif -+ -+} // namespace -+ -+bool ForkAndSpawn(const std::vector& argv, -+ const std::vector* envp, -+ int preserve_fd, -+ bool use_path, -+ void (*child_function)()) { -+ // argv_c contains const char* pointers and is terminated by nullptr. This is -+ // suitable for passing to posix_spawn() or posix_spawnp(). Although argv_c is -+ // not used in the parent process, it must be built in the parent process -+ // because it’s unsafe to do so in the child. -+ std::vector argv_c; -+ argv_c.reserve(argv.size() + 1); -+ for (const std::string& argument : argv) { -+ argv_c.push_back(argument.c_str()); -+ } -+ argv_c.push_back(nullptr); -+ -+ std::vector envp_c; -+ if (envp) { -+ envp_c.reserve(envp->size() + 1); -+ for (const std::string& variable : *envp) { -+ envp_c.push_back(variable.c_str()); -+ } -+ envp_c.push_back(nullptr); -+ } -+ -+ // The three processes involved are parent, child, and grandchild. The child -+ // exits immediately after spawning the grandchild, so the grandchild becomes -+ // an orphan and its parent process ID becomes 1. This relieves the parent and -+ // child of the responsibility to reap the grandchild with waitpid() or -+ // similar. The grandchild is expected to outlive the parent process, so the -+ // parent shouldn’t be concerned with reaping it. This approach means that -+ // accidental early termination of the handler process will not result in a -+ // zombie process. -+ pid_t pid = fork(); -+ if (pid < 0) { -+ PLOG(ERROR) << "fork"; -+ return false; -+ } -+ -+ if (pid == 0) { -+ // Child process. -+ -+ if (child_function) { -+ child_function(); -+ } -+ -+ // Call setsid(), creating a new process group and a new session, both led -+ // by this process. The new process group has no controlling terminal. This -+ // disconnects it from signals generated by the parent process’ terminal. -+ // -+ // setsid() is done in the child instead of the grandchild so that the -+ // grandchild will not be a session leader. If it were a session leader, an -+ // accidental open() of a terminal device without O_NOCTTY would make that -+ // terminal the controlling terminal. -+ // -+ // It’s not desirable for the grandchild to have a controlling terminal. The -+ // grandchild manages its own lifetime, such as by monitoring clients on its -+ // own and exiting when it loses all clients and when it deems it -+ // appropraite to do so. It may serve clients in different process groups or -+ // sessions than its original client, and receiving signals intended for its -+ // original client’s process group could be harmful in that case. -+ PCHECK(setsid() != -1) << "setsid"; -+ -+ // &argv_c[0] is a pointer to a pointer to const char data, but because of -+ // how C (not C++) works, posix_spawn() and posix_spawnp() want a pointer to -+ // a const pointer to char data. They modifies neither the data nor the -+ // pointers, so the const_cast is safe. -+ char* const* argv_for_spawn = const_cast(argv_c.data()); -+ -+ // This cast is safe for the same reason that the argv_for_spawn cast is. -+ char* const* envp_for_spawn = -+ envp ? const_cast(envp_c.data()) : environ; -+ -+#if BUILDFLAG(IS_APPLE) -+ PosixSpawnAttr attr; -+ attr.SetFlags(POSIX_SPAWN_CLOEXEC_DEFAULT); -+ -+ PosixSpawnFileActions file_actions; -+ for (int fd = 0; fd <= STDERR_FILENO; ++fd) { -+ file_actions.AddInheritedFileDescriptor(fd); -+ } -+ file_actions.AddInheritedFileDescriptor(preserve_fd); -+ -+ const posix_spawnattr_t* attr_p = attr.Get(); -+ const posix_spawn_file_actions_t* file_actions_p = file_actions.Get(); -+#else -+ CloseMultipleNowOrOnExec(STDERR_FILENO + 1, preserve_fd); -+ -+ const posix_spawnattr_t* attr_p = nullptr; -+ const posix_spawn_file_actions_t* file_actions_p = nullptr; -+#endif -+ -+ auto posix_spawn_fp = use_path ? posix_spawnp : posix_spawn; -+ if ((errno = posix_spawn_fp(&pid, -+ argv_for_spawn[0], -+ file_actions_p, -+ attr_p, -+ argv_for_spawn, -+ envp_for_spawn)) != 0) { -+ PLOG(FATAL) << (use_path ? "posix_spawnp" : "posix_spawn"); -+ } -+ -+ // _exit() instead of exit(), because fork() was called. -+ _exit(EXIT_SUCCESS); -+ } -+ -+ // waitpid() for the child, so that it does not become a zombie process. The -+ // child normally exits quickly. -+ // -+ // Failures from this point on may result in the accumulation of a zombie, but -+ // should not be considered fatal. Log only warnings, but don’t treat these -+ // failures as a failure of the function overall. -+ int status; -+ pid_t wait_pid = HANDLE_EINTR(waitpid(pid, &status, 0)); -+ if (wait_pid == -1) { -+ PLOG(WARNING) << "waitpid"; -+ return true; -+ } -+ DCHECK_EQ(wait_pid, pid); -+ -+ if (WIFSIGNALED(status)) { -+ int sig = WTERMSIG(status); -+ LOG(WARNING) << base::StringPrintf( -+ "intermediate process terminated by signal %d (%s)%s", -+ sig, -+ strsignal(sig), -+ WCOREDUMP(status) ? " (core dumped)" : ""); -+ } else if (!WIFEXITED(status)) { -+ LOG(WARNING) << base::StringPrintf( -+ "intermediate process: unknown termination 0x%x", status); -+ } else if (WEXITSTATUS(status) != EXIT_SUCCESS) { -+ LOG(WARNING) << "intermediate process exited with code " -+ << WEXITSTATUS(status); -+ } -+ -+ return true; -+} -+ -+} // namespace crashpad -diff --git a/third_party/crashpad/crashpad/util/posix/double_fork_and_exec.h b/third_party/crashpad/crashpad/util/posix/fork_and_spawn.h -similarity index 76% -rename from third_party/crashpad/crashpad/util/posix/double_fork_and_exec.h -rename to third_party/crashpad/crashpad/util/posix/fork_and_spawn.h -index 02fc0f28f196b447132a2dcfaebdaaa5a916a38a..fc55aa3a37652e4ba18c66db90124abd9cad2e51 100644 ---- a/third_party/crashpad/crashpad/util/posix/double_fork_and_exec.h -+++ b/third_party/crashpad/crashpad/util/posix/fork_and_spawn.h -@@ -12,8 +12,8 @@ - // See the License for the specific language governing permissions and - // limitations under the License. - --#ifndef CRASHPAD_UTIL_POSIX_DOUBLE_FORK_AND_EXEC_H_ --#define CRASHPAD_UTIL_POSIX_DOUBLE_FORK_AND_EXEC_H_ -+#ifndef CRASHPAD_UTIL_POSIX_FORK_AND_SPAWN_H_ -+#define CRASHPAD_UTIL_POSIX_FORK_AND_SPAWN_H_ - - #include - #include -@@ -23,7 +23,7 @@ namespace crashpad { - //! \brief Executes a (grand-)child process. - //! - //! The grandchild process will be started through the --//! double-`fork()`-and-`execv()` pattern. This allows the grandchild to fully -+//! `fork()`-and-`posix_spawn()` pattern. This allows the grandchild to fully - //! disassociate from the parent. The grandchild will not be a member of the - //! parent’s process group or session and will not have a controlling terminal, - //! providing isolation from signals not intended for it. The grandchild’s -@@ -37,7 +37,7 @@ namespace crashpad { - //! \param[in] argv The argument vector to start the grandchild process with. - //! `argv[0]` is used as the path to the executable. - //! \param[in] envp A vector of environment variables of the form `var=value` to --//! be passed to `execve()`. If this value is `nullptr`, the current -+//! be passed to `posix_spawn()`. If this value is `nullptr`, the current - //! environment is used. - //! \param[in] preserve_fd A file descriptor to be inherited by the grandchild - //! process. This file descriptor is inherited in addition to the three file -@@ -45,16 +45,13 @@ namespace crashpad { - //! if no additional file descriptors are to be inherited. - //! \param[in] use_path Whether to consult the `PATH` environment variable when - //! requested to start an executable at a non-absolute path. If `false`, --//! `execv()`, which does not consult `PATH`, will be used. If `true`, --//! `execvp()`, which does consult `PATH`, will be used. -+//! `posix_spawn()`, which does not consult `PATH`, will be used. If `true`, -+//! `posix_spawnp()`, which does consult `PATH`, will be used. - //! \param[in] child_function If not `nullptr`, this function will be called in --//! the intermediate child process, prior to the second `fork()`. Take note -+//! the intermediate child process, prior to the `posix_spawn()`. Take note - //! that this function will run in the context of a forked process, and must - //! be safe for that purpose. - //! --//! Setting both \a envp to a value other than `nullptr` and \a use_path to --//! `true` is not currently supported. --//! - //! \return `true` on success, and `false` on failure with a message logged. - //! Only failures that occur in the parent process that indicate a definite - //! failure to start the the grandchild are reported in the return value. -@@ -63,12 +60,12 @@ namespace crashpad { - //! terminating. The caller assumes the responsibility for detecting such - //! failures, for example, by observing a failure to perform a successful - //! handshake with the grandchild process. --bool DoubleForkAndExec(const std::vector& argv, -- const std::vector* envp, -- int preserve_fd, -- bool use_path, -- void (*child_function)()); -+bool ForkAndSpawn(const std::vector& argv, -+ const std::vector* envp, -+ int preserve_fd, -+ bool use_path, -+ void (*child_function)()); - - } // namespace crashpad - --#endif // CRASHPAD_UTIL_POSIX_DOUBLE_FORK_AND_EXEC_H_ -+#endif // CRASHPAD_UTIL_POSIX_FORK_AND_SPAWN_H_ diff --git a/patches/chromium/printing.patch b/patches/chromium/printing.patch index ae77976658d6..460fb3b6d5bc 100644 --- a/patches/chromium/printing.patch +++ b/patches/chromium/printing.patch @@ -11,10 +11,10 @@ majority of changes originally come from these PRs: This patch also fixes callback for manual user cancellation and success. diff --git a/BUILD.gn b/BUILD.gn -index a7a198ddd0f33bc0786b59e5027c72662d2c24ed..dfc5ba7e101ef8521bcb4d1ecdf68f1957b347e9 100644 +index 861191e82aa304be0a71dcd356d31767540450ef..1f86538121bfc753b3587d9edaf1553726542af9 100644 --- a/BUILD.gn +++ b/BUILD.gn -@@ -970,7 +970,6 @@ if (is_win) { +@@ -974,7 +974,6 @@ if (is_win) { "//media:media_unittests", "//media/midi:midi_unittests", "//net:net_unittests", @@ -22,7 +22,7 @@ index a7a198ddd0f33bc0786b59e5027c72662d2c24ed..dfc5ba7e101ef8521bcb4d1ecdf68f19 "//sql:sql_unittests", "//third_party/breakpad:symupload($host_toolchain)", "//ui/base:ui_base_unittests", -@@ -979,6 +978,10 @@ if (is_win) { +@@ -983,6 +982,10 @@ if (is_win) { "//ui/views:views_unittests", "//url:url_unittests", ] @@ -136,7 +136,7 @@ index 1e158ecd686e775f656d5a05a9d916ce8f075fa8..20613012d1e6f435c3211d78ec311cf0 void PrintJobWorkerOop::UnregisterServiceManagerClient() { diff --git a/chrome/browser/printing/print_view_manager_base.cc b/chrome/browser/printing/print_view_manager_base.cc -index e665eb42fad5f47b1643315d2cdcdf2eb66b069d..21451d9ae0cbb647cafe0e9ae47f067068aef1b7 100644 +index 4bd871e5cadc693aea6e8c71b3fe3296b743d9ec..e6201cbf8d1ed64b1b53ed43d89882163c93ce89 100644 --- a/chrome/browser/printing/print_view_manager_base.cc +++ b/chrome/browser/printing/print_view_manager_base.cc @@ -30,8 +30,6 @@ @@ -406,7 +406,7 @@ index e665eb42fad5f47b1643315d2cdcdf2eb66b069d..21451d9ae0cbb647cafe0e9ae47f0670 return true; if (!cookie) { -@@ -1067,7 +1110,7 @@ void PrintViewManagerBase::SendPrintingEnabled(bool enabled, +@@ -1069,7 +1112,7 @@ void PrintViewManagerBase::SendPrintingEnabled(bool enabled, } void PrintViewManagerBase::CompletePrintNow(content::RenderFrameHost* rfh) { @@ -523,7 +523,7 @@ index f2c17a8fecc36ea18de71598b582e206661763c5..599b34690da042b57fcd78d0c0557d18 // Tells the browser that there are invalid printer settings. ShowInvalidPrinterSettingsError(); diff --git a/components/printing/renderer/print_render_frame_helper.cc b/components/printing/renderer/print_render_frame_helper.cc -index 66ac411e4a70610cbf457e0bbbb0439a6e0f7c59..125fc9057ef5f2e01faa2e4db6ca6804fe5039b8 100644 +index bb0a934fb658256370fe29c6dbc9f72e992a9a5c..da7161c51e94f285d2ad6c9f0e2edba7da7d5c9e 100644 --- a/components/printing/renderer/print_render_frame_helper.cc +++ b/components/printing/renderer/print_render_frame_helper.cc @@ -42,6 +42,7 @@ @@ -581,7 +581,7 @@ index 66ac411e4a70610cbf457e0bbbb0439a6e0f7c59..125fc9057ef5f2e01faa2e4db6ca6804 print_preview_context_.OnPrintPreview(); #if BUILDFLAG(IS_CHROMEOS_ASH) -@@ -2051,7 +2056,8 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { +@@ -2052,7 +2057,8 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { return; Print(duplicate_node.GetDocument().GetFrame(), duplicate_node, @@ -591,7 +591,7 @@ index 66ac411e4a70610cbf457e0bbbb0439a6e0f7c59..125fc9057ef5f2e01faa2e4db6ca6804 // Check if |this| is still valid. if (!weak_this) return; -@@ -2066,7 +2072,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { +@@ -2067,7 +2073,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, const blink::WebNode& node, @@ -602,7 +602,7 @@ index 66ac411e4a70610cbf457e0bbbb0439a6e0f7c59..125fc9057ef5f2e01faa2e4db6ca6804 // If still not finished with earlier print request simply ignore. if (prep_frame_view_) return; -@@ -2074,7 +2082,7 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, +@@ -2075,7 +2083,7 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, FrameReference frame_ref(frame); uint32_t expected_page_count = 0; @@ -611,7 +611,7 @@ index 66ac411e4a70610cbf457e0bbbb0439a6e0f7c59..125fc9057ef5f2e01faa2e4db6ca6804 DidFinishPrinting(FAIL_PRINT_INIT); return; // Failed to init print page settings. } -@@ -2093,8 +2101,15 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, +@@ -2094,8 +2102,15 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, print_pages_params_->params->print_scaling_option; auto self = weak_ptr_factory_.GetWeakPtr(); @@ -628,7 +628,7 @@ index 66ac411e4a70610cbf457e0bbbb0439a6e0f7c59..125fc9057ef5f2e01faa2e4db6ca6804 // Check if |this| is still valid. if (!self) return; -@@ -2327,36 +2342,52 @@ void PrintRenderFrameHelper::IPCProcessed() { +@@ -2328,36 +2343,52 @@ void PrintRenderFrameHelper::IPCProcessed() { } } @@ -693,7 +693,7 @@ index 66ac411e4a70610cbf457e0bbbb0439a6e0f7c59..125fc9057ef5f2e01faa2e4db6ca6804 notify_browser_of_print_failure_ = false; GetPrintManagerHost()->ShowInvalidPrinterSettingsError(); return false; -@@ -2481,7 +2512,7 @@ mojom::PrintPagesParamsPtr PrintRenderFrameHelper::GetPrintSettingsFromUser( +@@ -2482,7 +2513,7 @@ mojom::PrintPagesParamsPtr PrintRenderFrameHelper::GetPrintSettingsFromUser( std::move(params), base::BindOnce( [](base::OnceClosure quit_closure, mojom::PrintPagesParamsPtr* output, @@ -703,7 +703,7 @@ index 66ac411e4a70610cbf457e0bbbb0439a6e0f7c59..125fc9057ef5f2e01faa2e4db6ca6804 std::move(quit_closure).Run(); }, diff --git a/components/printing/renderer/print_render_frame_helper.h b/components/printing/renderer/print_render_frame_helper.h -index f118cae62de1cebb78c8193365bafcaba3b863a8..6c8bb35f6ea00b8366134a3f00d1a43fa22d81b5 100644 +index c2bf286ef1741b53022adf420809a87c3bb53cfd..f8b38d09abd3253bfd38b874ebdad753c3f8c4db 100644 --- a/components/printing/renderer/print_render_frame_helper.h +++ b/components/printing/renderer/print_render_frame_helper.h @@ -255,7 +255,7 @@ class PrintRenderFrameHelper @@ -744,10 +744,10 @@ index f118cae62de1cebb78c8193365bafcaba3b863a8..6c8bb35f6ea00b8366134a3f00d1a43f #if BUILDFLAG(ENABLE_PRINT_PREVIEW) // Set options for print preset from source PDF document. diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn -index 87c464f6a565b0ef4930c87b5e32329c55d0c223..26af5b09600e4e064b098bac884c4d941e88e3fc 100644 +index 9b8fe6eecdc7093ba43a324f37bbe380e43dc0c0..88164f568c27dc6bad4cedfd83bd2abeae956c5c 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -2758,8 +2758,9 @@ source_set("browser") { +@@ -2756,8 +2756,9 @@ source_set("browser") { "//ppapi/shared_impl", ] @@ -816,10 +816,10 @@ index 58fcf619add5093bd99fd9c561e8686b060a01c6..76db2a2438cef84fcb6dfd4a67d2e171 bool skip_system_calls() const { #if BUILDFLAG(ENABLE_OOP_PRINTING) diff --git a/sandbox/policy/mac/sandbox_mac.mm b/sandbox/policy/mac/sandbox_mac.mm -index 35d1091e0c555d00ac1fc5ac878fa2a6e09e718b..07411f07e69a645ba388348f01237f7d38755818 100644 +index 2a1a5aaf18d43a68b13783d55279e481bd91c2e5..156c6ca844d97376268baa57dcf220561a63fa04 100644 --- a/sandbox/policy/mac/sandbox_mac.mm +++ b/sandbox/policy/mac/sandbox_mac.mm -@@ -21,7 +21,6 @@ +@@ -22,7 +22,6 @@ #include "sandbox/policy/mac/nacl_loader.sb.h" #include "sandbox/policy/mac/network.sb.h" #include "sandbox/policy/mac/ppapi.sb.h" @@ -827,7 +827,7 @@ index 35d1091e0c555d00ac1fc5ac878fa2a6e09e718b..07411f07e69a645ba388348f01237f7d #include "sandbox/policy/mac/print_compositor.sb.h" #include "sandbox/policy/mac/renderer.sb.h" #include "sandbox/policy/mac/screen_ai.sb.h" -@@ -29,6 +28,10 @@ +@@ -30,6 +29,10 @@ #include "sandbox/policy/mac/utility.sb.h" #include "sandbox/policy/mojom/sandbox.mojom.h" diff --git a/patches/chromium/process_singleton.patch b/patches/chromium/process_singleton.patch index a44f1930965f..e77c36ab6114 100644 --- a/patches/chromium/process_singleton.patch +++ b/patches/chromium/process_singleton.patch @@ -75,7 +75,7 @@ index 16bb3aa15a5378e8319f75f4b6b72b39177828f4..5a64220aaf1309832dc0ad543e353de6 #if BUILDFLAG(IS_MAC) diff --git a/chrome/browser/process_singleton_posix.cc b/chrome/browser/process_singleton_posix.cc -index 3bf385781635bf6e7ccf97abdca43befd29e8e95..9d6ef0e143bdaf4a5043ebbb57d282d72d847433 100644 +index fa7ae4812ae5c13355d06dde1e99a17b17da6184..2de07460462632680f9b16a019744527dcee5125 100644 --- a/chrome/browser/process_singleton_posix.cc +++ b/chrome/browser/process_singleton_posix.cc @@ -54,6 +54,7 @@ @@ -86,7 +86,7 @@ index 3bf385781635bf6e7ccf97abdca43befd29e8e95..9d6ef0e143bdaf4a5043ebbb57d282d7 #include #include "base/base_paths.h" -@@ -96,9 +97,11 @@ +@@ -97,9 +98,11 @@ #include "net/base/network_interfaces.h" #include "ui/base/l10n/l10n_util.h" @@ -98,7 +98,7 @@ index 3bf385781635bf6e7ccf97abdca43befd29e8e95..9d6ef0e143bdaf4a5043ebbb57d282d7 using content::BrowserThread; -@@ -342,6 +345,9 @@ bool SymlinkPath(const base::FilePath& target, const base::FilePath& path) { +@@ -343,6 +346,9 @@ bool SymlinkPath(const base::FilePath& target, const base::FilePath& path) { bool DisplayProfileInUseError(const base::FilePath& lock_path, const std::string& hostname, int pid) { @@ -108,7 +108,7 @@ index 3bf385781635bf6e7ccf97abdca43befd29e8e95..9d6ef0e143bdaf4a5043ebbb57d282d7 std::u16string error = l10n_util::GetStringFUTF16( IDS_PROFILE_IN_USE_POSIX, base::NumberToString16(pid), base::ASCIIToUTF16(hostname)); -@@ -361,6 +367,7 @@ bool DisplayProfileInUseError(const base::FilePath& lock_path, +@@ -362,6 +368,7 @@ bool DisplayProfileInUseError(const base::FilePath& lock_path, NOTREACHED(); return false; @@ -116,7 +116,7 @@ index 3bf385781635bf6e7ccf97abdca43befd29e8e95..9d6ef0e143bdaf4a5043ebbb57d282d7 } bool IsChromeProcess(pid_t pid) { -@@ -401,6 +408,21 @@ bool CheckCookie(const base::FilePath& path, const base::FilePath& cookie) { +@@ -402,6 +409,21 @@ bool CheckCookie(const base::FilePath& path, const base::FilePath& cookie) { return (cookie == ReadLink(path)); } @@ -138,7 +138,7 @@ index 3bf385781635bf6e7ccf97abdca43befd29e8e95..9d6ef0e143bdaf4a5043ebbb57d282d7 bool ConnectSocket(ScopedSocket* socket, const base::FilePath& socket_path, const base::FilePath& cookie_path) { -@@ -768,6 +790,10 @@ ProcessSingleton::ProcessSingleton( +@@ -769,6 +791,10 @@ ProcessSingleton::ProcessSingleton( ProcessSingleton::~ProcessSingleton() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -149,7 +149,7 @@ index 3bf385781635bf6e7ccf97abdca43befd29e8e95..9d6ef0e143bdaf4a5043ebbb57d282d7 } ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcess() { -@@ -932,6 +958,20 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessOrCreate() { +@@ -933,6 +959,20 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessOrCreate() { base::Seconds(kTimeoutInSeconds)); } @@ -170,7 +170,7 @@ index 3bf385781635bf6e7ccf97abdca43befd29e8e95..9d6ef0e143bdaf4a5043ebbb57d282d7 ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessWithTimeoutOrCreate( const base::CommandLine& command_line, -@@ -1031,14 +1071,32 @@ bool ProcessSingleton::Create() { +@@ -1032,14 +1072,32 @@ bool ProcessSingleton::Create() { #endif } @@ -208,7 +208,7 @@ index 3bf385781635bf6e7ccf97abdca43befd29e8e95..9d6ef0e143bdaf4a5043ebbb57d282d7 // Check that the directory was created with the correct permissions. int dir_mode = 0; CHECK(base::GetPosixFilePermissions(socket_dir_.GetPath(), &dir_mode) && -@@ -1081,10 +1139,13 @@ bool ProcessSingleton::Create() { +@@ -1082,10 +1140,13 @@ bool ProcessSingleton::Create() { if (listen(sock, 5) < 0) NOTREACHED() << "listen failed: " << base::safe_strerror(errno); 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 dc0896803f66..35d277bc7a7a 100644 --- a/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch +++ b/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch @@ -30,7 +30,7 @@ index bdad25cd2c823fa2125fc523c400479882735ae6..bf2ddb136274eb3e4e597ed3060aabca // RenderWidgetHost on the primary main frame, and false otherwise. virtual bool IsWidgetForPrimaryMainFrame(RenderWidgetHostImpl*); diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc -index 205921ae492bf30c16869cdd7ed9605d7fdbd452..51a720da21417c1e83570770959a44d90f172d66 100644 +index 852118f2599087c971ee6475f670a1f0e9d64bd3..ed0e6cff036e76aa266306e5cb4202568ab5b952 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc @@ -2075,6 +2075,8 @@ void RenderWidgetHostImpl::FilterDropData(DropData* drop_data) { @@ -43,10 +43,10 @@ index 205921ae492bf30c16869cdd7ed9605d7fdbd452..51a720da21417c1e83570770959a44d9 void RenderWidgetHostImpl::ShowContextMenuAtPoint( diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 1c69625326df08b85ec77d01b588fc3a8ce58553..686fc99becf068106cc9fb372d2dce1e8d8c5114 100644 +index c9f744c73f95ad6e63077fbfad2e0c935e6c44c1..a06d49c3ed7d809ddd3ab43f1cc4e3044a6b14d2 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -4537,6 +4537,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() { +@@ -4571,6 +4571,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() { return text_input_manager_.get(); } @@ -59,7 +59,7 @@ index 1c69625326df08b85ec77d01b588fc3a8ce58553..686fc99becf068106cc9fb372d2dce1e RenderWidgetHostImpl* render_widget_host) { return render_widget_host == GetPrimaryMainFrame()->GetRenderWidgetHost(); diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h -index 9af9ea4e10a51572e726309e619fb31cb5a928ee..a44f6d7364ad26965e84a432ae376fa922af5fec 100644 +index 2ee5a7a78baba5974f99cd98d1ef378b6de2bcd7..df53d0d8371b2f7bbd04ffe6c2d1c171ae457bc8 100644 --- a/content/browser/web_contents/web_contents_impl.h +++ b/content/browser/web_contents/web_contents_impl.h @@ -957,6 +957,7 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents, diff --git a/patches/chromium/render_widget_host_view_base.patch b/patches/chromium/render_widget_host_view_base.patch index f7f2e7210be3..b748495a963c 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 1bb9760fee301bebb5e940d6786999cfbf52656f..0b4b9fb7d64ca1615d5a03e86f421b8f282ed27a 100644 +index eefdd87f1f85ac62079e97f1a7736234952d419c..f2b1959f7650ecd98ed2db870d1c723a78f6e1c1 100644 --- a/content/browser/renderer_host/render_widget_host_view_base.cc +++ b/content/browser/renderer_host/render_widget_host_view_base.cc -@@ -699,6 +699,13 @@ bool RenderWidgetHostViewBase::ScreenRectIsUnstableFor( +@@ -703,6 +703,13 @@ bool RenderWidgetHostViewBase::ScreenRectIsUnstableFor( return false; } @@ -24,7 +24,7 @@ index 1bb9760fee301bebb5e940d6786999cfbf52656f..0b4b9fb7d64ca1615d5a03e86f421b8f 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 2f7dabc3317f7b1a609e6b67795036696a6420d0..a300f9b497f206086d9bba01b0ea3948a1b6413a 100644 +index 912a21280fdd53e03cb92404b424f0b26740460a..98dda64426a1489cd44e90a211a6c4f94f62afb7 100644 --- a/content/browser/renderer_host/render_widget_host_view_base.h +++ b/content/browser/renderer_host/render_widget_host_view_base.h @@ -26,8 +26,10 @@ @@ -50,7 +50,7 @@ index 2f7dabc3317f7b1a609e6b67795036696a6420d0..a300f9b497f206086d9bba01b0ea3948 class WebCursor; class WebContentsAccessibility; class DelegatedFrameHost; -@@ -145,6 +149,9 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { +@@ -146,6 +150,9 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { const gfx::Rect& keyboard_rect) override {} bool IsHTMLFormPopup() const override; @@ -60,7 +60,7 @@ index 2f7dabc3317f7b1a609e6b67795036696a6420d0..a300f9b497f206086d9bba01b0ea3948 // This only needs to be overridden by RenderWidgetHostViewBase subclasses // that handle content embedded within other RenderWidgetHostViews. gfx::PointF TransformPointToRootCoordSpaceF( -@@ -299,6 +306,11 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { +@@ -300,6 +307,11 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { virtual void ProcessGestureEvent(const blink::WebGestureEvent& event, const ui::LatencyInfo& latency); diff --git a/patches/chromium/render_widget_host_view_mac.patch b/patches/chromium/render_widget_host_view_mac.patch index bfcb6e2bb6da..71fbcccf77ef 100644 --- a/patches/chromium/render_widget_host_view_mac.patch +++ b/patches/chromium/render_widget_host_view_mac.patch @@ -10,7 +10,7 @@ kinds of utility windows. Similarly for `disableAutoHideCursor`. Additionally, disables usage of some private APIs in MAS builds. diff --git a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm -index 6e4656b8f6dd76e4e13e066a87de4ec893063a46..2232f86b1c91700cdc371adbfdd7beed99d26418 100644 +index 77b20580138a8b3365e82239e9c2b8af7f0e2c05..5c583a2f85565fb52d9cea21c2d08e39fe14086e 100644 --- a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm +++ b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm @@ -155,6 +155,15 @@ void ExtractUnderlines(NSAttributedString* string, diff --git a/patches/chromium/scroll_bounce_flag.patch b/patches/chromium/scroll_bounce_flag.patch index a5704c0b5bb8..db1be0f2a464 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 ab74207b348f211ee78de1384c9c75f7682926fe..ff475b3978b215cdbe921c620661070309bc5f5d 100644 +index 2f86fff71f36353f1fc3d8024f16dbb4921a1db8..db9d0406637bca783f5a9f0beecbbaaac6d1c1cf 100644 --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc -@@ -1283,7 +1283,7 @@ bool RenderThreadImpl::IsLcdTextEnabled() { +@@ -1279,7 +1279,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 f56ee0481087..0ebb26548566 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 654d7d77b2a7ea8e1819288bb49084e435072ba9..e186644f7592f7d0e827b7d8af6c31951738f6f5 100644 +index 8b236cbd54011bc0008d56ca4213920e478f7a90..ece0f7a284fc87f879d21e754b0b050236081d61 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -1748,9 +1748,15 @@ bool RenderProcessHostImpl::Init() { +@@ -1752,9 +1752,15 @@ bool RenderProcessHostImpl::Init() { std::unique_ptr sandbox_delegate = std::make_unique( cmd_line.get(), IsJitDisabled()); diff --git a/patches/chromium/web_contents.patch b/patches/chromium/web_contents.patch index 360dd0395bc2..bb2a2c91cd38 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 eb94d05bf03d04b508123675c31957b8d22ee13a..035aa45845d56d0a8edaa693689bb27e6cd3b158 100644 +index 1ebb4970ef9c440c5c2584785397696c7ebc14ce..5f200acb893f6c6b4ffb7c5a6ca010dde8a245e9 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -3032,6 +3032,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, +@@ -3059,6 +3059,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, site_instance.get(), params.renderer_initiated_creation, params.main_frame_name, GetOpener(), primary_main_frame_policy); @@ -26,7 +26,7 @@ index eb94d05bf03d04b508123675c31957b8d22ee13a..035aa45845d56d0a8edaa693689bb27e std::unique_ptr delegate = GetContentClient()->browser()->GetWebContentsViewDelegate(this); -@@ -3042,6 +3049,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, +@@ -3069,6 +3076,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, view_ = CreateWebContentsView(this, std::move(delegate), &render_view_host_delegate_view_); } @@ -35,7 +35,7 @@ index eb94d05bf03d04b508123675c31957b8d22ee13a..035aa45845d56d0a8edaa693689bb27e CHECK(view_.get()); diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h -index 92a075098c41f118a4114424715eb61f212b43b7..a99435a0a9c1c4e26a53d513f180a07f8308cbc9 100644 +index f1b8dee6699c02884372aa05279d2d23274efdfd..922048fbc03f7222e42e3640b46d3d5e1b2391ba 100644 --- a/content/public/browser/web_contents.h +++ b/content/public/browser/web_contents.h @@ -93,10 +93,13 @@ class BrowserContext; diff --git a/patches/chromium/webview_fullscreen.patch b/patches/chromium/webview_fullscreen.patch index a47632775768..1ff868607e31 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 bdf2fa0461840d6059b4a7d6660a356be5c38ba0..867b0efca67ce1d4198c2312a6ddc6a784784913 100644 +index 187b94d207570a77f058915b9e5b581c777adc5a..55b56c4b18bba342db29bc493e07b27aee1f586a 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -6421,6 +6421,15 @@ void RenderFrameHostImpl::EnterFullscreen( +@@ -6509,6 +6509,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 9cb4db7e26b7..efef6124f4d5 100644 --- a/patches/chromium/worker_context_will_destroy.patch +++ b/patches/chromium/worker_context_will_destroy.patch @@ -26,7 +26,7 @@ index 1dfe162dc69f404b49bae6197fa7b713600eb9bd..dedfb41c933ad7930cbab5aae502e1df // 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 d4e55604b9a8485bb9088a272abca4a6d4e7494d..e842f73029cd7a7a2bdfd7b7d7483a6ecca8527c 100644 +index a5f2807bfa3bd2515aac5fb2090780720a860314..0533dbcdb64af9ebf3f3dcec36038fe76136a15a 100644 --- a/content/renderer/renderer_blink_platform_impl.cc +++ b/content/renderer/renderer_blink_platform_impl.cc @@ -909,6 +909,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() { @@ -43,7 +43,7 @@ index d4e55604b9a8485bb9088a272abca4a6d4e7494d..e842f73029cd7a7a2bdfd7b7d7483a6e 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 0d484ebcc48d5b230ba94a07745e14f4cf706702..0387f4de1e181200ecd7323d2cea2fa854de62c0 100644 +index 40146f89d1d946674025c51896fed23a9782b4fb..af85bef23dbc259ba4554aaa28cf3c06a80ea437 100644 --- a/content/renderer/renderer_blink_platform_impl.h +++ b/content/renderer/renderer_blink_platform_impl.h @@ -191,6 +191,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { @@ -55,10 +55,10 @@ index 0d484ebcc48d5b230ba94a07745e14f4cf706702..0387f4de1e181200ecd7323d2cea2fa8 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 00a10e9d00f0aad692fd87b9ea51085ef3fbfd1f..f346dfc768dca2f616e6e3197a98a8c896516568 100644 +index a9ba1b0ec765ee51b1341afe81210e87d2c93c82..2970cb32f408fa812cc006f3c70ec5c55115781b 100644 --- a/third_party/blink/public/platform/platform.h +++ b/third_party/blink/public/platform/platform.h -@@ -676,6 +676,7 @@ class BLINK_PLATFORM_EXPORT Platform { +@@ -675,6 +675,7 @@ class BLINK_PLATFORM_EXPORT Platform { virtual void DidStartWorkerThread() {} virtual void WillStopWorkerThread() {} virtual void WorkerContextCreated(const v8::Local& worker) {} @@ -67,10 +67,10 @@ index 00a10e9d00f0aad692fd87b9ea51085ef3fbfd1f..f346dfc768dca2f616e6e3197a98a8c8 const WebSecurityOrigin& script_origin) { return false; diff --git a/third_party/blink/renderer/core/workers/worker_thread.cc b/third_party/blink/renderer/core/workers/worker_thread.cc -index 265e4bed408747b5b22d2e930bc64fb2cb2c3b25..892b3e58443f1a82a6a41c6d52df7d2d701b377d 100644 +index ef06596ca9597496809064a4b5a5388caf2dac5a..aa045c3bebc0653449d99dd6e507ac76952ebf8c 100644 --- a/third_party/blink/renderer/core/workers/worker_thread.cc +++ b/third_party/blink/renderer/core/workers/worker_thread.cc -@@ -734,6 +734,12 @@ void WorkerThread::PrepareForShutdownOnWorkerThread() { +@@ -735,6 +735,12 @@ void WorkerThread::PrepareForShutdownOnWorkerThread() { nested_runner_->QuitNow(); } diff --git a/patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch b/patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch index fe77a9ab717a..f816b1d0f401 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,7 +35,7 @@ index dedfb41c933ad7930cbab5aae502e1df28cf05e4..8ad7306886109e827a8a692fee39f7c7 // 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 e842f73029cd7a7a2bdfd7b7d7483a6ecca8527c..21b9c228654222263e4ec5b028f098e417ee45fc 100644 +index 0533dbcdb64af9ebf3f3dcec36038fe76136a15a..6f4019347855650cb2203f59c5568e2a029639a1 100644 --- a/content/renderer/renderer_blink_platform_impl.cc +++ b/content/renderer/renderer_blink_platform_impl.cc @@ -921,6 +921,12 @@ void RendererBlinkPlatformImpl::WorkerContextCreated( @@ -52,7 +52,7 @@ index e842f73029cd7a7a2bdfd7b7d7483a6ecca8527c..21b9c228654222263e4ec5b028f098e4 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 0387f4de1e181200ecd7323d2cea2fa854de62c0..d1da5a8cd5c7967e5ace9050110314f9ea5d605d 100644 +index af85bef23dbc259ba4554aaa28cf3c06a80ea437..d6368cee4c3a87882bac1d1d63df8698dd96b0fa 100644 --- a/content/renderer/renderer_blink_platform_impl.h +++ b/content/renderer/renderer_blink_platform_impl.h @@ -191,6 +191,8 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { @@ -65,10 +65,10 @@ index 0387f4de1e181200ecd7323d2cea2fa854de62c0..d1da5a8cd5c7967e5ace9050110314f9 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 f346dfc768dca2f616e6e3197a98a8c896516568..bcf4ac6bce4f83a7fe97621a8c9b49e6684fed95 100644 +index 2970cb32f408fa812cc006f3c70ec5c55115781b..808234569ff2fc80945b2707020197302e20d856 100644 --- a/third_party/blink/public/platform/platform.h +++ b/third_party/blink/public/platform/platform.h -@@ -676,6 +676,8 @@ class BLINK_PLATFORM_EXPORT Platform { +@@ -675,6 +675,8 @@ class BLINK_PLATFORM_EXPORT Platform { virtual void DidStartWorkerThread() {} virtual void WillStopWorkerThread() {} virtual void WorkerContextCreated(const v8::Local& worker) {} diff --git a/patches/v8/build_gn.patch b/patches/v8/build_gn.patch index adab060b9821..47cea967e99d 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 41dab6bec85e6898bb8bf78c6287178aa55a7e74..f5879e1361b127f1213e6abe649d7e82c45b43ce 100644 +index c51da9f12ecab41256bf0cdb7a0170e99302dc35..a0154b94bf390b639e1144bc3eb6041631b29716 100644 --- a/BUILD.gn +++ b/BUILD.gn -@@ -620,7 +620,7 @@ config("internal_config") { +@@ -626,7 +626,7 @@ config("internal_config") { ":cppgc_header_features", ] @@ -21,7 +21,7 @@ index 41dab6bec85e6898bb8bf78c6287178aa55a7e74..f5879e1361b127f1213e6abe649d7e82 defines += [ "BUILDING_V8_SHARED" ] } -@@ -5948,7 +5948,7 @@ if (current_toolchain == v8_generator_toolchain) { +@@ -5986,7 +5986,7 @@ if (current_toolchain == v8_generator_toolchain) { "src/interpreter/bytecodes.h", ] @@ -30,7 +30,7 @@ index 41dab6bec85e6898bb8bf78c6287178aa55a7e74..f5879e1361b127f1213e6abe649d7e82 deps = [ ":v8_libbase", -@@ -5986,6 +5986,8 @@ if (current_toolchain == v8_snapshot_toolchain) { +@@ -6024,6 +6024,8 @@ if (current_toolchain == v8_snapshot_toolchain) { configs = [ ":internal_config" ] diff --git a/patches/v8/build_remove_legacy_oom_error_callback.patch b/patches/v8/build_remove_legacy_oom_error_callback.patch index 561e78393602..989e15f01b4b 100644 --- a/patches/v8/build_remove_legacy_oom_error_callback.patch +++ b/patches/v8/build_remove_legacy_oom_error_callback.patch @@ -69,7 +69,7 @@ index b54c7388603b4582356f6741c9a36f2835aa1928..b9533b78046228705e2038396eebf23b void SetOOMErrorHandler(OOMErrorCallback that); diff --git a/src/api/api.cc b/src/api/api.cc -index 7d8d8b699d2b10e026617ea9716ac913a2d44aea..95f77280c471d250eec7da2c7cd64332f8778136 100644 +index 82ed3b8c44b62d67fc7e897423ca1c1999befb7f..dcae2f80cba468c1a98e589fd68ce60a0b9ae99a 100644 --- a/src/api/api.cc +++ b/src/api/api.cc @@ -167,13 +167,6 @@ @@ -115,7 +115,7 @@ index 7d8d8b699d2b10e026617ea9716ac913a2d44aea..95f77280c471d250eec7da2c7cd64332 } else { // TODO(wfh): Remove this fallback once Blink is setting OOM handler. See // crbug.com/614440. -@@ -6121,11 +6106,6 @@ void v8::V8::SetFatalMemoryErrorCallback( +@@ -6141,11 +6126,6 @@ void v8::V8::SetFatalMemoryErrorCallback( g_oom_error_callback = oom_error_callback; } @@ -127,7 +127,7 @@ index 7d8d8b699d2b10e026617ea9716ac913a2d44aea..95f77280c471d250eec7da2c7cd64332 void v8::V8::SetEntropySource(EntropySource entropy_source) { base::RandomNumberGenerator::SetEntropySource(entropy_source); } -@@ -8633,8 +8613,6 @@ void Isolate::Initialize(Isolate* v8_isolate, +@@ -8654,8 +8634,6 @@ void Isolate::Initialize(Isolate* v8_isolate, #endif if (params.oom_error_callback) { v8_isolate->SetOOMErrorHandler(params.oom_error_callback); @@ -136,7 +136,7 @@ index 7d8d8b699d2b10e026617ea9716ac913a2d44aea..95f77280c471d250eec7da2c7cd64332 } #if __clang__ #pragma clang diagnostic pop -@@ -9376,8 +9354,6 @@ size_t Isolate::CopyCodePages(size_t capacity, MemoryRange* code_pages_out) { +@@ -9397,8 +9375,6 @@ size_t Isolate::CopyCodePages(size_t capacity, MemoryRange* code_pages_out) { CALLBACK_SETTER(FatalErrorHandler, FatalErrorCallback, exception_behavior) CALLBACK_SETTER(OOMErrorHandler, OOMErrorCallback, oom_behavior) @@ -146,10 +146,10 @@ index 7d8d8b699d2b10e026617ea9716ac913a2d44aea..95f77280c471d250eec7da2c7cd64332 ModifyCodeGenerationFromStringsCallback2, modify_code_gen_callback2) diff --git a/src/execution/isolate.h b/src/execution/isolate.h -index aed822d0779f3e7dac3c37b84b3aea277a5d57ea..ca9fd39138efb3196072b509ca9f5f9bae85c626 100644 +index 00494e347438e92b509ec67f4d77688e091d348b..8c151c8674fdb5d4b3af3de88e97e70239fa8ed7 100644 --- a/src/execution/isolate.h +++ b/src/execution/isolate.h -@@ -489,16 +489,9 @@ V8_EXPORT_PRIVATE void FreeCurrentEmbeddedBlob(); +@@ -487,16 +487,9 @@ V8_EXPORT_PRIVATE void FreeCurrentEmbeddedBlob(); using DebugObjectCache = std::vector>; diff --git a/patches/v8/dcheck.patch b/patches/v8/dcheck.patch index 9a9c02bce0af..d7b2329787ca 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 8cb7a34b1a48956737e9964151db80308479dcc9..7d8d8b699d2b10e026617ea9716ac913a2d44aea 100644 +index fb22f212024d84555e5a5acdfc70ffa6259b9846..82ed3b8c44b62d67fc7e897423ca1c1999befb7f 100644 --- a/src/api/api.cc +++ b/src/api/api.cc -@@ -9125,7 +9125,7 @@ void Isolate::SetPromiseRejectCallback(PromiseRejectCallback callback) { +@@ -9146,7 +9146,7 @@ void Isolate::SetPromiseRejectCallback(PromiseRejectCallback callback) { } void Isolate::PerformMicrotaskCheckpoint() { @@ -19,10 +19,10 @@ index 8cb7a34b1a48956737e9964151db80308479dcc9..7d8d8b699d2b10e026617ea9716ac913 i_isolate->default_microtask_queue()->PerformCheckpoint(this); } diff --git a/src/heap/heap.cc b/src/heap/heap.cc -index a581b318b8cd729370a027fe6b2135dea42a7e78..8f6a2164fbf8016a57742e6048e7f99c5af86d0d 100644 +index df03810a6fea9ee45a9e8dfb8845f8e6eebbcc08..e2a2fdf77d434c504547d7589f67c556f1f2ae2c 100644 --- a/src/heap/heap.cc +++ b/src/heap/heap.cc -@@ -6211,9 +6211,9 @@ void Heap::TearDown() { +@@ -6195,9 +6195,9 @@ void Heap::TearDown() { void Heap::AddGCPrologueCallback(v8::Isolate::GCCallbackWithData callback, GCType gc_type, void* data) { DCHECK_NOT_NULL(callback); diff --git a/patches/v8/do_not_export_private_v8_symbols_on_windows.patch b/patches/v8/do_not_export_private_v8_symbols_on_windows.patch index ededb3c9c6d5..873945550cda 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 1859c2bc4fa262aa4a7f28a5d36d222fc195de2e..71ee04624868f23a2e204b5ff1e973b45e2f1202 100644 +index 12df5c4fb41f5e710dfeac145d69d6a28e53c064..012e1755e11afed5cb154240cce4c6996790aa57 100644 --- a/BUILD.gn +++ b/BUILD.gn -@@ -620,6 +620,10 @@ config("internal_config") { +@@ -626,6 +626,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 6e46db75295f..fe13e37d5a64 100644 --- a/patches/v8/export_symbols_needed_for_windows_build.patch +++ b/patches/v8/export_symbols_needed_for_windows_build.patch @@ -6,10 +6,10 @@ Subject: Export symbols needed for Windows build These symbols are required to build v8 with BUILD_V8_SHARED on Windows. diff --git a/src/objects/objects.h b/src/objects/objects.h -index 104a524dc45433b15f30529ecb4815210e72d90d..f3e234be7e3d63afb2c4560fe4d243dfa81e12a6 100644 +index 647fbb52bf1faaad92ef1b4537d6226344cb27b2..86b1123804058f1ecca5bd7076f5108cd1f28912 100644 --- a/src/objects/objects.h +++ b/src/objects/objects.h -@@ -925,7 +925,7 @@ enum AccessorComponent { ACCESSOR_GETTER, ACCESSOR_SETTER }; +@@ -929,7 +929,7 @@ enum AccessorComponent { ACCESSOR_GETTER, ACCESSOR_SETTER }; // Utility superclass for stack-allocated objects that must be updated // on gc. It provides two ways for the gc to update instances, either // iterating or updating after gc. diff --git a/patches/v8/expose_mksnapshot.patch b/patches/v8/expose_mksnapshot.patch index 05a232bf5d8f..00c560abdb60 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 f5879e1361b127f1213e6abe649d7e82c45b43ce..1859c2bc4fa262aa4a7f28a5d36d222fc195de2e 100644 +index a0154b94bf390b639e1144bc3eb6041631b29716..12df5c4fb41f5e710dfeac145d69d6a28e53c064 100644 --- a/BUILD.gn +++ b/BUILD.gn -@@ -5960,7 +5960,6 @@ if (current_toolchain == v8_generator_toolchain) { +@@ -5998,7 +5998,6 @@ if (current_toolchain == v8_generator_toolchain) { if (current_toolchain == v8_snapshot_toolchain) { v8_executable("mksnapshot") { diff --git a/patches/v8/fix_build_deprecated_attribute_for_older_msvc_versions.patch b/patches/v8/fix_build_deprecated_attribute_for_older_msvc_versions.patch index b3c635d8135d..8b7b4daa2856 100644 --- a/patches/v8/fix_build_deprecated_attribute_for_older_msvc_versions.patch +++ b/patches/v8/fix_build_deprecated_attribute_for_older_msvc_versions.patch @@ -6,7 +6,7 @@ Subject: fix: usage of c++ [[deprecated]] attribute for older msvc versions This attribute can only be used in all contexts in Visual Studio 2019 diff --git a/include/v8config.h b/include/v8config.h -index 0e5bb1558d096d152fd9388f081c5c9d150a3c7a..6aa16106c088c0a7e590c62eb3d06e0418cb5ebc 100644 +index 714d8a6f057ae98d8809a55e83c323c805170e8d..66ee2bd73b47231c17795ad0b23e558216878cae 100644 --- a/include/v8config.h +++ b/include/v8config.h @@ -454,10 +454,13 @@ path. Add it with -I to the command line diff --git a/patches/v8/revert_runtime_dhceck_terminating_exception_in_microtasks.patch b/patches/v8/revert_runtime_dhceck_terminating_exception_in_microtasks.patch index 94b427ba183b..fa5ea09a847e 100644 --- a/patches/v8/revert_runtime_dhceck_terminating_exception_in_microtasks.patch +++ b/patches/v8/revert_runtime_dhceck_terminating_exception_in_microtasks.patch @@ -18,10 +18,10 @@ index ca4b1dc557f573bfcde200201cbd2f05e3c6b530..9edc8ce00c524a63cb23911a474f1904 StoreRoot(RootIndex::kCurrentMicrotask, microtask); TNode saved_entered_context_count = GetEnteredContextCount(); diff --git a/src/codegen/code-stub-assembler.cc b/src/codegen/code-stub-assembler.cc -index 8b7cc072de2745002ebb715b606cf5f6f735a5f7..89162633cabc2d3f22e2fb4dd76321994e8fe66b 100644 +index 2d2ac48555bdec0b96acd0cd8aafb47e71d4a53c..81d6204d3efd0f55105ec48ee6627293b2ffe5fc 100644 --- a/src/codegen/code-stub-assembler.cc +++ b/src/codegen/code-stub-assembler.cc -@@ -6142,12 +6142,6 @@ void CodeStubAssembler::SetPendingMessage(TNode message) { +@@ -6156,12 +6156,6 @@ void CodeStubAssembler::SetPendingMessage(TNode message) { StoreFullTaggedNoWriteBarrier(pending_message, message); } @@ -35,10 +35,10 @@ index 8b7cc072de2745002ebb715b606cf5f6f735a5f7..89162633cabc2d3f22e2fb4dd7632199 int type) { return Word32Equal(instance_type, Int32Constant(type)); diff --git a/src/codegen/code-stub-assembler.h b/src/codegen/code-stub-assembler.h -index a8dda45985e8e74b1b7c0200779fe8a3844617b0..c017dafaeff050045b4cf4d2a76a474b7b0a2c27 100644 +index 79844e15dff8bcc9da7df17e3b76677c8cd5f87c..7efd34e45a3e263d86f1f3cef54b24c68424a8d4 100644 --- a/src/codegen/code-stub-assembler.h +++ b/src/codegen/code-stub-assembler.h -@@ -2528,7 +2528,6 @@ class V8_EXPORT_PRIVATE CodeStubAssembler +@@ -2532,7 +2532,6 @@ class V8_EXPORT_PRIVATE CodeStubAssembler TNode GetPendingMessage(); void SetPendingMessage(TNode message); diff --git a/patches/v8/workaround_an_undefined_symbol_error.patch b/patches/v8/workaround_an_undefined_symbol_error.patch index 164c824a19d6..e25c92d65133 100644 --- a/patches/v8/workaround_an_undefined_symbol_error.patch +++ b/patches/v8/workaround_an_undefined_symbol_error.patch @@ -12,10 +12,10 @@ By moving some functions out of the the arm64-assembler header file, this error no longer seems to happen. diff --git a/src/codegen/arm64/assembler-arm64.cc b/src/codegen/arm64/assembler-arm64.cc -index 52c5d32227029a24d9576967f27e7a8554edd66b..35c5cbe4ce68539ed29e6b365651e6b2c678d457 100644 +index 818af524388b1aba51e984b7ff7f7b856d1e590b..7ba8a0e9bc11a65e72e66aebd87e19359ba5594e 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, +@@ -3630,6 +3630,22 @@ void Assembler::MoveWide(const Register& rd, uint64_t imm, int shift, ImmMoveWide(static_cast(imm)) | ShiftMoveWide(shift)); } diff --git a/shell/app/electron_main_delegate.cc b/shell/app/electron_main_delegate.cc index 8179c7b6234a..897f8a698a4b 100644 --- a/shell/app/electron_main_delegate.cc +++ b/shell/app/electron_main_delegate.cc @@ -41,6 +41,7 @@ #include "shell/renderer/electron_renderer_client.h" #include "shell/renderer/electron_sandboxed_renderer_client.h" #include "shell/utility/electron_content_utility_client.h" +#include "third_party/abseil-cpp/absl/types/variant.h" #include "ui/base/resource/resource_bundle.h" #include "ui/base/ui_base_switches.h" @@ -461,7 +462,7 @@ ElectronMainDelegate::RunProcess( } bool ElectronMainDelegate::ShouldCreateFeatureList(InvokedIn invoked_in) { - return invoked_in == InvokedIn::kChildProcess; + return absl::holds_alternative(invoked_in); } bool ElectronMainDelegate::ShouldLockSchemeRegistry() { diff --git a/shell/browser/api/electron_api_session.cc b/shell/browser/api/electron_api_session.cc index c02eddd57fe3..3b691b06bdbc 100644 --- a/shell/browser/api/electron_api_session.cc +++ b/shell/browser/api/electron_api_session.cc @@ -72,6 +72,7 @@ #include "shell/common/node_includes.h" #include "shell/common/options_switches.h" #include "shell/common/process_util.h" +#include "third_party/blink/public/common/storage_key/storage_key.h" #include "ui/base/l10n/l10n_util.h" #if BUILDFLAG(ENABLE_ELECTRON_EXTENSIONS) @@ -115,7 +116,7 @@ PreconnectRequest::PreconnectRequest( namespace { struct ClearStorageDataOptions { - GURL origin; + blink::StorageKey storage_key; uint32_t storage_types = StoragePartition::REMOVE_DATA_MASK_ALL; uint32_t quota_types = StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL; }; @@ -170,7 +171,8 @@ struct Converter { gin_helper::Dictionary options; if (!ConvertFromV8(isolate, val, &options)) return false; - options.Get("origin", &out->origin); + if (GURL storage_origin; options.Get("origin", &storage_origin)) + out->storage_key = blink::StorageKey(url::Origin::Create(storage_origin)); std::vector types; if (options.Get("storages", &types)) out->storage_types = GetStorageMask(types); @@ -464,8 +466,8 @@ v8::Local Session::ClearStorageData(gin::Arguments* args) { } storage_partition->ClearData( - options.storage_types, options.quota_types, options.origin, base::Time(), - base::Time::Max(), + options.storage_types, options.quota_types, options.storage_key, + base::Time(), base::Time::Max(), base::BindOnce(gin_helper::Promise::ResolvePromise, std::move(promise))); return handle; diff --git a/shell/browser/api/electron_api_web_contents.cc b/shell/browser/api/electron_api_web_contents.cc index ce94fda7c1a9..8a6feece589e 100644 --- a/shell/browser/api/electron_api_web_contents.cc +++ b/shell/browser/api/electron_api_web_contents.cc @@ -637,6 +637,7 @@ WebContents::Type GetTypeFromViewType(extensions::mojom::ViewType view_type) { case extensions::mojom::ViewType::kBackgroundContents: case extensions::mojom::ViewType::kExtensionGuest: case extensions::mojom::ViewType::kTabContents: + case extensions::mojom::ViewType::kOffscreenDocument: case extensions::mojom::ViewType::kInvalid: return WebContents::Type::kRemote; } diff --git a/shell/browser/api/frame_subscriber.cc b/shell/browser/api/frame_subscriber.cc index 03dd6c9ecaa3..a3a42a72e58d 100644 --- a/shell/browser/api/frame_subscriber.cc +++ b/shell/browser/api/frame_subscriber.cc @@ -143,6 +143,8 @@ void FrameSubscriber::OnFrameCaptured( Done(content_rect, bitmap); } +void FrameSubscriber::OnNewCropVersion(uint32_t crop_version) {} + void FrameSubscriber::OnFrameWithEmptyRegionCapture() {} void FrameSubscriber::OnStopped() {} diff --git a/shell/browser/api/frame_subscriber.h b/shell/browser/api/frame_subscriber.h index 00b512251e9c..a8d86cb0a379 100644 --- a/shell/browser/api/frame_subscriber.h +++ b/shell/browser/api/frame_subscriber.h @@ -57,6 +57,7 @@ class FrameSubscriber : public content::WebContentsObserver, const gfx::Rect& content_rect, mojo::PendingRemote callbacks) override; + void OnNewCropVersion(uint32_t crop_version) override; void OnFrameWithEmptyRegionCapture() override; void OnStopped() override; void OnLog(const std::string& message) override; diff --git a/shell/browser/bluetooth/electron_bluetooth_delegate.cc b/shell/browser/bluetooth/electron_bluetooth_delegate.cc index 70fc5c6d8477..98330a4787bc 100644 --- a/shell/browser/bluetooth/electron_bluetooth_delegate.cc +++ b/shell/browser/bluetooth/electron_bluetooth_delegate.cc @@ -47,14 +47,6 @@ ElectronBluetoothDelegate::ShowBluetoothScanningPrompt( return nullptr; } -void ElectronBluetoothDelegate::ShowDeviceCredentialsPrompt( - content::RenderFrameHost* frame, - const std::u16string& device_identifier, - CredentialsCallback callback) { - // TODO(jkleinsc) implement this - std::move(callback).Run(DeviceCredentialsPromptResult::kCancelled, u""); -} - WebBluetoothDeviceId ElectronBluetoothDelegate::GetWebBluetoothDeviceId( RenderFrameHost* frame, const std::string& device_address) { @@ -138,11 +130,14 @@ ElectronBluetoothDelegate::GetPermittedDevices( return permitted_devices; } -void ElectronBluetoothDelegate::ShowDevicePairConfirmPrompt( - RenderFrameHost* frame, +void ElectronBluetoothDelegate::ShowDevicePairPrompt( + content::RenderFrameHost* frame, const std::u16string& device_identifier, - PairConfirmCallback callback) { + PairPromptCallback callback, + PairingKind pairing_kind) { NOTIMPLEMENTED(); + std::move(callback).Run(BluetoothDelegate::PairPromptResult( + BluetoothDelegate::PairPromptStatus::kCancelled)); } } // namespace electron diff --git a/shell/browser/bluetooth/electron_bluetooth_delegate.h b/shell/browser/bluetooth/electron_bluetooth_delegate.h index 39918dc2bfbc..48d07dfb6f8b 100644 --- a/shell/browser/bluetooth/electron_bluetooth_delegate.h +++ b/shell/browser/bluetooth/electron_bluetooth_delegate.h @@ -52,12 +52,10 @@ class ElectronBluetoothDelegate : public content::BluetoothDelegate { content::RenderFrameHost* frame, const content::BluetoothScanningPrompt::EventHandler& event_handler) override; - void ShowDeviceCredentialsPrompt(content::RenderFrameHost* frame, - const std::u16string& device_identifier, - CredentialsCallback callback) override; - void ShowDevicePairConfirmPrompt(content::RenderFrameHost* frame, - const std::u16string& device_identifier, - PairConfirmCallback callback) override; + void ShowDevicePairPrompt(content::RenderFrameHost* frame, + const std::u16string& device_identifier, + PairPromptCallback callback, + PairingKind pairing_kind) override; blink::WebBluetoothDeviceId GetWebBluetoothDeviceId( content::RenderFrameHost* frame, const std::string& device_address) override; diff --git a/shell/browser/electron_browser_client.cc b/shell/browser/electron_browser_client.cc index d3b5f7902fdb..0eb3bcc1388f 100644 --- a/shell/browser/electron_browser_client.cc +++ b/shell/browser/electron_browser_client.cc @@ -1820,6 +1820,7 @@ void BindBadgeServiceForServiceWorker( } void ElectronBrowserClient::RegisterBrowserInterfaceBindersForServiceWorker( + content::BrowserContext* browser_context, mojo::BinderMapWithContext* map) { map->Add( diff --git a/shell/browser/electron_browser_client.h b/shell/browser/electron_browser_client.h index ed2447b4312e..597eb58360ef 100644 --- a/shell/browser/electron_browser_client.h +++ b/shell/browser/electron_browser_client.h @@ -82,6 +82,7 @@ class ElectronBrowserClient : public content::ContentBrowserClient, content::RenderFrameHost* render_frame_host, mojo::BinderMapWithContext* map) override; void RegisterBrowserInterfaceBindersForServiceWorker( + content::BrowserContext* browser_context, mojo::BinderMapWithContext* map) override; #if BUILDFLAG(IS_LINUX) diff --git a/shell/browser/electron_download_manager_delegate.cc b/shell/browser/electron_download_manager_delegate.cc index 917a3a466e9c..813a6dce4ea3 100644 --- a/shell/browser/electron_download_manager_delegate.cc +++ b/shell/browser/electron_download_manager_delegate.cc @@ -144,8 +144,7 @@ void ElectronDownloadManagerDelegate::OnDownloadPathGenerated( path, download::DownloadItem::TARGET_DISPOSITION_PROMPT, download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, item->GetMixedContentStatus(), path, base::FilePath(), - std::string() /*mime_type*/, absl::nullopt /*download_schedule*/, - download::DOWNLOAD_INTERRUPT_REASON_NONE); + std::string() /*mime_type*/, download::DOWNLOAD_INTERRUPT_REASON_NONE); } } @@ -185,8 +184,7 @@ void ElectronDownloadManagerDelegate::OnDownloadSaveDialogDone( .Run(path, download::DownloadItem::TARGET_DISPOSITION_PROMPT, download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, item->GetMixedContentStatus(), path, base::FilePath(), - std::string() /*mime_type*/, absl::nullopt /*download_schedule*/, - interrupt_reason); + std::string() /*mime_type*/, interrupt_reason); } void ElectronDownloadManagerDelegate::Shutdown() { @@ -206,8 +204,7 @@ bool ElectronDownloadManagerDelegate::DetermineDownloadTarget( download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, download::DownloadItem::MixedContentStatus::UNKNOWN, download->GetForcedFilePath(), base::FilePath(), - std::string() /*mime_type*/, absl::nullopt /*download_schedule*/, - download::DOWNLOAD_INTERRUPT_REASON_NONE); + std::string() /*mime_type*/, download::DOWNLOAD_INTERRUPT_REASON_NONE); return true; } @@ -220,7 +217,6 @@ bool ElectronDownloadManagerDelegate::DetermineDownloadTarget( download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, download::DownloadItem::MixedContentStatus::UNKNOWN, save_path, base::FilePath(), std::string() /*mime_type*/, - absl::nullopt /*download_schedule*/, download::DOWNLOAD_INTERRUPT_REASON_NONE); return true; } diff --git a/shell/browser/extensions/electron_extensions_browser_client.cc b/shell/browser/extensions/electron_extensions_browser_client.cc index f286f25a9a5f..bf1fc1da6e87 100644 --- a/shell/browser/extensions/electron_extensions_browser_client.cc +++ b/shell/browser/extensions/electron_extensions_browser_client.cc @@ -310,15 +310,12 @@ void ElectronExtensionsBrowserClient::BroadcastEventToRenderers( return; } - std::vector event_args(args.size()); - std::transform(args.begin(), args.end(), event_args.begin(), - [](const base::Value& arg) { return arg.Clone(); }); auto event = std::make_unique(histogram_value, event_name, - std::move(event_args)); - auto& context_map = ElectronBrowserContext::browser_context_map(); - for (auto const& entry : context_map) { - if (entry.second) { - extensions::EventRouter::Get(entry.second.get()) + args.Clone()); + for (auto const& [key, browser_context] : + ElectronBrowserContext::browser_context_map()) { + if (browser_context) { + extensions::EventRouter::Get(browser_context.get()) ->BroadcastEvent(std::move(event)); } } diff --git a/shell/browser/hid/electron_hid_delegate.cc b/shell/browser/hid/electron_hid_delegate.cc index abdf7a53efeb..6c67490e7589 100644 --- a/shell/browser/hid/electron_hid_delegate.cc +++ b/shell/browser/hid/electron_hid_delegate.cc @@ -8,6 +8,7 @@ #include #include "base/command_line.h" +#include "chrome/common/chrome_features.h" #include "content/public/browser/web_contents.h" #include "services/device/public/cpp/hid/hid_switches.h" #include "shell/browser/electron_permission_manager.h" @@ -17,6 +18,10 @@ #include "shell/browser/web_contents_permission_helper.h" #include "third_party/blink/public/common/permissions/permission_utils.h" +#if BUILDFLAG(ENABLE_EXTENSIONS) +#include "extensions/common/constants.h" +#endif // BUILDFLAG(ENABLE_EXTENSIONS) + namespace { electron::HidChooserContext* GetChooserContext( @@ -119,6 +124,19 @@ bool ElectronHidDelegate::IsFidoAllowedForOrigin( switches::kDisableHidBlocklist); } +bool ElectronHidDelegate::IsServiceWorkerAllowedForOrigin( + const url::Origin& origin) { +#if BUILDFLAG(ENABLE_EXTENSIONS) + // WebHID is only available on extension service workers with feature flag + // enabled for now. + if (base::FeatureList::IsEnabled( + features::kEnableWebHidOnExtensionServiceWorker) && + origin.scheme() == extensions::kExtensionScheme) + return true; +#endif // BUILDFLAG(ENABLE_EXTENSIONS) + return false; +} + void ElectronHidDelegate::OnDeviceAdded( const device::mojom::HidDeviceInfo& device_info) { for (auto& observer : observer_list_) diff --git a/shell/browser/hid/electron_hid_delegate.h b/shell/browser/hid/electron_hid_delegate.h index 2fc81abd3c17..91c1dccfcde2 100644 --- a/shell/browser/hid/electron_hid_delegate.h +++ b/shell/browser/hid/electron_hid_delegate.h @@ -52,6 +52,7 @@ class ElectronHidDelegate : public content::HidDelegate, const std::string& guid) override; bool IsFidoAllowedForOrigin(content::BrowserContext* browser_context, const url::Origin& origin) override; + bool IsServiceWorkerAllowedForOrigin(const url::Origin& origin) override; // HidChooserContext::DeviceObserver: void OnDeviceAdded(const device::mojom::HidDeviceInfo&) override; diff --git a/shell/browser/osr/osr_video_consumer.cc b/shell/browser/osr/osr_video_consumer.cc index a8240681f814..169e04c2b28c 100644 --- a/shell/browser/osr/osr_video_consumer.cc +++ b/shell/browser/osr/osr_video_consumer.cc @@ -136,6 +136,8 @@ void OffScreenVideoConsumer::OnFrameCaptured( callback_.Run(*update_rect, bitmap); } +void OffScreenVideoConsumer::OnNewCropVersion(uint32_t crop_version) {} + void OffScreenVideoConsumer::OnFrameWithEmptyRegionCapture() {} void OffScreenVideoConsumer::OnStopped() {} diff --git a/shell/browser/osr/osr_video_consumer.h b/shell/browser/osr/osr_video_consumer.h index ee6bf0aafd41..5427eb125160 100644 --- a/shell/browser/osr/osr_video_consumer.h +++ b/shell/browser/osr/osr_video_consumer.h @@ -43,6 +43,7 @@ class OffScreenVideoConsumer : public viz::mojom::FrameSinkVideoConsumer { const gfx::Rect& content_rect, mojo::PendingRemote callbacks) override; + void OnNewCropVersion(uint32_t crop_version) override; void OnFrameWithEmptyRegionCapture() override; void OnStopped() override; void OnLog(const std::string& message) override; diff --git a/shell/browser/ui/inspectable_web_contents.cc b/shell/browser/ui/inspectable_web_contents.cc index d1c8e65426a6..16bf86cb016e 100644 --- a/shell/browser/ui/inspectable_web_contents.cc +++ b/shell/browser/ui/inspectable_web_contents.cc @@ -903,32 +903,25 @@ void InspectableWebContents::RegisterExtensionsAPI(const std::string& origin, } void InspectableWebContents::HandleMessageFromDevToolsFrontend( - base::Value message) { + base::Value::Dict message) { // TODO(alexeykuzmin): Should we expect it to exist? if (!embedder_message_dispatcher_) { return; } - const std::string* method = nullptr; - base::Value* params = nullptr; - - if (message.is_dict()) { - method = message.FindStringKey(kFrontendHostMethod); - params = message.FindKey(kFrontendHostParams); - } + const std::string* method = message.FindString(kFrontendHostMethod); + base::Value* params = message.Find(kFrontendHostParams); if (!method || (params && !params->is_list())) { LOG(ERROR) << "Invalid message was sent to embedder: " << message; return; } - base::Value empty_params(base::Value::Type::LIST); - if (!params) { - params = &empty_params; - } - int id = message.FindIntKey(kFrontendHostId).value_or(0); - std::vector params_list; - if (params) - params_list = std::move(*params).TakeListDeprecated(); + + const base::Value::List no_params; + const base::Value::List& params_list = + params != nullptr && params->is_list() ? params->GetList() : no_params; + + const int id = message.FindInt(kFrontendHostId).value_or(0); embedder_message_dispatcher_->Dispatch( base::BindRepeating(&InspectableWebContents::SendMessageAck, weak_factory_.GetWeakPtr(), id), diff --git a/shell/browser/ui/inspectable_web_contents.h b/shell/browser/ui/inspectable_web_contents.h index 68548d0c3c42..b283c48ff613 100644 --- a/shell/browser/ui/inspectable_web_contents.h +++ b/shell/browser/ui/inspectable_web_contents.h @@ -170,7 +170,7 @@ class InspectableWebContents const std::string& trigger) override {} // content::DevToolsFrontendHostDelegate: - void HandleMessageFromDevToolsFrontend(base::Value message); + void HandleMessageFromDevToolsFrontend(base::Value::Dict message); // content::DevToolsAgentHostClient: void DispatchProtocolMessage(content::DevToolsAgentHost* agent_host, diff --git a/shell/browser/ui/webui/accessibility_ui.cc b/shell/browser/ui/webui/accessibility_ui.cc index 07dcb52162c4..608899531ea9 100644 --- a/shell/browser/ui/webui/accessibility_ui.cc +++ b/shell/browser/ui/webui/accessibility_ui.cc @@ -332,34 +332,32 @@ ElectronAccessibilityUIMessageHandler::ElectronAccessibilityUIMessageHandler() = default; void ElectronAccessibilityUIMessageHandler::RequestNativeUITree( - const base::ListValue* args) { - const base::DictionaryValue* data; - CHECK(args->GetDictionary(0, &data)); + const base::Value::List& args) { + const base::Value::Dict& data = args.front().GetDict(); - int window_id = *data->FindIntPath(kSessionIdField); - const std::string* request_type_p = data->FindStringPath(kRequestTypeField); + const int window_id = *data.FindInt(kSessionIdField); + const std::string* const request_type_p = data.FindString(kRequestTypeField); CHECK(IsValidJSValue(request_type_p)); std::string request_type = *request_type_p; CHECK(request_type == kShowOrRefreshTree || request_type == kCopyTree); request_type = "accessibility." + request_type; - const std::string* allow_p = data->FindStringPath("filters.allow"); + const std::string* const allow_p = + data.FindStringByDottedPath("filters.allow"); CHECK(IsValidJSValue(allow_p)); - std::string allow = *allow_p; - const std::string* allow_empty_p = data->FindStringPath("filters.allowEmpty"); + const std::string* const allow_empty_p = + data.FindStringByDottedPath("filters.allowEmpty"); CHECK(IsValidJSValue(allow_empty_p)); - std::string allow_empty = *allow_empty_p; - const std::string* deny_p = data->FindStringPath("filters.deny"); + const std::string* const deny_p = data.FindStringByDottedPath("filters.deny"); CHECK(IsValidJSValue(deny_p)); - std::string deny = *deny_p; AllowJavascript(); std::vector property_filters; - AddPropertyFilters(&property_filters, allow, ui::AXPropertyFilter::ALLOW); - AddPropertyFilters(&property_filters, allow_empty, + AddPropertyFilters(&property_filters, *allow_p, ui::AXPropertyFilter::ALLOW); + AddPropertyFilters(&property_filters, *allow_empty_p, ui::AXPropertyFilter::ALLOW_EMPTY); - AddPropertyFilters(&property_filters, deny, ui::AXPropertyFilter::DENY); + AddPropertyFilters(&property_filters, *deny_p, ui::AXPropertyFilter::DENY); for (auto* window : electron::WindowList::GetWindows()) { if (window->window_id() == window_id) { @@ -385,25 +383,25 @@ void ElectronAccessibilityUIMessageHandler::RequestNativeUITree( void ElectronAccessibilityUIMessageHandler::RegisterMessages() { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - web_ui()->RegisterDeprecatedMessageCallback( + web_ui()->RegisterMessageCallback( "toggleAccessibility", base::BindRepeating(&AccessibilityUIMessageHandler::ToggleAccessibility, base::Unretained(this))); - web_ui()->RegisterDeprecatedMessageCallback( + web_ui()->RegisterMessageCallback( "setGlobalFlag", base::BindRepeating(&AccessibilityUIMessageHandler::SetGlobalFlag, base::Unretained(this))); - web_ui()->RegisterDeprecatedMessageCallback( + web_ui()->RegisterMessageCallback( "requestWebContentsTree", base::BindRepeating( &AccessibilityUIMessageHandler::RequestWebContentsTree, base::Unretained(this))); - web_ui()->RegisterDeprecatedMessageCallback( + web_ui()->RegisterMessageCallback( "requestNativeUITree", base::BindRepeating( &ElectronAccessibilityUIMessageHandler::RequestNativeUITree, base::Unretained(this))); - web_ui()->RegisterDeprecatedMessageCallback( + web_ui()->RegisterMessageCallback( "requestAccessibilityEvents", base::BindRepeating( &AccessibilityUIMessageHandler::RequestAccessibilityEvents, diff --git a/shell/browser/ui/webui/accessibility_ui.h b/shell/browser/ui/webui/accessibility_ui.h index 8d8dd02721ea..a9796934a50e 100644 --- a/shell/browser/ui/webui/accessibility_ui.h +++ b/shell/browser/ui/webui/accessibility_ui.h @@ -32,7 +32,7 @@ class ElectronAccessibilityUIMessageHandler void RegisterMessages() final; private: - void RequestNativeUITree(const base::ListValue* args); + void RequestNativeUITree(const base::Value::List& args); }; #endif // ELECTRON_SHELL_BROWSER_UI_WEBUI_ACCESSIBILITY_UI_H_ diff --git a/shell/common/api/electron_api_clipboard_mac.mm b/shell/common/api/electron_api_clipboard_mac.mm index 5303b89af6ca..5607885c4c5e 100644 --- a/shell/common/api/electron_api_clipboard_mac.mm +++ b/shell/common/api/electron_api_clipboard_mac.mm @@ -14,7 +14,7 @@ void Clipboard::WriteFindText(const std::u16string& text) { } std::u16string Clipboard::ReadFindText() { - return GetFindPboardText(); + return base::SysNSStringToUTF16([[FindPasteboard sharedInstance] findText]); } } // namespace electron::api diff --git a/shell/renderer/api/electron_api_web_frame.cc b/shell/renderer/api/electron_api_web_frame.cc index 6a7a0c2387cd..12e8cc1018e8 100644 --- a/shell/renderer/api/electron_api_web_frame.cc +++ b/shell/renderer/api/electron_api_web_frame.cc @@ -15,7 +15,6 @@ #include "content/public/renderer/render_frame.h" #include "content/public/renderer/render_frame_observer.h" #include "content/public/renderer/render_frame_visitor.h" -#include "content/public/renderer/render_view.h" #include "gin/handle.h" #include "gin/object_template_builder.h" #include "gin/wrappable.h" diff --git a/shell/renderer/electron_autofill_agent.cc b/shell/renderer/electron_autofill_agent.cc index ff3ae3deceb5..115f602c7766 100644 --- a/shell/renderer/electron_autofill_agent.cc +++ b/shell/renderer/electron_autofill_agent.cc @@ -8,7 +8,6 @@ #include #include "content/public/renderer/render_frame.h" -#include "content/public/renderer/render_view.h" #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h" #include "third_party/blink/public/common/input/web_keyboard_event.h" #include "third_party/blink/public/platform/web_string.h" diff --git a/shell/renderer/electron_render_frame_observer.cc b/shell/renderer/electron_render_frame_observer.cc index f3ef77026248..5c4f0d248fcd 100644 --- a/shell/renderer/electron_render_frame_observer.cc +++ b/shell/renderer/electron_render_frame_observer.cc @@ -11,7 +11,6 @@ #include "base/strings/string_number_conversions.h" #include "base/trace_event/trace_event.h" #include "content/public/renderer/render_frame.h" -#include "content/public/renderer/render_view.h" #include "electron/buildflags/buildflags.h" #include "electron/shell/common/api/api.mojom.h" #include "ipc/ipc_message_macros.h" diff --git a/shell/renderer/renderer_client_base.cc b/shell/renderer/renderer_client_base.cc index a7ce97370f06..b57b46cc8c58 100644 --- a/shell/renderer/renderer_client_base.cc +++ b/shell/renderer/renderer_client_base.cc @@ -18,7 +18,6 @@ #include "content/public/common/content_switches.h" #include "content/public/renderer/render_frame.h" #include "content/public/renderer/render_thread.h" -#include "content/public/renderer/render_view.h" #include "electron/buildflags/buildflags.h" #include "printing/buildflags/buildflags.h" #include "shell/browser/api/electron_api_protocol.h"