chore: bump chromium to 157.0.8100.0 (main) (#54810)

* chore: bump chromium in DEPS to 157.0.8095.0

* chore: remove upstreamed patches

Ref: https://chromium-review.googlesource.com/c/chromium/src/+/8512441
Ref: https://chromium-review.googlesource.com/c/v8/v8/+/8535626

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* chore: update patches

* 8522656: mojo: Clean up miscellaneous legacy Mojo Core leftovers

Ref: https://chromium-review.googlesource.com/c/chromium/src/+/8522656

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* 8527946: gpu: Remove GpuSwitchingManager

Ref: https://chromium-review.googlesource.com/c/chromium/src/+/8527946

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* 8507429: Move BuildUserAgentFromProduct() to anonymous namespace

Upstream made BuildUserAgentFromProduct() private and points external
embedders at BuildUnifiedPlatformUserAgentFromProduct(), which is what
Chrome itself reports by default under User-Agent reduction. The
remaining public helpers do not expose the OS/CPU info needed to rebuild
the old string, so switch to the unified platform variant. The result is
identical on x64 macOS, Windows and Linux; on ARM builds the platform
token now reads x86_64 / Win64; x64, matching Chrome.

Ref: https://chromium-review.googlesource.com/c/chromium/src/+/8507429

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* 8504744: LanguageModel.prompt() returns a sequence<LanguageModelMessageContent> if expecting tool call output

Ref: https://chromium-review.googlesource.com/c/chromium/src/+/8504744

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* 8451262: Move predictor traffic annotations from header to .cc files

The loading predictor's preconnect annotation is now defined in
loading_predictor.cc, which Electron does not build, so define an
Electron-specific annotation for session.preconnect instead.

Ref: https://chromium-review.googlesource.com/c/chromium/src/+/8451262

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* chore: bump chromium in DEPS to 157.0.8096.0

* chore: update patches

* 8498256: Shared Storage: Remove API stubs and interfaces

Upstream removed SharedStorageWorkletGlobalScope and the
ExecutionContext::IsSharedStorageWorkletGlobalScope() predicate, so the
pooled-worklet check in WebWorkerObserver no longer needs it.

Ref: https://chromium-review.googlesource.com/c/chromium/src/+/8498256

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* chore: bump chromium in DEPS to 157.0.8098.0

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>

* chore: bump chromium in DEPS to 157.0.8100.0

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>

* 8504019: Move NotificationImageRetainer to //chrome/browser/notifications/win

Electron adopts the ScopedTempFile lifecycle introduced by the preceding macOS notification change.

Ref: https://chromium-review.googlesource.com/c/chromium/src/+/8504019
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/8504017#nolint

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* 8533026: Test and fix for ShadowRealm last resort full gc crash

ref: https://chromium-review.googlesource.com/c/chromium/src/+/8533026

Remove cherry-picked patch

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: electron-claude[bot] <279139701+electron-claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
authored and GitHub committed 2026-10-13 10:21:21 -04:00
1 parent da4c6886fb
commit 2ff6c14f55
63 files changed
+291 -570

No files matched your search

+1 -1
View File
@@ -2,7 +2,7 @@ gclient_gn_args_from = 'src'
vars = {
'chromium_version':
'157.0.8091.0',
'157.0.8100.0',
'node_version':
'v24.21.0',
'nan_version':
-2
View File
@@ -136,5 +136,3 @@ gin_copy_ascii_one-byte_strings_out_directly_in.patch
fix_gate_webstoreprivate_on_a_delegated_availability_check.patch
build_drop_the_unused_chrome_browser_win_dep_from_color_mixers.patch
fix_plumb_the_requesting_frame_through_pointer_lock_requests.patch
linux_don_t_abort_when_the_networkmonitor_portal_s_bus_is_lost.patch
cherry-pick-8aa7b26db5b4.patch
@@ -23,10 +23,10 @@ index 3734444c7c00a295c55c864b983e7b146ca70047..dccd23b881c3646e061c3ce2669df96d
int32_t world_id) {}
virtual void DidClearWindowObject() {}
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index f2dc84c29b561ef63c0a1b7e6edd6915d8de54c0..7993fd14c837896d872a435a454af7609b5b8a10 100644
index 7ae57783c940b1533b0f696cb7f36d2298a9921f..644c0cf73828ad91bd4ee069bc5d9036393e3d74 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -4989,6 +4989,13 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local<v8::Context> context,
@@ -4984,6 +4984,13 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local<v8::Context> context,
}
}
@@ -7,10 +7,10 @@ Ensure that licenses for the dependencies introduced by Electron
are included in `LICENSES.chromium.html`
diff --git a/tools/licenses/licenses.py b/tools/licenses/licenses.py
index 07ad95387a8fe01f8a7b9a747f4de2911b506527..9c455f0bf923c884d2f64d761f71af4f30e3bd2d 100755
index 7756e7cc514dca326b0403c399a095385f8c0f5e..83c0b96234f5edf46c471f94c6178d95fa3caf70 100755
--- a/tools/licenses/licenses.py
+++ b/tools/licenses/licenses.py
@@ -374,6 +374,36 @@ SPECIAL_CASES = {
@@ -316,6 +316,36 @@ SPECIAL_CASES = {
"License": "Apache 2.0",
"License File": ["//third_party/sample3/the_license"],
},
@@ -15,7 +15,7 @@ When present, authenticator_common_impl uses it in place of the request-
level client_data_json.
diff --git a/content/browser/webauth/authenticator_common_impl.cc b/content/browser/webauth/authenticator_common_impl.cc
index 35f7ef707d807bed0a02721303609dbe8dfe0a30..dc9ca377e0cd514809889b4e0924f2584e78dcff 100644
index 9e4649349b27d2359dc1c701adc2f45434202416..62878baf0fad52d3c325c0ab741314fda2f4f99f 100644
--- a/content/browser/webauth/authenticator_common_impl.cc
+++ b/content/browser/webauth/authenticator_common_impl.cc
@@ -3110,8 +3110,12 @@ AuthenticatorCommonImpl::CreateMakeCredentialResponse(
+18 -18
View File
@@ -12,10 +12,10 @@ that the new window is created in its own BrowsingInstance (and process).
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 a75313227582bf69221c5db638566dc0eec57468..0755fe453878fb011fae7c1d427ca025cdc7dcb2 100644
index 2124095d3f93e824828c45a85ee6ffc94d3e9cec..5b5d4094ae4ad6a33570e107d75eb249ef8df7c7 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -10672,6 +10672,7 @@ void RenderFrameHostImpl::CreateNewWindow(
@@ -10675,6 +10675,7 @@ void RenderFrameHostImpl::CreateNewWindow(
last_committed_origin_, params->window_container_type,
params->target_url, params->referrer.To<Referrer>(),
params->frame_name, params->disposition, *params->features,
@@ -23,7 +23,7 @@ index a75313227582bf69221c5db638566dc0eec57468..0755fe453878fb011fae7c1d427ca025
effective_transient_activation_state, params->opener_suppressed,
&no_javascript_access);
@@ -10682,6 +10683,11 @@ void RenderFrameHostImpl::CreateNewWindow(
@@ -10685,6 +10686,11 @@ void RenderFrameHostImpl::CreateNewWindow(
return;
}
@@ -36,10 +36,10 @@ index a75313227582bf69221c5db638566dc0eec57468..0755fe453878fb011fae7c1d427ca025
// important to do this before we return from the |opener_suppressed| case
// below.
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index a277956429eab77ffcc44db71d4ce56fc60ef160..bf77ced730a07e68910f7061749b57a2a2d854cf 100644
index 9cc6449b7b1882f87953028049ecf84fb7ba5848..5c602a33195a1ad99d7c14efc4b7f215af6a77a5 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -5827,6 +5827,10 @@ FrameTree* WebContentsImpl::CreateNewWindow(
@@ -5830,6 +5830,10 @@ FrameTree* WebContentsImpl::CreateNewWindow(
create_params.initially_hidden = renderer_started_hidden;
create_params.initial_popup_url = params.target_url;
@@ -50,7 +50,7 @@ index a277956429eab77ffcc44db71d4ce56fc60ef160..bf77ced730a07e68910f7061749b57a2
// Even though all codepaths leading here are in response to a renderer
// trying to open a new window, if the new window ends up in a different
// browsing instance, then the RenderViewHost, RenderWidgetHost,
@@ -5881,6 +5885,13 @@ FrameTree* WebContentsImpl::CreateNewWindow(
@@ -5884,6 +5888,13 @@ FrameTree* WebContentsImpl::CreateNewWindow(
// Sets the newly created WebContents WindowOpenDisposition.
new_contents_impl->original_window_open_disposition_ = params.disposition;
@@ -64,7 +64,7 @@ index a277956429eab77ffcc44db71d4ce56fc60ef160..bf77ced730a07e68910f7061749b57a2
// If the new frame has a name, make sure any SiteInstances that can find
// this named frame have proxies for it. Must be called after
// SetSessionStorageNamespace, since this calls CreateRenderView, which uses
@@ -5922,13 +5933,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
@@ -5925,13 +5936,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
AddWebContentsDestructionObserver(new_contents_impl);
}
@@ -94,10 +94,10 @@ index 572c5763b9995dde20a0a7a2ddaa077934939b1d..66c36cedacc93897e1bf51bee5181eee
// 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 e3de4c32b202d0a7bdab984d92c9e64ab2384678..e550ec1999586e7a8e5c8f65ffc8b6674af68bf4 100644
index c4686f46458c3075c76fd7124f166adf45a10eeb..0621f7b36e2086b2101c7fa4f31cee5cf9c8b5f3 100644
--- a/content/public/browser/content_browser_client.cc
+++ b/content/public/browser/content_browser_client.cc
@@ -827,6 +827,8 @@ bool ContentBrowserClient::CanCreateWindow(
@@ -830,6 +830,8 @@ bool ContentBrowserClient::CanCreateWindow(
const std::string& frame_name,
WindowOpenDisposition disposition,
const blink::mojom::WindowFeatures& features,
@@ -107,7 +107,7 @@ index e3de4c32b202d0a7bdab984d92c9e64ab2384678..e550ec1999586e7a8e5c8f65ffc8b667
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 7b24dd3a343fdd2d0c7d9f62bf353ec280e40ab4..3f7dc59112e0f86bd422053f60c2ad5a6a70a0ac 100644
index 16eb7f7cf30ea2f2d787954333a1616eaffdfde0..b03790aca7fa675c6e33e49f36ee30832b49ef8b 100644
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -206,6 +206,7 @@ class TrustedURLLoaderHeaderClient;
@@ -188,10 +188,10 @@ index 38efabfe5d486e893fbf4f4fed72570771dad817..33070d7de072e48b305067429b295418
// typically happens when popups are created.
virtual void WebContentsCreated(WebContents* source_contents,
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 6533c6f9a58d686a340bf0422f2cce067640b9d8..f2dc84c29b561ef63c0a1b7e6edd6915d8de54c0 100644
index 0cbd98a13b99f678ad4ed90bc1f9e556001c0c45..7ae57783c940b1533b0f696cb7f36d2298a9921f 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -7146,6 +7146,10 @@ WebView* RenderFrameImpl::CreateNewWindow(
@@ -7141,6 +7141,10 @@ WebView* RenderFrameImpl::CreateNewWindow(
params->started_by_ad =
GetWebFrame()->IsAdFrame() || GetWebFrame()->IsAdScriptInStack();
@@ -203,10 +203,10 @@ index 6533c6f9a58d686a340bf0422f2cce067640b9d8..f2dc84c29b561ef63c0a1b7e6edd6915
// 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 389b26719040ab14aae15ab95976d187c9912d62..739c23ec23e98bdec6c747d8ea1ef2caea3ec4c5 100644
index bb4cff1440e277e955ebae4e94d0847124d30a66..64db9c427d3e5e518b32edd6ae3adc87767e004e 100644
--- a/content/web_test/browser/web_test_content_browser_client.cc
+++ b/content/web_test/browser/web_test_content_browser_client.cc
@@ -560,6 +560,8 @@ bool WebTestContentBrowserClient::CanCreateWindow(
@@ -565,6 +565,8 @@ bool WebTestContentBrowserClient::CanCreateWindow(
const std::string& frame_name,
WindowOpenDisposition disposition,
const blink::mojom::WindowFeatures& features,
@@ -216,10 +216,10 @@ index 389b26719040ab14aae15ab95976d187c9912d62..739c23ec23e98bdec6c747d8ea1ef2ca
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 6704627ccef1c2889189189d44268e305af2b337..d0bd8613f8ab858eb0aa36c432b077d5331293a1 100644
index 071e87d29d1523eaf277bcc209021f55bb04098b..e3181687596e33a85163d40262b2ff7491a53547 100644
--- a/content/web_test/browser/web_test_content_browser_client.h
+++ b/content/web_test/browser/web_test_content_browser_client.h
@@ -101,6 +101,8 @@ class WebTestContentBrowserClient : public ShellContentBrowserClient {
@@ -102,6 +102,8 @@ class WebTestContentBrowserClient : public ShellContentBrowserClient {
const std::string& frame_name,
WindowOpenDisposition disposition,
const blink::mojom::WindowFeatures& features,
@@ -242,10 +242,10 @@ index 1208199428a2de729650c82e988ab67abeb0e786..2e6643ede047a580a636dbf75e86c99f
} // 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 1541d1ccf01aabb4958ccfcccd68283eb4c97166..d1d456883e7cdcb9037e23c913ad2aa98afa99ea 100644
index 2142a9c6f417e13482c87050d9d2c8dd74f822ba..63d62da6c3b2711ad2d9034657c8a4681ecb47b9 100644
--- a/third_party/blink/renderer/core/frame/local_dom_window.cc
+++ b/third_party/blink/renderer/core/frame/local_dom_window.cc
@@ -2501,6 +2501,8 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
@@ -2518,6 +2518,8 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
WebWindowFeatures window_features =
GetWindowFeaturesFromString(features, entered_window);
@@ -1,90 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: talshalti <talshalti1@gmail.com>
Date: Sat, 10 Oct 2026 21:56:55 -0700
Subject: Test and fix for ShadowRealm last resort full gc crash
V8 full GC metrics can be attributed to a ShadowRealm context. Blink's
metrics recorder resolves that context to ShadowRealmGlobalScope and calls
UkmRecorder(), which currently hits NOTREACHED().
Return no UKM recorder and an invalid source ID for ShadowRealms. The
metrics recorder already handles contexts without a UKM recorder. Add a
regression test to the existing shadow-realm-enabled virtual suite, covering
full GC in the ordinary context, a ShadowRealm, and a nested ShadowRealm.
The web test renderer already exposes GC, so no separate suite is needed.
See also: https://github.com/electron/electron/issues/54637
Co-authored-by: Hidekazu Kondo <hidekazu.kondo@gmail.com>
Change-Id: I35ea8b5ef8fdb58707b0bf0545d24b07e0744545
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8533026
Commit-Queue: Deepak Ravichandran <deepakr@google.com>
Reviewed-by: Deepak Ravichandran <deepakr@google.com>
Reviewed-by: Mason Freed <masonf@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1716425}
diff --git a/AUTHORS b/AUTHORS
index ada048e52f2a8c9aa493ca3f78ea4fbd03d753e7..d2f21f337457526c8ef58e271b4f901591f563d8 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1671,6 +1671,7 @@ Takashi Fujita <tgfjt.mail@gmail.com>
Takashi Mima <tks.m1205@gmail.com>
Takeshi Kurosawa <taken.spc@gmail.com>
Takuya Kurimoto <takuya004869@gmail.com>
+Tal Shalti <talshalti1@gmail.com>
Tanay Chowdhury <tanay.c@samsung.com>
Tanvir Rizvi <tanvir.rizvi@samsung.com>
Tao Wang <tao.wang.2261@gmail.com>
diff --git a/third_party/blink/renderer/core/shadow_realm/shadow_realm_global_scope.cc b/third_party/blink/renderer/core/shadow_realm/shadow_realm_global_scope.cc
index c4cc043dc9bac54dd0876198ac54a6b8133c71b6..ca89a52843b3c2b16cb7fcaafe6f8ac21de11422 100644
--- a/third_party/blink/renderer/core/shadow_realm/shadow_realm_global_scope.cc
+++ b/third_party/blink/renderer/core/shadow_realm/shadow_realm_global_scope.cc
@@ -121,11 +121,11 @@ bool ShadowRealmGlobalScope::IsIsolatedContext() const {
}
ukm::UkmRecorder* ShadowRealmGlobalScope::UkmRecorder() {
- NOTREACHED();
+ return nullptr;
}
ukm::SourceId ShadowRealmGlobalScope::UkmSourceID() const {
- NOTREACHED();
+ return ukm::kInvalidSourceId;
}
ExecutionContextToken ShadowRealmGlobalScope::GetExecutionContextToken() const {
diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/web_tests/VirtualTestSuites
index 5995a2ea6af3a4516d729858653793f2323a3719..64346afb9d7c8ebe0fcfa4073a2e97c046cb60a8 100644
--- a/third_party/blink/web_tests/VirtualTestSuites
+++ b/third_party/blink/web_tests/VirtualTestSuites
@@ -2956,6 +2956,7 @@
"Win"
],
"bases": [
+ "http/tests/shadowrealm/full-gc-crash.html",
"http/tests/shadowrealm/webexposed/global-interface-listing-shadow-realm.html"
],
"exclusive_tests": "ALL",
diff --git a/third_party/blink/web_tests/http/tests/shadowrealm/full-gc-crash.html b/third_party/blink/web_tests/http/tests/shadowrealm/full-gc-crash.html
new file mode 100644
index 0000000000000000000000000000000000000000..c8bd07f21867f5be40d3bf08b82b201a82801b79
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/shadowrealm/full-gc-crash.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<!-- Copyright 2026 The Chromium Authors
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file. -->
+<meta charset="utf-8">
+<title>Full garbage collection in ShadowRealms</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+test(() => {
+ const collect = 'gc({ type: "major", execution: "sync", flavor: "last-resort" })';
+ gc({ type: 'major', execution: 'sync', flavor: 'last-resort' });
+ const realm = new ShadowRealm();
+ realm.evaluate(collect);
+ realm.evaluate('new ShadowRealm().evaluate(' + JSON.stringify(collect) + ')');
+}, 'Full garbage collection in ordinary and nested ShadowRealms does not crash');
+</script>
@@ -34,10 +34,10 @@ index dccd23b881c3646e061c3ce2669df96d5b108617..237bfb19ad9905dd39f1a9e2b7a6df69
virtual void DidClearWindowObject() {}
virtual void DidChangeScrollOffset(blink::mojom::ScrollType) {}
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 7993fd14c837896d872a435a454af7609b5b8a10..686bfacdd99d7ae0b0e599c2178133b9480a4764 100644
index 644c0cf73828ad91bd4ee069bc5d9036393e3d74..07d9e36e5ca5b7bf25fc74fc10e4710da5b4cb53 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -4996,10 +4996,11 @@ void RenderFrameImpl::DidInstallConditionalFeatures(
@@ -4991,10 +4991,11 @@ void RenderFrameImpl::DidInstallConditionalFeatures(
}
}
@@ -10,7 +10,7 @@ Subject: chore: "grandfather in" Electron Views and Delegates
6448510: Lock further access to View::set_owned_by_client(). | https://chromium-review.googlesource.com/c/chromium/src/+/6448510
diff --git a/ui/views/view.h b/ui/views/view.h
index 242fc32c0b862217706bab93e380df5e8f0441b5..e92e452845277dcc3f58b405a5ed7a527c7796e4 100644
index 5d9badf7a3d11201619c9be373a11198517e91b5..7fed40ee34e03bc2ea373f224cc8f01f65c7799a 100644
--- a/ui/views/view.h
+++ b/ui/views/view.h
@@ -77,6 +77,17 @@ namespace ash {
@@ -7,7 +7,7 @@ This patch comes after Chromium removed the ScopedAllowIO API in favor
of explicitly adding ScopedAllowBlocking calls as friends.
diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restrictions.h
index db88f6ab7629f41a1c51945c570a82c35e9ef723..dac83f37196aaee9c6be7021afa738ce3fb31444 100644
index cc087c73765c6ba3babe48c2dde0215c03935f60..d141eae3d8c749ae71145833ad721a799d5b0763 100644
--- a/base/threading/thread_restrictions.h
+++ b/base/threading/thread_restrictions.h
@@ -133,6 +133,7 @@ class KeyStorageLinux;
@@ -34,10 +34,10 @@ index cc3f9bc9383f8272a5cd95b1f2ac56529d86e493..5ca29b84cdaf42ef516ef819ae32b230
class ScrollEvent;
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
index b4868e05fe4b193ddfe585bc351b5083e38dd5c6..76930906d8ee488228b0572d335b96238369675b 100644
index 3ad82812da1a1a84aba7b42d9864505a42cf45ce..019956c806c8744c801ede6000b9d7b69043cd07 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
@@ -1561,6 +1561,10 @@ HBRUSH DesktopWindowTreeHostWin::GetBackgroundPaintBrush() {
@@ -1584,6 +1584,10 @@ HBRUSH DesktopWindowTreeHostWin::GetBackgroundPaintBrush() {
return background_paint_brush_;
}
@@ -49,7 +49,7 @@ index b4868e05fe4b193ddfe585bc351b5083e38dd5c6..76930906d8ee488228b0572d335b9623
DesktopWindowTreeHostWin::GetSingletonDesktopNativeCursorManager() {
return new DesktopNativeCursorManagerWin();
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
index 747de87378f7b6087f9be8a271c1c086b5421b49..03e1bbb251f6464c5d4ee85b205b5ab99e695334 100644
index ae1ac5976e3beca9465545b0b168503a55486621..f9c940c60010645ee0e1d0838efe395defea53bb 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
@@ -279,6 +279,7 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin
@@ -14,10 +14,10 @@ track down the source of this problem & figure out if we can fix it
by changing something in Electron.
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 32d39f8efaae61e6feedffb5a65ca57bec9c7402..99b25c0036562af4671dd87173a1ef80923b8f45 100644
index 2b0686787a2845c6a30d382de704d97121910cc0..9c2a2cc5043fcfb6f5ecc234e441a47078bee18c 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -5802,7 +5802,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
@@ -5805,7 +5805,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
: IsGuest();
// While some guest types do not have a guest SiteInstance, the ones that
// don't all override WebContents creation above.
@@ -6,10 +6,10 @@ Subject: feat: enable setting aspect ratio to 0
Make SetAspectRatio accept 0 as valid input, which would reset to null.
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
index 6e51652e11749eefc5f7363c6a1ca3ab2ced549b..b4868e05fe4b193ddfe585bc351b5083e38dd5c6 100644
index 8fedc83f1f9fb5f0f5b9132bf2d882ac839ade1a..3ad82812da1a1a84aba7b42d9864505a42cf45ce 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
@@ -741,7 +741,7 @@ void DesktopWindowTreeHostWin::SetOpacity(float opacity) {
@@ -744,7 +744,7 @@ void DesktopWindowTreeHostWin::SetOpacity(float opacity) {
void DesktopWindowTreeHostWin::SetAspectRatio(
const gfx::SizeF& aspect_ratio,
const gfx::Size& excluded_margin) {
@@ -104,7 +104,7 @@ index ad5ca8461144f77cd49a390dc81ce38cffb6ec24..b6b5a9872333cb74276aeff6f50abb55
using InitializeCB = base::OnceCallback<void(bool)>;
void Initialize(InitializeCB init_cb) override;
diff --git a/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.cc b/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.cc
index 2f19bdf0e6aefc8896c86a2cafbbabcd4135c639..b6516ec5768c9a78b4f138c587ed41b3a025384e 100644
index 7d1d1395165c53f3f3acbd42d97334343fe67f13..8b70f9418cbe199d553ea3c01307a97b8edae977 100644
--- a/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.cc
+++ b/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.cc
@@ -8,6 +8,7 @@
@@ -123,7 +123,7 @@ index 2f19bdf0e6aefc8896c86a2cafbbabcd4135c639..b6516ec5768c9a78b4f138c587ed41b3
#include "third_party/blink/renderer/platform/media/resource_fetch_context.h"
#include "third_party/blink/renderer/platform/media/url_index.h"
#include "third_party/blink/renderer/platform/weborigin/security_origin.h"
@@ -335,6 +337,16 @@ void ResourceMultiBufferDataProvider::DidReceiveResponse(
@@ -345,6 +347,16 @@ void ResourceMultiBufferDataProvider::DidReceiveResponse(
do_fail = true;
}
} else {
@@ -26,10 +26,10 @@ hook called before the new RenderFrame is created so it can be picked up
by RenderFrameCreated() on the same call stack.
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
index a7352e60788645d890f5d83ec9dd8adcc8c8efa9..f3b0c47c5eb969926d3a6b2396554953e0e89432 100644
index 333c373fed9d24630c80eaebf85fcb7c64acee36..31be8c4cbfe4c1861e5e06746c9ebd12754e8fb3 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -10868,7 +10868,12 @@ void RenderFrameHostImpl::CreateNewWindow(
@@ -10874,7 +10874,12 @@ void RenderFrameHostImpl::CreateNewWindow(
new_main_rfh->GetSiteInstance()->browsing_instance_token(),
delegate_->GetColorProviderColorMaps(),
/*widget_screen_rect=*/std::nullopt,
@@ -71,10 +71,10 @@ index 66c36cedacc93897e1bf51bee5181eeed3e310ee..02e1b5b8b417016a53ec6554d046c333
// A per-navigation interface passed along with the BeginNavigation call, used
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
index e550ec1999586e7a8e5c8f65ffc8b6674af68bf4..ec3ed48006f883df3c6778dd942fe808e2e9ac7b 100644
index 0621f7b36e2086b2101c7fa4f31cee5cf9c8b5f3..c65e4d309395da665019c86e42ee4a3ea62c6f2a 100644
--- a/content/public/browser/content_browser_client.cc
+++ b/content/public/browser/content_browser_client.cc
@@ -836,6 +836,13 @@ bool ContentBrowserClient::CanCreateWindow(
@@ -839,6 +839,13 @@ bool ContentBrowserClient::CanCreateWindow(
return true;
}
@@ -89,7 +89,7 @@ index e550ec1999586e7a8e5c8f65ffc8b6674af68bf4..ec3ed48006f883df3c6778dd942fe808
ContentBrowserClient::CreateSpeechRecognitionManagerDelegate() {
return nullptr;
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
index 123ad05c62e0fde8e06327f399d36ef2e0273e22..a6e6ba792eae94ca693a48a4f3156348c948aba5 100644
index 0e05ccf908df7b69ca194338e95ff06b1fec9922..b52596f66d3376a59a0ab29edd446fd23ee27a60 100644
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -63,6 +63,7 @@
@@ -148,10 +148,10 @@ index d36c62edaf0478df7775e132fef87bb3b3e507ca..384c4a6fa9758c292f3d4da47f79b9d5
// `outermost_origin` is only set if it is an extension scheme, otherwise
// it will be null. It is null to avoid leaking unnecessary information into
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 686bfacdd99d7ae0b0e599c2178133b9480a4764..bdc5f1a7eebe2c9b07f4ab1e423680b43d07db53 100644
index 07d9e36e5ca5b7bf25fc74fc10e4710da5b4cb53..41c321ee2f9916d76120a7d2a60fc4794eff828f 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -7203,6 +7203,14 @@ WebView* RenderFrameImpl::CreateNewWindow(
@@ -7198,6 +7198,14 @@ WebView* RenderFrameImpl::CreateNewWindow(
return nullptr;
}
@@ -33,7 +33,7 @@ index 78e5b2eb93c36a7ee5ea3987ccc5cb0623388719..83fcced85a6689bd06d95c6344e1c30f
// per page visit for each CSS histogram being logged on the blink side and the
// browser side.
diff --git a/third_party/blink/renderer/build/scripts/core/css/css_properties.py b/third_party/blink/renderer/build/scripts/core/css/css_properties.py
index 41e4f4a6492a54cb066864dcdef396bf7d6e1f0e..1074ad42a021bb393b6afd3e7b0363437eb3a7de 100755
index 5e751bb0e254b6cd67b05c6bd2e677c074717099..c567a09c696413371ed732cc2f81d9b9d33d27b7 100755
--- a/third_party/blink/renderer/build/scripts/core/css/css_properties.py
+++ b/third_party/blink/renderer/build/scripts/core/css/css_properties.py
@@ -417,7 +417,7 @@ class CSSProperties(object):
@@ -133,10 +133,10 @@ index a776c8e3ebe1a769d9520decce5516a48c74b78f..31530399ca2a967a87b740c26b9423c6
} // namespace css_longhand
} // namespace blink
diff --git a/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc b/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc
index 2761d9decfe9547812a0b1a74d306298c91abe12..ca8ae04726bbe085ad0121721a4881dabc0912f4 100644
index 226258bb74f8333169179a756c17afe0bf4e3a04..b05de1734000cabaa2e68d8e67822e750bc64965 100644
--- a/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc
@@ -4266,6 +4266,15 @@ PositionTryFallback StyleBuilderConverter::ConvertSinglePositionTryFallback(
@@ -4267,6 +4267,15 @@ PositionTryFallback StyleBuilderConverter::ConvertSinglePositionTryFallback(
return PositionTryFallback(scoped_name, tactic_list);
}
@@ -204,10 +204,10 @@ index b721dd3809c0b6c89574a515bac32d397a1bfb09..750a3603bd18680228220b831709d327
return result;
}
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
index 9dbb5c1bca167a777d2c9713f03a40545b33854c..01df346ac8971fd2fdbff5e86bebbdfc8b65fb54 100644
index 0adcb6894f30356c933d6f77b5a9f6e4723ea6b7..6f84fa98e1a65d127f73fd49cca1861d2a3211bc 100644
--- a/third_party/blink/renderer/platform/BUILD.gn
+++ b/third_party/blink/renderer/platform/BUILD.gn
@@ -1756,6 +1756,8 @@ component("platform") {
@@ -1754,6 +1754,8 @@ component("platform") {
"widget/widget_base.h",
"widget/widget_base_client.h",
"windows_keyboard_codes.h",
@@ -270,7 +270,7 @@ index 17c97038dc0fdb97021ee4b1aa3c8a4ca459fb2b..71d697d738f6aee8cbbb700f1e6ad9ac
// A Corner is a axis-aligned quad, with the points ordered (start, outer,
diff --git a/third_party/blink/renderer/platform/geometry/path_builder.cc b/third_party/blink/renderer/platform/geometry/path_builder.cc
index c68eabb5ba5842cb07df1d97e205c3d96d405a4f..e9e1114f60b1ae02c2e511b6568cee92ecb5e619 100644
index 9d125de843259dae40e6b08eaf65ea3650435295..428219fb35d7a967dcaee91aa1c3628e8021e106 100644
--- a/third_party/blink/renderer/platform/geometry/path_builder.cc
+++ b/third_party/blink/renderer/platform/geometry/path_builder.cc
@@ -10,6 +10,7 @@
@@ -315,7 +315,7 @@ index c68eabb5ba5842cb07df1d97e205c3d96d405a4f..e9e1114f60b1ae02c2e511b6568cee92
auto draw_as_single_path = [&]() {
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index 6c9712895291309ba7bf1316aae29247a49df7f6..3e82341b3e5dd929410e90764e1522f9230a9d82 100644
index c62bce5410ed004ccb6e99945338db9dfb30f6ff..338c49a0cb3bf720b590a76f94178e3c50a102b6 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -237,6 +237,10 @@
@@ -33,10 +33,10 @@ index f1305b444c578b9d3f67470ddac1258c8a3cd903..67efc8609de5ff6316ef4348a474f09c
if (policy_container_host_) {
params->policy_container =
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
index ec3ed48006f883df3c6778dd942fe808e2e9ac7b..7d0c402104e2070672a38be512ceb7dda8ad40ed 100644
index c65e4d309395da665019c86e42ee4a3ea62c6f2a..550f28359e0e33f96948ea4d26bfee92c10a5ba1 100644
--- a/content/public/browser/content_browser_client.cc
+++ b/content/public/browser/content_browser_client.cc
@@ -843,6 +843,13 @@ ContentBrowserClient::GetExtraCreateNewWindowReplyData(
@@ -846,6 +846,13 @@ ContentBrowserClient::GetExtraCreateNewWindowReplyData(
return std::nullopt;
}
@@ -51,7 +51,7 @@ index ec3ed48006f883df3c6778dd942fe808e2e9ac7b..7d0c402104e2070672a38be512ceb7dd
ContentBrowserClient::CreateSpeechRecognitionManagerDelegate() {
return nullptr;
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
index a6e6ba792eae94ca693a48a4f3156348c948aba5..a14fc7dd71cb44e119c0c02f54181ca329d20588 100644
index b52596f66d3376a59a0ab29edd446fd23ee27a60..294652edbb7b15f43beb67e41b94c46ca5e82db5 100644
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -1309,6 +1309,17 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -169,7 +169,7 @@ index a3bfdd9c15d3cfc5053c2a36767ea7964f2740fd..d9d608ea5b01cff08654b11e455fd7af
WebFetchClientSettingsObject outside_fetch_client_settings_object)
: wait_for_debugger_mode(kDontWaitForDebugger),
diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_params.h b/third_party/blink/renderer/core/workers/global_scope_creation_params.h
index d5a652b33a00868054695da48cbeb0cca057faa1..d971a3437d35cc9cf45c3b5eb8f3646e9649a5c7 100644
index 334882e5f645a3df16942186836cedd7ca943a24..8ef208fc4f72de1be2c14336d941c51d10e76a5d 100644
--- a/third_party/blink/renderer/core/workers/global_scope_creation_params.h
+++ b/third_party/blink/renderer/core/workers/global_scope_creation_params.h
@@ -11,6 +11,7 @@
@@ -180,7 +180,7 @@ index d5a652b33a00868054695da48cbeb0cca057faa1..d971a3437d35cc9cf45c3b5eb8f3646e
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "net/storage_access_api/status.h"
#include "services/metrics/public/cpp/ukm_source_id.h"
@@ -272,6 +273,11 @@ struct CORE_EXPORT GlobalScopeCreationParams final {
@@ -260,6 +261,11 @@ struct CORE_EXPORT GlobalScopeCreationParams final {
// Shared and service worker scripts have no ResourceTiming entry.
KURL dedicated_worker_script_initiator_url;
@@ -193,10 +193,10 @@ index d5a652b33a00868054695da48cbeb0cca057faa1..d971a3437d35cc9cf45c3b5eb8f3646e
const net::StorageAccessApiStatus parent_storage_access_api_status;
diff --git a/third_party/blink/renderer/core/workers/worker_global_scope.cc b/third_party/blink/renderer/core/workers/worker_global_scope.cc
index 32c00e338a044b52af9b851025f6a97934233bca..05db920886c35b6d7f49996542f86994991f31ae 100644
index a70870c22a963f86609261e72e397890c7c2d1f6..f3609df000fe54b400472586e37f7e58cd54456a 100644
--- a/third_party/blink/renderer/core/workers/worker_global_scope.cc
+++ b/third_party/blink/renderer/core/workers/worker_global_scope.cc
@@ -937,6 +937,9 @@ WorkerGlobalScope::WorkerGlobalScope(
@@ -943,6 +943,9 @@ WorkerGlobalScope::WorkerGlobalScope(
std::move(creation_params->top_level_frame_security_origin)) {
// Workers should always maintain the default world of an isolate.
CHECK(creation_params->is_default_world_of_isolate);
@@ -207,7 +207,7 @@ index 32c00e338a044b52af9b851025f6a97934233bca..05db920886c35b6d7f49996542f86994
TRACE_EVENT_BEGIN(
"blink.worker", "WorkerGlobalScope setup",
diff --git a/third_party/blink/renderer/core/workers/worker_global_scope.h b/third_party/blink/renderer/core/workers/worker_global_scope.h
index c46068b29b4e12ed3fd0be9ccfe828d10754da56..b572e2c20ef64ff0bd7e9f86cf470796cfcfd163 100644
index b7f3b19f12dc32908c04779e8645c6c4bd01acf6..ab04da0f4d22542f137c93f458c393f6edb4cae7 100644
--- a/third_party/blink/renderer/core/workers/worker_global_scope.h
+++ b/third_party/blink/renderer/core/workers/worker_global_scope.h
@@ -32,6 +32,7 @@
@@ -218,7 +218,7 @@ index c46068b29b4e12ed3fd0be9ccfe828d10754da56..b572e2c20ef64ff0bd7e9f86cf470796
#include "services/network/public/mojom/fetch_api.mojom-blink-forward.h"
#include "third_party/blink/public/common/permissions_policy/document_policy.h"
#include "third_party/blink/public/common/tokens/tokens.h"
@@ -296,6 +297,12 @@ class CORE_EXPORT WorkerGlobalScope
@@ -295,6 +296,12 @@ class CORE_EXPORT WorkerGlobalScope
return top_level_frame_security_origin_.get();
}
@@ -231,7 +231,7 @@ index c46068b29b4e12ed3fd0be9ccfe828d10754da56..b572e2c20ef64ff0bd7e9f86cf470796
protected:
WorkerGlobalScope(std::unique_ptr<GlobalScopeCreationParams>,
WorkerThread*,
@@ -438,6 +445,9 @@ class CORE_EXPORT WorkerGlobalScope
@@ -441,6 +448,9 @@ class CORE_EXPORT WorkerGlobalScope
const ukm::SourceId ukm_source_id_;
@@ -242,10 +242,10 @@ index c46068b29b4e12ed3fd0be9ccfe828d10754da56..b572e2c20ef64ff0bd7e9f86cf470796
// DevTools agents being configured while waiting for debugger) till the main
// script has completed loading. This is so that VT does not run while script
diff --git a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc
index e85f9c75e8ed6961ef75c1899e93ce12a9af3521..58e22915217f05c88e9f671f6092eeb2b1d7c4d0 100644
index 630b499aec0699ee4566298db8292ba7d83d19d3..6038911ac770cfd57594bb567bf2ba1e4041924e 100644
--- a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc
+++ b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc
@@ -253,6 +253,9 @@ void WebEmbeddedWorkerImpl::StartWorkerThread(
@@ -250,6 +250,9 @@ void WebEmbeddedWorkerImpl::StartWorkerThread(
/*origin_to_use=*/nullptr, std::move(coep_reporting_observer),
std::move(dip_reporting_observer));
@@ -238,10 +238,10 @@ index 67d5ff67d74c107a867b39b306c6528425b87e05..5fd12a25c9e319e8e675955926271c9d
diff --git a/components/viz/service/display_embedder/software_output_device_proxy.cc b/components/viz/service/display_embedder/software_output_device_proxy.cc
new file mode 100644
index 0000000000000000000000000000000000000000..c5f45c564f015d209aee39b4b8f0fd95ce187907
index 0000000000000000000000000000000000000000..b0f8d47d9ba077030ab336990c5eefc808747ded
--- /dev/null
+++ b/components/viz/service/display_embedder/software_output_device_proxy.cc
@@ -0,0 +1,162 @@
@@ -0,0 +1,160 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
@@ -265,8 +265,6 @@ index 0000000000000000000000000000000000000000..c5f45c564f015d209aee39b4b8f0fd95
+#include "skia/ext/skia_utils_win.h"
+#include "ui/gfx/win/gdi_util.h"
+#include "ui/gfx/win/hwnd_util.h"
+#else
+#include "mojo/public/cpp/base/shared_memory_utils.h"
+#endif
+
+namespace viz {
@@ -61,10 +61,10 @@ index 0ae84efaeaf664857afa280ababf28f271291b48..d0957ced725eac4795a1948a5f0820f8
return false;
}
diff --git a/services/network/public/cpp/url_request_mojom_traits.h b/services/network/public/cpp/url_request_mojom_traits.h
index 2c6b978631affb4ced4189af52001f84346b2d4b..66c9cfa97030123eafcb6287ed66fdeef8d58de5 100644
index 03653541a9216c493b7374d830b78f4e91cbcf49..76b2afad8537b5f21145e06350067eadf895701f 100644
--- a/services/network/public/cpp/url_request_mojom_traits.h
+++ b/services/network/public/cpp/url_request_mojom_traits.h
@@ -108,6 +108,10 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE)
@@ -107,6 +107,10 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE)
const network::ResourceRequest::TrustedParams& trusted_params) {
return trusted_params.include_request_cookies_with_response;
}
@@ -90,7 +90,7 @@ index 54a18f27c5409bd5893e2dda988581519cb8ca86..5b462dca6277dd542d56344e45d9e417
// when it receives the AcceptCHFrame.
EnabledClientHints? enabled_client_hints;
diff --git a/services/network/public/mojom/url_response_head.mojom b/services/network/public/mojom/url_response_head.mojom
index 37d07231f3bded16db0ba23448e9e8325a0708a9..9fdfe8ccfec7e497c44a0c7d40fafa66ef41b5d9 100644
index 2551c74d161edc11e3d4e95c858c144a063ae80a..a3d1eb8d487a207a5a9c8cdc01ae01dd0073e485 100644
--- a/services/network/public/mojom/url_response_head.mojom
+++ b/services/network/public/mojom/url_response_head.mojom
@@ -16,6 +16,7 @@ import "services/network/public/mojom/fetch_api.mojom";
@@ -101,7 +101,7 @@ index 37d07231f3bded16db0ba23448e9e8325a0708a9..9fdfe8ccfec7e497c44a0c7d40fafa66
import "services/network/public/mojom/ip_endpoint.mojom";
import "services/network/public/mojom/load_timing_info.mojom";
import "services/network/public/mojom/load_timing_internal_info.mojom";
@@ -62,6 +63,9 @@ struct URLResponseHead {
@@ -61,6 +62,9 @@ struct URLResponseHead {
// The response headers or NULL if the URL type does not support headers.
HttpResponseHeaders? headers;
@@ -112,10 +112,10 @@ index 37d07231f3bded16db0ba23448e9e8325a0708a9..9fdfe8ccfec7e497c44a0c7d40fafa66
string mime_type;
diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc
index 77842b54b76464e7d51fa2e1611ee4188866aeec..17c7cab592e651c365e8b6b36bd1ebaf742f974a 100644
index 898faffbb8de83dab0de68ca05002040d46bac2b..8671c41c1d6e1816b939544bf99131d0f2a75227 100644
--- a/services/network/url_loader.cc
+++ b/services/network/url_loader.cc
@@ -372,6 +372,9 @@ URLLoader::URLLoader(
@@ -373,6 +373,9 @@ URLLoader::URLLoader(
mojo::SimpleWatcher::ArmingPolicy::MANUAL,
TaskRunner(request.priority)),
per_factory_orb_state_(context.GetMutableOrbState()),
@@ -125,7 +125,7 @@ index 77842b54b76464e7d51fa2e1611ee4188866aeec..17c7cab592e651c365e8b6b36bd1ebaf
devtools_request_id_(request.devtools_request_id),
options_(PopulateOptions(options,
factory_params_->is_orb_enabled,
@@ -571,7 +574,7 @@ void URLLoader::SetUpUrlRequestCallbacks(
@@ -572,7 +575,7 @@ void URLLoader::SetUpUrlRequestCallbacks(
&URLLoader::IsSharedDictionaryReadAllowed, base::Unretained(this)));
}
@@ -134,7 +134,7 @@ index 77842b54b76464e7d51fa2e1611ee4188866aeec..17c7cab592e651c365e8b6b36bd1ebaf
url_request_->SetResponseHeadersCallback(base::BindRepeating(
&URLLoader::SetRawResponseHeaders, base::Unretained(this)));
}
@@ -1172,6 +1175,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) {
@@ -1185,6 +1188,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) {
}
response_ = BuildResponseHead();
@@ -34,7 +34,7 @@ index 867fc205aaa787cb05c56f8c1fa6d63e2b2ed92f..97567b79069538e23115fc274c10b8a4
}
diff --git a/content/browser/permissions/permission_controller_impl.cc b/content/browser/permissions/permission_controller_impl.cc
index 96d653a82111de11be05205117436d8b260d0af1..47e723a87b62df4aac21ebbaa5974994ed0c6b5d 100644
index 19c07477b186ddebb8c3439bb628f410e0c29199..c623c4451b36738ab91ac42f54c17c91376708bf 100644
--- a/content/browser/permissions/permission_controller_impl.cc
+++ b/content/browser/permissions/permission_controller_impl.cc
@@ -100,7 +100,8 @@ PermissionToSchedulingFeature(PermissionType permission_name) {
@@ -14,7 +14,7 @@ This new method properly shuts down the existing context and creates a
fresh one, allowing Electron session.setCodeCachePath() to work correctly.
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
index 6b665c4f6193237792a304c9ff317cdfd28b8033..da7c0ff1e863e92efb9183a2a6dab24374043431 100644
index 7b69ec7f354934ff19e7b95d3ea46b7111935e7b..8e1c495781696340ad9721422b3f133cdf413b35 100644
--- a/content/browser/storage_partition_impl.cc
+++ b/content/browser/storage_partition_impl.cc
@@ -1885,6 +1885,22 @@ StoragePartitionImpl::GetGeneratedCodeCacheContext() {
@@ -94,7 +94,7 @@ index a41254c1f31654c1326b4bf1f29237bdf44bbe5a..8ca5673a225b69b5630383ed9673653b
StateRestorationData? state_restoration_data;
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 4507428d53ff8290d9a46db7f3066c3495e2fd48..b25ce04c9af04950d827941a57769a242e81d5ce 100644
index ad6a2ca5960749d2b1a45f39f4ab419370dde406..2c850a6c5d01936052f2eb41f814a25ea109055e 100644
--- a/ui/views/cocoa/native_widget_mac_ns_window_host.h
+++ b/ui/views/cocoa/native_widget_mac_ns_window_host.h
@@ -579,6 +579,7 @@ class VIEWS_EXPORT NativeWidgetMacNSWindowHost
@@ -8,7 +8,7 @@ Check for broken links by confirming the file exists before setting its utime.
This patch should be upstreamed & removed.
diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py
index 07e38ef838a0a97d91c49db63a82cb8dd1a124e5..3688df7093f812f8b93e05a1844d05f5e557efdd 100755
index 200845370e77178aa53b4176a0ea37d322d29881..0a9a72faa21f253399a0ec17a61565bc372667a8 100755
--- a/tools/clang/scripts/update.py
+++ b/tools/clang/scripts/update.py
@@ -217,10 +217,9 @@ def DownloadAndUnpack(url, output_dir, path_prefixes=None, is_known_zip=False):
@@ -101,10 +101,10 @@ index b5464975a3c365a29e342b0dd57a8a73a311924a..72ebd275330e61a8abebfe6d2c06f425
// universal access privilege.
WeakMember<WindowAgent> universal_access_agent_;
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc
index f6c4e4cfe08502d4d2a3d4d77d0ea946c5494b56..ed034ab5b57aa0f91123863280f71738a36f8b00 100644
index 71fa6521f2842fb338bd03c8dafa2a692ca56bbe..8e3eaf7379f4b4d44f023b9f47bb191d23e88661 100644
--- a/third_party/blink/renderer/core/loader/document_loader.cc
+++ b/third_party/blink/renderer/core/loader/document_loader.cc
@@ -2706,22 +2706,16 @@ bool ShouldReuseDOMWindow(LocalDOMWindow* window,
@@ -2708,22 +2708,16 @@ bool ShouldReuseDOMWindow(LocalDOMWindow* window,
return *window_coi_key == *navigation_coi_key;
}
@@ -131,7 +131,7 @@ index f6c4e4cfe08502d4d2a3d4d77d0ea946c5494b56..ed034ab5b57aa0f91123863280f71738
}
// Inheriting cases use their agent's AgentClusterKey value, which is set
@@ -2822,7 +2816,7 @@ void DocumentLoader::InitializeWindow(Document* owner_document) {
@@ -2824,7 +2818,7 @@ void DocumentLoader::InitializeWindow(Document* owner_document) {
// WindowAgentFactory::GetAgentForOrigin(), as the two conditions below hand
// out universal WindowAgent objects, and thus override the AgentClusterKey
// provided by the browser process.
@@ -30,10 +30,10 @@ The patch should be removed in favor of either:
Upstream bug https://bugs.chromium.org/p/chromium/issues/detail?id=1081397.
diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc
index c7f353ae2f75788b027d6d4326429ffe75ef690b..4cb6667c336ca75c6c093f65714c9df0f0456721 100644
index b71678c8c556d2151e6056f3b94645e1ae1d3f85..173e5a4d002c2f9085abce05057bfc8c82aa4c6e 100644
--- a/content/browser/renderer_host/navigation_request.cc
+++ b/content/browser/renderer_host/navigation_request.cc
@@ -12822,6 +12822,12 @@ url::Origin NavigationRequest::GetOriginForURLLoaderFactoryUnchecked() {
@@ -12912,6 +12912,12 @@ url::Origin NavigationRequest::GetOriginForURLLoaderFactoryUnchecked() {
target_rph_id);
}
@@ -47,10 +47,10 @@ index c7f353ae2f75788b027d6d4326429ffe75ef690b..4cb6667c336ca75c6c093f65714c9df0
// origin of |common_params.url| and/or |common_params.initiator_origin|.
url::Origin resolved_origin = url::Origin::Resolve(
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc
index 60cbdb2246fa60257e7cc84bdbde083f258742e5..f6c4e4cfe08502d4d2a3d4d77d0ea946c5494b56 100644
index feb3a3d9ab15661cf160eb02af6699645942fcd0..71fa6521f2842fb338bd03c8dafa2a692ca56bbe 100644
--- a/third_party/blink/renderer/core/loader/document_loader.cc
+++ b/third_party/blink/renderer/core/loader/document_loader.cc
@@ -2460,6 +2460,7 @@ Frame* DocumentLoader::CalculateOwnerFrame() {
@@ -2462,6 +2462,7 @@ Frame* DocumentLoader::CalculateOwnerFrame() {
scoped_refptr<SecurityOrigin> DocumentLoader::CalculateOrigin(
Document* owner_document) {
scoped_refptr<SecurityOrigin> origin;
@@ -58,7 +58,7 @@ index 60cbdb2246fa60257e7cc84bdbde083f258742e5..f6c4e4cfe08502d4d2a3d4d77d0ea946
// Whether the origin is newly created within this call, instead of copied
// from an existing document's origin or from `origin_to_commit_`. If this is
// true, we won't try to compare the nonce of this origin (if it's opaque) to
@@ -2496,6 +2497,9 @@ scoped_refptr<SecurityOrigin> DocumentLoader::CalculateOrigin(
@@ -2498,6 +2499,9 @@ scoped_refptr<SecurityOrigin> DocumentLoader::CalculateOrigin(
// non-renderer only origin bits will be the same, which will be asserted at
// the end of this function.
origin = origin_to_commit_;
@@ -12,10 +12,10 @@ invisible state of the `viz::DisplayScheduler` owned
by the `ui::Compositor`.
diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc
index 15ca298d14e55f961267ed95b154edceaf23962c..fff8cd62b8f96c45bdacee06ff3a5ae8d4033064 100644
index 9849318dc25d1677d85b6a0c50e26d12707a313c..3143640cdb21ef2b2d2d2f6d5b49348f3904bf1c 100644
--- a/ui/compositor/compositor.cc
+++ b/ui/compositor/compositor.cc
@@ -367,9 +367,11 @@ void Compositor::SetLayerTreeFrameSink(
@@ -359,9 +359,11 @@ void Compositor::SetLayerTreeFrameSink(
// to match the Compositor's.
if (display_private_) {
display_private_->Resize(size());
@@ -29,7 +29,7 @@ index 15ca298d14e55f961267ed95b154edceaf23962c..fff8cd62b8f96c45bdacee06ff3a5ae8
display_private_->SetDisplayColorSpaces(display_color_spaces_);
display_private_->SetDisplayColorMatrix(
gfx::SkM44ToTransform(display_color_matrix_));
@@ -609,9 +611,11 @@ void Compositor::SetVisible(bool visible) {
@@ -601,9 +603,11 @@ void Compositor::SetVisible(bool visible) {
// updated then. We need to call this even if the visibility hasn't changed,
// for the same reason.
if (display_private_) {
@@ -43,7 +43,7 @@ index 15ca298d14e55f961267ed95b154edceaf23962c..fff8cd62b8f96c45bdacee06ff3a5ae8
}
if (changed) {
@@ -1080,6 +1084,17 @@ void Compositor::MaybeUpdateObserveBeginFrame() {
@@ -1072,6 +1076,17 @@ void Compositor::MaybeUpdateObserveBeginFrame() {
host_begin_frame_observer_->GetBoundRemote());
}
@@ -29,7 +29,7 @@ before first show.
This patch can be removed if the changes are upstreamed to Chromium.
diff --git a/content/app_shim_remote_cocoa/web_contents_view_cocoa.mm b/content/app_shim_remote_cocoa/web_contents_view_cocoa.mm
index 60bb2a260cc1ee152d880b8975d3c49de8d8b076..1e03606a23ef78bfb5557ad74acf9a6d419130ba 100644
index d58fc9c26fc11de46d7fa909389af8eadec532fc..3a9430756b3d8f57fcfa747e922184fdda438655 100644
--- a/content/app_shim_remote_cocoa/web_contents_view_cocoa.mm
+++ b/content/app_shim_remote_cocoa/web_contents_view_cocoa.mm
@@ -532,7 +532,8 @@ - (void)updateWebContentsVisibility {
@@ -11,10 +11,10 @@ is currently bugged on these elements. This patch fixes that.
2. Space now adds a space after accepting the replacement.
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 5290c0be45600e34d6f5fe32c60cd52019596029..b7a4b146d8650f8597ec6a1314add013eaf293fb 100644
index 92eaacfb3256ded77bd119e6ca30640472621f79..fbc27e7840584819cdff34565338f797048ab84a 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
@@ -565,6 +565,13 @@ - (void)didAcceptReplacementString:(NSString*)acceptedString
@@ -566,6 +566,13 @@ - (void)didAcceptReplacementString:(NSString*)acceptedString
if (acceptedString == nil)
return;
@@ -39,7 +39,7 @@ index 0f0580728cac1204749fb084cd4ed987f2cb9d35..e1d627fea429e40fb7f40266b87f514b
// Detaches |this| from the input method object.
// is_removed flag is true if this is called while the window is
diff --git a/content/browser/renderer_host/text_input_manager.cc b/content/browser/renderer_host/text_input_manager.cc
index 7dfe73ff635fda0a139c8507a9c9abd3946d9afa..05f19898d9ca600ba30ab4a739a24962c118c1eb 100644
index 449766f7add9c53a4043398b682fbc2d7c00b4ba..5fcddedb3c9bc3fc6fda0443774402ab48777da9 100644
--- a/content/browser/renderer_host/text_input_manager.cc
+++ b/content/browser/renderer_host/text_input_manager.cc
@@ -247,6 +247,7 @@ void TextInputManager::UpdateTextInputState(
@@ -50,7 +50,7 @@ index 7dfe73ff635fda0a139c8507a9c9abd3946d9afa..05f19898d9ca600ba30ab4a739a24962
// We reached here because an IPC is received to reset the TextInputState
// for |view|. But |view| != |active_view_|, which suggests that at least
// one other view has become active and we have received the corresponding
@@ -613,6 +614,12 @@ void TextInputManager::NotifyObserversAboutInputStateUpdate(
@@ -627,6 +628,12 @@ void TextInputManager::NotifyObserversAboutInputStateUpdate(
observer.OnUpdateTextInputStateCalled(this, updated_view, did_update_state);
}
@@ -64,10 +64,10 @@ index 7dfe73ff635fda0a139c8507a9c9abd3946d9afa..05f19898d9ca600ba30ab4a739a24962
TextInputManager::ViewState::~ViewState() = default;
diff --git a/content/browser/renderer_host/text_input_manager.h b/content/browser/renderer_host/text_input_manager.h
index b7d56b17cb00c568fd2ede65d80d20472d69f02a..163d31f860de241e93f03d09e7715c2e65cfae8c 100644
index 352238bd76548b0fa808e3e1aa8806fa08bef1e9..6b9c2ee8d4717ebc6791331cd76edea29dd3f3e6 100644
--- a/content/browser/renderer_host/text_input_manager.h
+++ b/content/browser/renderer_host/text_input_manager.h
@@ -69,6 +69,10 @@ class CONTENT_EXPORT TextInputManager {
@@ -70,6 +70,10 @@ class CONTENT_EXPORT TextInputManager {
virtual void OnTextSelectionChanged(
TextInputManager* text_input_manager,
RenderWidgetHostViewBase* updated_view) {}
@@ -78,7 +78,7 @@ index b7d56b17cb00c568fd2ede65d80d20472d69f02a..163d31f860de241e93f03d09e7715c2e
};
// Text selection bounds.
@@ -334,6 +338,7 @@ class CONTENT_EXPORT TextInputManager {
@@ -335,6 +339,7 @@ class CONTENT_EXPORT TextInputManager {
void NotifyObserversAboutInputStateUpdate(RenderWidgetHostViewBase* view,
bool did_update_state);
@@ -87,10 +87,10 @@ index b7d56b17cb00c568fd2ede65d80d20472d69f02a..163d31f860de241e93f03d09e7715c2e
// The view with active text input state, i.e., a focused <input> element.
// It will be nullptr if no such view exists. Note that the active view
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index f6bb49b968c872b325d1bed8f0f1e97ba6373e8a..32d39f8efaae61e6feedffb5a65ca57bec9c7402 100644
index 93d7638d9e5e4f0d3deec048116b4a14c14fa6d8..2b0686787a2845c6a30d382de704d97121910cc0 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -11299,7 +11299,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame(
@@ -11302,7 +11302,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame(
return;
}
RenderWidgetHostViewBase* root_view =
@@ -185,10 +185,10 @@ index f3c132412ca87c3abda84cf91434a9f7d874cb35..c615390ea3d0bc57b39af463ead589a3
bool unadjusted_movement,
input::InputRouterImpl::RequestMouseLockCallback response) override;
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index f32df8715b2b0bd0cce7635fd1138ace9bcbb42b..b1444b41e7e07f5ae9ea23dbefd27c3e54fb2764 100644
index 2cdf827b5e490c748d3534bd65f726444d77f44d..eca25b8e5266e8ebdc25522672fe452d1e24ef66 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -5522,6 +5522,7 @@ blink::mojom::ApplicationContext WebContentsImpl::GetApplicationContext()
@@ -5525,6 +5525,7 @@ blink::mojom::ApplicationContext WebContentsImpl::GetApplicationContext()
void WebContentsImpl::RequestToLockPointer(
RenderWidgetHostImpl* render_widget_host,
@@ -196,7 +196,7 @@ index f32df8715b2b0bd0cce7635fd1138ace9bcbb42b..b1444b41e7e07f5ae9ea23dbefd27c3e
bool user_gesture,
bool last_unlocked_by_target) {
OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::RequestPointerLock",
@@ -5549,9 +5550,19 @@ void WebContentsImpl::RequestToLockPointer(
@@ -5552,9 +5553,19 @@ void WebContentsImpl::RequestToLockPointer(
}
}
@@ -216,7 +216,7 @@ index f32df8715b2b0bd0cce7635fd1138ace9bcbb42b..b1444b41e7e07f5ae9ea23dbefd27c3e
observers_.NotifyObservers(&WebContentsObserver::PointerLockRequested);
delegate->RequestPointerLock(this, user_gesture, last_unlocked_by_target);
} else {
@@ -10188,9 +10199,22 @@ bool WebContentsImpl::HasPointerLockWidgetInParentChain() {
@@ -10191,9 +10202,22 @@ bool WebContentsImpl::HasPointerLockWidgetInParentChain() {
return false;
}
@@ -8,10 +8,10 @@ such as the background turning black when maximizing the window and
dynamic background material settings not taking effect.
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
index 76930906d8ee488228b0572d335b96238369675b..2ef74fbfe2e0f21cc29608ddc23100c3134126de 100644
index 019956c806c8744c801ede6000b9d7b69043cd07..98756840cc2ad0ef4758c0e19c1591d5306ae3a9 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
@@ -245,6 +245,10 @@ bool DesktopWindowTreeHostWin::IsInNativeMoveResizeLoop() const {
@@ -246,6 +246,10 @@ bool DesktopWindowTreeHostWin::IsInNativeMoveResizeLoop() const {
message_handler_->IsInNativeMenuLoop());
}
@@ -23,7 +23,7 @@ index 76930906d8ee488228b0572d335b96238369675b..2ef74fbfe2e0f21cc29608ddc23100c3
void DesktopWindowTreeHostWin::Init(const Widget::InitParams& params) {
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
index 03e1bbb251f6464c5d4ee85b205b5ab99e695334..d42f44a9e734265015cb8fde5d0250955b40fc24 100644
index f9c940c60010645ee0e1d0838efe395defea53bb..bc8fb2a51498a4853f9234214bb4ac2ae6407fd4 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
@@ -96,6 +96,8 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin
@@ -319,7 +319,7 @@ index 4ed8807eadcbdef7c77cb06fa072f90e216b9d2d..d12223bb29774d75e78380887299e831
const mojom::blink::UserActivationOption user_activation_option_;
const mojom::blink::LoadEventBlockingOption blocking_option_;
diff --git a/third_party/blink/renderer/core/frame/web_frame_test.cc b/third_party/blink/renderer/core/frame/web_frame_test.cc
index 81858f85d42f8cbf6d9819b29c0986e32ddb7efa..61aee74888ca20b74dab708b2babfcc804949f51 100644
index 10662572fd39a4c82b1d50ef7917ea056085da57..10c838bce753dc471f38262526a2c00a2510ef97 100644
--- a/third_party/blink/renderer/core/frame/web_frame_test.cc
+++ b/third_party/blink/renderer/core/frame/web_frame_test.cc
@@ -308,6 +308,7 @@ void ExecuteScriptsInMainWorld(
@@ -11,7 +11,7 @@ PlatformStyle::kAutoSelectFirstMenuItemFromKeyboard
covers the other views platforms.
diff --git a/ui/views/controls/menu/menu_controller.cc b/ui/views/controls/menu/menu_controller.cc
index edbc8f5f5f6bba3531f28909f02cfc57d5b7d4d4..4e39581e58b5eadb0ed710436e1f33576a0a1ef8 100644
index 217fb8b351545a1d6f9ccf402970c4dd05edd789..6579b3991729f925d03b046a8a4926c70553cf91 100644
--- a/ui/views/controls/menu/menu_controller.cc
+++ b/ui/views/controls/menu/menu_controller.cc
@@ -814,6 +814,22 @@ void MenuController::Run(Widget* parent,
+1 -1
View File
@@ -20,7 +20,7 @@ index 8e4d3b52676ce9f4ce319af69530232df4fdc380..f591a95e1b4ae2fe9daf0be269d80591
}
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
index 3f7dc59112e0f86bd422053f60c2ad5a6a70a0ac..123ad05c62e0fde8e06327f399d36ef2e0273e22 100644
index b03790aca7fa675c6e33e49f36ee30832b49ef8b..0e05ccf908df7b69ca194338e95ff06b1fec9922 100644
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -354,6 +354,11 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -6,7 +6,7 @@ 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 c21e1893e678918f78a9e00af07d635e7aaaccc1..a6cca3a14a01a8a915a3807f995db2e01c8c5c00 100644
index 9aa5e5af48821b9fce8674bf94f55f6f1d528f87..94042474094da4f833af6598d49d898c8c24da11 100644
--- a/tools/gritsettings/resource_ids.spec
+++ b/tools/gritsettings/resource_ids.spec
@@ -1796,6 +1796,11 @@
@@ -1,52 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Shelley Vohr <shelley.vohr@gmail.com>
Date: Mon, 5 Oct 2026 09:32:09 +0000
Subject: [Linux] Don't abort when the NetworkMonitor portal's bus is lost
Since https://crrev.com/c/8261571, losing a D-Bus connection is fatal
only for a dbus::Bus without Options::disconnected_callback.
https://crrev.com/c/8448270 landed just before it and creates a private
session bus in PortalMonitorImpl without that option, which did not
exist yet. So when the session bus goes away, that bus's thread still
hits LOG(FATAL), racing the session end that the shared bus's callback
starts.
Set the callback. Without a bus there is no portal, so report that the
way OnNameOwnerChanged() does when the portal goes away.
Also update a comment that names a function 8261571 renamed.
Tested by killing a private dbus-daemon under content_shell: it aborted
in Bus::OnConnectionDisconnected() on the portal bus's thread 5 of 5
times before, and never after.
Bug: 537480522
Upstreamed at https://chromium-review.googlesource.com/c/chromium/src/+/8512441;
remove this patch when it rolls in.
diff --git a/net/base/network_change_notifier_linux_portal.cc b/net/base/network_change_notifier_linux_portal.cc
index 4c7f4f8fd9f767140b1c4ba3e35a65218d8de0eb..20ea9c44d838a395233e384a180b6e9f904e8e55 100644
--- a/net/base/network_change_notifier_linux_portal.cc
+++ b/net/base/network_change_notifier_linux_portal.cc
@@ -55,7 +55,7 @@ class PortalMonitorImpl : public NetworkChangeNotifierLinux::PortalMonitor {
// 2. In unit test suites (e.g. `net_unittests`), cross-platform tests
// call `NetworkChangeNotifier::CreateIfNeeded()` across sequential
// `TaskEnvironment`s without calling
- // `dbus_thread_linux::ShutdownOnDBusThreadAndBlock()`. Using
+ // `dbus_thread_linux::Shutdown()`. Using
// process-global D-Bus singletons retains a stale origin `TaskRunner`
// from the first test's destroyed `TaskEnvironment`. Owning a private
// bus here and shutting it down in `~PortalMonitorImpl()` ties the
@@ -70,6 +70,11 @@ class PortalMonitorImpl : public NetworkChangeNotifierLinux::PortalMonitor {
options.dbus_task_runner = base::ThreadPool::CreateSingleThreadTaskRunner(
{base::MayBlock(), base::TaskPriority::USER_VISIBLE},
base::SingleThreadTaskRunnerThreadMode::DEDICATED);
+ // `dbus::Bus` aborts the process without this. Losing the bus means
+ // losing the portal, so handle it like the portal going away.
+ options.disconnected_callback = base::BindOnce(
+ &PortalMonitorImpl::OnNameOwnerChanged,
+ weak_ptr_factory_.GetWeakPtr(), std::string(), std::string());
bus_ = base::MakeRefCounted<dbus::Bus>(std::move(options));
} else {
bus_->AssertOnOriginThread();
@@ -50,7 +50,7 @@ system font by checking if it's kCTFontPriorityAttribute is set to
system priority.
diff --git a/base/BUILD.gn b/base/BUILD.gn
index 9ab3d0abf667e8094bcdc18dab7879d1ddb96a5a..4f45a17ed648bc7391b78cb28c7fe432b951fda2 100644
index 2587bd828b83beac1ea36b119b3674c1b5d6b4c2..8e7174ba2fe424ac4440fa81c97e976ccf71edf1 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -1154,6 +1154,7 @@ component("base") {
@@ -129,10 +129,10 @@ index 416e541436d201aabca26cdbf7e8477103bd014c..8c5f92b03d67e5f0587b0e9420969061
}
diff --git a/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn b/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn
index 93470014129c5b20fa076c0200f2661c7a1df7dd..62236733e5ec7e3b8ffa98c3e0e244c8de9ab333 100644
index a93b1d54a43b2cdee79bb1ff64d14e70c30a8160..5df1705ad1d2827f51fc32c61bae19e56ce7cfd1 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn
+++ b/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn
@@ -1049,6 +1049,7 @@ if (is_clang_or_gcc) {
@@ -1051,6 +1051,7 @@ if (is_clang_or_gcc) {
":allocator_base",
":allocator_core",
":buildflags",
@@ -971,10 +971,10 @@ index 010c713090e5038dc90db131c8f621422d30c03b..20c35e887a0496ee609c077e3b0494bd
void ForwardKeyboardEvent(const input::NativeWebKeyboardEvent& key_event,
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 da8d56053e6583457a6fde9aa8bd42f5825c86ef..5290c0be45600e34d6f5fe32c60cd52019596029 100644
index c74a6130862162d4fdb07cf3d4a60604d0ae0482..92eaacfb3256ded77bd119e6ca30640472621f79 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
@@ -34,6 +34,7 @@
@@ -35,6 +35,7 @@
#import "content/public/browser/render_widget_host_view_mac_delegate.h"
#include "content/public/browser/scoped_accessibility_mode.h"
#include "content/public/common/content_features.h"
@@ -982,7 +982,7 @@ index da8d56053e6583457a6fde9aa8bd42f5825c86ef..5290c0be45600e34d6f5fe32c60cd520
#include "skia/ext/skia_utils_mac.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/mojom/input/input_handler.mojom.h"
@@ -2486,15 +2487,21 @@ - (NSAccessibilityRole)accessibilityRole {
@@ -2499,15 +2500,21 @@ - (NSAccessibilityRole)accessibilityRole {
// Since this implementation doesn't have to wait any IPC calls, this doesn't
// make any key-typing jank. --hbono 7/23/09
//
@@ -1005,10 +1005,10 @@ index da8d56053e6583457a6fde9aa8bd42f5825c86ef..5290c0be45600e34d6f5fe32c60cd520
return kAttributes;
}
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index 80301d40f0402c41d233a0c7aa494755743a01fa..ce2d955d5ef046b8400662b00a148547f4e4ebc2 100644
index bee9872ba3e310dcc1d57fc399d44926c178b884..3de9bb066f0a204695b402528975703bf6d52e13 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -384,6 +384,7 @@ source_set("browser") {
@@ -385,6 +385,7 @@ source_set("browser") {
"//ui/webui/resources",
"//v8",
"//v8:v8_version",
@@ -1220,10 +1220,10 @@ index a1068589ad844518038ee7bc15a3de9bc5cba525..1ff781c49f086ec8015c7d3c44567dbe
} // namespace content
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index b688001a9e3f4ac1c6ebea2717c4cb430e4c6e8c..4c03e45e8b1c688927def87205e7bbddd257dc36 100644
index 02f6f34876629b41109eb5265bb8a6b13f6ead3f..90ff2ee690a3387e9d981ad69e74e4c5de22f382 100644
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -652,6 +652,7 @@ static_library("test_support") {
@@ -653,6 +653,7 @@ static_library("test_support") {
"//url",
"//url/mojom:url_mojom_gurl",
"//v8",
@@ -1231,7 +1231,7 @@ index b688001a9e3f4ac1c6ebea2717c4cb430e4c6e8c..4c03e45e8b1c688927def87205e7bbdd
]
data_deps = [
@@ -1140,6 +1141,8 @@ static_library("browsertest_support") {
@@ -1141,6 +1142,8 @@ static_library("browsertest_support") {
# TODO(crbug.com/40031409): Fix code that adds exit-time destructors and
# enable the diagnostic by removing this line.
configs += [ "//build/config/compiler:no_exit_time_destructors" ]
@@ -1240,7 +1240,7 @@ index b688001a9e3f4ac1c6ebea2717c4cb430e4c6e8c..4c03e45e8b1c688927def87205e7bbdd
}
mojom("content_test_mojo_bindings") {
@@ -2045,6 +2048,7 @@ test("content_browsertests") {
@@ -2067,6 +2070,7 @@ test("content_browsertests") {
"//ui/shell_dialogs",
"//ui/snapshot",
"//ui/webui:test_support",
@@ -1248,7 +1248,7 @@ index b688001a9e3f4ac1c6ebea2717c4cb430e4c6e8c..4c03e45e8b1c688927def87205e7bbdd
]
if (!(is_chromeos && target_cpu == "arm64" && current_cpu == "arm")) {
@@ -3425,6 +3429,7 @@ test("content_unittests") {
@@ -3455,6 +3459,7 @@ test("content_unittests") {
"//ui/shell_dialogs",
"//ui/webui:test_support",
"//url",
@@ -1327,10 +1327,10 @@ index 8940cda1ea6211df84da098078a1f90c66666013..335e42c54e5d6a9f591065519443e99c
base::WeakPtr<BluetoothLowEnergyAdapterApple>
diff --git a/gpu/ipc/service/BUILD.gn b/gpu/ipc/service/BUILD.gn
index bf72ef96a2789b2a125b22ad51b3fe27a0c61e4a..047352e2bec30754f66e223c210075d905ab25d7 100644
index 86a6d2345caae8300b7494bc02e226d4bd6dbd0b..661c23091fb8e7cc554072f80d4815e9628ac1e7 100644
--- a/gpu/ipc/service/BUILD.gn
+++ b/gpu/ipc/service/BUILD.gn
@@ -134,6 +134,7 @@ component("service") {
@@ -136,6 +136,7 @@ component("service") {
"QuartzCore.framework",
]
defines += [ "GL_SILENCE_DEPRECATION" ]
@@ -1373,7 +1373,7 @@ index 8667a1ba4f71a57f61915bb2588a338e5960a952..099a65446d90b10b021ac47d1c4e26b1
if (is_ios) {
diff --git a/media/audio/apple/audio_low_latency_input.cc b/media/audio/apple/audio_low_latency_input.cc
index c09d7c056a8b16bd31b4f8c428d42e2c423efd18..0e2d08cd7f94b50e116085a7fcfd99087b0076ce 100644
index d9014423b00c31677765e5eede59b79576451fdc..239fbc68ac6ada16dce7c7b1bac74df40f3a15e9 100644
--- a/media/audio/apple/audio_low_latency_input.cc
+++ b/media/audio/apple/audio_low_latency_input.cc
@@ -28,6 +28,7 @@
@@ -1817,7 +1817,7 @@ index eb81a70e4d5d5cd3e6ae9b45f8cd1c795ea76c51..9921ccb10d3455600eddd85f77f10228
} // namespace sandbox
diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn
index 0da517e172ba0ffffb551173748312c35582b084..f817df64c14c638900b15a7ab699d0215ffc0235 100644
index e5fe811ee0c302fdc22eb7d6678d48b5dd5ccc34..d7b9372e0f071374de358e5825ed3bb46719a79e 100644
--- a/third_party/blink/renderer/core/BUILD.gn
+++ b/third_party/blink/renderer/core/BUILD.gn
@@ -446,6 +446,7 @@ component("core") {
@@ -2163,7 +2163,7 @@ index 9423a2891552e8df3ea5b05c720ab11795c4b92d..610c479ef03759d3082b42d7a402cbea
// Accessible object
if (AXElementWrapper::IsValidElement(value)) {
diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn
index 0c60d955d51d899ceced2fe3d6483913e7160db4..6ce33e05e71c9941a76f1b9de22f2faf51550947 100644
index dd9811827c1d7a4a0afe006ba6c0bbc17f58d3a6..3399f82675e57a1f9feb8f33ba1666dde84731cb 100644
--- a/ui/base/BUILD.gn
+++ b/ui/base/BUILD.gn
@@ -367,6 +367,13 @@ component("base") {
@@ -2284,7 +2284,7 @@ index 93e90c4eba9bc9b93d68e834eb6baabeb2d0ecf0..1b90f41d05f847a94adf2f4da827b1d0
} // namespace
diff --git a/ui/display/BUILD.gn b/ui/display/BUILD.gn
index cf4c30f417f9a7689f02ceec3b9326e9ca9989b7..ed8059a069757b5d0ce4fd8b0925e89d69a97a07 100644
index 6c05f8468aa42999be7a1b5d5d3f854813252e0c..16030a4b11926eb0f4c3b960d3209c8d028c5f65 100644
--- a/ui/display/BUILD.gn
+++ b/ui/display/BUILD.gn
@@ -142,6 +142,12 @@ component("display") {
@@ -2382,7 +2382,7 @@ index 65ae8170664d15c7884261812400d0ed638a681d..86c937f1e6d03b88803a2ca80abff19c
// enough.
return PlatformFontMac::SystemFontType::kGeneral;
diff --git a/ui/views/BUILD.gn b/ui/views/BUILD.gn
index 4b93fb6b10d7f5c1059abdd60fa0e51d699c3e8f..2674e1d0a8aea68b8d3583414f12ff1d53297514 100644
index cb35a2682b68f90a0e6d9916a845c8e1b4b52e23..686c60c0a57be23aa323b96fa5d423278eeeaa1a 100644
--- a/ui/views/BUILD.gn
+++ b/ui/views/BUILD.gn
@@ -791,6 +791,8 @@ component("views") {
@@ -2394,7 +2394,7 @@ index 4b93fb6b10d7f5c1059abdd60fa0e51d699c3e8f..2674e1d0a8aea68b8d3583414f12ff1d
}
if (is_win) {
@@ -1210,6 +1212,8 @@ source_set("test_support") {
@@ -1212,6 +1214,8 @@ source_set("test_support") {
"//ui/base/mojom:ui_base_types",
]
@@ -2404,7 +2404,7 @@ index 4b93fb6b10d7f5c1059abdd60fa0e51d699c3e8f..2674e1d0a8aea68b8d3583414f12ff1d
sources += [
"test/desktop_window_tree_host_win_test_api.cc",
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 aa953e712eb73df08602c36278b8a003ce5114bc..4507428d53ff8290d9a46db7f3066c3495e2fd48 100644
index d2a9632c4c8097f426ccf8f62597a67d1ca5bb3b..ad6a2ca5960749d2b1a45f39f4ab419370dde406 100644
--- a/ui/views/cocoa/native_widget_mac_ns_window_host.h
+++ b/ui/views/cocoa/native_widget_mac_ns_window_host.h
@@ -20,6 +20,7 @@
@@ -2518,7 +2518,7 @@ index 352ef08958711c421ef89c48125c7505ed024afe..dcdfee94a5959f49422b4c37a0fbac9c
}
diff --git a/ui/views/controls/webview/BUILD.gn b/ui/views/controls/webview/BUILD.gn
index bec4d5e3e528369e2806d15731ea2adf6d26fcce..b07544396dad253758877b496b67da2e17a957a2 100644
index f9d0756f8031155c15df2e861c11de9343d6d938..ca00e8523a1b82e86fc74421ff90b566c58687cc 100644
--- a/ui/views/controls/webview/BUILD.gn
+++ b/ui/views/controls/webview/BUILD.gn
@@ -51,6 +51,12 @@ component("webview") {
@@ -133,7 +133,7 @@ index 9bf238e64af483294ae3c3f18a4e9aed49a8658d..b9b2a4c8c387b8e8b4eb1f02fc0f891c
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 417fc8b63df0c0761a909ea1d47015ccd635db21..b3d13a17d82104f21f626e38c8104d2a562dc313 100644
index cf64747dbc2a2800d42a8993d8f0b856c7ba1822..712445d23f1375d9089d3f33366e418ca880b2c1 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -2557,7 +2557,7 @@ void RenderProcessHostImpl::CreateNotificationService(
@@ -44,10 +44,10 @@ index 9babca6b48195d7f44d0d4864812a4b465a8234a..ad76883e10f77ce740838738b6bc420a
void RenderWidgetHostImpl::ShowContextMenuAtPoint(
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index bf77ced730a07e68910f7061749b57a2a2d854cf..7cbdb8c3633f64c61476158d8b2b887332d97f5a 100644
index 5c602a33195a1ad99d7c14efc4b7f215af6a77a5..ec57760fbdd9c69223b0f4bdf30e7df518f5a05b 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -6761,6 +6761,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() {
@@ -6764,6 +6764,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() {
return text_input_manager_.get();
}
@@ -30,7 +30,7 @@ index 97567b79069538e23115fc274c10b8a41ea94e61..27de5449463b341b5e9b0c14f0475fa8
return ContentSettingsType::DEFAULT;
diff --git a/content/browser/permissions/permission_controller_impl.cc b/content/browser/permissions/permission_controller_impl.cc
index 47e723a87b62df4aac21ebbaa5974994ed0c6b5d..699af929a6d3fe52e3cc8e9560014710bbcb6653 100644
index c623c4451b36738ab91ac42f54c17c91376708bf..ec80237a64dc0dc25d623a0f0a0fc75175cf01f7 100644
--- a/content/browser/permissions/permission_controller_impl.cc
+++ b/content/browser/permissions/permission_controller_impl.cc
@@ -100,9 +100,15 @@ PermissionToSchedulingFeature(PermissionType permission_name) {
@@ -15,10 +15,10 @@ This CL removes these filters so the unresponsive event can still be
accessed from our JS event. The filtering is moved into Electron's code.
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 99b25c0036562af4671dd87173a1ef80923b8f45..f32df8715b2b0bd0cce7635fd1138ace9bcbb42b 100644
index 9c2a2cc5043fcfb6f5ecc234e441a47078bee18c..2cdf827b5e490c748d3534bd65f726444d77f44d 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -11444,25 +11444,13 @@ void WebContentsImpl::RendererUnresponsive(
@@ -11447,25 +11447,13 @@ void WebContentsImpl::RendererUnresponsive(
base::RepeatingClosure hang_monitor_restarter) {
OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::RendererUnresponsive",
"render_widget_host", render_widget_host);
@@ -8,10 +8,10 @@ respond to the first mouse click in their window, which is desirable for some
kinds of utility windows. Similarly for `disableAutoHideCursor`.
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 e375936a688a781fca010cd02da1ff41cbf3870b..da8d56053e6583457a6fde9aa8bd42f5825c86ef 100644
index b72b0edd65c823f5dd8933a1eaf6b1ca59a61e6b..c74a6130862162d4fdb07cf3d4a60604d0ae0482 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
@@ -191,6 +191,11 @@ void ExtractUnderlines(NSAttributedString* string,
@@ -192,6 +192,11 @@ void ExtractUnderlines(NSAttributedString* string,
} // namespace
@@ -23,7 +23,7 @@ index e375936a688a781fca010cd02da1ff41cbf3870b..da8d56053e6583457a6fde9aa8bd42f5
// RenderWidgetHostViewCocoa ---------------------------------------------------
// Private methods:
@@ -855,6 +860,10 @@ - (AcceptMouseEvents)acceptsMouseEventsOption {
@@ -856,6 +861,10 @@ - (AcceptMouseEvents)acceptsMouseEventsOption {
}
- (BOOL)acceptsFirstMouse:(NSEvent*)theEvent {
@@ -31,10 +31,10 @@ index e375936a688a781fca010cd02da1ff41cbf3870b..da8d56053e6583457a6fde9aa8bd42f5
+ [self.window acceptsFirstMouse])
+ return YES;
+
// Enable "click-through" if mouse clicks are accepted in inactive windows.
return
[self acceptsMouseEventsOption] > AcceptMouseEvents::kWhenInActiveWindow;
@@ -1514,6 +1523,10 @@ - (void)keyEvent:(NSEvent*)theEvent wasKeyEquivalent:(BOOL)equiv {
// A click that another process posts straight to this process does not
// activate the app, unlike one the window server routes here, so treating it
// as an activation click would only drop it.
@@ -1527,6 +1536,10 @@ - (void)keyEvent:(NSEvent*)theEvent wasKeyEquivalent:(BOOL)equiv {
eventType == NSEventTypeKeyDown &&
!(modifierFlags & NSEventModifierFlagCommand);
@@ -22,10 +22,10 @@ https://chromium-review.googlesource.com/c/chromium/src/+/8286976; this
patch can be dropped once that or an equivalent lands.
diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
index b0057803f63f385fef39bfe4e95d74bd0767d836..a09895577c95c225dc224a47f65ad7c47f3296f0 100644
index 742a7f02ecf0d4e220a2e380011960e32fce5d97..1c7d47525715c8a410772d5b929b6688cbb9b423 100644
--- a/gpu/ipc/service/gpu_init.cc
+++ b/gpu/ipc/service/gpu_init.cc
@@ -751,17 +751,7 @@ bool GpuInit1::InitializeAndStartSandbox(
@@ -750,17 +750,7 @@ bool GpuInitLegacy::InitializeAndStartSandbox(
base::FilePath module_path;
if (base::PathService::Get(base::DIR_MODULE, &module_path)) {
@@ -22,7 +22,7 @@ However, the patch would need to be reviewed by the security team, as it
does touch a security-sensitive class.
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index b3d13a17d82104f21f626e38c8104d2a562dc313..12bea67e93a754436742bec589085d3e827b4c53 100644
index 712445d23f1375d9089d3f33366e418ca880b2c1..d7c1182300c69e11d7e2adc9365cd9e1be9f6514 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -2135,6 +2135,10 @@ bool RenderProcessHostImpl::Init() {
+3 -3
View File
@@ -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 7cbdb8c3633f64c61476158d8b2b887332d97f5a..942c11c20135f0765566a2259a4f068bd640db84 100644
index ec57760fbdd9c69223b0f4bdf30e7df518f5a05b..bb9af98386d2565cde418c7888513e3cfba4daa4 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -4545,6 +4545,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
@@ -4548,6 +4548,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
params.main_frame_name, GetOpener(), primary_main_frame_policy,
base::UnguessableToken::Create());
@@ -26,7 +26,7 @@ index 7cbdb8c3633f64c61476158d8b2b887332d97f5a..942c11c20135f0765566a2259a4f068b
std::unique_ptr<WebContentsViewDelegate> delegate =
GetContentClient()->browser()->GetWebContentsViewDelegate(this);
@@ -4555,6 +4562,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
@@ -4558,6 +4565,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
view_ = CreateWebContentsView(this, std::move(delegate),
&render_view_host_delegate_view_);
}
+4 -4
View File
@@ -15,10 +15,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 0755fe453878fb011fae7c1d427ca025cdc7dcb2..a7352e60788645d890f5d83ec9dd8adcc8c8efa9 100644
index 5b5d4094ae4ad6a33570e107d75eb249ef8df7c7..333c373fed9d24630c80eaebf85fcb7c64acee36 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -9605,6 +9605,17 @@ void RenderFrameHostImpl::EnterFullscreen(
@@ -9602,6 +9602,17 @@ void RenderFrameHostImpl::EnterFullscreen(
}
}
@@ -37,10 +37,10 @@ index 0755fe453878fb011fae7c1d427ca025cdc7dcb2..a7352e60788645d890f5d83ec9dd8adc
if (had_fullscreen_token && !GetView()->HasFocus()) {
GetView()->Focus();
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 942c11c20135f0765566a2259a4f068bd640db84..f6bb49b968c872b325d1bed8f0f1e97ba6373e8a 100644
index bb9af98386d2565cde418c7888513e3cfba4daa4..93d7638d9e5e4f0d3deec048116b4a14c14fa6d8 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -4838,21 +4838,28 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent(
@@ -4841,21 +4841,28 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent(
const input::NativeWebKeyboardEvent& event) {
OPTIONAL_TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("content.verbose"),
"WebContentsImpl::PreHandleKeyboardEvent");
@@ -26,10 +26,10 @@ index ee1ba2eeb47f936cf1b7cb7634a9f1f91f0a5246..d3816541c8b0a31d522a5a8d1eb82a5e
// 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 4341f407c4fb27afd20162eee63157cb92ca6515..3fdfbdf2a3156b84a936febe4b52c49d70126f97 100644
index 063cec06ba0dc94a28c4f6698f6f165359011c23..0985affc64c23e55045702dabcb6cb968ff5fcff 100644
--- a/content/renderer/renderer_blink_platform_impl.cc
+++ b/content/renderer/renderer_blink_platform_impl.cc
@@ -934,6 +934,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() {
@@ -948,6 +948,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() {
WorkerThreadRegistry::Instance()->WillStopCurrentWorkerThread();
}
@@ -43,10 +43,10 @@ index 4341f407c4fb27afd20162eee63157cb92ca6515..3fdfbdf2a3156b84a936febe4b52c49d
const v8::Local<v8::Context>& worker) {
GetContentClient()->renderer()->DidInitializeWorkerContextOnWorkerThread(
diff --git a/content/renderer/renderer_blink_platform_impl.h b/content/renderer/renderer_blink_platform_impl.h
index 2266ee880b69ca9c41bd72029b55852b476772e5..1fff6d5b78fce0e10e3e87dd1b56c4994b7b9ee0 100644
index 0fe9e989c048a057e8c1e5becf11db35b584ec44..c559e65f47fb140074881be0a7a2cd002a293837 100644
--- a/content/renderer/renderer_blink_platform_impl.h
+++ b/content/renderer/renderer_blink_platform_impl.h
@@ -216,6 +216,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
@@ -217,6 +217,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
void DidStartWorkerThread() override;
void WillStopWorkerThread() override;
void WorkerContextCreated(const v8::Local<v8::Context>& worker) override;
@@ -55,10 +55,10 @@ index 2266ee880b69ca9c41bd72029b55852b476772e5..1fff6d5b78fce0e10e3e87dd1b56c499
const blink::WebSecurityOrigin& origin) override;
bool OriginCanAccessServiceWorkers(const GURL& url) override;
diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h
index 9ef66ec39e8cb8ef9a8753baf7bbddc227768d77..6eef1315ebe70ce614426d847674e1be8c7d9c09 100644
index 25844b6fbed36ecf8ab30c03f8319b4188da53f1..7d83228b422266255c80be30e5b92feff6d6029f 100644
--- a/third_party/blink/public/platform/platform.h
+++ b/third_party/blink/public/platform/platform.h
@@ -699,6 +699,7 @@ class BLINK_PLATFORM_EXPORT Platform {
@@ -704,6 +704,7 @@ class BLINK_PLATFORM_EXPORT Platform {
virtual void DidStartWorkerThread() {}
virtual void WillStopWorkerThread() {}
virtual void WorkerContextCreated(const v8::Local<v8::Context>& worker) {}
@@ -67,10 +67,10 @@ index 9ef66ec39e8cb8ef9a8753baf7bbddc227768d77..6eef1315ebe70ce614426d847674e1be
const WebSecurityOrigin& origin) {
return ProtocolHandlerSecurityLevel::kStrict;
diff --git a/third_party/blink/renderer/core/workers/worker_thread.cc b/third_party/blink/renderer/core/workers/worker_thread.cc
index 49c20b576c1f003c2326fbf12242099c811a1713..8917948f39604767f8f858fe48fa8624a1ae6cbb 100644
index ecfc8a2a4deb5514c38c50f807aeb586984df39e..ba25ff68e2ceca01d02aff09a124fe5b6fbaa9d9 100644
--- a/third_party/blink/renderer/core/workers/worker_thread.cc
+++ b/third_party/blink/renderer/core/workers/worker_thread.cc
@@ -811,6 +811,12 @@ void WorkerThread::PrepareForShutdownOnWorkerThread() {
@@ -787,6 +787,12 @@ void WorkerThread::PrepareForShutdownOnWorkerThread() {
}
pause_handle_.reset();
@@ -35,10 +35,10 @@ index d3816541c8b0a31d522a5a8d1eb82a5ea26d0601..3b8f4f78b045b813693e3ee33ce7bac2
// 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 3fdfbdf2a3156b84a936febe4b52c49d70126f97..76defb35003dccfdb0cb5632c2e6c0e89f2a78ca 100644
index 0985affc64c23e55045702dabcb6cb968ff5fcff..d727a494290e9abe36410505f1f30de6aabbf205 100644
--- a/content/renderer/renderer_blink_platform_impl.cc
+++ b/content/renderer/renderer_blink_platform_impl.cc
@@ -946,6 +946,12 @@ void RendererBlinkPlatformImpl::WorkerContextCreated(
@@ -960,6 +960,12 @@ void RendererBlinkPlatformImpl::WorkerContextCreated(
worker);
}
@@ -52,10 +52,10 @@ index 3fdfbdf2a3156b84a936febe4b52c49d70126f97..76defb35003dccfdb0cb5632c2e6c0e8
RendererBlinkPlatformImpl::GetProtocolHandlerSecurityLevel(
const blink::WebSecurityOrigin& origin) {
diff --git a/content/renderer/renderer_blink_platform_impl.h b/content/renderer/renderer_blink_platform_impl.h
index 1fff6d5b78fce0e10e3e87dd1b56c4994b7b9ee0..1a21b977500820f1e34eb028c4aaa7addb279c65 100644
index c559e65f47fb140074881be0a7a2cd002a293837..f894f730da37ba6480273e9f7a518c47e9528f06 100644
--- a/content/renderer/renderer_blink_platform_impl.h
+++ b/content/renderer/renderer_blink_platform_impl.h
@@ -216,6 +216,8 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
@@ -217,6 +217,8 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
void DidStartWorkerThread() override;
void WillStopWorkerThread() override;
void WorkerContextCreated(const v8::Local<v8::Context>& worker) override;
@@ -65,10 +65,10 @@ index 1fff6d5b78fce0e10e3e87dd1b56c4994b7b9ee0..1a21b977500820f1e34eb028c4aaa7ad
blink::ProtocolHandlerSecurityLevel GetProtocolHandlerSecurityLevel(
const blink::WebSecurityOrigin& origin) override;
diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h
index 6eef1315ebe70ce614426d847674e1be8c7d9c09..d9b25e76c3bff560e5246d1664562a98a7040a7f 100644
index 7d83228b422266255c80be30e5b92feff6d6029f..330a64e577a57ef5014b8a5cf1214fcd8fe1fa64 100644
--- a/third_party/blink/public/platform/platform.h
+++ b/third_party/blink/public/platform/platform.h
@@ -699,6 +699,8 @@ class BLINK_PLATFORM_EXPORT Platform {
@@ -704,6 +704,8 @@ class BLINK_PLATFORM_EXPORT Platform {
virtual void DidStartWorkerThread() {}
virtual void WillStopWorkerThread() {}
virtual void WorkerContextCreated(const v8::Local<v8::Context>& worker) {}
@@ -78,10 +78,10 @@ index 6eef1315ebe70ce614426d847674e1be8c7d9c09..d9b25e76c3bff560e5246d1664562a98
virtual ProtocolHandlerSecurityLevel GetProtocolHandlerSecurityLevel(
const WebSecurityOrigin& origin) {
diff --git a/third_party/blink/renderer/bindings/core/v8/worker_or_worklet_script_controller.cc b/third_party/blink/renderer/bindings/core/v8/worker_or_worklet_script_controller.cc
index e4cbe33f771c8afe5157388fffc7aaeeb2431f9e..297dd8ac99ced5d279838827e930f5fd2a8714eb 100644
index d49942426cbbf42e48b3e87b37b986445b6785c7..b897828a3a041a448e13c86845caa21b76a2960d 100644
--- a/third_party/blink/renderer/bindings/core/v8/worker_or_worklet_script_controller.cc
+++ b/third_party/blink/renderer/bindings/core/v8/worker_or_worklet_script_controller.cc
@@ -290,6 +290,7 @@ void WorkerOrWorkletScriptController::PrepareForEvaluation() {
@@ -266,6 +266,7 @@ void WorkerOrWorkletScriptController::PrepareForEvaluation() {
V8PerContextData* per_context_data = script_state_->PerContextData();
std::ignore =
per_context_data->ConstructorForType(global_scope_->GetWrapperTypeInfo());
+2 -2
View File
@@ -15,10 +15,10 @@ include the out dir, and the linker won't be able to find ffmpeg.dylib
because of so.
diff --git a/BUILD.gn b/BUILD.gn
index 4e2e57ad83be5de10fb7322fbb5ec28fadcb17d8..c5f163fe5091625b061f124690b9e4a1d8465548 100644
index a00ce51d43a5c3353fd3cebee6bc9d06a37ab0cc..81f0f1a30208b31fda80f771591a39bcaf60f75f 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -487,7 +487,7 @@ if (is_component_ffmpeg) {
@@ -479,7 +479,7 @@ if (is_component_ffmpeg) {
if (!is_component_build) {
if (is_mac) {
-1
View File
@@ -2,4 +2,3 @@ build_warn_instead_of_abort_on_builtin_pgo_profile_mismatch.patch
src_use_legacy_trace_macros_in_perfetto_to_support_all_phases.patch
feat_key_code_caches_to_the_patch_set_and_the_embedded_blob.patch
fix_allow_embedder_slots_of_non-api_objects_in_snapshot.patch
metagen_relocate_explicit_macos_sdk_paths_for_temporary_gn_queries.patch
@@ -15,10 +15,10 @@ Rather than disabling builtins PGO entirely, warn and skip mismatched
builtins so all other builtins still benefit from PGO.
diff --git a/BUILD.gn b/BUILD.gn
index 4f9e9103e861783a70661263c1f82d6d982fac5b..4b7f8f537f17f0734c2315dd7cb813b396e8a5c6 100644
index 3385349b0edb384dd43ed2f3c34ee907202ef1cd..cbab33240a3e8a9007ebacc6e7d0f954a8c22b1b 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -3185,9 +3185,11 @@ template("run_mksnapshot") {
@@ -3187,9 +3187,11 @@ template("run_mksnapshot") {
"--turbo-profiling-input",
rebase_path(v8_builtins_profiling_log_file, root_build_dir),
@@ -29,7 +29,7 @@ This adds two things:
Both parts are suitable for upstreaming.
diff --git a/BUILD.gn b/BUILD.gn
index 4b7f8f537f17f0734c2315dd7cb813b396e8a5c6..a3cab682aaf5e7ea862cb9fe5c589dd7f68ae528 100644
index cbab33240a3e8a9007ebacc6e7d0f954a8c22b1b..bfe1248266f9e5c90ad0e77a99923b99af7cce4f 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -21,6 +21,7 @@ import("//third_party/icu/config.gni")
@@ -40,7 +40,7 @@ index 4b7f8f537f17f0734c2315dd7cb813b396e8a5c6..a3cab682aaf5e7ea862cb9fe5c589dd7
if (is_clang) {
import("//build/config/clang/clang.gni")
@@ -1325,6 +1326,14 @@ enabled_external_defines =
@@ -1330,6 +1331,14 @@ enabled_external_defines =
disabled_external_defines =
disabled_external_v8_defines + disabled_external_cppgc_defines
@@ -128,10 +128,10 @@ index 0a0134e043722757bb85db55cf555974420e9b57..918d4bacf66e45bbd6ffc63d01de755f
// Calculate the V8 version string.
diff --git a/src/wasm/wasm-serialization.cc b/src/wasm/wasm-serialization.cc
index de8e70d82b0ff6ac6c66540d8ea4154cec56c6bd..5bc220a8327b71d1f37a9ce784afcba8f6f54617 100644
index a955b8f3a3d942d381c06b366928e8aadb9e4c9d..efb5aa20ae1f1ea87837ac029f82669440538d4f 100644
--- a/src/wasm/wasm-serialization.cc
+++ b/src/wasm/wasm-serialization.cc
@@ -8,6 +8,7 @@
@@ -9,6 +9,7 @@
#include "src/codegen/assembler-inl.h"
#include "src/debug/debug.h"
#include "src/runtime/runtime.h"
@@ -139,7 +139,7 @@ index de8e70d82b0ff6ac6c66540d8ea4154cec56c6bd..5bc220a8327b71d1f37a9ce784afcba8
#include "src/snapshot/snapshot-data.h"
#include "src/utils/ostreams.h"
#include "src/utils/version.h"
@@ -128,9 +129,20 @@ class Reader {
@@ -129,9 +130,20 @@ class Reader {
const uint8_t* pos_;
};
@@ -162,7 +162,7 @@ index de8e70d82b0ff6ac6c66540d8ea4154cec56c6bd..5bc220a8327b71d1f37a9ce784afcba8
sizeof(typename CompileTimeImportFlags::StorageType) +
sizeof(uint32_t) + // length of constants_module.
compile_imports.constants_module().size();
@@ -141,6 +153,7 @@ void WriteHeader(Writer* writer, WasmEnabledFeatures enabled_features,
@@ -142,6 +154,7 @@ void WriteHeader(Writer* writer, WasmEnabledFeatures enabled_features,
DCHECK_EQ(0, writer->bytes_written());
writer->Write(SerializedData::kMagicNumber);
writer->Write(Version::Hash());
@@ -171,10 +171,10 @@ index de8e70d82b0ff6ac6c66540d8ea4154cec56c6bd..5bc220a8327b71d1f37a9ce784afcba8
writer->Write(FlagList::Hash());
writer->Write(enabled_features.ToIntegral());
diff --git a/src/wasm/wasm-serialization.h b/src/wasm/wasm-serialization.h
index 31becd542dd6ff9d72dc9e9e89fb6ced399920f8..bf38e9ddc0d3247bd2a1f9f8b3a2f4e6b9e208b9 100644
index 3e570ad246e065c12b12d10a8766e79599362298..0806e312e76d7eec05a7d586c3b32247ae977f34 100644
--- a/src/wasm/wasm-serialization.h
+++ b/src/wasm/wasm-serialization.h
@@ -30,10 +30,11 @@ class V8_EXPORT_PRIVATE WasmSerializer {
@@ -31,10 +31,11 @@ class V8_EXPORT_PRIVATE WasmSerializer {
// The data header consists of (see {WriteHeader}):
// [0] magic number (uint32_t)
// [1] version hash (uint32_t)
@@ -17,7 +17,7 @@ IterateJSObjectBodyImpl() visits.
This should be upstreamed.
diff --git a/src/snapshot/serializer.cc b/src/snapshot/serializer.cc
index 1367b49400f499d6a371069c5bb105d69ebd7063..4b7e88dcb3946e3a7c8d057998da5cf42fd4eaac 100644
index 51134f4cb582990410b491d402ef55be34d9b0c6..35e6a65112e721813ddb328264256fc3dd353262 100644
--- a/src/snapshot/serializer.cc
+++ b/src/snapshot/serializer.cc
@@ -19,6 +19,7 @@
@@ -28,7 +28,7 @@ index 1367b49400f499d6a371069c5bb105d69ebd7063..4b7e88dcb3946e3a7c8d057998da5cf4
#include "src/objects/map.h"
#include "src/objects/objects-body-descriptors-inl.h"
#include "src/objects/slots-inl.h"
@@ -1123,8 +1124,8 @@ void Serializer::ObjectSerializer::VisitCppHeapPointer(
@@ -1130,8 +1131,8 @@ void Serializer::ObjectSerializer::VisitCppHeapPointer(
// We serialize the slot as initialized-but-unused slot. The actual API
// wrapper serialization is implemented in
// `ContextSerializer::SerializeApiWrapperFields()`.
@@ -1,164 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: deepak1556 <hop2deep@gmail.com>
Date: Thu, 8 Oct 2026 19:22:50 +0900
Subject: [metagen] Relocate explicit macOS SDK paths for temporary GN queries
An explicit mac_sdk_path under the active output directory remains
unchanged when args.gn is copied into the temporary GN query directory.
Chromium's sdk_inputs action then declares outputs outside that
directory, causing gn desc to fail.
On macOS, copy the embedder SDK symlinks into the temporary directory
and rebase mac_sdk_path there. Preserve the existing restoration and
temporary query isolation. Additionally, include GN stdout in failure
diagnostics.
This is a temporary workaround until CL 8499914 replaces the GN query
with action substitutions.
Bug: 531344950
Fixed: 570412918
Change-Id: Iad20a9e8465546c11003d152ff27e69e5896e343
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8535626
Auto-Submit: Deepak Mohan (Robo) <hop2deep@gmail.com>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Deepak Mohan (Robo) <hop2deep@gmail.com>
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#110468}
diff --git a/tools/metagen/compile_flags.py b/tools/metagen/compile_flags.py
index d7c469d6f4982a83e7c970bebfc1fe412833e7b8..6f27783da236d77274055be64df1547f93a09eff 100644
--- a/tools/metagen/compile_flags.py
+++ b/tools/metagen/compile_flags.py
@@ -180,6 +180,20 @@ def get_compile_args_from_gn_desc(build_dir: str, target_label: str,
with tempfile.TemporaryDirectory(dir=os.path.dirname(build_dir)) as tmp_dir:
shutil.copyfile(
os.path.join(build_dir, "args.gn"), os.path.join(tmp_dir, "args.gn"))
+ if sys.platform == "darwin":
+ sdk_links = os.path.join(build_dir, "xcode_links")
+ if os.path.isdir(sdk_links):
+ shutil.copytree(
+ sdk_links, os.path.join(tmp_dir, "xcode_links"), symlinks=True)
+ # Explicit SDK paths supplied by embedder build tools must stay below
+ # the query's output directory for Chromium's sdk_inputs action.
+ old_sdk_root = "//" + os.path.relpath(build_dir, source_root) + "/"
+ new_sdk_root = "//" + os.path.relpath(tmp_dir, source_root) + "/"
+ with open(os.path.join(tmp_dir, "args.gn"), "a") as f:
+ f.write("\nif (defined(mac_sdk_path)) {\n")
+ f.write(" mac_sdk_path = string_replace(mac_sdk_path, "
+ f"{json.dumps(old_sdk_root)}, {json.dumps(new_sdk_root)})\n")
+ f.write("}\n")
open(os.path.join(tmp_dir, "build.ninja"), "w").close()
try:
# -q ("don't print output on success") keeps stdout to the JSON alone.
@@ -201,7 +215,9 @@ def get_compile_args_from_gn_desc(build_dir: str, target_label: str,
except subprocess.CalledProcessError as e:
raise RuntimeError(f"[metagen] `gn desc {tmp_dir} {target_label}` failed "
f"(exit {e.returncode}). Is the target part of that "
- f"toolchain's build?\n{(e.stderr or '').strip()}")
+ f"toolchain's build?\n"
+ f"{(e.stdout or '').strip()}\n"
+ f"{(e.stderr or '').strip()}")
try:
desc = json.loads(proc.stdout)
except json.JSONDecodeError as e:
diff --git a/tools/metagen/test/compile_flags_test.py b/tools/metagen/test/compile_flags_test.py
index 9652550d7168727294aadf02c1ebb31fbfc42c78..e68be065a0e73391bd86a93a443052b8427efdfe 100644
--- a/tools/metagen/test/compile_flags_test.py
+++ b/tools/metagen/test/compile_flags_test.py
@@ -62,7 +62,8 @@ class GnCompileFlagsTest(unittest.TestCase):
}
return subprocess.CompletedProcess(argv, 0, json.dumps(desc))
- with mock.patch.object(
+ with mock.patch.object(compile_flags.sys, 'platform', 'linux'), \
+ mock.patch.object(
compile_flags, '_find_gn',
return_value='gn') as find_gn, mock.patch.object(
compile_flags.subprocess, 'run', side_effect=run_desc) as run:
@@ -85,6 +86,75 @@ class GnCompileFlagsTest(unittest.TestCase):
])
self.assertEqual(cwd, str(build_dir))
+ def test_macos_sdk_links_and_override_are_isolated(self):
+ with tempfile.TemporaryDirectory() as tmp:
+ source_root = Path(tmp) / 'src'
+ build_dir = source_root / 'out' / 'Release'
+ sdk = Path(tmp) / 'MacOSX.sdk'
+ sdk.mkdir()
+ sdk_links = build_dir / 'xcode_links' / 'embedder'
+ sdk_links.mkdir(parents=True)
+ try:
+ (sdk_links / sdk.name).symlink_to(sdk, target_is_directory=True)
+ except OSError as e:
+ if getattr(e, 'winerror', None) != 1314:
+ raise
+ self.skipTest('Symlink creation requires Windows privileges')
+ args = ('mac_sdk_path = '
+ '"//out/Release/xcode_links/embedder/MacOSX.sdk"\n')
+ (build_dir / 'args.gn').write_text(args)
+ queried_dir = None
+
+ def run_desc(argv, **kwargs):
+ nonlocal queried_dir
+ queried_dir = Path(argv[4])
+ query_args = (queried_dir / 'args.gn').read_text()
+ self.assertTrue(query_args.startswith(args))
+ self.assertIn('if (defined(mac_sdk_path))', query_args)
+ query_rel = os.path.relpath(queried_dir, source_root)
+ self.assertIn(
+ 'string_replace(mac_sdk_path, "//out/Release/", '
+ f'{json.dumps("//" + query_rel + "/")})', query_args)
+ query_sdk = queried_dir / 'xcode_links' / 'embedder' / sdk.name
+ self.assertTrue(query_sdk.is_symlink())
+ self.assertEqual(query_sdk.resolve(), sdk.resolve())
+ # Mutating the query's links must not affect the running build.
+ query_sdk.unlink()
+ self.assertTrue((sdk_links / sdk.name).is_symlink())
+ desc = {'//:probe': {'cflags': ['-isysroot', str(query_sdk)],}}
+ return subprocess.CompletedProcess(argv, 0, json.dumps(desc))
+
+ with mock.patch.object(compile_flags.sys, 'platform', 'darwin'), \
+ mock.patch.object(compile_flags, '_find_gn', return_value='gn'), \
+ mock.patch.object(compile_flags.subprocess, 'run',
+ side_effect=run_desc):
+ flags, cwd = compile_flags.get_compile_args_from_gn_desc(
+ str(build_dir), '//:probe', str(source_root))
+ self.assertEqual(flags, ['-isysroot', str(sdk_links / sdk.name)])
+ self.assertEqual(cwd, str(build_dir))
+ self.assertEqual((build_dir / 'args.gn').read_text(), args)
+ self.assertFalse(queried_dir.exists())
+
+ def test_gn_failure_includes_stdout_and_stderr(self):
+ with tempfile.TemporaryDirectory() as tmp:
+ build_dir = Path(tmp) / 'build'
+ build_dir.mkdir()
+ (build_dir / 'args.gn').touch()
+ error = subprocess.CalledProcessError(
+ 1,
+ 'gn',
+ output='File is not inside output directory.',
+ stderr='SDK diagnostic')
+ with mock.patch.object(compile_flags.sys, 'platform', 'linux'), \
+ mock.patch.object(compile_flags, '_find_gn', return_value='gn'), \
+ mock.patch.object(compile_flags.subprocess, 'run',
+ side_effect=error):
+ with self.assertRaises(RuntimeError) as raised:
+ compile_flags.get_compile_args_from_gn_desc(
+ str(build_dir), '//:probe', tmp)
+ self.assertIn(error.stdout, str(raised.exception))
+ self.assertIn(error.stderr, str(raised.exception))
+
def test_build_directory_on_another_drive(self):
with tempfile.TemporaryDirectory() as tmp:
source_root = Path(tmp) / 'src'
@@ -98,7 +168,8 @@ class GnCompileFlagsTest(unittest.TestCase):
desc = {'//:probe': {'include_dirs': [str(temp_dir / 'gen')],}}
return subprocess.CompletedProcess(argv, 0, json.dumps(desc))
- with mock.patch.object(compile_flags, '_find_gn', return_value='gn'), \
+ with mock.patch.object(compile_flags.sys, 'platform', 'win32'), \
+ mock.patch.object(compile_flags, '_find_gn', return_value='gn'), \
mock.patch.object(compile_flags.os.path, 'relpath',
side_effect=ValueError('different drive')), \
mock.patch.object(compile_flags.subprocess, 'run',
@@ -21,7 +21,6 @@
#include "shell/common/gin_helper/object_template_builder.h"
#include "shell/common/node_includes.h"
#include "shell/common/options_switches.h"
#include "ui/gl/gpu_switching_manager.h"
#include "ui/views/focus/focus_manager.h"
#include "ui/views/widget/widget.h"
+19 -3
View File
@@ -23,7 +23,6 @@
#include "base/types/pass_key.h"
#include "base/uuid.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/predictors/predictors_traffic_annotations.h" // nogncheck
#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
#include "components/download/public/common/download_danger_type.h"
@@ -59,6 +58,7 @@
#include "net/http/http_auth_preferences.h"
#include "net/http/http_cache.h"
#include "net/http/http_util.h"
#include "net/traffic_annotation/network_traffic_annotation.h"
#include "services/network/network_service.h"
#include "services/network/public/cpp/features.h"
#include "services/network/public/cpp/request_destination.h"
@@ -134,6 +134,22 @@ using content::StoragePartition;
namespace {
constexpr net::NetworkTrafficAnnotationTag kPreconnectTrafficAnnotation =
net::DefineNetworkTrafficAnnotation("electron_session_preconnect", R"(
semantics {
sender: "Electron Session"
description:
"Preemptively opens sockets to an origin so that later requests "
"to it can skip DNS resolution, TCP connection and TLS setup."
trigger: "Using session.preconnect"
data: "No user data is sent; only a connection is established."
destination: OTHER
}
policy {
cookies_allowed: NO
setting: "This feature cannot be disabled."
})");
struct ClearStorageDataOptions {
blink::StorageKey storage_key;
uint32_t storage_types = StoragePartition::REMOVE_DATA_MASK_ALL;
@@ -1436,8 +1452,8 @@ static void StartPreconnectOnUI(ElectronBrowserContext* browser_context,
{url::Origin::Create(url), num_sockets_to_preconnect,
net::NetworkAnonymizationKey::CreateSameSite(
net::SchemefulSite(origin))}};
browser_context->GetPreconnectManager()->Start(
url, requests, predictors::kLoadingPredictorPreconnectTrafficAnnotation);
browser_context->GetPreconnectManager()->Start(url, requests,
kPreconnectTrafficAnnotation);
}
void Session::Preconnect(const gin_helper::Dictionary& options,
@@ -8,8 +8,10 @@
#import <Foundation/Foundation.h>
#import <UserNotifications/UserNotifications.h>
#include <memory>
#include <string>
#include "base/files/scoped_temp_file.h"
#include "shell/browser/notifications/notification.h"
namespace electron {
@@ -36,7 +38,9 @@ class CocoaNotification : public Notification {
private:
void LogAction(const char* action);
void ScheduleNotification(UNMutableNotificationContent* content);
void ScheduleNotification(
UNMutableNotificationContent* content,
std::shared_ptr<base::ScopedTempFile> icon_file = nullptr);
bool is_restored_ = false;
UNNotificationRequest* __strong notification_request_;
@@ -8,13 +8,15 @@
#include <utility>
#include "base/apple/foundation_util.h"
#include "base/files/file_util.h"
#include "base/files/scoped_temp_file.h"
#include "base/logging.h"
#include "base/mac/mac_util.h"
#include "base/memory/ref_counted_memory.h"
#include "base/strings/sys_string_conversions.h"
#include "base/task/sequenced_task_runner.h"
#include "chrome/common/notifications/notification_image_retainer.h"
#include "base/task/thread_pool.h"
#include "grit/electron_resources.h"
#include "shell/browser/notifications/mac/notification_presenter_mac.h"
#include "shell/browser/notifications/notification_delegate.h"
#include "shell/browser/notifications/notification_presenter.h"
#include "skia/ext/skia_utils_mac.h"
@@ -26,6 +28,22 @@
namespace electron {
namespace {
base::ScopedTempFile WriteNotificationIconToTempFile(const gfx::Image& icon) {
scoped_refptr<base::RefCountedMemory> data = icon.As1xPNGBytes();
if (!data || data->size() == 0)
return {};
base::ScopedTempFile temp_file;
if (!temp_file.Create() || !base::WriteFile(temp_file.path(), *data))
return {};
return temp_file;
}
} // namespace
CocoaNotification::CocoaNotification(NotificationDelegate* delegate,
NotificationPresenter* presenter)
: Notification(delegate, presenter) {}
@@ -137,50 +155,51 @@ void CocoaNotification::Show(const NotificationOptions& options) {
if (!options.icon.drawsNothing()) {
gfx::Image icon = gfx::Image::CreateFrom1xBitmap(options.icon);
auto* mac_presenter = static_cast<NotificationPresenterMac*>(presenter());
mac_presenter->image_task_runner()->PostTaskAndReplyWithResult(
FROM_HERE,
base::BindOnce(
[](NotificationPresenterMac* mac_presenter,
gfx::Image icon) -> UNNotificationAttachment* {
base::FilePath path =
mac_presenter->image_retainer()->RegisterTemporaryImage(icon);
if (path.empty()) {
return nil;
}
NSURL* url = base::apple::FilePathToNSURL(path);
NSDictionary* attachment_options = @{
UNNotificationAttachmentOptionsTypeHintKey :
UTTypePNG.identifier
};
NSError* error = nil;
UNNotificationAttachment* attachment = [UNNotificationAttachment
attachmentWithIdentifier:[[NSUUID UUID] UUIDString]
URL:url
options:attachment_options
error:&error];
if (!attachment || error) {
if (electron::debug_notifications) {
LOG(INFO) << "Notification icon attachment failed: "
<< (error ? error.localizedDescription.UTF8String
: "unknown error");
}
return nil;
}
return attachment;
},
mac_presenter, icon),
base::ThreadPool::PostTaskAndReplyWithResult(
FROM_HERE, {base::MayBlock(), base::TaskPriority::USER_VISIBLE},
base::BindOnce(&WriteNotificationIconToTempFile, std::move(icon)),
base::BindOnce(
[](base::WeakPtr<Notification> weak_self,
UNMutableNotificationContent* content,
UNNotificationAttachment* attachment) {
if (auto* notification = weak_self.get()) {
// Deliver without an icon if the attachment couldn't be made.
if (attachment)
content.attachments = @[ attachment ];
auto* self = static_cast<CocoaNotification*>(notification);
self->ScheduleNotification(content);
base::ScopedTempFile icon_file) {
auto* notification = weak_self.get();
if (!notification)
return;
std::shared_ptr<base::ScopedTempFile> retained_icon_file;
NSURL* url = nil;
if (icon_file) {
url = base::apple::FilePathToNSURL(
base::MakeAbsoluteFilePath(icon_file.path()));
}
if (url) {
NSDictionary* attachment_options = @{
UNNotificationAttachmentOptionsTypeHintKey :
UTTypePNG.identifier
};
NSError* error = nil;
UNNotificationAttachment* attachment = [UNNotificationAttachment
attachmentWithIdentifier:[[NSUUID UUID] UUIDString]
URL:url
options:attachment_options
error:&error];
if (!attachment || error) {
if (electron::debug_notifications) {
LOG(INFO) << "Notification icon attachment failed: "
<< (error ? error.localizedDescription.UTF8String
: "unknown error");
}
} else {
content.attachments = @[ attachment ];
retained_icon_file = std::make_shared<base::ScopedTempFile>(
std::move(icon_file));
}
}
auto* self = static_cast<CocoaNotification*>(notification);
self->ScheduleNotification(content,
std::move(retained_icon_file));
},
GetWeakPtr(), content));
} else {
@@ -189,7 +208,8 @@ void CocoaNotification::Show(const NotificationOptions& options) {
}
void CocoaNotification::ScheduleNotification(
UNMutableNotificationContent* content) {
UNMutableNotificationContent* content,
std::shared_ptr<base::ScopedTempFile> icon_file) {
NSString* identifier = base::SysUTF8ToNSString(notification_id());
UNNotificationRequest* request =
@@ -209,6 +229,8 @@ void CocoaNotification::ScheduleNotification(
[[UNUserNotificationCenter currentNotificationCenter]
addNotificationRequest:request
withCompletionHandler:^(NSError* _Nullable error) {
if (icon_file)
icon_file->Reset();
if (error) {
if (electron::debug_notifications) {
LOG(INFO) << "Error scheduling notification ("
@@ -6,7 +6,6 @@
#ifndef ELECTRON_SHELL_BROWSER_NOTIFICATIONS_MAC_NOTIFICATION_PRESENTER_MAC_H_
#define ELECTRON_SHELL_BROWSER_NOTIFICATIONS_MAC_NOTIFICATION_PRESENTER_MAC_H_
#include "chrome/common/notifications/notification_image_retainer.h"
#include "shell/browser/notifications/mac/notification_center_delegate.h"
#include "shell/browser/notifications/notification_presenter.h"
@@ -33,19 +32,12 @@ class NotificationPresenterMac : public NotificationPresenter {
void RemoveDeliveredNotificationsByGroupId(
const std::string& group_id) override;
NotificationImageRetainer* image_retainer() { return image_retainer_.get(); }
scoped_refptr<base::SequencedTaskRunner> image_task_runner() {
return image_task_runner_;
}
private:
// NotificationPresenter
Notification* CreateNotificationObject(
NotificationDelegate* delegate) override;
NotificationCenterDelegate* __strong notification_center_delegate_;
std::unique_ptr<NotificationImageRetainer> image_retainer_;
scoped_refptr<base::SequencedTaskRunner> image_task_runner_;
};
} // namespace electron
@@ -8,10 +8,11 @@
#include <utility>
#include <vector>
#include "base/functional/bind.h"
#include "base/functional/callback.h"
#include "base/logging.h"
#include "base/strings/sys_string_conversions.h"
#include "base/task/sequenced_task_runner.h"
#include "base/task/thread_pool.h"
#include "shell/browser/notifications/mac/cocoa_notification.h"
#include "shell/browser/notifications/mac/notification_center_delegate.h"
@@ -41,16 +42,7 @@ CocoaNotification* NotificationPresenterMac::GetNotification(
NotificationPresenterMac::NotificationPresenterMac()
: notification_center_delegate_(
[[NotificationCenterDelegate alloc] initWithPresenter:this]),
image_retainer_(std::make_unique<NotificationImageRetainer>()),
image_task_runner_(base::ThreadPool::CreateSequencedTaskRunner(
{base::MayBlock(), base::TaskPriority::USER_VISIBLE})) {
// Delete any remaining temp files in the image folder from the previous
// sessions.
DCHECK(image_task_runner_);
auto cleanup_task = image_retainer_->GetCleanupTask();
image_task_runner_->PostTask(FROM_HERE, std::move(cleanup_task));
[[NotificationCenterDelegate alloc] initWithPresenter:this]) {
UNUserNotificationCenter* center =
[UNUserNotificationCenter currentNotificationCenter];
@@ -77,7 +69,6 @@ NotificationPresenterMac::NotificationPresenterMac()
NotificationPresenterMac::~NotificationPresenterMac() {
UNUserNotificationCenter.currentNotificationCenter.delegate = nil;
image_task_runner_->DeleteSoon(FROM_HERE, image_retainer_.release());
}
Notification* NotificationPresenterMac::CreateNotificationObject(
+1 -1
View File
@@ -49,7 +49,7 @@ std::string BuildApplicationUserAgent() {
"%s/%s Chrome/%s " ELECTRON_PRODUCT_NAME "/" ELECTRON_VERSION_STRING,
name, browser->GetVersion(), CHROME_VERSION_STRING);
}
return embedder_support::BuildUserAgentFromProduct(user_agent);
return embedder_support::BuildUnifiedPlatformUserAgentFromProduct(user_agent);
}
base::Lock& UserAgentLock() {
+3 -4
View File
@@ -37,8 +37,7 @@ bool IsPooledWorkletContext(v8::Local<v8::Context> context) {
if (!ec)
return false;
return ec->IsAudioWorkletGlobalScope() || ec->IsPaintWorkletGlobalScope() ||
ec->IsAnimationWorkletGlobalScope() ||
ec->IsSharedStorageWorkletGlobalScope();
ec->IsAnimationWorkletGlobalScope();
}
} // namespace
@@ -299,8 +298,8 @@ void WebWorkerObserver::ContextWillDestroy(v8::Local<v8::Context> context) {
// not reuse the worker thread, so tear down the observer completely.
//
// For pooled worklet contexts (AudioWorklet, PaintWorklet,
// AnimationWorklet, SharedStorageWorklet — see
// blink::WorkletThreadHolder) the same NodeBindings must be reused
// AnimationWorklet — see blink::WorkletThreadHolder) the same
// NodeBindings must be reused
// for the next context on the thread because Node.js cannot be
// re-initialized on the same thread. Keep the observer alive and let
// the next WorkerScriptReadyForEvaluation call
+9
View File
@@ -271,6 +271,13 @@ void UtilityAIManager::HandleLanguageModelResult(
enabled_input_types.insert(expected_input->type);
}
}
base::flat_set<blink::mojom::AILanguageModelPromptType> enabled_output_types =
{blink::mojom::AILanguageModelPromptType::kText};
if (options->expected_outputs.has_value()) {
for (const auto& expected_output : options->expected_outputs.value()) {
enabled_output_types.insert(expected_output->type);
}
}
blink::mojom::AIManagerCreateLanguageModelClient* client =
create_model_client_set_.Get(client_id);
@@ -292,6 +299,8 @@ void UtilityAIManager::HandleLanguageModelResult(
blink::mojom::AILanguageModelSamplingParams::New(),
std::vector<blink::mojom::AILanguageModelPromptType>(
enabled_input_types.begin(), enabled_input_types.end()),
std::vector<blink::mojom::AILanguageModelPromptType>(
enabled_output_types.begin(), enabled_output_types.end()),
/*audio_sample_rate_hz=*/std::nullopt,
/*audio_channel_count=*/std::nullopt,
/*sampling_mode=*/std::nullopt));