* chore: bump chromium in DEPS to 120.0.6049.0 * chore: update patches * chore: bump chromium in DEPS to 120.0.6050.0 * chore: update patches * 4910494: Reland "[autopip] Show autopip UI for video pip" https://chromium-review.googlesource.com/c/chromium/src/+/4910494 * 4812338: Move partition_alloc into a "partition_alloc" dir. https://chromium-review.googlesource.com/c/chromium/src/+/4812338 * [Extensions Cleanup] Remove mojom ViewType::kExtensionDialog https://chromium-review.googlesource.com/c/chromium/src/+/4909897 * 4894923: Force enable raw_ptrs pointer arithmetic check. https://chromium-review.googlesource.com/c/chromium/src/+/4894923 * gin: Prevent wrappables from being constructed from author code. https://chromium-review.googlesource.com/c/chromium/src/+/4905829 * chore: update patches * chore: bump chromium in DEPS to 120.0.6052.0 * chore: bump chromium in DEPS to 120.0.6054.0 * chore: bump chromium in DEPS to 120.0.6056.0 * chore: fix patches * 4918545: Reland "[autopip] Add permissions embargo" https://chromium-review.googlesource.com/c/chromium/src/+/4918545 * 4881761: UI bindings for visual logging with structured metrics. https://chromium-review.googlesource.com/c/chromium/src/+/4881761 * chore: bump chromium in DEPS to 120.0.6058.0 * chore: update patches * chore: bump chromium in DEPS to 120.0.6060.0 * chore: bump chromium in DEPS to 120.0.6061.0 * chore: bump chromium in DEPS to 120.0.6062.0 * chore: gen libc++ filenames * chore: update patches * 4911894: Move //c/b/ui/views/eye_dropper to //components https://chromium-review.googlesource.com/c/chromium/src/+/4911894 * chore: bump chromium in DEPS to 120.0.6064.0 * chore: bump chromium in DEPS to 120.0.6066.0 * chore: bump chromium in DEPS to 120.0.6068.0 * chore: bump chromium in DEPS to 120.0.6070.0 * chore: remove temp_prevent_unused_function_error.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4931270 * chore: add TransferDragSecurityInfo() Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4928028 * mark TransferDragSecurityInfo() as NOTREACHED A follow-up to previous commit. I think this is commit is correct (i.e. that this function shouldn't get called) but am not positive, so I'm including it in a standalone commit in case we need to revert. * chore: update signature of OnPrivateNetworkAccessPermissionRequired() Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4919478 Our impl is a no-op, so updating the signature is the only change. * chore: rebuild patches * chore: bump chromium in DEPS to 120.0.6072.0 * chore: update patches * chore: sync ParseMatchPattern() param order with upstream change Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4944243 * chore: update fix_crash_loading_non-standard_schemes_in_iframes.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4939602 * chore: rebuild patches * chore: bump chromium in DEPS to 120.0.6073.0 * chore: update patches * chore: bump chromium in DEPS to 120.0.6074.0 * chore: update disable_color_correct_rendering.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4908053 no manual changes; patch applied with fuzz 1 * chore: update fix_handle_no_top_level_aura_window_in_webcontentsimpl.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4936315 minor manual sync to upstream code shear * chore: rebuild patches * chore: update ClearHttpAuthCache arguments Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4937937 adding ClearDataFilterPtr arg. Upstream added this arg, which is already present in other NetworkContext methods. Our code uses `nullptr` there. * chore: bump chromium in DEPS to 120.0.6076.0 * chore: update mas_disable_remote_accessibility.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4865412 minor manual sync to upstream code shear * chore: update disable_color_correct_rendering.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4942936 minor manual sync to upstream code shear * fix: move x11_util.h include to top of source file This is a short-term fix to unblock the roll. I will follow up a better fix in a standalone PR. * chore: rebuild patches * chore: bump chromium in DEPS to 120.0.6077.0 * chore: update patches * chore: bump chromium in DEPS to 120.0.6078.0 * chore: update patches * refactor: add BrowserProcessImpl::os_crypt_async() Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4455776 This is one to keep an eye on. This commit copies the upstream impl, which appears to be an interim step with more upstream code changes still forthcoming. Xref: https://bugs.chromium.org/p/chromium/issues/detail?id=1373092 * fixup! refactor: add BrowserProcessImpl::os_crypt_async() chore: make 'gn check' happy * chore: remove ensure_messageports_get_gced_when_not_referenced.patch Xref: ensure_messageports_get_gced_when_not_referenced.patch no longer needed because upstreamed * chore: remove webrtc/pipewire_capturer_make_restore_tokens_re-usable_more_than_one_time.patch Xref: https://webrtc-review.googlesource.com/c/src/+/322621 no longer needed because upstreamed * chore: add //components/compose:buildflags dep Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4912601 needed by browser/ui/browser_dialogs.h * chore: update filenames.libcxx.gni node ./script/gen-libc++-filenames.js * test: fix UI.InspectorView -> UI.InspectorView.instance() --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org> Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com> Co-authored-by: clavin <clavin@electronjs.org> Co-authored-by: Charles Kerr <charles@charleskerr.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
		
			
				
	
	
		
			137 lines
		
	
	
	
		
			7.9 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			137 lines
		
	
	
	
		
			7.9 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 a4bf5bb618510ef5ef2ab2d05405cfd3688e97af..7a12c0ecb7254fe335c5563f3fd04c629abe065f 100644
 | 
						|
--- a/content/public/renderer/render_frame_observer.h
 | 
						|
+++ b/content/public/renderer/render_frame_observer.h
 | 
						|
@@ -140,6 +140,8 @@ class CONTENT_EXPORT RenderFrameObserver : public IPC::Listener,
 | 
						|
   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 f19c8b5bff0fe6c5db2ac6b4a7409c7057191d70..2bf28010ea6e986e55f08587304c5991b9beebb3 100644
 | 
						|
--- a/content/renderer/render_frame_impl.cc
 | 
						|
+++ b/content/renderer/render_frame_impl.cc
 | 
						|
@@ -4545,6 +4545,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 9ee1c23d93b096d26e3a2afc6ddfcb97aeb73aaf..8e9eec3472c4bbe1455f2026568737a8fbccfa51 100644
 | 
						|
--- a/content/renderer/render_frame_impl.h
 | 
						|
+++ b/content/renderer/render_frame_impl.h
 | 
						|
@@ -614,6 +614,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 e3ae568992d977adaf546cad6e226b913ecb00f7..0b8363c0edd6ca90223248603e622613a157e143 100644
 | 
						|
--- a/third_party/blink/public/web/web_local_frame_client.h
 | 
						|
+++ b/third_party/blink/public/web/web_local_frame_client.h
 | 
						|
@@ -621,6 +621,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 5030619779b7bcd67923026991bb44d926d81e1a..1eea33740fcdca49e094ad7ad00cfda8938f96c1 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
 | 
						|
@@ -202,6 +202,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 34a6f14a480e52fa381a9f652b2b39c8b64e5c4c..207918e8e45cd40d446fd71a4df5b2558f895c8b 100644
 | 
						|
--- a/third_party/blink/renderer/core/frame/local_frame_client.h
 | 
						|
+++ b/third_party/blink/renderer/core/frame/local_frame_client.h
 | 
						|
@@ -321,6 +321,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 d8c183fa7e38842907d37e3106f525a8fabba30b..c9d84213368f5094b0d275a9816367e962388f4c 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
 | 
						|
@@ -282,6 +282,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 374811c04935519a73dbdd8eff7dcbdbd20bd230..77339de275ab737d1478c3aa386e7f40377c6dc8 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 fc063d5aa867e72dc3c5246f1da0bc48be4a331a..adc4d674d244bdea29e22afee90edb5c16521c06 100644
 | 
						|
--- a/third_party/blink/renderer/core/loader/empty_clients.h
 | 
						|
+++ b/third_party/blink/renderer/core/loader/empty_clients.h
 | 
						|
@@ -408,6 +408,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; }
 |