mirror of
https://github.com/electron/electron.git
synced 2026-10-28 11:44:46 +08:00
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:
63 files changed
+291
-570
No files matched your search
@@ -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':
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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) {
|
||||
|
||||
+2
-2
@@ -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 @@
|
||||
|
||||
+12
-12
@@ -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();
|
||||
|
||||
+1
-1
@@ -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):
|
||||
|
||||
+3
-3
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
+2
-2
@@ -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() {
|
||||
|
||||
@@ -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_);
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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));
|
||||
|
||||
Reference in new issue
Block a user