electron/patches/chromium/extend_apply_webpreferences.patch
Electron Bot 2eb3bddb05
chore: bump chromium to 92.0.4505.0 (master) (#29058)
* chore: bump chromium in DEPS to 92.0.4500.2

* resolve conflicts

* update patches

* chore: cherry-pick 82434206f306 from chromium (#29060)

* fix patch

* chore: bump chromium in DEPS to 92.0.4501.0

* chore: bump chromium in DEPS to 92.0.4502.0

* chore: bump chromium in DEPS to 92.0.4503.0

* chore: update patches

* 2869869: [Code Health] Refactor ListValue::Insert in gpu compositor

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

* 2877924: Separate InkDropHost from InkDropHostView

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

* chore: bump chromium in DEPS to 92.0.4504.0

* update patches

* Fixup for Separate InkDropHost from InkDropHostView

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

* 2873469: Compute hashes of .pak files during the build, and check it at runtime.

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

* 2874397: Remove flag to disable microtasks scope consistency checks

https://chromium-review.googlesource.com/c/v8/v8/+/2874397

* 2881471: Remove unneeded trace_event.h includes in headers.

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

* 2844717: [Keyboard Tooltip] Rename RWHV*::SetTooltipText to UpdateTooltipUnderCursor

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

* chore: bump chromium in DEPS to 92.0.4505.0

* chore: update patches

* 2883887: Retire ScopedObserver in /chrome/browser/predictors.

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

* 2883694: Retire ScopedObserver in /chrome/browser.

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

* fixup after merge

* fixup: Remove flag to disable microtasks scope consistency checks

* Temporarily disable setcallhandler-test.js nan test

This test should be renabled once https://github.com/electron/electron/pull/29028 lands

* Use gin_helper::MicrotasksScope instead of v8::MicrotasksScope

* chore: bump chromium in DEPS to 92.0.4506.0

* update patches

* Revert "update patches"

This reverts commit 333ec0d4c205bd3cbee28d2bc3d068871dbb900a.

* Revert "chore: bump chromium in DEPS to 92.0.4506.0"

This reverts commit 2bd52f8cd89b173c8b15a61d74fa7539cdbf574b.

* Fixup: Use gin_helper::MicrotasksScope instead of v8::MicrotasksScope

* Fixup: Use gin_helper::MicrotasksScope instead of v8::MicrotasksScope

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
2021-05-13 21:21:36 -04:00

42 lines
2 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Samuel Attard <sattard@slack-corp.com>
Date: Mon, 8 Mar 2021 16:27:39 -0800
Subject: extend ApplyWebPreferences with Electron-specific logic
background_color can be updated at runtime, as such we need to apply the
new background color to the WebView in the ApplyPreferences method.
There is no current way to attach an observer to these prefs so patching
is our only option.
Ideally we could add an embedder observer pattern here but that can be
done in future work.
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc
index d9887073dbbb313693f7398b2dd7d34dc50a31bd..0582f42be8cdd38a674c8e4b7ce03575d50ada9d 100644
--- a/third_party/blink/renderer/core/exported/web_view_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
@@ -155,6 +155,7 @@
#include "third_party/blink/renderer/core/timing/dom_window_performance.h"
#include "third_party/blink/renderer/core/timing/window_performance.h"
#include "third_party/blink/renderer/platform/fonts/font_cache.h"
+#include "third_party/blink/renderer/platform/graphics/color.h"
#include "third_party/blink/renderer/platform/graphics/image.h"
#include "third_party/blink/renderer/platform/graphics/paint/cull_rect.h"
#include "third_party/blink/renderer/platform/graphics/paint/paint_record_builder.h"
@@ -1783,6 +1784,16 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs,
RuntimeEnabledFeatures::SetTranslateServiceEnabled(
prefs.translate_service_available);
+
+ SkColor color = SK_ColorTRANSPARENT;
+ if (!prefs.guest_instance_id) { // not inside electron <webview /> tag, which is always transparent.
+ Color blink_color;
+ if (blink_color.SetFromString(WebString::FromASCII(prefs.background_color)))
+ color = static_cast<SkColor>(blink_color);
+ }
+ web_view->SetBaseBackgroundColor(color);
+
+ SetUseExternalPopupMenus(!prefs.offscreen);
}
void WebViewImpl::ThemeChanged() {