bccb7b572a
* chore: bump chromium in DEPS to 123.0.6265.0 * chore: bump chromium in DEPS to 123.0.6266.0 * chore: update feat_ensure_mas_builds_of_the_same_application_can_use_safestorage.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/5232280 reverts the revert *and* undoes the rewrites 😵 * chore: update chromium/disable_hidden.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/5148491 minor manual intervention * chore: update patches * chore: Rename mouse lock to pointer lock Xref: https://chromium-review.googlesource.com/c/chromium/src/+/5148491 * refactor: fix use of newly-removed QuitCurrentWhenIdleClosureDeprecated() Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4710351 Xref: https://github.com/electron/electron/pull/26022 This usage was added in #26022 as part of Wayland support and some simple fiddles WfM with this patch on Wayland, but I'm unsure what to be testing for & would like a second opinion on this commit. * chore: bump chromium in DEPS to 123.0.6268.0 * chore: update patches * 5235021: WebUI: Migrate accessibility and bluetooth internals to WebUIConfig https://chromium-review.googlesource.com/c/chromium/src/+/5235021 * address review comment for 5196547 See: https://chromium-review.googlesource.com/c/chromium/src/+/5196547 Review comment: https://github.com/electron/electron/pull/41130#discussion_r1468973786 * 5075962: Introduce URLLoaderFactoryBuilder https://chromium-review.googlesource.com/c/chromium/src/+/5075962 * chore: bump chromium in DEPS to 123.0.6270.0 * the missing semicolon strikes again * chore: update chromium patches * chore: update v8 patches * 5242326: Some followup cleanup to Fuchia files in chrome | https://chromium-review.googlesource.com/c/chromium/src/+/5242326 * chore: bump chromium in DEPS to 123.0.6272.0 * chore: update patches * chore: update patch after rebase * 5247339: [Clipboard] Remove ClipboardContentType enum. https://chromium-review.googlesource.com/c/chromium/src/+/5247339 * Reland: "Allow content shell to enable the built-in DNS resolver" https://chromium-review.googlesource.com/c/chromium/src/+/5232354 * 5018206: [accessibility] Migrate to ScopedAccessibilityMode https://chromium-review.googlesource.com/c/chromium/src/+/5018206 * 5246669: [Default Nav Transition]Add GetBackForwardTransitionAnimationManager on WebContentsView | https://chromium-review.googlesource.com/c/chromium/src/+/5246669 * fix: move nut-js to optional spec deps (#41199) * chore: bump chromium in DEPS to 123.0.6265.0 * chore: bump chromium in DEPS to 123.0.6266.0 * chore: update feat_ensure_mas_builds_of_the_same_application_can_use_safestorage.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/5232280 reverts the revert *and* undoes the rewrites 😵 * chore: update chromium/disable_hidden.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/5148491 minor manual intervention * chore: update patches * chore: Rename mouse lock to pointer lock Xref: https://chromium-review.googlesource.com/c/chromium/src/+/5148491 * refactor: fix use of newly-removed QuitCurrentWhenIdleClosureDeprecated() Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4710351 Xref: https://github.com/electron/electron/pull/26022 This usage was added in #26022 as part of Wayland support and some simple fiddles WfM with this patch on Wayland, but I'm unsure what to be testing for & would like a second opinion on this commit. * chore: bump chromium in DEPS to 123.0.6268.0 * chore: update patches * 5235021: WebUI: Migrate accessibility and bluetooth internals to WebUIConfig https://chromium-review.googlesource.com/c/chromium/src/+/5235021 * address review comment for 5196547 See: https://chromium-review.googlesource.com/c/chromium/src/+/5196547 Review comment: https://github.com/electron/electron/pull/41130#discussion_r1468973786 * 5075962: Introduce URLLoaderFactoryBuilder https://chromium-review.googlesource.com/c/chromium/src/+/5075962 * chore: bump chromium in DEPS to 123.0.6270.0 * the missing semicolon strikes again * chore: update chromium patches * chore: update v8 patches * 5242326: Some followup cleanup to Fuchia files in chrome | https://chromium-review.googlesource.com/c/chromium/src/+/5242326 * chore: bump chromium in DEPS to 123.0.6272.0 * chore: update patches * chore: update patch after rebase * 5247339: [Clipboard] Remove ClipboardContentType enum. https://chromium-review.googlesource.com/c/chromium/src/+/5247339 * Reland: "Allow content shell to enable the built-in DNS resolver" https://chromium-review.googlesource.com/c/chromium/src/+/5232354 * 5018206: [accessibility] Migrate to ScopedAccessibilityMode https://chromium-review.googlesource.com/c/chromium/src/+/5018206 * 5246669: [Default Nav Transition]Add GetBackForwardTransitionAnimationManager on WebContentsView | https://chromium-review.googlesource.com/c/chromium/src/+/5246669 * fix: typescript error for optional dependency (cherry picked from commit ea17105c8c01bd1f4c1df5e72190a687d92f93cc) --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Charles Kerr <charles@charleskerr.com> Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com> Co-authored-by: clavin <clavin@electronjs.org> Co-authored-by: VerteDinde <vertedinde@electronjs.org> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org> Co-authored-by: Sam Maddock <smaddock@slack-corp.com>
137 lines
7.8 KiB
Diff
137 lines
7.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jeremy Apthorp <nornagon@nornagon.net>
|
|
Date: Wed, 15 Jan 2020 16:35:18 -0800
|
|
Subject: add DidInstallConditionalFeatures
|
|
|
|
This adds a hook on script context creation _after conditional features
|
|
have been installed_. Electron uses this to run preload scripts and
|
|
various other initialization. This is necessary because at the time
|
|
DidCreateScriptContext is called, not all JS APIs are available in the
|
|
context, which can cause some preload scripts to trip.
|
|
|
|
diff --git a/content/public/renderer/render_frame_observer.h b/content/public/renderer/render_frame_observer.h
|
|
index 2f05e37b8513bc28d199f81130e55063643a7c49..a03a0f4294843962c7c670c96c1df0027eab641f 100644
|
|
--- a/content/public/renderer/render_frame_observer.h
|
|
+++ b/content/public/renderer/render_frame_observer.h
|
|
@@ -146,6 +146,8 @@ class CONTENT_EXPORT RenderFrameObserver
|
|
virtual void DidHandleOnloadEvents() {}
|
|
virtual void DidCreateScriptContext(v8::Local<v8::Context> context,
|
|
int32_t world_id) {}
|
|
+ virtual void DidInstallConditionalFeatures(v8::Local<v8::Context> context,
|
|
+ int32_t world_id) {}
|
|
virtual void WillReleaseScriptContext(v8::Local<v8::Context> context,
|
|
int32_t world_id) {}
|
|
virtual void DidClearWindowObject() {}
|
|
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
|
|
index 90cd920687a3e3d1966f0e0a71ae98823dc8c15a..e5304d73314eb9b02706dcc46e50fd5a3b0bfcee 100644
|
|
--- a/content/renderer/render_frame_impl.cc
|
|
+++ b/content/renderer/render_frame_impl.cc
|
|
@@ -4578,6 +4578,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local<v8::Context> context,
|
|
observer.DidCreateScriptContext(context, world_id);
|
|
}
|
|
|
|
+void RenderFrameImpl::DidInstallConditionalFeatures(
|
|
+ v8::Local<v8::Context> context, int world_id) {
|
|
+ for (auto& observer : observers_)
|
|
+ observer.DidInstallConditionalFeatures(context, world_id);
|
|
+}
|
|
+
|
|
void RenderFrameImpl::WillReleaseScriptContext(v8::Local<v8::Context> context,
|
|
int world_id) {
|
|
for (auto& observer : observers_)
|
|
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
|
|
index b229bc3ebfee7d8cb3c874b44a4bcc588f37c3ad..75e05f339a5877215e33c095e5714089d96a035a 100644
|
|
--- a/content/renderer/render_frame_impl.h
|
|
+++ b/content/renderer/render_frame_impl.h
|
|
@@ -638,6 +638,8 @@ class CONTENT_EXPORT RenderFrameImpl
|
|
void DidObserveLayoutShift(double score, bool after_input_or_scroll) override;
|
|
void DidCreateScriptContext(v8::Local<v8::Context> context,
|
|
int world_id) override;
|
|
+ void DidInstallConditionalFeatures(v8::Local<v8::Context> context,
|
|
+ int world_id) override;
|
|
void WillReleaseScriptContext(v8::Local<v8::Context> context,
|
|
int world_id) override;
|
|
void DidChangeScrollOffset() override;
|
|
diff --git a/third_party/blink/public/web/web_local_frame_client.h b/third_party/blink/public/web/web_local_frame_client.h
|
|
index 3bc8608e6954aa607c224665e7720d6580f35e22..b9e4ef7ae602b00131c3cafebb92fb9875158833 100644
|
|
--- a/third_party/blink/public/web/web_local_frame_client.h
|
|
+++ b/third_party/blink/public/web/web_local_frame_client.h
|
|
@@ -634,6 +634,9 @@ class BLINK_EXPORT WebLocalFrameClient {
|
|
virtual void DidCreateScriptContext(v8::Local<v8::Context>,
|
|
int32_t world_id) {}
|
|
|
|
+ virtual void DidInstallConditionalFeatures(v8::Local<v8::Context>,
|
|
+ int32_t world_id) {}
|
|
+
|
|
// WebKit is about to release its reference to a v8 context for a frame.
|
|
virtual void WillReleaseScriptContext(v8::Local<v8::Context>,
|
|
int32_t world_id) {}
|
|
diff --git a/third_party/blink/renderer/bindings/core/v8/local_window_proxy.cc b/third_party/blink/renderer/bindings/core/v8/local_window_proxy.cc
|
|
index 534de2a581b34e15ec20832fffb603c4ea82296d..770fd0a15c4a3521315b70e46a3646e361432508 100644
|
|
--- a/third_party/blink/renderer/bindings/core/v8/local_window_proxy.cc
|
|
+++ b/third_party/blink/renderer/bindings/core/v8/local_window_proxy.cc
|
|
@@ -212,6 +212,7 @@ void LocalWindowProxy::Initialize() {
|
|
}
|
|
|
|
InstallConditionalFeatures();
|
|
+ GetFrame()->Client()->DidInstallConditionalFeatures(context, world_->GetWorldId());
|
|
|
|
if (World().IsMainWorld()) {
|
|
probe::DidCreateMainWorldContext(GetFrame());
|
|
diff --git a/third_party/blink/renderer/core/frame/local_frame_client.h b/third_party/blink/renderer/core/frame/local_frame_client.h
|
|
index 670953e76256621b485b1403bb44c2a4743f1141..90288f9e3d80cf2b4ccae264d43ff488090cd0b5 100644
|
|
--- a/third_party/blink/renderer/core/frame/local_frame_client.h
|
|
+++ b/third_party/blink/renderer/core/frame/local_frame_client.h
|
|
@@ -302,6 +302,8 @@ class CORE_EXPORT LocalFrameClient : public FrameClient {
|
|
|
|
virtual void DidCreateScriptContext(v8::Local<v8::Context>,
|
|
int32_t world_id) = 0;
|
|
+ virtual void DidInstallConditionalFeatures(v8::Local<v8::Context>,
|
|
+ int32_t world_id) = 0;
|
|
virtual void WillReleaseScriptContext(v8::Local<v8::Context>,
|
|
int32_t world_id) = 0;
|
|
virtual bool AllowScriptExtensions() = 0;
|
|
diff --git a/third_party/blink/renderer/core/frame/local_frame_client_impl.cc b/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
|
|
index 6139aed9ebbb459d4d7027312c0f15b669fedfb6..db566ba272b1eff5e67547c5d82bf7420def7285 100644
|
|
--- a/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
|
|
+++ b/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
|
|
@@ -289,6 +289,13 @@ void LocalFrameClientImpl::DidCreateScriptContext(
|
|
web_frame_->Client()->DidCreateScriptContext(context, world_id);
|
|
}
|
|
|
|
+void LocalFrameClientImpl::DidInstallConditionalFeatures(
|
|
+ v8::Local<v8::Context> context,
|
|
+ int32_t world_id) {
|
|
+ if (web_frame_->Client())
|
|
+ web_frame_->Client()->DidInstallConditionalFeatures(context, world_id);
|
|
+}
|
|
+
|
|
void LocalFrameClientImpl::WillReleaseScriptContext(
|
|
v8::Local<v8::Context> context,
|
|
int32_t world_id) {
|
|
diff --git a/third_party/blink/renderer/core/frame/local_frame_client_impl.h b/third_party/blink/renderer/core/frame/local_frame_client_impl.h
|
|
index 8a16e37c32d29d21b0358f2a9dbe61b962d615a7..a1a73ebbeb0288f7e14280fa277451e046a65c9e 100644
|
|
--- a/third_party/blink/renderer/core/frame/local_frame_client_impl.h
|
|
+++ b/third_party/blink/renderer/core/frame/local_frame_client_impl.h
|
|
@@ -84,6 +84,8 @@ class CORE_EXPORT LocalFrameClientImpl final : public LocalFrameClient {
|
|
|
|
void DidCreateScriptContext(v8::Local<v8::Context>,
|
|
int32_t world_id) override;
|
|
+ void DidInstallConditionalFeatures(v8::Local<v8::Context>,
|
|
+ int32_t world_id) override;
|
|
void WillReleaseScriptContext(v8::Local<v8::Context>,
|
|
int32_t world_id) override;
|
|
|
|
diff --git a/third_party/blink/renderer/core/loader/empty_clients.h b/third_party/blink/renderer/core/loader/empty_clients.h
|
|
index 9409d53c4de57255cffb97897d48a1b2b2ad12ea..82530cf57da06efb3c5377315d51daf719ac303a 100644
|
|
--- a/third_party/blink/renderer/core/loader/empty_clients.h
|
|
+++ b/third_party/blink/renderer/core/loader/empty_clients.h
|
|
@@ -411,6 +411,8 @@ class CORE_EXPORT EmptyLocalFrameClient : public LocalFrameClient {
|
|
|
|
void DidCreateScriptContext(v8::Local<v8::Context>,
|
|
int32_t world_id) override {}
|
|
+ void DidInstallConditionalFeatures(v8::Local<v8::Context>,
|
|
+ int32_t world_id) override {}
|
|
void WillReleaseScriptContext(v8::Local<v8::Context>,
|
|
int32_t world_id) override {}
|
|
bool AllowScriptExtensions() override { return false; }
|