mirror of https://github.com/electron/electron
164 lines
7.1 KiB
Diff
164 lines
7.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Andy Locascio <andy@slack-corp.com>
|
|
Date: Wed, 6 May 2020 16:37:54 -0700
|
|
Subject: allow in-process windows to have different web prefs
|
|
|
|
Allow earlier access to newly created WebContents so that we can change
|
|
WebPreferences of in-process child windows, rather than relying on
|
|
process-level command line switches, as before.
|
|
|
|
diff --git a/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc b/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc
|
|
index 6178078c6e57fa80a9b671df545c2d39c13142d6..dece2bc9ab0f767f29cac7f9d49a5c1f903d5722 100644
|
|
--- a/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc
|
|
+++ b/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc
|
|
@@ -149,6 +149,19 @@ bool StructTraits<blink::mojom::WebPreferencesDataView,
|
|
out->v8_cache_options = data.v8_cache_options();
|
|
out->record_whole_document = data.record_whole_document();
|
|
out->stylus_handwriting_enabled = data.stylus_handwriting_enabled();
|
|
+ // Begin Electron-specific WebPreferences.
|
|
+ out->context_isolation = data.context_isolation();
|
|
+ out->is_webview = data.is_webview();
|
|
+ out->hidden_page = data.hidden_page();
|
|
+ out->offscreen = data.offscreen();
|
|
+ out->node_integration = data.node_integration();
|
|
+ out->node_integration_in_worker = data.node_integration_in_worker();
|
|
+ out->node_integration_in_sub_frames = data.node_integration_in_sub_frames();
|
|
+ out->enable_spellcheck = data.enable_spellcheck();
|
|
+ out->enable_plugins = data.enable_plugins();
|
|
+ out->enable_websql = data.enable_websql();
|
|
+ out->webview_tag = data.webview_tag();
|
|
+ // End Electron-specific WebPreferences.
|
|
out->cookie_enabled = data.cookie_enabled();
|
|
out->accelerated_video_decode_enabled =
|
|
data.accelerated_video_decode_enabled();
|
|
diff --git a/third_party/blink/public/common/web_preferences/web_preferences.h b/third_party/blink/public/common/web_preferences/web_preferences.h
|
|
index cabd505429b3d04ef0f403bdefe4abe1dbbc2564..592e6ce61fd3678ed025c3fad104f987dd7af626 100644
|
|
--- a/third_party/blink/public/common/web_preferences/web_preferences.h
|
|
+++ b/third_party/blink/public/common/web_preferences/web_preferences.h
|
|
@@ -10,6 +10,7 @@
|
|
#include <vector>
|
|
|
|
#include "build/build_config.h"
|
|
+#include "base/files/file_path.h"
|
|
#include "net/nqe/effective_connection_type.h"
|
|
#include "third_party/blink/public/common/common_export.h"
|
|
#include "third_party/blink/public/mojom/css/preferred_color_scheme.mojom-shared.h"
|
|
@@ -431,6 +432,20 @@ struct BLINK_COMMON_EXPORT WebPreferences {
|
|
// blocking user's access to the background web content.
|
|
bool modal_context_menu = true;
|
|
|
|
+ // Begin Electron-specific WebPreferences.
|
|
+ bool context_isolation = false;
|
|
+ bool is_webview = false;
|
|
+ bool hidden_page = false;
|
|
+ bool offscreen = false;
|
|
+ bool node_integration = false;
|
|
+ bool node_integration_in_worker = false;
|
|
+ bool node_integration_in_sub_frames = false;
|
|
+ bool enable_spellcheck = false;
|
|
+ bool enable_plugins = false;
|
|
+ bool enable_websql = false;
|
|
+ bool webview_tag = false;
|
|
+ // End Electron-specific WebPreferences.
|
|
+
|
|
// We try to keep the default values the same as the default values in
|
|
// chrome, except for the cases where it would require lots of extra work for
|
|
// the embedder to use the same default value.
|
|
diff --git a/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h b/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h
|
|
index e32f89a2f97b56ea67d834774d7e36998c83698e..e4b16f8961242fca03c583d04561784cc9c96e8e 100644
|
|
--- a/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h
|
|
+++ b/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h
|
|
@@ -6,6 +6,7 @@
|
|
#define THIRD_PARTY_BLINK_PUBLIC_COMMON_WEB_PREFERENCES_WEB_PREFERENCES_MOJOM_TRAITS_H_
|
|
|
|
#include "build/build_config.h"
|
|
+#include "mojo/public/cpp/base/file_path_mojom_traits.h"
|
|
#include "mojo/public/cpp/bindings/struct_traits.h"
|
|
#include "net/nqe/effective_connection_type.h"
|
|
#include "third_party/blink/public/common/common_export.h"
|
|
@@ -439,6 +440,52 @@ struct BLINK_COMMON_EXPORT StructTraits<blink::mojom::WebPreferencesDataView,
|
|
return r.stylus_handwriting_enabled;
|
|
}
|
|
|
|
+ // Begin Electron-specific WebPreferences.
|
|
+ static bool context_isolation(const blink::web_pref::WebPreferences& r) {
|
|
+ return r.context_isolation;
|
|
+ }
|
|
+
|
|
+ static int is_webview(const blink::web_pref::WebPreferences& r) {
|
|
+ return r.is_webview;
|
|
+ }
|
|
+
|
|
+ static bool hidden_page(const blink::web_pref::WebPreferences& r) {
|
|
+ return r.hidden_page;
|
|
+ }
|
|
+
|
|
+ static bool offscreen(const blink::web_pref::WebPreferences& r) {
|
|
+ return r.offscreen;
|
|
+ }
|
|
+
|
|
+ static bool node_integration(const blink::web_pref::WebPreferences& r) {
|
|
+ return r.node_integration;
|
|
+ }
|
|
+
|
|
+ static bool node_integration_in_worker(const blink::web_pref::WebPreferences& r) {
|
|
+ return r.node_integration_in_worker;
|
|
+ }
|
|
+
|
|
+ static bool node_integration_in_sub_frames(const blink::web_pref::WebPreferences& r) {
|
|
+ return r.node_integration_in_sub_frames;
|
|
+ }
|
|
+
|
|
+ static bool enable_spellcheck(const blink::web_pref::WebPreferences& r) {
|
|
+ return r.enable_spellcheck;
|
|
+ }
|
|
+
|
|
+ static bool enable_plugins(const blink::web_pref::WebPreferences& r) {
|
|
+ return r.enable_plugins;
|
|
+ }
|
|
+
|
|
+ static bool enable_websql(const blink::web_pref::WebPreferences& r) {
|
|
+ return r.enable_websql;
|
|
+ }
|
|
+
|
|
+ static bool webview_tag(const blink::web_pref::WebPreferences& r) {
|
|
+ return r.webview_tag;
|
|
+ }
|
|
+ // End Electron-specific WebPreferences.
|
|
+
|
|
static bool cookie_enabled(const blink::web_pref::WebPreferences& r) {
|
|
return r.cookie_enabled;
|
|
}
|
|
diff --git a/third_party/blink/public/mojom/webpreferences/web_preferences.mojom b/third_party/blink/public/mojom/webpreferences/web_preferences.mojom
|
|
index 0471df98f9c83dc3b262938fe4312b043f56bf31..615aaf842c48544cdf0254d042fdbcbc797ece4a 100644
|
|
--- a/third_party/blink/public/mojom/webpreferences/web_preferences.mojom
|
|
+++ b/third_party/blink/public/mojom/webpreferences/web_preferences.mojom
|
|
@@ -9,6 +9,7 @@ import "third_party/blink/public/mojom/css/preferred_contrast.mojom";
|
|
import "third_party/blink/public/mojom/v8_cache_options.mojom";
|
|
import "url/mojom/url.mojom";
|
|
import "mojo/public/mojom/base/string16.mojom";
|
|
+import "mojo/public/mojom/base/file_path.mojom";
|
|
|
|
enum PointerType {
|
|
kPointerNone = 1, // 1 << 0
|
|
@@ -218,6 +219,19 @@ struct WebPreferences {
|
|
// If true, stylus handwriting recognition to text input will be available in
|
|
// editable input fields which are non-password type.
|
|
bool stylus_handwriting_enabled;
|
|
+ // Begin Electron-specific WebPreferences.
|
|
+ bool context_isolation;
|
|
+ bool is_webview;
|
|
+ bool hidden_page;
|
|
+ bool offscreen;
|
|
+ bool node_integration;
|
|
+ bool node_integration_in_worker;
|
|
+ bool node_integration_in_sub_frames;
|
|
+ bool enable_spellcheck;
|
|
+ bool enable_plugins;
|
|
+ bool enable_websql;
|
|
+ bool webview_tag;
|
|
+ // End Electron-specific WebPreferences.
|
|
|
|
// This flags corresponds to a Page's Settings' setCookieEnabled state. It
|
|
// only controls whether or not the "document.cookie" field is properly
|